GESP 一级 · GESP202609 C++ 一级 第 12 题

选择题 · 答案 B · 考点:输入输出、循环控制

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

题目

下列 C++ 代码执行时如输入 35 ,输出如下图所示。横线处应填入的代码是(  )。

35 34 33 32 31 30 29 28 27 26
25 24 23 22 21 20 19 18 17 16
15 14 13 12 11 10  9  8  7  6
5  4  3  2  1
int N, tot, i;
cin >> N;
tot = 0;
for (i = 0; i < N; i++) {
printf(__________);
tot = tot + 1;
if (tot % 10 == 0)
printf("\n");
}
答案:B

考点

输入输出循环控制

解题思维

读入 N 后用循环依次输出 N、N-1、…、1,每行最多 10 个数字。需要同时处理数值计算和格式化对齐。

常见错误

C 选项漏掉格式化导致数字挤成一列,D 选项输出的是循环变量而非题目要求的大写数字。最致命的是没注意换行逻辑——每 10 个数字才换行,否则输出会全部挤在一行,与题目图示完全不符。

详细解析(节选)

1. 考纲定位

本题考查《GESP 一级大纲》中输入输出设备、循环控制与格式化输出三个核心能力。命题人把这三者串在一起,卡住的是那些只懂死背"循环结构"却不会把数学运算与格式化对齐结合起来的考生——他们知道怎么写 for 循环,但不知道循环里到底要算什么、怎么算、怎么输出。

2. 解题思维

看到题先想:题目要求输出什么数字? 从图示看是 35 往下数到 1,每个数字占三列。再看循环变量 i 从 0 到 N-1,那么要输出 N-i。接着想:怎么格式化? printf 里用"%3d"让每个数字占三列,对齐效果就出来了。最后检查换行:tot 每加 10 就换行,这是控制行宽的关键。

同考点真题

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