下面的 C++ 代码执行后其输出是( )。
int cnt = 0, i, j;
for (i = 0; i < 3; i++) {
j = i;
while (j) {
cnt += 1;
j -= 1;
}
}
cout << i << ' ' << j << ' ' << cnt;
- A. 3 0 3
- B. 2 0 4
- C. 2 0 5
- D. 3 0 5
正确答案:A
int cnt = 0, i, j;
for (i = 0; i < 3; i++) {
j = i;
while (j) {
cnt += 1;
j -= 1;
}
}
cout << i << ' ' << j << ' ' << cnt;
正确答案:A
while(j) 把 j 减到 0,每轮累加 j 次:i=0 加 0、i=1 加 1、i=2 加 2,cnt=3。循环结束后 i=3(越界值)、j=0。输出 3 0 3,选 A。💡 while(j) 等价于 while(j != 0);for 循环正常结束后计数变量是第一个不满足条件的值。想系统刷完 GESP C++ 1~8 级真题,并查看每道题的逐题精讲?
进入 GESPPASS 开始练习