执行以下 C++ 语言程序后,输出结果是( )。
---
int n = 5, s = 1;
for (; n = 0; n--)
s *= n;
cout << s << endl;
- A. 1
- B. 0
- C. 120
- D. 无法确定
正确答案:A
int n = 5, s = 1;
for (; n = 0; n--)
s *= n;
cout << s << endl;
正确答案:A
n = 0(单个等号是赋值!),把 n 赋成 0、整个表达式为 0(假),循环体一次不执行,s 保持初值 1,选 A。 💡 经典坑:循环条件里 n=0 是赋值(结果 0=假),n==0 才是判断。一字之差循环直接不跑。想系统刷完 GESP C++ 1~8 级真题,并查看每道题的逐题精讲?
进入 GESPPASS 开始练习