GESP 二级 · GESP 202409 C++ 二级 第 10 题

选择题 · 答案 B · 考点:循环控制

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

题目

下面 C++ 代码执行后的输出是( )。

int loopCount = 0;
for (int i = 1; i < 5; i += 2)
    loopCount += 1;
cout << (loopCount);
答案:B

考点

循环控制

解题思维

答案B。追踪程序输出时注意整数除法截断和循环条件的边界值。变量初始值对结果影响很大。

常见错误

整数除法截断容易忽略!if(n%i==0)中%是取余运算不是除法。

详细解析(节选)

【考点】for 循环控制|等差步长计数|循环终止条件

考纲定位:本题出自 GESP 二级"程序流程控制"模块,核心考察 for 循环的初始化、条件判断与更新表达式。命题人专门设置 i+=2 的步长,卡住绝大多数考生"循环次数只跟终值有关"的直觉误区。

解题思维:看到 for 循环先拆解三部分——初始化 i=1、条件 i<5、更新 i+=2。关键观察是步长为 2,i 从 1 开始,到 5 停止,中间经过 1 和 3 两个值,故循环执行 2 次。通法:等差步长循环次数 = ceil((limit - start)/step),当 start < limit 时成立。

陷阱拆解:选项 A(1)误以为只执行一次,可能把 i<5 当成 i<=5 或忽略步长;选项 C(3)误以为步长是 1,或把 i 从 0 开始算;选项 D(5)误以为循环次数等于 i 的终值,或把 loopCount 当成 i 本身。如果你只背"循环次数 = 终值 - 初值"这种结论,就会掉进这些坑。

反命题思维:命题人若把 i 改成 0,步长改成 1,条件改成 i<=5,答案就会变成 6;若把 i+=2 改成 i+=1,答案变成 4。刷到类似题先问自己"循环变量怎么变?条件怎么变?步长影响几次?"

同考点真题

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