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

判断题 · 答案 B

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

题目

如果 a 为 int 类型的变量,则表达式 (a % 4 == 2) 可以判断 a 的值是否为偶数。

答案:B

解题思维

答案B。表达式(3==0)+'A'+1+3.0中,有double参与运算,整个表达式结果提升为double类型。

常见错误

表达式结果类型由最高精度的操作数决定。double参与运算后整个表达式提升为double。

详细解析(节选)

【考点】取模运算|奇偶性判定|逻辑表达式的完备性

🎯 考纲定位 本题考查《GESP 一级 C++ 编程》"运算符与表达式"模块中取模运算的基本应用。命题人卡住的是考生对"偶数"定义的机械记忆——偶数是 2 的整数倍,而非仅余数为 2 的数。

🧠 解题思维 先看取模含义:a % 4 返回 a 除以 4 的余数,偶数 a 的余数只能是 0 或 2。表达式只检查余数是否为 2,遗漏了余数为 0 的情况(如 a=0,4,8),因此逻辑不完整。正确判断偶数应直接检查 a % 2 == 0,或 a % 4 == 0 || a % 4 == 2。

🪤 陷阱拆解 A 选项错误在于把"偶数"窄化为"模 4 余 2 的数"。命题人利用"偶数"一词的模糊性,让考生误以为只要不是奇数就满足条件,却忽略了整除 4 的偶数同样为偶数。边界条件 a=0 是绝对陷阱——0 是偶数,但 0%4==0 而非 2。如果你只背"偶数 mod 4 余 2"这个错误结论,就会掉进这个坑。

🔄 反命题思维 若把条件改为 (a % 4 == 0 || a % 4 == 2) 或更通用的 (a % 2 == 0),则能正确判断偶数。刷题时先自问:这个条件是否覆盖了所有目标情形?还是只处理了部分?

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