C语言 上机4 Switch 和循环结构
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
C语言上机四逻辑及循环结构程序设计
一、上机目的
1.熟练掌握switch语句;
2.熟练掌握switch语句中break语句的作用。
3.熟练使用while、do-while语句实现循环程序设计
4.理解循环条件和循环体,以及for、while和do-while语句的相同
及不同之处
二、上机内容
输入程序,观察输出结果,并对输出结果做出合理的解释。
1)switch,输入数字5,结果如何?
观察输出结果
修改程序,加上break语句,使程序能够正确输出。
2)switch与break语句
观察输出结果:
break的作用范围是:
3)while 循环
观察输出结果:
循环执行了几次?x的值如何变化?4)do while循环
输出结果是什么:
详细分析x值的变化和循环的次数5) while循环与do while循环的差别
输出结果是什么:
详细分析x的值和循环的次数
说明while循环与do while循环的差别
6) for循环
输出结果是什么:
详细分析变量a,b,c值的变化和循环的次数
7) for循环
输出结果是什么:
详细分析变量a,b,c值的变化和两个for循环的循环次数
8) 循环+选择
输出结果是什么:
详细分析变量x值的变化和两个for循环的循环次数
9)多重循环
输出结果是什么:
详细分析变量a,b,c值的变化和3个for循环的循环次数及作用范围10)、死循环
输出结果是什么:
为什么是死循环
如果把while (a 三、上机作业 (1)从键盘中输入一个数字(不限位数),如何使用循环语句判断这个数字的位数。请用三种算法完成些程序。 算法1:将输入的数字m 循环与9,99,999,-- (n个9)相比较,直到m 小于(n个9),所得n即为其位数,请将以下程序补充完整。 #include "stdio.h" void main() { double m, x= ; int n; printf("请输入一个数字: m = "); scanf("%lf",&m); for ( ; m>x; ) n++; printf("\n输入的数字为正整数有效位为%d位数", n); } 算法2:将输入的数字m与10n比较。按此算法,完成程序 算法3: 将输入的数字m 循环除10,结果与1比较,如果值大于1,则进行下一循环。按此算法完成程序。 (2) 编写程序,输出1至100之间每位数的乘积大于每位数的和的数。 例如23,其中每位数的乘积为2×3=6,每位数的和2+3=5,6>5,满足要求。而21,2×1=2,2+1=3,2<3,不满足要求。 (3)编写程序,输出1200至1300之间每位数的乘积大于每位数的和的数。(例如1215,其中1×2×1×5=10,1+2+1+5=9,10>9,满足要求。而1231,其中1×2×3×1=6,1+2+3+1=7,6<7,不满足要求。 关键问题:如何求出个、十、百、千位数,然后进行乘法和加法计算。 提示:灵活运用循环+求余(%)。 (4)趣味数学题:有30个人,其中有男人、女人和小孩,在一家饭馆里吃饭共花了50先令,每个男人各花3先令,每个女人各花2先令,每个小孩各花1先令,问男人、女人和小孩各有几人? 提示:本题使用穷举法,先按题意得到两个三元(男人、女人、小孩)方程,然后设置循环,男人从1-30,女人从1-30,小孩也是从1-30,当所有人花的钱为50时,满足条件,退出循环,此时得到男、女、小孩各自的人数。 (5)编写程序,根据以下公式求e 的值。 要求用两种方法计算: • 1) for 循环,计算前50项 • 2) while 循环,直至最后一项的值小于10-4 11111111!2!3!4!5!! e n ≈++++++⋅⋅⋅⋅⋅⋅+