下面 C++ 代码执行后将输出 369 。
for (int i = 1; i < 10; i++)
if (not(i % 3))
cout << i;看到题先想循环范围与条件等价形式。i 从 1 到 9,not(i % 3) 等价于 i % 3 == 0,即 i 为 3 的倍数。遍历中满足条件的 i 依次为 3、6、9,输出拼接成 369。
选项 B 错误。命题人设陷阱:一是循环上限 i < 10 易被误判为 i ≤ 10,导致多算一次;二是 not(i % 3) 的语义,考生若混淆逻辑非与取模非零,会误判条件成立范围;三是 cout 连续输出无空格,易忽略拼接效果。
本题考查循环控制与取模运算,位于 GESP 二级 C++ 大纲第 4 章。命题人放此题,卡住的是考生对 not 运算符与取模结果 0 的对应关系——多数人会误以为 not(i % 3) 等价于 i % 3 != 0,导致条件判断范围出错。
看到题先想循环范围与条件等价形式。i 从 1 到 9,not(i % 3) 等价于 i % 3 == 0,即 i 为 3 的倍数。遍历中满足条件的 i 依次为 3、6、9,输出拼接成 369。