还剩2页未读,继续阅读
文本内容:
实验
四、分支循环结构程序设计
一、实验目的1.通过本实验,加深对循环控制结构有关概念的理解2.熟练掌握while、do-while和for三种循环控制语句的特点,掌握循环结构程序设计和调试方法3.掌握二重循环结构程序的设计方法
二、实验内容1.用while循环实现数据统计问题数据统计问题从键盘输入一批任意数量的整数,统计其中不大于100的非负数数值的个数2.编写并调试程序,使用do-while循环控制语句实现上面的数据统计问题调试数据仍参照上面给出的几种情况设计使用3.编写并调试程序,使用for循环控制语句实现上面的数据统计问题4.阶乘累加问题编写程序,求1+2!+3!+…+n!的值(习题
5.9)
三、实验指导1.用while循环实现数据统计问题⑴编程分析由于输入数据个数是不确定的,因此每次执行程序时,循环次数都是不确定的在进行程序设计时,确定循环控制的方法是本实验的一个关键问题循环控制条件可以有多种确定方法
①使用一个负数作为数据输入结束标志
②输入一个数据后通过进行询问的方式决定是否继续输入下一个数据⑵参考程序l参考程序一/*使用负数作为数据输入结束标志的程序*/#includestdio.hvoidmain{intmcounter=0;while1{printf请输入一个整数;scanf%dm;ifm0break;ifm=100counter++;printf\n;}printf符合要求的整数个数为:%d\ncounter;}l参考程序二/*通过进行询问的方式决定是否继续输入下一个数据的程序*/#includestdio.hvoidmain{intmcounter=0;charask;while1{printf请输入一个整数;scanf%dm;getchar;ifm=0m=100counter++;printf继续输入下一个数据?Y/N;ask=getchar;getchar;ifask!=yask!=Ybreak;printf\n;}printf符合要求的整数个数为:%d\ncounter;}⑶程序调试这里只对“参考程序一”的调试数据进行设计该程序输入数据时,应考虑多种数据组合,对每一组数据察看并分析结果例如
①输入的一组数据之间全部以空格分隔,只有最后一个数为负数,以回车键结束如16357–10
②输入的一组数据之间全部以空格分隔,在负数之后又有正数数据,最后一个数不为负数,以回车键结束如16357–109617
③输入的一组数据之间全部以空格分隔,输入数据中有多个负数,以回车键结束如16357–109617–877
④输入的数据中有大于100的整数如16357–1096117–8726766
⑤数据之间既用空格分隔,也用回车键分隔如76353762271796679617–8771966982-1631
⑥每输入一个数据后均按回车键
⑦输入的第一个数据即为负数
⑧在输入的数据中使用数值很大的整数如17667789876517899-10987⑷在上面的“参考程序一”中,使用了常数“1”作为循环控制的条件,这是常用的循环控制方式请修改上面的程序,不使用常数循环条件,仍然使用while语句实现数据统计问题2.编写并调试程序,使用do-while循环控制语句实现数据统计问题⑴参考程序/*使用负数作为数据输入结束标志的程序*/#includestdio.hvoidmain{intmcounter=0;do{printf请输入一个整数;scanf%dm;ifm0break;ifm=100counter++;printf\n;}while1;printf符合要求的整数个数为:%d\ncounter;}⑵调试指导调试数据仍参照上面给出的几种情况设计使用3.编写并调试程序,使用for循环控制语句实现上面的数据统计问题⑴参考程序/*用for循环控制语句实现的数据统计问题程序*/#includestdio.hvoidmain{intmcounter;forcounter=0;1;{printf请输入一个整数;scanf%dm;ifm0break;ifm=100counter++;printf\n;}printf符合要求的整数个数为:%d\ncounter;}注意for循环控制语句的一般格式通常有三个表达式,本参考程序中使用的for循环控制语句在格式上只有两个表达式请读者注意学习这种用法⑵请修改程序,使用完整格式的for循环控制语句实现上面的数据统计问题4.阶乘累加问题⑴编程分析
①本实验内容是求解阶乘问题
②求n!用一个循环即可实现
③求1+2!+3!+…+n!的值即为求1+,需要在求n!程序之外增加一个外重循环⑵参考程序/*求1+2!+3!+…+n!程序*/#includestdio.hvoidmain{longints=1t;intijn;printfn=;scanf%dn;fori=2;i=n;i++{fort=1j=1;j=i;j++t*=j;s+=t;}printfs=%ld\ns;}⑶程序调试
①输入一个不大的正整数,分析程序执行结果
②输入一个零或者负数,分析程序执行结果
③输入一个很大的正整数,分析程序执行结果
④当程序结果不符合要求时,修改程序,直到对任何输入数据都能输出正确的执行结果,或者给出一个明确的提示信息例如,当输入数据非法时,给出一个恰当的提示信息
四、思考题1.完善实验内容1的“数据统计问题”程序,使得对于任何数值,都能进行正常的数据统计2.用一个单循环程序实现实验内容4的阶乘累加问题3.修改实验内容4的程序,实现对任意多个整数求阶乘的累加和。