如果 $a$ 是 C++ 的整型变量,值为 $4$,则表达式 (a % 2 == 0) + (a / 2) 的值为 $4$。
答案B。根据计算机/编程基础知识分析判断。
仔细审题,注意"不正确""不属于""不是"等否定词。用排除法缩小范围。
【考点】整型运算|取模运算|整数除法|逻辑运算|布尔值转换
看到 a=4 直接代入。a%2 是取余,4%2=0;a/2 是整数除法,4/2=2。括号里 (0==0) 结果为真值 true,在 C++ 中 true 等价于 1。最后 1+2=3,题目说等于 4 显然错误,选 B。
陷阱一:误以为 true 是 0 或 2(把条件判断结果当数字用,混淆了布尔值与整型)。陷阱二:忽略整数除法与浮点除法的区别(本题 a 为偶数,4/2=2 无歧义,但这是命题人刻意让整数除法结果"看起来合理"的掩护)。陷阱三:看到表达式就机械计算,没注意到==的优先级高于+(本题括号已明确,真正的陷阱在布尔值转换而非运算符优先级)。
反命题思维:如果改成 a=5,则 5%2=1,(1==0) 为假即 0,5/2=2,结果为 2,命题更错。
刷到这类题先问自己:C++ 里 true 到底等于几?别被括号和运算符优先级带偏了。