在某集成开发环境中调试下面代码段时尝试设置断点和检查局部变量,下面哪个说法是错误的( )。
int i,N = 0; // L1
cin >> N; // L2
for (i = 1; i < 9; i++)
if (N % i == 0) break; // L3
if (i < 9)
printf("N不能大于9\n"); // L4答案A。for循环先判断条件再执行循环体——可能一次都不执行。for(;;)是无限循环,三部分均可省略。
for循环体可能一次都不执行!这是和while循环一样的"先判断后执行"机制。
【考点】作用域与变量可见性|断点设置规则|调试器变量操作
GESP 一级"基本程序概念"模块——命题人卡住的是初学者对作用域的模糊认知:以为声明行只是"定义"而不产生可执行语句,从而误判断点能否落下。这类题在一级考卷中占比约 25%,专治"只背语法不画图"的考生。