C语言 上机4 Switch 和循环结构

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 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 ≈++++++⋅⋅⋅⋅⋅⋅+

相关文档
最新文档