欢迎来到天天文库
浏览记录
ID:39963508
大小:362.31 KB
页数:58页
时间:2019-07-16
《c语言课件谭浩强cha》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、第5章选择结构程序设计5.1关系运算符和关系表达式关系运算是逻辑运算中比较简单的一种。所谓“关系运算”实际上是“比较运算”。将两个值进行比较,判断比较的结果是否符合给定的条件。例如,a>3是一个关系表达式,大于号(>)是一个关系运算符,如果a的值为5,则满足给定的“a>3”条件,因此关系表达式的值为“真”(即“条件满足”);如果a的值为2,不满足“a>3”条件,则称关系表达式的值为“假”(即“条件不满足”)。5.1.1关系运算符及其优先次序C语言提供6种关系运算符:(1)<(小于)(2)<=(小
2、于或等于)(3)>(大于)(4)>=(大于或等于)〕(5)==(等于)(6)!=(不等于)关于优先次序:1.前4种关系运算符(<,<=,>,>=)的优先级别相同,后两种也相同。前4种高于后2种。例如,“>”优先于“==”。而“>”与“<”优先级相同。2.关系运算符的优先级低于算术运算符。3.关系运算符的优先级高于赋值运算符。高→低算术运算符关系运算符赋值运算符例如:c>a+b等效于c>(a+b)a>b!=c等效于(a>b)!=ca==b3、,-左<,>,<=,>=左==,!=左=低右运算符的目:参与运算的操作数的个数单目、双目、三目除=外,奇数目运算符右结合性偶数目运算符左结合性5.1.2关系表达式用关系运算符将两个表达式(可以是算术表达式或关系表达式、逻辑表达式、赋值表达式、字符表达式)连接起来的式子,称关系表达式。例如,下面都是合法的关系表达式:a>b,a+b>b+c,(a=3)>(b=5),’a’<’b’,(a>b)>(b<c)关系表达式的值是一个逻辑值,即“真”或“假”。例如,关系表达式“5==3”的值为“假”,“5>=04、”的值为“真”。C语言没有逻辑型数据(Pascal语言以True表示“真”,以Fa1se表示“假”。PASCAL和FORTRAN等语言都有逻辑型变量和逻辑型常量),以1代表“真”,以“0”代表“假”。例如,若a=3,b=2,c=1,则:a>b的值为”真”,表达式的值为1。(a>b)==c的值为“真”(因为a>b的值为1,等于c的值),表达式的值为1。b+c<a的值为“假”,表达式的值为0。如果有以下赋值表达式:d=a>bd的值为1。f=a>b>cf的值为0(因为“>”运算符是自左至右的结合方向,5、先执行“a>b”,得值为1,再执行关系运算:“1>c”得值0,赋给f5.2逻辑运算符和逻辑表达式用逻辑运算符将关系表达式或逻辑量连接起来就是逻辑表达式。下面介绍C语言中的逻辑运算符和逻辑运算。5.2.1逻辑运算符及其优先级C语言提供三种逻辑运算符:1.&&逻辑与(相当于其它语言中的AND)2.6、7、逻辑或(相当于其它语言中的OR)3.!逻辑非(相当于其它语言中的NOT)&&和8、9、”是“双目(元)运算符”,它要求有两个运算量(操作数),如(a>b)&&(x>y),(a>b)10、11、(x>y)。“!”是“12、一目(元)运算符”,只要求有一个运算量,如!(a>b)。逻辑运算举例如下:a&&b若a,b为真,则a&&b为真。a13、14、b若a,b之一为真,则a15、16、b为真。!a若a为真,则!a为假。下表为逻辑运算的“真值表”。用它表示当a和b的值为不同组合时,各种逻辑运算所得到的值。ab!a!ba&&ba17、18、bTTFFTTTFFTFF在一个逻辑表达式中如果包含多个逻辑运算符,如!a&&b19、20、x>y&&c优先次序:高→低!→算术运算符→关系运算符→&&→21、22、→赋值运算符!a&&b23、24、x>y&&c((!a)&&b)25、26、27、((x>y)&&c)(a>b)&&(x>y)可写成:a>b&&x>y(a==b)28、29、(x==y)可写成:a==b30、31、x>y(!a)32、33、(a>b)可写成:!a34、35、a>b运算符优先级结合性!右*,/,%高左+,-左<,>,<=,>=左==,!=左&&左36、37、左=低右5.2.2逻辑表达式如前所述,逻辑表达式的值应该是一个逻辑量“真”或“假”。C语言编译系统在给出逻辑运算结果时,以数值1代表“真”,以0代表“假”,但在判断一个量是否为“真”时,以0代表“假”,以非0代表“真”。即将一个非零的数值认作为“38、真”。例如:①若a=4,则!a的值为0。因为a的值为非0,被认作“真”,对它进行“非”运算,得“假”,“假”以0代表。②若a=4,b=5,则a&&b的值为1。因为a和b均为非0,被认为是“真”,因此a&&b的值也为“真”,值为1。③a、b值同前,a39、40、b的值为1。④a、b值同前,!a41、42、b的值为1。⑤4&&043、44、2的值为1。通过这几个例子可以看出,由系统给出的逻辑运算结果不是0就是1,不可能是其它数值。而在逻辑表达式中作为参加逻辑运算的运算对象(操作数)可以是0(“假”)或任何非0的数值(按“真
3、,-左<,>,<=,>=左==,!=左=低右运算符的目:参与运算的操作数的个数单目、双目、三目除=外,奇数目运算符右结合性偶数目运算符左结合性5.1.2关系表达式用关系运算符将两个表达式(可以是算术表达式或关系表达式、逻辑表达式、赋值表达式、字符表达式)连接起来的式子,称关系表达式。例如,下面都是合法的关系表达式:a>b,a+b>b+c,(a=3)>(b=5),’a’<’b’,(a>b)>(b<c)关系表达式的值是一个逻辑值,即“真”或“假”。例如,关系表达式“5==3”的值为“假”,“5>=0
4、”的值为“真”。C语言没有逻辑型数据(Pascal语言以True表示“真”,以Fa1se表示“假”。PASCAL和FORTRAN等语言都有逻辑型变量和逻辑型常量),以1代表“真”,以“0”代表“假”。例如,若a=3,b=2,c=1,则:a>b的值为”真”,表达式的值为1。(a>b)==c的值为“真”(因为a>b的值为1,等于c的值),表达式的值为1。b+c<a的值为“假”,表达式的值为0。如果有以下赋值表达式:d=a>bd的值为1。f=a>b>cf的值为0(因为“>”运算符是自左至右的结合方向,
5、先执行“a>b”,得值为1,再执行关系运算:“1>c”得值0,赋给f5.2逻辑运算符和逻辑表达式用逻辑运算符将关系表达式或逻辑量连接起来就是逻辑表达式。下面介绍C语言中的逻辑运算符和逻辑运算。5.2.1逻辑运算符及其优先级C语言提供三种逻辑运算符:1.&&逻辑与(相当于其它语言中的AND)2.
6、
7、逻辑或(相当于其它语言中的OR)3.!逻辑非(相当于其它语言中的NOT)&&和
8、
9、”是“双目(元)运算符”,它要求有两个运算量(操作数),如(a>b)&&(x>y),(a>b)
10、
11、(x>y)。“!”是“
12、一目(元)运算符”,只要求有一个运算量,如!(a>b)。逻辑运算举例如下:a&&b若a,b为真,则a&&b为真。a
13、
14、b若a,b之一为真,则a
15、
16、b为真。!a若a为真,则!a为假。下表为逻辑运算的“真值表”。用它表示当a和b的值为不同组合时,各种逻辑运算所得到的值。ab!a!ba&&ba
17、
18、bTTFFTTTFFTFF在一个逻辑表达式中如果包含多个逻辑运算符,如!a&&b
19、
20、x>y&&c优先次序:高→低!→算术运算符→关系运算符→&&→
21、
22、→赋值运算符!a&&b
23、
24、x>y&&c((!a)&&b)
25、
26、
27、((x>y)&&c)(a>b)&&(x>y)可写成:a>b&&x>y(a==b)
28、
29、(x==y)可写成:a==b
30、
31、x>y(!a)
32、
33、(a>b)可写成:!a
34、
35、a>b运算符优先级结合性!右*,/,%高左+,-左<,>,<=,>=左==,!=左&&左
36、
37、左=低右5.2.2逻辑表达式如前所述,逻辑表达式的值应该是一个逻辑量“真”或“假”。C语言编译系统在给出逻辑运算结果时,以数值1代表“真”,以0代表“假”,但在判断一个量是否为“真”时,以0代表“假”,以非0代表“真”。即将一个非零的数值认作为“
38、真”。例如:①若a=4,则!a的值为0。因为a的值为非0,被认作“真”,对它进行“非”运算,得“假”,“假”以0代表。②若a=4,b=5,则a&&b的值为1。因为a和b均为非0,被认为是“真”,因此a&&b的值也为“真”,值为1。③a、b值同前,a
39、
40、b的值为1。④a、b值同前,!a
41、
42、b的值为1。⑤4&&0
43、
44、2的值为1。通过这几个例子可以看出,由系统给出的逻辑运算结果不是0就是1,不可能是其它数值。而在逻辑表达式中作为参加逻辑运算的运算对象(操作数)可以是0(“假”)或任何非0的数值(按“真
此文档下载收益归作者所有