GESP C++ 真题 · 逐题精解
首页C++一级真题 › 2024年9月 › 第13题

GESP 2024年9月 C++一级 单选题 第13题

C++一级单选题2024年9月第13题

所属知识点:while / do-while 循环 难度要求:掌握 考频:高频

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

题目解析
bug:循环里 N 被除到 0,printf 输出的是 N(已变 0)而非原数。把 L11 的 N 改成保存原值的 N0,对正整数就对,选 C。 💡 求位数会破坏原数,先用变量备份原值再处理。

想系统刷完 GESP C++ 1~8 级真题,并查看每道题的逐题精讲?

进入 GESPPASS 开始练习