内容正文:
第4章 让程序作自己的选择
—选择结构
C语言技能教程
第 四 章
4.1 技能1:运用条件运算符设计简单的程序
4.2 技能2:关系表达式与逻辑表达式的运用
4.3 技能3:用if 语句编制选择结构的程序
4.4技能4 :用switch 语句设计多选一的程序
C语言技能教程
4.1 技能1
【知识点】
1. 条件运算符(?:),是c语言唯一的需要三个操作数的运算符,它可以组成一个条件表达式,其一般形式为:
表达式1?表达式2:表达式3
2. 条件运算符的执行顺序。首先判断表达式1值,如果数值不是0,则计算表达式2的值,
并将此作为条件表达式的值;如果数值是0,则计算表达式3的值,并将此作为条件表达
式的值。
3. 条件运算符的优先级优先于赋值运算符,低于关系运算符。结合性为右结合。
C语言技能教程
例4.2 求三个数中最大值的程序。
main( )
{
float x,y,z,max;
scanf("%f%f%f ",&x,&y,&z);
max=x>y?x:y;
max=z>max?z:max;
printf("max=%.2f
",max);
}
4.1 技能1
【典型例题】
C语言技能教程
4.2 技能2
1. 关系运算符用于比较表达式,提出类似“a大于10吗?”或“x等于y吗?”这样的问题。关系表达式的一般形式:
表达式 关系运算符 表达式
2. 关系表达式的值,根据所描述的关系成立与否取值为1或0。而不是象有些语言的真与假。即关系成立,值为1;不成立,值为0。见表4-1。
3. 优先级与结合性
运算顺序由高到低为:算术运算符关系运算符<,<=,>,>=关系运算符==和!=
关系运算符的结合性:从左至右。
【知识点】
4.2.1 关系表达式
C语言技能教程
运算符 符号 实例 读作 求值
大于 > 5>3 5大于3吗? 1
大于或等于 >= 3>=3 3大于等于3吗 ? 1
小于 < 'a'<'b' 'a'小于'b'吗? 1
小于或等于 <= 5<=3 5小于等于3吗? 0
等于 == 3==3 3等于3吗 1
不等于 != 3!=3 3不等于3吗? 0
表4-1 关系运算符和关系表达式
C语言技能教程
4.2 技能2
【典型例题】
4.2.2关系表达式
例4.4 从键盘输入某个学生五门课程的成绩,分别存放在整型变量 s1,s2,s3,s4,s5中,分别统计出成绩在90分以上(含90)的课程数,成绩在80-90分之间(含80)的课程数。
C语言技能教程
4.2 技能2
4.2.2关系表达式
例4.4 程序如下:
main( )
{
int s1,s2,s3,s4,s5,c90=0,c80=0;
scanf("%d%d%d%d%d",&s1,&s2,&s3,&s4,&s5);
c90=(s1>=90)+(s2>=90)+(s3>=90)+(s4>=90)+(s5>=90);
c80=(s1>=80)+(s2>=80)+(s3>=80)+(s4>=80)+(s5>=80);
printf("90分或90以上的课程数是:%d
",c90);
printf("80-90分课程数是:%d
",c80-c90); /*相减后为80-90之间的课程数*/
}
C语言技能教程
4.2 技能2
4.2.2 逻辑表达式
【知识点】
1. C语言有三种逻辑运算符。见表4-2。用逻辑运算符将关系表达式或逻辑量连接起来的式子称为逻辑表达式。
2. 一般意义,逻辑表达式成立其值为“真” ,不成立其值为“假”。在C语言中用数值1代表“真”,用数值0代表“假”。
3.逻辑运算的运算含义见真值表4-33. 逻辑运算的优先级顺序:
!(非)&&(与)|| (或)
!(非)运算为单目运算符,结合性为右结合。&& (与)、 || (或)为双目运算符,结合性是左结合。
。
C语言技能教程
4.2 技能2
4.2.2 逻辑表达式
【知识点】
。
运算符 功能 表达式
&& 逻辑与 a&&b
|| 逻辑或 a || b
! 逻辑非 !a
表4-2 逻辑运算符
C语言技能教程
4.2 技能2
4.2.2 逻辑表达式
【知识点】
表4-3 C逻辑运算的真值表
a b a&&b a || b !a !b
非0 非0 1 1 0 0
非0 0 0 1 0 1
0 非0 0 1 1 0
0 0 0 0 1 1
C语言技能教程
4.2 技能2
4.2.2 逻辑表达式
【知识点】
4.C语言逻辑运算总结:( a,b 代表一个关系表达式或逻辑量)
&&运算:当 a,b 都为非0时,a&&b的值为1,其它情