- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
优先次序:
!
算术运算符 关系运算符 &&
||
赋值=
8
逻辑运算符和逻辑表达式
a的值 非0 非0 0 0 说
b的值 非0 0 非0 0 明
;b的值 1 0 0 0
a,b均非0才为1
a||b的值 1 1 1 0
a,b均0才为0
在C语言中: 0被看成是“假”, “假”就是0 非零值被看成是“真”, “真”就是1
(4)表示 x 是数字字符的情况 x>='0' && x<='9' ( 或x>=48 && x<=57)
15
课堂练习:
1、已有定义语句,int x=3,y=4,z=5;则值为0的表达式是( )
A)x>y++
B)x<=++y
C)x!=y+z>=y-z D)y%z>=y-z
2、x为奇数时值为“真”,x为偶数时值为“假”,表达式是 ()
逻辑运算符和逻辑表达式
逻辑运算符的应用: (1) 表示成绩(grade) 在90以上(含)和60分以下的情况:
grade>=90 || grade<60 (2) 表示 x 是大于0的偶数:
x>0 && (x%2==0) (3) 判断闰年的条件是符合下列两种之一:
① 能被4整除, 但不能被100整除; ② 能被400整除 (year%4==0&&year%100!=0) || (year%400==0)
B)2 C)3
D)4 16
课堂练习
5.能正确表示数学关系式 100≤s<300的表达式为( )。
13
逻辑运算符和逻辑表达式
例3.12 逻辑表达式的不完全计算 void main() { int a,b,c,d;
a=0; b=1; c=a++&&b++; d=a++||b++; printf("a=%d,b=%d,c=%d,d=%d\n",a,b,c,d); }
a=2,b=1,c=0,d=1
14
A)!(x%2==1)
B)x%2==0
C)x%2
D)!(x%2)
3、已有定义语句:int m=0,n=1;执行表达式 (m=5<3)&&(n=7>9)后,n的值是( )
A)1
B)2 C)3
D)4
4、已有定义语句:int m=0,n=3;执行表达式 (m=5>3)||(n=7<9)后,n的值是( )
A)1
才需要判断c的值。 (2)a||b||c 只要a为真,就不必判断b和c的值,只有a为假,才
判断b。a和b都为假才判断c
例:(m=a>b)&&(n=c>d)
当a=1,b=2,c=3,d=4,m和n的原值为1时,由于“a>b”的 为0,因此m=0,而“n=c>d”不被执行,因此n的值不是 仍保持原值1。
7
3.5.6 逻辑运算符和逻辑表达式
1.逻辑运算符及其优先次序 (1)&& (逻辑与) 相当于其他语言中的AND (2)|| (逻辑或) 相当于其他语言中的OR (3)! (逻辑非) 相当于其他语言中的NOT 例:a&&b 若a,b为真,则a&&b为真。
a||b 若a,b之一为真,则a||b为真。 !a 若a为真,则!a为假。
'A' >100 结果为 0
(a=5)<(b=4) //表达式值0
'a'<'b'
//表达式值1 例 若a=0; b=0.5; x=0.3;
(a>b)>(b<c) //表达式值1
则 a<=x<=b的值为 0
6
关系运算符和关系表达式
关系表达式 使用注意:
尽量使用( )以使关系清晰。 如: (a>b)==(b+c)
关系表达式,逻辑表达式,赋值表达式,字符表达式) 接起来的式子,称关系表达式 C语言中没有专用
的逻辑值,1代表
例:a>b,a+b>b+c,(a=3)>(b=5),’a’<‘b’,(a真>b,)0>代(b表<c假)
• 关系表达式的值是一个逻辑值,即“真”或“假”。
例:关系表达式”a>b”的值为“真”,表达式的值为1。 a=3,b=2,c=1 则关系表达式“(a>b)==c”的值为1
5
关系运算符和关系表达式
例 int a=3,b=2,c=1,d,f; 例 int i=1, j=7,a;
a>b
//表达式值1
a=i+(j%4!=0);
(a>b)==c //表达式值1
则 a的值为 2
b+c<a
//表达式值0
d=a>b
//d的值为1 例 'a' > 0 结果为
1
f=a>b>c //f的值为0
避免类似错误: 如:要表示x∈[a,b],不可写为: a<=x<=b 应记为:(x>=a)&&(x<=b)
应避免对实数作相等或不等的判断。 如:1.0/3.0*3.0==1.0 结果为 0. 可改写为:fabs(1.0/3.0*3.0-1.0)<1e-6
注意区分“=”与“==”,常把“==”误写为“=”。 如:a=1与a==1含义不同。
如:a=-3.5&&5>3 看成 “真” && “真” 值为1
注意:数学上关系式 0 ≦ x ≤ 100 要写成:0<=x && x<=100
9
逻辑运算符和逻辑表达式
如:a>b&&x>y a==b||x==y !a||a>b
如:(a>b)&&(x>y) (a==b)||(x==y) (!a)||(a>b)
建议: 使用( )能使关系更清晰!
10
逻辑运算符和逻辑表达式
2.逻辑表达式 •用逻辑运算符将关系表达式或逻辑量连接起来的式子就 是逻辑表达式。 •逻辑表达式的值应该是一个逻辑量“真”或“假”。
任何非零的数值被认作“真”
例:设a=4,b=5:
!a的值为0
a&&b的值为1
a||b的值为1
!a||b的值为1
4&&0||2的值为1
11
逻辑运算符和逻辑表达式
例:5>3&&8<4-!0 自左向右运算
5>3逻辑值为1
!0逻辑值为1
4-1值为3
表达式值为0
1&&0逻辑值为0 8<3逻辑值为0 12
逻辑运算符和逻辑表达式
在逻辑表达式的求解中,并不是所有的逻辑运算符都要被执行。 (1)a&&b&&c 只有a为真时,才需要判断b的值,只有a和b都为真
C语言关系运算符和位运算符
本节主要内容介绍
3.5.5 关系运算符和关系表达式 3.5.6 逻辑运算符和逻辑表达式 3.5.7 条件运算符和条件表达式 3.5.9 位运算符 3.5.10 求字节运算符
2
3
4
关系运算符和关系表达式
2.关系表达式 • 用关系运算符将两个表达式(可以是算术表达式或