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

判断题 · 答案 A

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

题目

在 C++ 代码中,假设 $N$ 为正整数,则 N - N / 10 * 10 与 N % 10 都将获得 $N$ 的个位数。( )

答案:A

解题思维

答案A。根据C++基础知识分析判断。

常见错误

注意题目中的限定词。不确定时用代入法或排除法。

详细解析(节选)

【考点】整数除法|取模运算|表达式求值

GESP二级C++模块考察基础语法与数值运算。命题人把 N % 10 替换成 N - N / 10 * 10,就是卡住那些只会背"取余"结论、却不懂整数除法本质的人。

看到 N / 10 先想"整除截断",N / 10 * 10 就是把"去掉个位后的数"乘回10,结果仍是去掉个位后的数。再用 N 减去它,自然剩下个位。N % 10 是求余,也是直接拿个位。数学上 N = 10·(N / 10) + N % 10,移项得 N % 10 = N - 10·(N / 10) 即 N - N / 10 * 10。

陷阱是"偷换表达":把简单的取余写成复杂的代数变形,利用"只会背结论"的弱点。如果你只记"N % 10 是个位",而不理解 N / 10 是整除、乘10是还原,就会误以为两个表达式是"巧合"或"不同写法"。

命题人若把条件改成"N = 10·k + r (0 ≤ r < 10)",问你 N - N / 10 * 10 等于什么,答案就是 r。刷到这种题先问自己:命题人想考我的是"取余"还是"代数变形"?

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