GESP 一级 · GESP 202603 C++ 一级 第 11 题

选择题 · 答案 B

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

题目

一个正整数的每位都是个位数,称为数位,最高位非 0。下面的 C++ 代码用于求正整数的所有数位之和,简称数位和。如 123 的各数位分别是 1、2、3,则其数位和为 $1+2+3$,结果为 6。为实现该目标,横线处应该填写的代码是( )。

int N;
cin >> N;
int tnt = 0;
while (N != 0){
    ________;
    ________;
}
cout << "N的数位和为:" << tnt;

A.

tnt += N / 10
N /= 10

B.

tnt += N % 10
N /= 10

C.

tnt += N / 10
N %= 10

D.

tnt = tnt + N % 10
N %= 10
答案:B

解题思维

答案B。先分析已有代码的功能,确定输出目标,再反推横线处需要的代码。可用代入法验证。

常见错误

将每个选项代入横线处验证是最可靠的方法。注意代码的完整逻辑和输出格式。

详细解析(节选)

【考点】整数除取余|累加求和|循环终止条件

1. 🎯 考纲定位

GESP 一级「数制与编码/基础编程」模块必考题型。命题人盯住的是学生分不清「除」和「取余」的语义差异——绝大多数人背过「除以 10」求商、「取余 10」求个位,但一到手写代码就张冠李戴。

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