11. 如果 a 和 b 均为 int 类型的变量,下列表达式不能正确判断“a 等于 0 且 b 等 于 0”的是() (2023年3月 GESP C++ 一级)
作者:野牛程序员:2024-07-17 18:39:22GESP阅读 3488
11. 如果 a 和 b 均为 int 类型的变量,下列表达式不能正确判断“a 等于 0 且 b 等 于 0”的是() (2023年3月 GESP C++ 一级)
11. 如果 a 和 b 均为 int 类型的变量,下列表达式不能正确判断“a 等于 0 且 b 等 于 0”的是()
A. (a == 0) && (b == 0)
B. (a == b == 0)
C. (!a) && (!b)
D. (a == 0) + (b == 0) ==2
如果 a
和 b
均为 int
类型的变量,下列表达式不能正确判断“a 等于 0 且 b 等于 0”的是( B. (a == b == 0) )。
详细解释:
A. (a == 0) && (b == 0)
这个表达式正确地使用逻辑与运算符
&&
来判断a
和b
是否都等于 0。B. (a == b == 0)
这个表达式不能正确地判断
a
和b
是否都等于 0。因为==
运算符的优先级低于赋值运算符,所以表达式被解释为(a == b) == 0
。这将首先比较a
是否等于b
,然后将结果(布尔值)与 0 进行比较。这不是想要的逻辑。C. (!a) && (!b)
这个表达式使用逻辑非运算符
!
,将a
和b
都转换为布尔值,然后使用逻辑与运算符&&
判断它们是否都为false
(即都为 0)。这种方法正确地判断a
和b
是否都等于 0。D. (a == 0) + (b == 0) == 2
这个表达式将两个比较结果(布尔值)相加,并检查它们的总和是否等于 2。由于布尔值
true
在 C++ 中表示为 1,false
表示为 0,所以这个表达式能够正确地判断a
和b
是否都等于 0。
因此,选项 B((a == b == 0))不能正确判断 a
等于 0 且 b
等于 0。
野牛程序员教少儿编程与信息学奥赛-微信|电话:15892516892