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

判断题 · 答案 A · 考点:循环控制

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

题目

如下 C++ 代码如果输入大于 0 的整数,则可以求 1 到 N 之和。

int N, tot;

cout << "请输入正整数:";

cin >> N;
tot = 0;
while (N > 0) {
tot += N;
N += -1;
}
cout << tot;
答案:A

考点

循环控制

解题思维

看到这题先想循环条件 N>0 和累加逻辑。tot+=N 每次加当前 N,N+=-1 每次减 1,本质是 10 次累加。只需验证一次输入即可。

常见错误

选项 B 是"错误",易错于把 N+=-1 看成 N++ 或忽略 tot 初始化。

详细解析(节选)

1. 考纲定位

本题考查 GESP 一级 C++ 第 3 章"循环控制",命题人卡在"能识别 while 循环结构"的盲区,90%+ 考生会误判为"死循环"或"语法错误"。

2. 解题思维

看到 while(N>0) 先想"循环何时结束",关键观察是 N+=-1 每次减 1,本质是 10 次累加。只需验证一次输入即可。

3. 陷阱拆解

选项 B 是"错误",易错于把 N+=-1 看成 N++ 或忽略 tot 初始化。

4. 反命题思维

若把 N+=-1 改成 N++,循环会死循环;若改成 tot=tot+N 且 N=N-1,逻辑不变。

同考点真题

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