GESP 二级 · GESP 202306 C++ 二级 第 14 题

选择题 · 答案 B · 考点:循环控制

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

题目

在下列代码的横线处填写( ),可以使得输出是 42。

#include <iostream>
using namespace std;
int main() {
    int sum = 0;
    for (int i = 1; i <= 20; i++)
        if (________) // 在此处填入代码
            sum += i;
    cout << sum << endl;
    return 0;
}
答案:B

考点

循环控制

解题思维

拿到题先别急着代选项,心里默算一下1到20里哪几个数加起来能凑出42。发现只有1、2、4、5、10、20这几个数(全是20的约数),和正好是42。这题本质就是考你识别‘枚举除数’这个逻辑,把循环条件写成能筛选出这些数的表达式。

常见错误

最容易掉进‘惯性思维’的坑:看到整除运算下意识写 i%20==0,结果只选中20,和远不够;或者被C选项‘1到8’这种连续区间迷惑,算出36离42很近,以为凑凑就能行;还有D选项‘i>=18’,直接加最后三个数57,命题人故意用绝对化条件诱使你忽略总和大小。代入验证时千万别只看‘有没有满足条件的数’,一定要算出‘所有满足条件的数和’,这才是得分关键。

详细解析(节选)

这道题考查什么

这是一道典型的循环控制与条件判断结合题,核心考点是整除运算(取模)以及如何在循环中通过条件筛选特定数值。在GESP二级这类考试中,这种‘补全循环条件’的题型非常高频,命题人往往不直接让你算和,而是给你一个目标和,让你反推条件。

知识点人话版

命题人怎么挖坑

这道题的陷阱不在语法,而在思维定势。 命题人喜欢用‘看似合理但数量不对’的选项干扰你。比如 C 选项 i <= 8,看起来很简单,1 到 8 的和是 36,离 42 很近,容易让人产生‘差一点就对了’的错觉;D 选项 i >= 18,直接加最后三个数 18+19+20=57,比 42 大,但命题人故意让你忽略总和,只关注‘有没有满足条件的数’。 最阴险的是 B 选项 20 % i == 0。很多学生看到整除,第一反应是写 i % 20 == 0(即 i 是 20 的倍数),结果只选中 20,和远远不够。命题人就是用这个反直觉写法,考察你是否真正理解‘谁除以谁余 0’的含义。

拿到题先想什么?从哪入手?

第一步:算目标和。题目要求输出 42。1 到 20 所有数的和是 210,42 远小于 210,说明只累加了少数几个数。 第二步:反推哪些数加起来是 42。脑子里快速枚举:1+2+4+5+10+20 = 42。正好!这六个数有什么共同点?

结论:我们要找的是 1 到 20 中,能整除 20 的所有数。 第三步:对应到循环条件。循环变量是 i,从 1 到 20。要选出能整除 20 的 i,条件必须是 20 % i == 0。

具体怎么算?逐项验证(带着脑子算)

现在把四个选项代入,不是只看‘有没有满足条件的数’,而是算出所有满足条件的数的和。

1 到 20 中 3 的倍数有:3, 6, 9, 12, 15, 18。 和 = 3+6+9+12+15+18 = 63。 63 > 42,排除。

1 到 20 中能整除 20 的数有:1, 2, 4, 5, 10, 20。 和 = 1+2+4+5+10+20 = 42。 完美匹配!

1 到 8 的和 = (1+8)*8/2 = 36。 36 < 42,排除。

18, 19, 20 的和 = 57。 57 > 42,排除。

避坑指南

1. 别被 C 选项骗了:1 到 8 的和 36 离 42 很近,考试时容易紧张算错或者直觉觉得‘差不多就行’。一定要精确计算。 2. 别惯性写 i % 20 == 0:这是最常见的错误。i % 20 == 0 意味着 i 是 20 的倍数,在 1 到 20 范围内只有 i=20 满足,和只有 20,远远不够。 3. 别只看‘有没有’:代入验证时,很多学生只检查‘有没有数满足条件’,忽略了‘所有满足条件的数加起来是多少’。这道题的得分点就在‘累加和’上。 4. 注意运算顺序:20 % i == 0 是合法表达式,先算取模,再比较是否等于 0。不要写成 20 % (i == 0) 这种错误形式。

考频与趋势

从真题库数据看,这类循环控制题目在 GESP 二级中非常稳定:题库共考过 5 题,覆盖 3 个考试级别(2019-2024),其中GESP 二级考了 2 题,CSP 提高级考了 2 题,GESP 一级考了 1 题。逐年分布显示,2019 年考了 2 题,2023 年又考了 2 题,2024 年考了 1 题。这说明‘循环条件筛选’是命题人反复打磨的考点,尤其在二级考试中,几乎每年都会以不同形式出现(比如本题就是‘筛选约数’,其他题可能是‘筛选偶数’‘筛选质数’等)。

预测未来怎么考

基于现有数据,暂无足够依据预测具体的变体形式,但可以合理推断:命题人可能会继续用‘整除’‘约数’‘倍数’这类运算作为筛选条件,只是目标数字和范围会变化(比如改成 30 的约数,或者 1 到 50 中筛选满足某条件的数)。这类题目核心不变——先算目标和,再反推条件,最后验证。只要掌握这个思维链条,无论数字怎么变,都能快速锁定答案。

同考点真题

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