GESP 一级 · GESP 202409 C++ 一级 第 13 题

选择题 · 答案 C · 考点:循环控制

← 整套速查表 GESP 一级 全部真题

题目

下面 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

考点

循环控制

解题思维

答案C。逐行追踪代码:从main开始,记录每个变量的值变化。注意循环的起止条件和累加过程。

常见错误

逐行模拟时建议画表格记录变量值的变化过程,特别是循环体中的变化。

详细解析(节选)

【考点】循环控制|变量作用域|输出格式

🎯 考纲定位

本题考查循环控制与变量作用域在GESP一级大纲中的基础应用。命题人卡住的是考生对"循环中变量被修改"这一现象的敏感度——绝大多数人会盯着while(N)想"这是累加器",却忽略了循环结束后N已被归零。

同考点真题

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断