计算交叉加减的结果,形如 $1 - 2 + 3 - 4 + 5 - \cdots$。下面 C++ 代码中的变量都是整型,则将 Flag = -Flag 改为 Flag -= Flag 效果相同。( )
cin >> N;
Flag = -1;
tnt = 0;
for (i = 1; i < N + 1; i++) {
Flag = -Flag;
tnt += Flag * i;
}
cout << tnt;答案B。for循环每次迭代后执行更新表达式(如i++)。循环体执行次数由初始值、条件和更新共同决定。
循环变量的初值、终值和步长共同决定循环次数。for(i=0;i<n;i++)执行n次。
【考点】整型变量|运算符优先级|复合赋值运算
本题考查 GESP 二级"程序基础"模块的复合赋值运算。命题人卡住的是大量考生对赋值运算符和复合赋值运算符的运算顺序理解不清——他们默认 Flag -= Flag 等同于 Flag = -Flag,却忽略了复合赋值的本质是"先计算右侧表达式,再执行赋值"。