11. 如果 a 和 b 均为 int 类型的变量,下列表达式不能正确判断“a 等于 0 且 b 等 于 0”的是() (2023年3月 GESP C++ 一级)
作者:野牛程序员:2024-07-17 18:39:22GESP阅读 4319
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

