GESP真题题库 - 随机跳题

📌 随机跳题:选择筛选条件(均可为空)

随机题目(选择题,难度:中) 等级:1级 | 年月:202409 | 知识点:C++1级,代码阅读

13. 下面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         
A. 变量N0占用额外空间,可以去掉
B. 代码对所有整数都能计算出正确位数
C. L11标记的代码行简单修改后可以对正整数给出正确输出
D. L11标记的代码行的输出格式有误

答案:C

解析:

A:错,循环结束后N变为0,必须用N0保存原值。
B:错,输入0时会输出0是0位整数,结果错误。
C:对,将L11中的N改为N0,即可正确输出正整数的位数。
D:错,输出格式本身正确,错误在于使用了已被修改的N。