下面 C++ 代码能够执行,则将输出 $45$。( )
for (int i = 0; i < 10; i++)
Sum += i;
cout << Sum;答案B。逐行追踪代码:从main开始,记录每个变量的值变化。注意循环的起止条件和累加过程。
逐行模拟时建议画表格记录变量值的变化过程,特别是循环体中的变化。
【考点】C++变量声明|循环语句|语法错误检测
这道题考的是C++最基础的语法规则——变量必须先定义后使用。循环里反复执行 Sum += i,但 Sum 从头到尾从未被 int Sum = 0; 这样的语句定义过。C++编译器遇到未声明标识符会直接报错,代码根本无法通过编译,更谈不上执行输出。
命题人设的陷阱很典型:循环本身完全正确(0到9累加确实是45),算术结果也吻合,但如果考生只盯着数学逻辑、忽略语法层面,就会选A。这类题在GESP一级里专门用来筛掉"会算不会写"的选手。
反命题角度想:如果把题改成"下面代码输出55",那就要把循环改成0到10了;如果改成"下面代码存在编译错误",那就选A了。改任何一个条件,答案都会翻转。刷题时遇到这种看似正确的代码,先别急着算结果,扫一眼变量定义区有没有坑,这才是C++题的王道。