GESP C++ 真题 · 逐题精解
首页C++二级真题 › 2026年3月 › 第7题

GESP 2026年3月 C++二级 判断题 第7题

C++二级判断题2026年3月第7题

所属知识点:循环嵌套 难度要求:掌握 考频:—

下面的 C++ 代码段用于计算1到N之间且包含N的所有数字中含有的3的个数,如1到40含有14个3, 而1到20则只含有2个3。如果将 while (i != 0) 改为 while (abs(i)) ,则执行结果相同。( )
cout << "请输入正整数N:";
cin >> N;
cnt = 0; // 保存3的个数
for (k = 1; k < N + 1; k++){
i = k;
while (i != 0){
if (i % 10 == 3)
cnt += 1;
i /= 10;
}
}
cout << cnt;

正确答案:正确(√)

题目解析
对。k 从 1 到 N 都是正数,过程中 i=k 及 i/=10 始终非负,故 while(i!=0) 与 while(abs(i)) 等价。

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

进入 GESPPASS 开始练习