在 C++ 代码中,因为 continue 将被执行,因此不会有任何输出。( )
int i;
for (i = 1; i < 10; i++)
if (i % 2 == 0)
continue;
if(i == 10)
cout << "END";答案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 的区别,再追踪变量终值,别被"没有输出"的结论误导。