GESP 一级 · GESP 202309 C++ 一级 第 14 题

选择题 · 答案 D

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

题目

在下列代码的横线处填写( ),可以使得输出是正整数 1234 各位数字的平方和。

int n = 1234, s = 0;
for (; n; n /= 10)
    s += ____________; // 此处填写代码
cout << s << endl;
答案:D

解题思维

先读懂循环:n/=10 每轮把 n 砍掉个位,进位前 n%10 就是当前最低位数字。题目要的是各位数字平方的累加,所以每轮必须取 n%10 然后平方,即 (n%10)*(n%10)。

常见错误

最容易栽在选项 C 上。它看起来就是“取个位”的标准答案,但命题人故意把“平方”藏进括号里,只背结论的人必栽。另外,有人会误以为 n/10 就是当前位,其实那是砍掉个位后的新数,加到 s 里毫无意义。还有人会把平方写错成 (n%10)*(n/10) 之类,逻辑完全跑偏。总之,记住:取位用取余,平方要自己乘一遍,别偷懒。

详细解析(节选)

【考点】Modulo 运算|整数除法|循环累加

GESP 一级“基本数据类型与运算”模块,命题人盯的就是“取余求个位”这个高频考点——绝大多数考生看到 n/=10 循环就慌了,要么死记硬背模板,要么被选项 C 的 n%10 诱骗,完全忽视题目要求的是“平方和”而非“和”。

1. 考纲定位 GESP 一级“基本数据类型与运算”模块,命题人盯的就是“取余求个位”这个高频考点——绝大多数考生看到 n/=10 循环就慌了,要么死记硬背模板,要么被选项 C 的 n%10 诱骗,完全忽视题目要求的是“平方和”而非“和”。

2. 解题思维 看到 n/=10 的循环结构,立刻反应过来:每轮 n 被砍掉一位,进位前 n%10 就是当前最低位数字。题目要的是各位数字平方的累加,所以每轮必须取 n%10 然后平方——即 (n%10)*(n%10)。通法模板:求某一位数字用取余,求该位数字的 k 次幂用 pow 或连乘。

3. 陷阱拆解 A 项 n/10 是砍掉个位后的新数,加到 s 里毫无意义;B 项 (n/10)*(n/10) 平方的是高位数;C 项 n%10 只取了数字本身,忘了平方;D 项才是正解。最阴险的是 C,它看起来最像“取个位”的标准答案,但命题人故意把“平方”藏进括号里,只背结论的人必栽。

4. 反命题思维 如果把题目改成“各位数字之和”,答案就变成 C;改成“各位数字立方和”,答案就得是 (n%10)*(n%10)*(n%10)。刷题时先问自己:“它到底想要我取哪一位、做啥运算、累积什么?”答对这三问,选项自然排得明明白白。

5. 考频与趋势 基础语法:题库共考过 1295 题,覆盖 11 个考试级别(2008-2026);逐年分布:2008 年 1 题、2011 年 1 题、2019 年 3 题、2023 年 287 题、2024 年 413 题、2025 年 401 题、2026 年 109 题、null 年 80 题;分赛事:GESP 一级 332 题、GESP 二级 283 题、GESP 三级 215 题、GESP 四级 186 题、GESP 七级 91 题、GESP 八级 79 题、GESP 六级 78 题、GESP 五级 23 题、CSP 提高级 3 题、CSP 入门级 3 题、NOIP 提高组 初赛 2 题。运算符与表达式:题库共考过 261 题,覆盖 9 个考试级别(2007-2026);逐年分布:2007 年 4 题、2008 年 1 题、2009 年 4 题、2010 年 5 题、2014 年 1 题、2019 年 3 题、2020 年 2 题、2021 年 1 题、2022 年 1 题、2023 年 91 题、2024 年 41 题、2025 年 61 题、2026 年 14 题、null 年 32 题;分赛事:GESP 一级 72 题、GESP 二级 70 题、GESP 三级 47 题、GESP 四级 37 题、CSP 入门级 12 题、NOIP 普及组 初赛 9 题、CSP 提高级 7 题、NOIP 提高组 初赛 6 题、GESP 五级 1 题。

6. 预测 基于给定数据与经验,暂无足够依据预测未来可能怎么考。

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