下面 C++ 代码执行后将输出 $55$。( )
n = 0;
for (int i = 0; i > -10; i--)
n = n + i * -1;
cout << n;答案B。逐行追踪代码:从main开始,记录每个变量的值变化。注意循环的起止条件和累加过程。
逐行模拟时建议画表格记录变量值的变化过程,特别是循环体中的变化。
【考点】循环控制|条件判断|累加运算
1. 初始化n=0;2. 循环条件i>-10,i从0递减到-10;3. 每次n+=i*-1,即n+=-i;4. 累加得n=-0-1-2-...-10=-55;5. 输出n。通法:循环题必须按"初值-条件-体-更新"顺序严格模拟,尤其注意负数符号与边界包含性。
陷阱在于:1. 误以为i>-10不包含-10(实际包含);2. 误算i*-1为i(忽略负号);3. 误认为n从1开始或累加正数。命题人用负数边界和符号翻转制造双重认知冲突,只背"循环输出n"而不模拟细节必错。
若把条件改为i>=-10,n仍为-55;若把n+=i*-1改成n+=i,n=0+(-1)+(-2)+...+(-10)=-55。命题人想考你:循环边界与符号运算的精确模拟,而非"循环输出n"的模糊记忆。