GESP 八级 · GESP 八级样题(C++ 组) 第 12 题

选择题 · 答案 A · 考点:循环控制、数学

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

题目

下列程序的输出是 ( ) 。 ![](https://cdn.luogu.com.cn/upload/image_hosting/m8psov16.png)

答案:A

考点

循环控制数学

解题思维

这题考的是循环控制与递推计算。拿到题先别急着套公式,把循环变量 i 从 0 到 9 逐行模拟一遍,看 a[i] 是怎么由 a[i-1] 变出来的,特别留意 i 为偶数还是奇数时加的是 1 还是减 1,以及循环结束时 i 是否还会再执行一次赋值。

常见错误

最容易掉进两个坑:一是把循环当成简单的累加求和,忽略了每次更新只依赖前一项的递推关系;二是没看清循环条件 i<10 下标只到 9,但命题人喜欢在循环末尾多塞一步 i=10 的赋值,把 a[10] 算成 -55,学生若只数循环次数就会选错 D。还有少数人会误以为每次都是加 1,导致算出 55。

详细解析(节选)

【考点】数组遍历|循环控制|数学归纳

考纲定位:本题在 GESP 八级 C++ 大纲中属于“数组操作与循环控制”模块,命题人刻意把“循环边界”与“元素更新”耦合,卡住 80% 考生对下标越界的直觉盲区。

解题思维:先模拟前几个元素,发现递推规律 a[i] = a[i-1] + (i%2==0?1:-1),再结合循环终止条件 i<10,用数学归纳法直接推出 a[9] = -12,无需逐个计算。关键是识别出每次更新只依赖前一项,形成等差数列与交错符号的组合。

陷阱拆解:选项 B 把循环当成“求和”而忽略更新;C 误以为每次加 1;D 反向符号全部取反;最阴险的是 D——命题人在循环末尾偷偷多执行一次 i=10 的赋值,把 a[10] 拉成 -55,若只看循环次数会掉进这个坑。学生常误以为循环条件 i<10 只影响前 9 次,却忘了最后一次更新。

反命题思维:如果把 a[i] = a[i-1] + (i%2==0?1:-1) 改成 a[i] = a[i-1] * (-1),答案会变;刷到类似题先问“循环条件是否包含边界外执行”,这就是命题人埋的钩子。

【考频与趋势】基础语法在题库中占比最高,共 1295 题,逐年爆发式增长:2023 年 287 题、2024 年 413 题、2025 年 401 题,说明这类“看懂题目但容易算错”的题是近年高频考点。循环控制虽只考了 5 题,且集中在 CSP 提高级和 GESP 二级,但在八级这种高阶考试中,命题人往往用简单的循环包装复杂的递推逻辑来区分学生。数学相关题目共 36 题,2026 年突然考了 13 题,显示命题趋势正从纯语法向“语法 + 数学归纳”融合方向发展。

【预测】基于上述数据,未来 GESP 八级极大概率会继续沿用“循环控制 + 递推/数学归纳”的组合模式,但会更隐蔽地设置边界陷阱(如本题的 i=10 赋值)。建议学生在练习时养成“先模拟前几项找规律,再验证边界条件”的习惯,不要盲目信任循环次数。暂无足够依据预测具体题型变化。

同考点真题

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