方法二:用switch语句
分析:switch 语句是用于处理多分支的语句。注意,case后的表达式必须是一个常量表达式,所以在以用switch语句之前,必须把0~100之间的成绩分别化成相关的常量。所有A(除100以外),B,C,D类的成绩的共同特点是十位数相同,此外都是E类。则由此可得把score除十取整,化为相应的常数。 输入测试数据,调试程序。测试数据要覆盖所有路径,注意临界值,例如此题中得100分,60分,0分以及小于0和大于100的数据。
5.编程设计一个简单的计算器程序,要求根据用户从键盘输入的表达式:
操作数1 运算符op 操作数2
计算表达式的值,指定的运算符为加(+)、减(-)、乘(*)、除(/) 用if及switch语句实现。
程序运行举例:
Please enter the expression:22.12+12.10 键盘输入 屏幕提示 22.12+12.10=34.22 程序输出
6.用scanf函数输入一个年份year,计算这一年2月份的天数days,然后用输出函数printf输出days。 实验步骤与要求: (1)有变量定义为整型。 (2)输入前要加提示语句。
(3)输出结果前要有必要的文字说明。 说明:
(1)闰年的条件是:year能被4整除但不能被100整除,或者year能被400整除。
(2)如果year是闰年,则2月份的天数为29天,不是闰年则为28天。 [问题讨论]
20
对于多分支选择结构何时使用if语句的嵌套,何时使用switch语句? 三、对上述实验进行总结,写出实验报告,把你通过本实验掌握的内容整理出来。
实验六 循环结构程序设计(一)
一、实验目的
1.熟练掌握三种循环语句的应用。 2. 熟练掌握循环结构的嵌套。
3. 掌握break和continue语句的使用。 4. 练习调试与修改程序。 二、实验内容 1.while语句 while语句的一般形式为: while(表达式)语句;
while语句的语义是:计算表达式的值,当值为真(非0)时, 执行循环体语句。
编程:求1-100的奇数和。
提示:参考教材107页,例6.2,循环变量的步长值为2。 2.do-while语句 do-while语句的一般形式为: do { 语句;
}while(表达式);
do-while语句的语义是:先执行循环体语句一次, 再判别表达式的值,若为真
21
(非0)则继续循环,否则终止循环。 编程:求1—100的偶数和。 3.for语句 其一般形式为:
for(表达式1;表达式2;表达3) 语句;
for语句的语义是: ⑴首先计算表达式1的值。
⑵再计算表达式2的值,若值为真(非0)则执行循环体一次, 否则结束循环。 ⑶执行循环体后再计算表达式3的值,转回第2步重复执行。 下列程序用于输出fibnocci数列的前20项,每行输出5个。请填空。 说明:fibnocci数列的前两项均为1,以后各项等于其前两项之和。 #include \void main( ) {
int i,f1,f2,f3,n; f1=1;f2=1;
printf(\ n=2;
for(i=1; ;i++) {
if( ) printf(\ ;
printf(\
22
f1=f2;f2=f3; } }
编程:⑴ 用for语句计算s= 3+33+333
⑵ 求5!
4.break/continue语句:
结束整while (表达式1) {… if(表达式2) break; … } while (表达式1) {… if (表达式2) conitue; … } 结束本次循环
个循环 说明以下各程序的功能及运行结果并总结Break和continue语句的不同用法。
#include \void main() { int i,sum=0; for (i=1;i<=10;i++) #include \void main() { int i,sum=0; for (i=1;i<=10;i++) {if (i>5) break; sum=sum+i;} printf(\} {if (i<=5) continue; sum=sum+i;} printf(\}
编程:输出100以内能被7整除的数。
提示:对7~100的每一个数进行测试,如该数不能被7整除,即模运算不为0,则由continue语句转去下一次循环。只有模运算为0时,才能执行后面的printf语句,输出能被7整除的数。(参考教材115页,例6.5) 5.循环嵌套
三种循环控制语句可以互相嵌套,即在一个循环体内部又可以出现另一循环。
23
输出100以内的素数。
素数是只能被1 和它本身整除的数。判断素数的方法:用一个数分别去除2到这个数减1(或2到sqrt(这个数)),如果能被整除,则表明此数不是素数,反之是素数。 #include \#include \void main() { int n,i;
for(n=2;n<=100;n++) {
for(i=2;i if(i>=n) printf(\} } 本程序中,第一层循环表示对2~100的数逐个判断是否是素数,在第二层循环中则对数n用2~n-1逐个去除,若某次除尽则跳出该层循环,说明不是素数。 如果在所有的数都是未除尽的情况下结束循环,则为素数,此时有i>=n, 故可经此判断后输出素数。然后转入下一次大循环。 编程:⑴求100-200之间的素数,把它们按每行5个素数全部显示出来,并给出 素数的个数。 ⑵输出9*9口诀表。 提示:分行与列考虑,共9行9列,外循环控制行,内循环控制列。 [内容讨论] 1.小结三种形式的循环使用的区别。 2.小结循环嵌套的规定和应用 三、对上述实验进行总结,写出实验报告,把你通过本实验掌握的内容整理出来。 24