GESP 二级 · GESP 202312 C++ 二级 第 9 题

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

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

题目

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

x = 1;
while (x < 100) {
    if (x % 3 != 0)
        cout << x << ",";
    else if (x / 10)
        break;
    else
        x += 5;
    x += 2;
}
cout << x;
答案:D

考点

循环控制

解题思维

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

常见错误

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

详细解析(节选)

【考点】循环控制|条件判断|变量更新

🎯 考纲定位 本题考查 GESP 二级"循环与条件判断"综合应用。命题人专门设计这道题卡住那些只背"If-Else 结构"的考生——他们往往忽略循环体内变量更新的时序关系,误以为条件分支会改变后续所有迭代。

🧠 解题思维 模拟执行:x=1 进循环,1%3≠0 打印"1,",x+=2 得 3;x=3 时 3%3=0,3/10=0,走 else 分支 x+=5 得 8,再 x+=2 得 10;x=10 打印"10,",x 变 12;x=12 时 12%3=0 但 12/10=1 触发 break 退出。输出"1,10,12"。

通法:含无条件增量的循环,必须按执行顺序逐次跟踪变量——先判断哪个分支成立,再应用该分支操作,最后执行所有迭代都会触发的语句(本题是末尾的 x+=2)。

🪤 陷阱拆解 A 项只算到第一次打印,漏掉后续迭代;B 项误以为 x 直接变成 3 就打印,忽略 x+=2 在 else 分支之后;C 项完全没注意到 x=12 时的 break 条件,以为会继续打印到 15、17。最阴险的是"else if(x/10)"——当 x=12 时 x/10=1 为真,直接跳出,但考生容易误判为

同考点真题

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