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

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

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

题目

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

int k = 0;
while (k < 8) {
k += 2;
continue;
if (k > 5)
break;
cout << k << "#";
}
if (k >= 8)
cout << "FINISH";
答案:A

考点

循环控制

解题思维

看到题先识别循环体内有 continue,这意味着每次循环末尾会无条件跳到 while 条件判断,直接跳过后续所有语句。因此循环里那个 cout 和 if 里的 break 都不可能被执行。再数 k 的取值:0→2→4→6→8,当 k 变成 8 时 while 条件不成立,循环结束,进入最后的 if 输出 FINISH。

常见错误

选项 B 和 D 是典型陷阱——考生看到 cout 就以为自己会输出,忽略 continue 的跳转;选项 C 是误以为 if(k>5)break 能生效,其实它被 continue 跳过了。另外,循环结束后的 if(k>=8) 这行容易被漏看,导致以为只有循环输出。

详细解析(节选)

看到题先识别循环体内有 continue,这意味着每次循环末尾会无条件跳到 while 条件判断,直接跳过后续所有语句。因此循环里那个 cout 和 if 里的 break 都不可能被执行。再数 k 的取值:0→2→4→6→8,当 k 变成 8 时 while 条件不成立,循环结束,进入最后的 if 输出 FINISH。

选项 B 和 D 是典型陷阱——考生看到 cout 就以为自己会输出,忽略 continue 的跳转;选项 C 是误以为 if(k>5)break 能生效,其实它被 continue 跳过了。另外,循环结束后的 if(k>=8) 这行容易被漏看,导致以为只有循环输出。

1. 考纲定位

本题考查 GESP 一级「程序控制结构」模块中的 while 循环与流程控制语句(continue/break)。命题人专门放这道题,就是为了卡住绝大多数考生对 continue 跳转行为的理解——很多人看到循环里写了 cout 就默认会执行,却忘了 continue 会直接跳到下一次条件判断,把后面所有语句都跳过。

同考点真题

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