下面 C++ 代码执行后,输出是( )。
int cnt1 = 0, cnt2 = 0;
for (int i = 0; i < 10; i++){
if (i % 2 == 0)
continue;
if (i % 2)
cnt1 += 1;
else if (i % 3 == 0)
cnt2 += 1;
}
cout << cnt1 << " " << cnt2;答案B。追踪程序输出时注意整数除法截断和循环条件的边界值。变量初始值对结果影响很大。
整数除法截断容易忽略!if(n%i==0)中%是取余运算不是除法。
【考点】循环控制|条件分支|运算符优先级
GESP二级C++核心考点,循环控制与分支逻辑结合。命题人卡住的是考生对continue与else if作用域的理解——多数人会忽略"偶数被continue后,else if根本不会执行"这一细节,误以为它在统计奇数倍数。