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

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

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

题目

将下面 C++ 代码中的 L1 行的 $i = 0$ 修改为 $i = 1$,其输出与当前代码输出相同。( )

cnt = 0;
for (int i = 0; i < 100; i++) // L1
    cnt += i;
cout << cnt;
答案:A

考点

循环控制

解题思维

答案A。逐行追踪代码:从main开始,记录每个变量的值变化。注意循环的起止条件和累加过程。

常见错误

逐行模拟时建议画表格记录变量值的变化过程,特别是循环体中的变化。

详细解析(节选)

【考点】循环控制|等差数列求和

🎯 考纲定位:GESP一级《循环结构》模块。命题人专挖"从0开始累加"的数学直觉盲区——多数考生误以为改初值会跳过0,却没意识到0对和毫无贡献。

🧠 解题思维:原代码累加 0~99,和为 (0+99)*100/2=4950。改 i=1 后累加 1~99,和为 (1+99)*99/2=4950。因为加0不改变总和,故输出相同。通法:凡累加区间 [a,b] 且 a=0,a 改为 1 不影响结果。

🪤 陷阱拆解:错误选项常诱导"少算一个数",但这里少算的是0。命题人利用"0是第一个数"的语义陷阱,让你以为会漏掉贡献。若把循环条件改成 i<=99 或 i<101,i=1 就会少算99,结果就不同了。

🔄 反命题思维:若把 i=0 改成 i=2,输出会少0+1=1;若把循环上限改成 i<99,输出会少98。改题时先问"少了哪些项",就能一眼看穿命题意图。

同考点真题

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