下面 C++ 代码段执行后将输出 0-3-6-9-。( )
for (int i = 0; i < 10; i++) {
if (i % 3)
continue;
cout << i << "-";
}答案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里"。