欢迎来到天天文库
浏览记录
ID:40238525
大小:1.19 MB
页数:69页
时间:2019-07-28
《C语言程序设计 曹玲焕 孙萍主编 第四章》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第4章选择结构程序设计一、关系运算和逻辑运算二、if语句三、Switch语句四、选择结构程序设计举例主要内容一、关系运算和逻辑运算4.1.1关系运算和关系表达式1.关系运算符及其优先级次序(1)关系运算符<<=>>===!=(2)优先次序:关系运算符中的前四种运算符(<,<=,>,>=)的优先级高于后两种运算符(==,!=)。关系运算符均为双目运算符,其结合性均为自左向右。关系运算符的优先级低于算术运算符,高于赋值运算符。2.关系表达式关系表达式:由关系运算符将两个表达式连接起来的符合C语言语法规
2、则的式子。关系表达式的一般格式如下:表达式关系运算符表达式例如:a>b,x+y<=c-d,'A’>’D’,3*y<93.关系表达式的值(1)关系表达式的值是一个逻辑值,即“真”或“假”。C语言没有逻辑型数据,所以就用1代表“真”,用0代表“假”。例如:当x>y为“真”时,其表达式的值为1;当x>y为“假”时,其表达式的值为0。(2)可以将关系表达式的运算结果(0和1)赋给一个整型变量或字符型变量,例如:设a=2,b=8c=a
3、果程序如下:#includemain(){charc=’g’;inti=1,j=2,k=3;floatx=3e+5,y=0.85;printf(“%d,%d”,‘a’+3=k+2);printf(“%d,%d”,1b>a值a%2!=0值(b-a)%2==1值a
4、+b5、6、!(2)运算规则:&&:当两个操作数都为“真”时,运算结果为“真”,其它情况运算结果都为“假”。7、8、:当两个操作数都为“假”时,运算结果为“假”,其它情况运算结果都为“真”。!:这是一个单目运算符(只有一个操作数),当操作数为“真”时,运算结果为“假”;当操作数为“假”时,运算结果为“真”。表4-1给出了上述三种逻辑运算的真值表。其中a、b是两个操作数。ab!a!ba&&ba9、10、b真真假假真假真假假假真真11、假真假真真假假假真真真假(3)优先级次序&&与运算和12、13、或与运算均为双目运算符,其结合性自左向右!非运算符为单目运算符,只要求一个运算量,其结合性为自右向左逻辑运算符(&&、14、15、、!)之间的优先级关系由高到低顺序表示如下:!(非)→&&(与)→16、17、(或)逻辑运算符和其他运算符优先级的关系由高到低顺序表示如下:!(非)→算术运算符→关系运算符→&&和18、19、→赋值运算符2.逻辑表达式逻辑表达式:用逻辑运算符将关系表达式或逻辑量连接起来的有意义的式子。逻辑表达式的一般格式:表达式逻辑运算符表达式例如:满足20、x>2同时又满足x<15的逻辑表达式是:x>2&&x<15再如:4+a>b&&x<=y21、22、x>0,!a23、24、x==y3.逻辑表达式的值逻辑表达式的值也是一个逻辑量“真”或“假”。C编译系统在给出逻辑运算结果时,以1代表“真”,以0代表“假”,但在判断一个量时,以非0代表“真”,以0代表“假”。C语言逻辑运算的规则如表4-2。ab!a!ba&&ba25、26、b非0非000非00非000011010110001110例如:5>3&&2其结果为:18<4-!0其结果为:0可以将逻辑表达式27、的运算结果(0或1)赋给整型变量或字符型变量。例如:当a=1,b=2,c=3,d=3时,变量e:e=(a<=b)&&(c<=d);执行以上的语句后变量e中的值为1【例4.2】读程序,写出程序运行结果#includemain(){inta=2,b=3,c=0;printf(“%d,%d”,a&&b,b&&c);printf(“%d,%d”,a28、29、c,!a+c&&b+c);printf(“%d,%d”,!c+a==b30、31、b32、33、a+b>c+10);}4.“短路”34、现象(1)与运算一般形式:表达式1&&表达式2当表达式1的值为假(0)时,跳过表达式2,则整个表达式的值为假(0)例:设a=0,b=1表达式:a++&&b++先去求a++的值为0,可以确定该逻辑表达式的值为0,跳过b++不再对它进行求值。a的值将自增1,由0变成1;而b的值将不变。(2)或运算一般形式:表达式135、36、表达式2当表达式1的值为真(1)时,跳过表达式2,则整个表达式的值为真(1)例:设a=1,b=2表达式:a++&&b++先去求a++的值为1,可以确定该逻辑表达式的值为1
5、
6、!(2)运算规则:&&:当两个操作数都为“真”时,运算结果为“真”,其它情况运算结果都为“假”。
7、
8、:当两个操作数都为“假”时,运算结果为“假”,其它情况运算结果都为“真”。!:这是一个单目运算符(只有一个操作数),当操作数为“真”时,运算结果为“假”;当操作数为“假”时,运算结果为“真”。表4-1给出了上述三种逻辑运算的真值表。其中a、b是两个操作数。ab!a!ba&&ba
9、
10、b真真假假真假真假假假真真
11、假真假真真假假假真真真假(3)优先级次序&&与运算和
12、
13、或与运算均为双目运算符,其结合性自左向右!非运算符为单目运算符,只要求一个运算量,其结合性为自右向左逻辑运算符(&&、
14、
15、、!)之间的优先级关系由高到低顺序表示如下:!(非)→&&(与)→
16、
17、(或)逻辑运算符和其他运算符优先级的关系由高到低顺序表示如下:!(非)→算术运算符→关系运算符→&&和
18、
19、→赋值运算符2.逻辑表达式逻辑表达式:用逻辑运算符将关系表达式或逻辑量连接起来的有意义的式子。逻辑表达式的一般格式:表达式逻辑运算符表达式例如:满足
20、x>2同时又满足x<15的逻辑表达式是:x>2&&x<15再如:4+a>b&&x<=y
21、
22、x>0,!a
23、
24、x==y3.逻辑表达式的值逻辑表达式的值也是一个逻辑量“真”或“假”。C编译系统在给出逻辑运算结果时,以1代表“真”,以0代表“假”,但在判断一个量时,以非0代表“真”,以0代表“假”。C语言逻辑运算的规则如表4-2。ab!a!ba&&ba
25、
26、b非0非000非00非000011010110001110例如:5>3&&2其结果为:18<4-!0其结果为:0可以将逻辑表达式
27、的运算结果(0或1)赋给整型变量或字符型变量。例如:当a=1,b=2,c=3,d=3时,变量e:e=(a<=b)&&(c<=d);执行以上的语句后变量e中的值为1【例4.2】读程序,写出程序运行结果#includemain(){inta=2,b=3,c=0;printf(“%d,%d”,a&&b,b&&c);printf(“%d,%d”,a
28、
29、c,!a+c&&b+c);printf(“%d,%d”,!c+a==b
30、
31、b32、33、a+b>c+10);}4.“短路”34、现象(1)与运算一般形式:表达式1&&表达式2当表达式1的值为假(0)时,跳过表达式2,则整个表达式的值为假(0)例:设a=0,b=1表达式:a++&&b++先去求a++的值为0,可以确定该逻辑表达式的值为0,跳过b++不再对它进行求值。a的值将自增1,由0变成1;而b的值将不变。(2)或运算一般形式:表达式135、36、表达式2当表达式1的值为真(1)时,跳过表达式2,则整个表达式的值为真(1)例:设a=1,b=2表达式:a++&&b++先去求a++的值为1,可以确定该逻辑表达式的值为1
32、
33、a+b>c+10);}4.“短路”
34、现象(1)与运算一般形式:表达式1&&表达式2当表达式1的值为假(0)时,跳过表达式2,则整个表达式的值为假(0)例:设a=0,b=1表达式:a++&&b++先去求a++的值为0,可以确定该逻辑表达式的值为0,跳过b++不再对它进行求值。a的值将自增1,由0变成1;而b的值将不变。(2)或运算一般形式:表达式1
35、
36、表达式2当表达式1的值为真(1)时,跳过表达式2,则整个表达式的值为真(1)例:设a=1,b=2表达式:a++&&b++先去求a++的值为1,可以确定该逻辑表达式的值为1
此文档下载收益归作者所有