GESP 二级 · GESP 202603 C++ 二级 第 19 题

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

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

题目

下面 C++ 代码段执行后将输出 0-3-6-9-。( )

for (int i = 0; i < 10; i++) {
    if (i % 3)
        continue;
    cout << i << "-";
}
答案:A

考点

循环控制

解题思维

答案A。考点: 循环结构——for/while的执行与嵌套。

常见错误

关键提醒:C++中的^是异或运算符,不是乘方!2^5=7而非32。这是最高频的错误。

详细解析(节选)

【考点】循环控制(continue)|取模运算|条件分支

考纲定位:GESP C++二级"循环控制"核心考点,命题人专盯初学者对continue语义的混淆——误以为continue会跳出循环,实则仅跳过本次迭代。

解题思维:i=0时0%3=0,if条件不成立,执行cout输出"0-";i=1,2时1%3=1,2%3=2非零,触发continue跳过;i=3,6,9同理输出"3-""6-""9-",最终拼接为"0-3-6-9-"。

陷阱拆解:选项B的典型误判源于误读if(i%3)为"只输出非3倍数",但continue放在else分支才跳过输出,此处continue在if分支,故非3倍数被跳过;命题人还刻意在末尾保留尾随"-",考察对输出格式字面匹配的敏感度。

反命题思维:若将条件改为if(i%3==0)continue,则输出变为"1-2-4-5-7-8-9-";若循环起始值改为i=1,则输出"3-6-9-"。刷到此类题先问自己"continue到底在if里还是else里"。

同考点真题

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