GESP 一级 · GESP 202303 C++ 一级 第 14 题

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

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

题目

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

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

考点

循环结构

解题思维

这题本质是反推循环增量。看到输出1248,先锁定规律是翻倍,再代入for循环的第三个位置验证,就能一眼排除死循环和无效表达式,直接锁定乘法赋值。

常见错误

最容易栽跟头的是把D选项i*2当成有效更新,以为乘个2就能变数,其实它只是算个值不存回去,i永远停在1,循环会无限跑下去直到溢出或超时;其次是惯性思维选A或C,觉得i++最顺、i+=2能出偶数,却忘了题目要的是倍增序列;还有人会纠结条件判断,其实横线只管更新,条件i<=8已经锁死了次数,关键就是看i怎么变。

详细解析(节选)

【考点】for循环的三要素与赋值运算符的区别|反推思维

这题考的是for循环里第三个位置(增量表达式)的写法,以及赋值运算符与纯运算表达式的本质差异。命题人故意把“乘2”这个动作拆成两个选项:一个是能真正改变i的i*=2,一个是只算不存的i*2,想看看学生是不是只记住了“乘2”这个数学操作,却忽略了代码里必须“赋值”才能生效。

拿到题先别急着看选项,先盯着输出“1248”想规律:从1到2,从2到4,从4到8,每一步都是前一个数乘2。那循环里的i每次得怎么变?显然是i*=2。接下来把每个选项代入横线处,像做实验一样跑一遍逻辑,就能把陷阱一个个揪出来。

A选项i++:i从1开始,每次加1,循环条件i<=8,会输出1,2,3,4,5,6,7,8,跟目标“1248”差十万八千里,直接排除。这是最顺手的惯性答案,但一细看输出就错了。

C选项i+=2:i从1开始,每次加2,输出1,3,5,7,全是奇数,跟目标完全没关系。很多学生看到“偶数”就下意识选加2,其实题目要的是倍增,不是步长为2的等差数列。

D选项i*2:这个最阴险。i*2只是计算一个临时值,没有赋值给i,i的值永远保持初始的1。循环条件始终满足i<=8,i不会变,程序会进入死循环,一直输出1,1,1,1…直到溢出或超时。很多学生看到“乘2”就以为能变数,却忘了代码里必须用赋值运算符*=`才能更新变量。

B选项i*=2:这才是正解。i*=2等价于i=i*2,每次把i翻倍。第一轮i=1,输出1,i变成2;第二轮i=2,输出2,i变成4;第三轮i=4,输出4,i变成8;第四轮i=8,输出8,i变成16,此时16>8循环结束。输出正好是“1248”,完美匹配。

【命题视角】这道题在GESP一级里很典型,命题人专门用“乘2”这个数学直觉挖坑,把赋值和运算混在一起,想看看学生是不是真的理解循环更新机制,而不是死记硬背“for循环填i++”。同时,它也在训练学生“先看输出找规律,再反推代码”的思维——拿到程序题,先别急着看选项,先盯着输出或逻辑找关键点,往往能一眼锁定答案。

【思考心法】遇到这种填空题,先别急着代入选项,先问自己:输出是什么规律?循环里i每次得怎么变才能凑出这个规律?然后看哪个选项能实现这个变化。如果选项里有纯运算(如i*2),立刻警惕:它不改变i的值,循环会死。如果选项里有赋值(如i*=2),再检查它是否符合规律。最后用“代入法”验证,像做实验一样跑一遍逻辑,确保万无一失。

【避坑提醒】D选项i*2是最容易中招的,因为“乘2”这个动作太符合直觉,学生往往忽略赋值的重要性。另外,C选项i+=2针对的是“偶数序列”的刻板印象,很多学生看到“偶数”就下意识选加2,却忘了题目要的是倍增。A选项i++则是惯性思维,填它最顺手却完全偏离目标。只背“循环填i++”口诀必中招。

【考频与趋势】循环结构在题库里共考过609题,覆盖12个考试级别(2008-2026)。逐年分布:2008年7题、2009年3题、2010年3题、2011年6题、2012年5题、2013年7题、2014年8题、2015年4题、2016年12题、2017年11题、2018年13题、2019年4题、2022年1题、2023年77题、2024年128题、2025年158题、2026年161题、null年1题。分赛事来看,GESP一级考了139题,GESP二级172题,GESP三级89题,GESP四级87题,NOIP普及组初赛56题,NOIP提高组初赛23题,GESP五级16题,GESP六级9题,CSP入门级8题,CSP提高级5题,GESP七级3题,GESP八级2题。从数据看,循环结构在近年考频持续走高,2023年77题、2024年128题、2025年158题、2026年161题,基本每年都在100题以上,说明它一直是基础编程的核心考点。

【预测】基于现有数据,循环结构在未来几年仍将是高频考点,尤其是GESP一级和二级,因为它们是入门阶段,循环的三要素(初始化、条件、增量)是必考内容。命题人可能会继续用“反推思维”出题,比如给出输出或逻辑,让学生填循环增量,或者给出不完整的循环,让学生判断是否会死循环。另外,结合运算符与表达式(题库共261题,近年考频也高,2023年91题、2024年41题、2025年61题、2026年14题),可能会出现“赋值vs运算”的陷阱题,比如用i*=2和i*2做对比,或者用++和++的区别。暂无足够依据预测具体题目形式,但可以确定:循环增量的写法、赋值运算符的使用、以及“先看输出找规律”的反推思维,将是未来考试的常考点。

同考点真题

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