资源描述:
《实验四结构化程序设计》由会员上传分享,免费在线阅读,更多相关内容在工程资料-天天文库。
1、实验四结构化程序设计一、实验目的1・掌握结构化程序设计思想和算法设计方法2.掌握各类语旬的用途和使用方法3.掌握条件的表示方法4.掌握表示条件结构的儿种语句形式5.掌握表示循环结构的几种语句形式6.掌握break语句和continue语句的功能和使用7.了解goto语句的适用范围及使用二、实验相关知识本次实验涉及如何根据一个问题来设计算法,采用“口顶向下,逐步细化”的结构化程序设计方法,以及如何将算法用C语言描述出來。掌握C语言中三种程序控制结构:顺序、选择和循环及对应的各类语旬。如表达式语句、复合语句、空语句、条件语句、循环语句和跳转语句,以及表示条件的关
2、系运算符(V、<=.>、>=、==>!=)和逻辑运算符(!、&&、II)的使用。基本的顺序结构语句有表达式语句、空遇句、复合语句等,选择结构语句有if语句和switch语彳U等,循环结构语句冇while语彳U、do-while语句和for语旬以及跳转语句break和continue等。1.表示选择结构的语句形式•If(表达式)语句•if(表达式)语句1else语句2•if(表达式1)语句1elseif(表达式2)语句2•••elseif(表达式n-1)语句wlelse语句n•if(表达式1)if(表达式2)语句1else语句2elseif(表达式3)语句3e
3、lse语句4•switch(表达式){case常址表达式1:语句列1case常最表达式2:语句列2■■case常量表达式n:语句列ndefault:语句列/2+7}1.表示循环结构的语句•while(表达式)语句•do语旬while(表达式);•for(表达式1;表达式2;表达式3)语句1.表示跳转的语句•break语句可用来跳出switch语句或循坏结构,其一般形式为:break;要注意的是,break语句仅用于跳出所在的switch语句或循环语彳ij。例如:for(i=l;i<10;i++)for(j=l;j<10;j++){if(i*j%3==0)br
4、eak;)在i=l,j=3时条件满足执行break语句,此处的break语旬并不会导致程序跳出两重for循环语句,实际的执行效果是break语句跳出第二个for循环,执行i++,然后再继续判断第一•个for语句的条件i<10是否满足。•continue语句用于跳过循环体内余下的语句,并继续执行F—次循环,其一般形式为:continue;三、实验要求1.程序均需在编译器中进行试验2.实验完成后只需要上交源程序文件3.源程序文件名均使用“4—题号・c”作为文件名,如4」.c.!1!实验内容1.己知2009年1刀1号是星期四,给定2009年的任何一天(刀L1),求
5、这天是星期几(输出最后结果要求用switch语句实现)。一周七天用以下标识:Monday,Tuesday,Wednesday,Thursday,Friday,Saturday,Sunday例如:输入3.30时应输出Monday,输入6.19时应输出Friday2.编写程序,实现从键盘输入一个正整数,输出该正整数的位数。例如输入1234输出4,输入123456输出6o3.验证命题:如果一个三位整数是37的倍数,则这个整数循环左移后得到的另两个3位数也是37的倍数。例如,148是37的倍数,481和814也是37的倍数。若命题正确输出所冇符合命题的3位整数,否则
6、输出“wrong”。4.编程求1+2!+3!+...+10!的和。1.编程找出1000Z内的所冇完数。所谓完数是指一个数与其除木身以外所冇因了之和相等。例如6除本身以外的因子有1、2、3,而6=1+2+3,所以6是一个完数。2.验证命题:任何各位数字不全相同的三位正整数经以下变换后均能变为495,称495为三位整数的黑洞数。变换步骤:对于任意一个各位数字不全相同三位止整数,将组成该整数的3个数字重新组合分别生成一个最人数和最小数,用最人数减去最小数得到一个新的三位数;再对新的三位数重复上述操作,最多重复7次。编写程序,接收键盘输入的一个三位正整数,判断各位数
7、字是否不全相同,若不全相同则实施以上变换(不超过7次),输岀每步变换后得到的三位整数。【测试数据】输入486时应输出:486396594495输入591时应输出:591792693594495输入其他任意的三位数再做验证。3.输入一个100以内的正整数,将其分解质因数后输出。如输入60,输出60=2*2*3*5。五、难点提示1.要计算2009年某月某日是星期几,首先耍计算该日子是2009年的第几天,第几天可以利川天数和刀份间的关系进行计算。计算出该口了是第几天后需要计算其是星期几,由于2009年1月1LI是星期四,所以该口子是星期(第几天+4・1)%7。本题
8、可以扩展到任意年份。2.求一个整数x的位数只要将x不