GESP 一级 · GESP 202606 C++ 一级 第 24 题

判断题 · 答案 B

← 整套速查表 GESP 一级 全部真题

题目

如果 $a$ 是 C++ 的整型变量,值为 $4$,则表达式 (a % 2 == 0) + (a / 2) 的值为 $4$。

答案:B

解题思维

答案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 到底等于几?别被括号和运算符优先级带偏了。

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断