下面 C++ 代码执行后将输出 10。( )
int N = 0;
for (int i = 0; i < 10; i++){
continue;
N += 1;
}
cout << N;答案B。逐行追踪代码:从main开始,记录每个变量的值变化。注意循环的起止条件和累加过程。
逐行模拟时建议画表格记录变量值的变化过程,特别是循环体中的变化。
【考点】循环控制流|continue 语句|语句执行顺序
关键观察是 continue 后紧跟的 N+=1 根本不会执行。因为 continue 是立即跳转指令,会跳过当前循环体剩余所有语句,直接进入下一轮循环条件判断。这轮循环里 N 的累加操作被 continue 直接"跳过"了,无论循环跑多少次,N 都保持初始值 0。
命题人利用的是初学者对 continue 语义的误解——以为它只是"跳过当前轮次",却忽略它后面紧接着的 N+=1 会直接失效。很多人看到 for 循环跑 10 次就机械地认为 N 会累加 10,完全没注意到 continue 把累加语句"踢出"了执行流。如果只背"continue 是跳过",不模拟真实执行顺序,就会误选 A。
如果把 continue; 和 N+=1; 互换位置,代码将正常累加 10 次,输出 10,答案变 A。这说明命题人刻意用语句顺序制造了"语法陷阱",不是考循环次数,而是考你对语句执行流的真实理解。刷到类似题先问自己:这条语句执行时,后面那行到底会不会被碰到?