GESP 一级 · GESP 202503 C++ 一级 第 17 题

判断题 · 答案 B · 考点:运算符优先级

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

题目

在 C++ 中表达式 N * 2 % N 中如果 $ N $ 的值为正整数,则其值为 2。( )

答案:B

考点

运算符优先级

解题思维

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

常见错误

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

详细解析(节选)

【考点】整数运算|取模运算|运算符优先级

考纲定位:GESP 一级 C++“数据类型与运算”模块,专门考查取模运算的性质。命题人盯住学生容易混淆“除”与“取余”的弱点,把看似简单的乘法取模包装成陷阱题。

解题思维:先识别运算顺序,乘法优先级高于取模,等价于 (N×2) % N。根据取模定义,x % y 等于 x 除以 y 的余数。因为 2N 是 N 的整数倍,2N ÷ N = 2 余 0,所以 (N×2) % N = 0。这一类题的通法是:若 a 是正整数,则 (k×a) % a 恒等于 0,任何倍数取模自身必为 0。

陷阱拆解:命题人把“商”偷换成“余数”。学生看到 N×2 很容易想成 2,又看到 % N 会下意识认为结果还是 2。绝对化表述“如果 N 为正整数,则其值为 2"是致命漏洞——把 N=1 代入验证:1×2 % 1 = 2 % 1 = 0,直接证伪。这种“换皮不换核”的表述,专卡死记结论者。

反命题思维:若把表达式改为 N×2 % (N+1),答案会怎样?命题人想考的是你是否理解取模运算对除数的依赖性。刷到类似题先问“命题人想考我什么”,别被表面符号带偏。

同考点真题

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