GESP 一级 · GESP 202509 C++ 一级 第 8 题

选择题 · 答案 C · 考点:循环结构

← 整套速查表 GESP 一级 全部真题

题目

下面 C++ 代码执行后的输出是( )。

int n = 0;
for (int i = 0; i < 100; i++)
    n += i % 2;
cout << n;
答案:C

考点

循环结构

解题思维

答案C。逐行追踪代码:从main开始,记录每个变量的值变化。注意循环的起止条件和累加过程。

常见错误

逐行模拟时建议画表格记录变量值的变化过程,特别是循环体中的变化。

详细解析(节选)

()

【考点】循环结构|取模运算|条件计数 命题意图是区分「求和」与「计数」两种思维,这是新手最容易混淆的边界。这个题在 GESP 一级「循环结构」与「取模运算」模块交叉点。

🎯 考纲定位 明确考查「循环结构」与「取模运算」两个核心。命题人专卡新手把「i%2」当成除法或误认为永远为0,因此把「求和」与「计数」的混淆作为核心障碍。

🧠 解题思维 n 初始为0,循环 i 从 0 到 99。i%2 在 i 为奇数时得1,偶数时得0,所以 n 累加的就是奇数个数。0~99 共100个整数,奇偶各半,故 n=50。通法:遇到「n+=条件」型循环,先识别条件何时为真,再数真值次数,而非盲目求和。

🪤 陷阱拆解 A 项 5050 是 0~99 的总和,命题人把「求和」与「计数」混为一谈;B 项 4950 是偶数和,D 项 49 是偶数个数,都是把「%2」误当成「i」或忽略取模结果。最阴险的是 C 项 50 看似合理,但若误以为「i%2」仅在 i=1 时成立,就会选错。不理解「条件计数」本质,必掉坑。

🔄 反命题思维 若把循环改成 i<=100,则多一个 i=100(偶数),奇数个数仍为50,n 不变;若改成 n+=i%3,则统计3的倍数个数。刷到类似题先问:「% 后面跟几?条件何时为真?」——这才是破题关键。

同考点真题

在 OI伴学 里做这道题
登录后可计时作答、查看完整六段式解析,并按你的错题自动生成同类练习。
去刷题先做一次 AI 学情诊断