当前位置:首页 > 实验三-选择结构程序设计
语句1;
else
if(表达式2)
语句2; else
语句3;
形式4:
if(表达式1)
if(表达式2)
语句1; else
语句2;
else
if(表达式3)
语句3; else
语句4;
if语句的嵌套不影响if语句的独立性。if语句的嵌套使用起来比较灵活,嵌套层次对应时内层的语句要被完整地包含在外层的语句之内。 小结:
1. 编程的方法并非唯一,对于多分支结构也可以用多条简单的if语句实现。如下修
改后的程序。 #include
float x,y;
scanf(\ if(x<1) y=x;
if(x>=1&&x<=10) y=2*x-1;
if(x>10) y=3*x-11;
printf(\}
2. 正确使用逻辑运算符,逻辑与(&&)和逻辑或(||)。
如,1?x?10的合法的C语言表达式,1<=x && x<=10 。
【3.5】 编写实现:利用switch语句模拟两个整数的加、减、乘、除运算。如,输入5+2,输出5+2=7 ;如,输入5/2,输出5/2=2.50。程序文件名:ex3_5.c。
分析:本程序的关键是由输入的运算符来决定运算的结果。因此引入一个字符变量存放算术运算符,由该变量的字符值来选择做何种运算。
#include
scanf(\ switch(ch)
{ case '+':printf(\ case '-':printf(\ case '*':printf(\
case '/':printf(\ } }
第一次运行程序,
输入测试数据:5+2 程序运行结果:5+2=7 第二次运行程序,
输入测试数据:5-2 程序运行结果:5-2=3 第三次运行程序,
输入测试数据:5*2 程序运行结果:5*2=10 第四次运行程序,
输入测试数据:5/2
程序运行结果:5/2=2.50
该源程序中switch语句的表达式的值为字符,当字符变量ch的值为“+”时,则选取case后常量为 '+'后的语句执行。若没有break语句,会依次执行其后所有case后的语句组。若有break语句,中断该switch语句。
因此,switch语句实现多分支结构的关键是只需对条件判断一次,然后从其多种结果中取一种情形执行。
通常情况下,采用switch语句实现多分支结构时,需使用break语句。但该语句的一般格式中是不包含break语句的。 switch的一般格式: switch(表达式) {
case常量表达式1: 语句1 case常量表达式2: 语句2 …
case常量表达式n: 语句n default : 语句n+1 }
switch语句中的表达式的值,通常情况下,为整型值或字符型值。若为实型值时自动取整。而case后的各常量表达式数据类型的值必须互不相同,否则会出现错误。default子句也可以省略。 小结:
1.scanf函数中格式控制符为\,要求从键盘输入数据时,数、字符与数之间不能用空格分隔,否则结果会出错。
2.用switch语句实现多分支结构时,要正确合理地使用break语句。
3.3实验内容
3.3.1 夯实基础
【3.6】从键盘输入任意两个正整数m,n,判断m能否被n整除,若能输出m与n的值,否则继续判断两个数的奇偶性,若为奇数输出“Odd”,若为偶数输出“Even”。程序文件名:ex3_6.c。
第一次运行程序
输入测试数据:49 4 程序运行结果:49:Odd
4:Even
第二次运行程序
输入测试数据:24 8 程序运行结果:24 8
【3.7】编程实现,为鼓励居民节约用水,A市对居民用水按水量阶梯式计价。计价标准:按每年用水量统计,不超过180立方米的部分按每立方米5元收费;超过180立方米不超过260立方米的部分按每立方米7元收费;超过260立方米的部分按每立方米9元收费。编程对水费进行计算,要求保留两位小数。程序文件名:ex3_7.c
输入测试数据:200
程序运行结果:x:200.0 y:1040.00
【3.8】编程实现,判断某一年是否是闰年。程序文件名:ex3_8.c。
【提示】:判断某一年是否是闰年的条件是这一年的年份能被4整除但不能被100整除或者能被400整除。 第一次运行程序
输入测试数据:2015
程序运行结果:2015 is not a leap year 第二次运行程序
输入测试数据:2016
程序运行结果:2016 is a leap year
【3.9】编程实现,将一个百分制成绩转换为五分制成绩。转换原则,当成绩大于或等于90分为A,小于90分且大于等于80分为B,小于80分且大于等于70分为C,小于70分且大于等于60分为D;小于60分为E。程序文件名ex3_9.c。
3.3.2 应用提高
【3.10】编程实现:输入任意四个整数n1、n2、n3、n4,求四个数中的最大值。程序文件名:ex3_10.c。
输入测试数据:56 34 87 23
程序运行结果:max=87
【3.11】编程实现:中国有句俗语“三天打鱼两天晒网”。某人从某天起,开始“三天打鱼两天晒网”,问这个人在以后的第n天中是“打鱼”还是“晒网”。程序文件名:ex3_10.c。 第一次运行程序
输入测试数据:100 程序运行结果:晒网 第二次运行程序
输入测试数据:73 程序运行结果:打鱼
3.4实验思考
【思考1】若将【3.2】程序中的条件表达式'a'<=c&&c<='z'写成'a'<=c<='z',程序会不会出错?输入测试数据A,写出程序运行结果。
【思考2】阅读下列程序,写出其运行结果。 #include
char a=66; if(a%2==0) putchar(a); else
putchar(a+32); }
程序运行结果:
修改条件表达式为:a%2=0,程序还会运行吗?
共分享92篇相关文档