下面 C++ 代码拟用于计算整数 $N$ 的位数,比如对 123 则输出 123是3位整数,但代码中可能存在 bug。下面有关描述正确的是( )。
int N, N0, rc = 0;
cout << "请输入整数:";
cin >> N;
N0 = N;
while (N) {
rc++;
N /= 10;
}
printf("%d是%d位整数\n", N, rc); // L11答案C。逐行追踪代码:从main开始,记录每个变量的值变化。注意循环的起止条件和累加过程。
逐行模拟时建议画表格记录变量值的变化过程,特别是循环体中的变化。
本题考查循环控制与变量作用域在GESP一级大纲中的基础应用。命题人卡住的是考生对"循环中变量被修改"这一现象的敏感度——绝大多数人会盯着while(N)想"这是累加器",却忽略了循环结束后N已被归零。