GESP 二级 · GESP 202506 C++ 二级 第 22 题

判断题 · 答案 B

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

题目

在 C++ 代码中,因为 continue 将被执行,因此不会有任何输出。( )

int i;
for (i = 1; i < 10; i++)
    if (i % 2 == 0)
        continue;
if(i == 10)
    cout << "END";
答案:B

解题思维

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

常见错误

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

详细解析(节选)

【考点】continue 控制循环|循环变量终值判断

🎯 考纲定位 本题考查 GESP 二级 C++ 语法核心——循环流程控制。命题人专挑这类题卡住半壁江山考生对 continue 的误解,以为它能让循环提前跳出,实则是只跳过本次迭代。

🧠 解题思维 看到 continue 要立刻定位——它只管本次循环体,直接跳到循环末尾的 i++ 和条件判断。i 从 1 起增,偶数行触发 continue 跳过打印,但 i 仍会依次取到 1,3,5,7,9;当 i=10 时循环条件 i<10 不成立,循环正常结束。循环结束后 i 的值恰好是 10,因此 if(i==10) 条件为真,cout << "END" 必然执行。

🪤 陷阱拆解 命题人利用考生对 continue 的误解——以为 continue 会让循环提前跳出或结束。实际上 continue 仅作用于本次迭代,循环变量 i 仍会按步长递增,直到满足退出条件。此题最阴险之处在于把 continue 放在循环内、输出放在循环外,诱导你误以为"continue 就什么也不输出";若继续往下读会看到 if(i==10) 这行,但你要是只背结论、不理解本质,就会掉进这个陷阱。

🔄 反命题思维 若将循环条件改为 i<=10,则 i 会递增到 11 才退出,此时 i==10 不再成立,输出消失。若把 continue 移到 if(i==10) 内部,则循环体永远不执行,i 停在 1,输出依旧。刷到此类循环控制题,先定位 continue 与 break 的区别,再追踪变量终值,别被"没有输出"的结论误导。

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