1、C程序第4章公共电子邮箱:huayupeixun2010邮箱密码:123456第四章 选择结构输入两个数,输出较大的数。流程图: 开始 输入a和b a=b y n输出a 输出b 结束程序代码如下:#includemain()int a,b; printf(“请输入a和b:n”);scanf(“%d%d”,&a,&b);if(a=b) printf(“a=%d”,a);else printf(“b=%d”,b);1、 关系运算和逻辑运算(1) 关系表达式和逻辑表达式的运算结果都会得到一个逻辑值,要么为“真”,要么为“假”。(2) 非0数都表示真,真的值为1。0表示假,假的值为0。(3) 举例:2
2、3为假,表达式的值为0。53为真,表达式的值为1。(4) 数学界 IT界 = 关系运算符赋值运算符举例:a=35+2(6) 关系运算符两边值的类型不一致的情况如:20.5,关系运算符两边的操作数的类型一致的情况下才能进行比较。故先把2转化成2.0,然后和0.5进行比较。两操作数类型不一致时的转换原则,请见附录5。(7) 逻辑运算符和逻辑表达式1 逻辑与(&):一假必假 如:32&53|53)(8) 区间的表示数学表示:0x0&x3&(a=2)后,a的值为?答案为a的值仍为1。逻辑或(|)中的“短路”现象举例:a的初值为1,经过表达式32|(a=2)后,a的值为?答案为a的值仍为1。2、 if语
3、句if语句的两种形式1 if(表达式) 语句举例:if(ab) a=5;2 if( 表达式) 语句1 else 语句2举例:if(ab) a=1; else a=2; 注意:if和else都是关键字,系统专用,用户决不能用。if可单独使用,但是else必须和if配对使用。3 if只对紧跟在它后面的“一条语句”起作用。可以是简单语句,也可以是一条复合语句。举例:if(ab) a=1; if(ab) t=a; a=b; b=t; if(ab,交换a和b的值)1 3 2 (a和c比较,若ac,交换a和c的值)1 2 3(a和c比较,若ac,交换a和c的值)演示程序:#includemain() in
4、t a,b,c,t; printf(“input a,b,c:”); scanf(“%d%d%d”,&a,&b,&c);printf(“a=%d,b=%d,c=%dn”,a,b,c);if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;if(bc)t=b;b=c;c=t;printf(“%d, %d, %dn”,a,b,c);总结:交换两个变量的值必须借助第三个变量才能完成。例如本题中的变量t。如果if管辖多条语句,多条语句必须用括起来,形成一条复合语句。例4.4如何判断能否被3整除if(n%3=0) printf(“n=%dYESn”,n);else printf(“n=
5、%dNOn”,n);(2)if后面圆括号中的表达式,可以是任意合法的C语言表达式,也可以是任意类型的数据。举例:if(ab) 最为常见的形式 if(23) 永假的情况 if(a=3) 永真的情况 if(0) 永假if(1) 永真(3)嵌套的if语句if(ab) if(ac) a=2; if(ab) if(ac) a=2; else b=2; if(ab)if(ac) a=2; else b=2; if(ab) a=2; elseif(ac) a=2;例4.5编写程序,根据输入的学生成绩给出相应的等级,大于或等于90分以上的等级为A,60分以下的等级为E,其余每10分为一个等级。#include
6、main() int g; printf(“Enter g:”); scanf(“%d”,&g);printf(“g=%d:”,g);if(g=90) printf(“An”); else if(g=80) printf(“Bn”); else if(g=70) printf(“Cn”); else if(g=60) printf(“Dn”); else printf(“En”);if和else的配对法则:else总是与前面最近的至今还没有配对的if是一对。3、 条件表达式1 条件表达式的书写形式如下:表达式1?表达式2:表达式32 条件表达式的执行过程如下: 若表达式1为真,则表达式2的值作
7、为整个条件表达式的值;若表达式1为假,则表达式3的值作为整个条件表达式的值。3 举例:53?a=2:a=4 整个条件表达式的值为223?a=2:a=4整个条件表达式的值为44、 switch语句实现选择结构的语句有两种:if语句和switch语句。switch语句形式如下:switch(表达式) case 常量表达式1:语句1case 常量表达式2:语句2 .case 常量表达式n:语句n default: 语句n+1举例switch(a) case 1:printf(“A”); case 2:printf(“B”);case 3:printf(“C”);default: printf(“D”
8、);例4.6 用switch语句改写例4.5#includemain() int g; printf(“Enter a mark:”); scanf(“%d”,&g);printf(“g=%d:”,g); switch(g/10) case 10:case 9: printf(“An”);case 8: printf(“Bn”);case 7: printf(“Cn”);case 6: printf(“Dn”);default: printf(“En”);在switch语句体中使用break语句#includemain() int g; printf(“Enter a mark:”); scanf(“%d”,&g);printf(“g=%d:”,g); switch(g/10) case 10:case 9: printf(“An”);break;case 8: printf(“Bn”); break;case 7: printf(“Cn”); break;case 6: printf(“Dn”); break;default: printf(“En”);总结:break的作用:强制跳出switch语句体。
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1