题目
设a,b,c都是int的变量,且a=3,b=4,c=5,则下面的表达式中值为0的是( )A. 'a' && 'b'B. aC. a || b+c&&b-cD. !((a
设a,b,c都是int的变量,且a=3,b=4,c=5,则下面的表达式中值为0的是( )
A. 'a' && 'b'
B. a<=b
C. a || b+c&&b-c
D. !((a
题目解答
答案
D. !((a
解析
本题考查逻辑运算符的优先级和逻辑表达式的求值规则。解题关键在于:
- 运算符优先级:
&&优先于||,!最高; - 逻辑运算的短路特性:在
||中,若左操作数为真,右操作数不计算;在&&中,若左操作数为假,右操作数不计算; - 逻辑值的转换:非零值为真(等价于1),零值为假(等价于0)。
选项A:'a' && 'b'
'a'的ASCII值为97,'b'的ASCII值为98,均为非零值,逻辑与结果为1。
选项B:a <= b
a=3,b=4,3 <= 4成立,结果为1。
选项C:a || b + c && b - c
- 计算
b + c和b - c:
b + c = 4 + 5 = 9,b - c = 4 - 5 = -1; - 计算
b + c && b - c:
9 && -1,两个非零值逻辑与结果为1; - 整体表达式:
a || 1,a=3为真,或运算直接短路为1。
选项D:!((a < b) && !c || 1)
- 计算
a < b:
3 < 4结果为1; - 计算
!c:
c=5,!5结果为0; - 计算
(a < b) && !c:
1 && 0结果为0; - 计算括号内整体:
0 || 1结果为1; - 取反:
!1结果为0。