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

选择题 · 答案 C · 考点:运算符优先级

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

题目

下列 C++ 表达式与 -2 * 2 % 4 的值不同的是( )。

答案:C

考点

运算符优先级

解题思维

答案C。根据计算机/编程基础知识分析判断。

常见错误

仔细审题,注意"不正确""不属于""不是"等否定词。用排除法缩小范围。

详细解析(节选)

【考点】运算符优先级|取模运算|负数运算规则

---

1. 🎯 考纲定位 本题考查 GESP C++ 一级"运算符优先级与负数运算"模块。命题人专门设计这题,就是为了筛掉那些只背"负数取模得正数"口诀,却不懂 C++左结合规则的考生。

2. 🧠 解题思维 先算目标:-2 * 2 % 4 按左结合,即 (-2 * 2) % 4 = -4 % 4 = 0。A项-(2*2)%4 得-4%4=0;B项(-2*2)%4 得-4%4=0;D项(2*2)%-4 得4%-4=0。只有C项-2*(2%4) 先算括号内2%4=2,再-2*2=-4,结果不等于0。

3. 🪤 陷阱拆解 命题人最阴险的陷阱在C项:它用括号强行改变了运算顺序,让考生误以为"负数取模"永远是正数。实际上,C++里-2*(2%4) 和 -2*2%4 本质不同,前者先算模再乘,后者先乘再模。如果你只背结论不推步骤,就会掉进这个"括号偷换优先级"的坑。

4. 🔄 反命题思维 从命题人角度看,若把C项改成-2 % (2 * 4),答案会立刻变回0;若把D项改成(2 * 2) % 4,也还是0。这说明命题人真正想考的是"括号是否改变了左结合顺序",而不是"负数取模的正负号"。刷到类似题,先问自己:这括号是改变优先级,还是改变运算对象?

同考点真题

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