GESP 一级 · GESP 202403 C++ 一级 第 6 题

选择题 · 答案 A · 考点:输入输出

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

题目

下面 C++ 代码执行时输入 21 后,有关描述正确的是( )。

int N;
cin >> N;
if(N% 3 == 0)
    cout << "能被3整除";
else if (N % 7 == 0)
    cout << "能被7整除";
else
    cout << "不能被3和7整除";
cout << endl;
答案:A

考点

输入输出

解题思维

这题考 if-else if-else 链的短路执行特性。拿到题先看输入类型对不对,再顺着条件判断,第一个成立后面全跳过,别被 else 的视觉位置骗了。

常见错误

最容易错的是以为 else 紧跟哪行代码就绑定哪行,其实 else 只和最近那个还没配对的 if 结合。这题里第 8 行 else 明明离第 6 行 else if 最近,但它根本不会被执行,因为第 4 行 if 已经为真,程序直接走完了,后面的 else if 和 else 都被短路跳过了。选项 D 还偷换概念,把 cin >> N 说成 input() 读字符串,其实 cin 读的是 int,21 就是整数 21,取模运算完全正常。

详细解析(节选)

【考点】输入输出|条件分支|取模运算

先说输入这块。代码里用的是 cin >> N,N 是 int 类型,所以读入的是整数 21,不是字符串。命题人专门在选项 D 里提 input(),那是 Python 的函数,C++ 里根本没有 input() 这种东西,这是典型的偷换概念陷阱,直接排除 D。

再看分支结构。这是一个标准的 if - else if - else 链。C++ 的执行规则是:遇到 if,条件为真就执行其块,然后整个 if-else if-else 结构结束,不再检查后面的 else if 和 else;如果 if 条件为假,才去检查 else if,依此类推。这就是“短路”,也是这题的核心。

代入数据:N = 21。

第 4 行判断 N % 3 == 0。21 除以 3 余 0,条件为真。于是第 5 行 cout << "能被 3 整除"; 被执行,输出结果。

因为第 4 行已经为真,整个 if-else if-else 链立刻终止,第 6 行 else if (N % 7 == 0) 和第 8 行 else 都不会再被检查,更不可能执行它们里面的语句(第 7 行和第 9 行)。所以 B 和 C 都错:B 说第 4 和第 7 行都执行,忽略了短路;C 说只有第 7 行执行,完全无视了第 4 行已经成立的事实。

逐项核对选项:

所以正确答案是 A。

【命题视角】这类题在 GESP 一级、二级里很常见,命题人喜欢在 else 的位置设坑,让你以为它和最近的 else if 配对,或者让你误以为只要某个 else 存在,前面的条件不成立它才会执行。其实 else 只和最近那个还没配对的 if 结合,而一旦前面的 if 成立,整个链就断了。刷到 if-else if 链,先问自己:第一个条件成立后,后面所有 else if/else 都不再执行,这是条件分支的短路特性,也是命题人最常设的坑。

【考频与趋势】分支结构在题库里共考过 181 题,覆盖 10 个级别。逐年分布:2008 年 7 题、2010 年 1 题、2011 年 4 题、2012 年 5 题、2013 年 5 题、2014 年 5 题、2015 年 4 题、2016 年 12 题、2017 年 12 题、2018 年 10 题、2023 年 4 题、2024 年 8 题、2025 年 3 题、2026 年 100 题、null 年 1 题。分赛事:NOIP 普及组初赛 48 题、GESP 二级 45 题、GESP 一级 25 题、NOIP 提高组初赛 17 题、GESP 三级 13 题、GESP 五级 11 题、GESP 四级 10 题、GESP 六级 9 题、GESP 八级 2 题、GESP 七级 1 题。

数据很清晰:2024 年分支结构考了 8 题,2025 年降到 3 题,但 2026 年突然飙升到 100 题(含 null 年 1 题),说明命题方向明显向高阶、综合题倾斜,简单的一级分支题在 2026 年可能不再单独出现,而是融入更复杂的逻辑判断或嵌套循环中。GESP 一级和二级依然是高频考点,一级 25 题、二级 45 题,占比最高,说明基础分支逻辑仍是入门级的核心。

【预测】基于现有数据,2026 年分支结构题量激增,未来一年(2027 年)可能继续维持高位,但题型会从“纯 if-else if-else 链”转向“多层嵌套 + 循环 + 数组”的综合判断,单纯考短路特性的题目可能会减少,转而考“在复杂逻辑中识别 else 真正配对的 if”或“多个 else if 之间条件互斥性”的深层理解。GESP 一级、二级仍会保留少量基础分支题,用于巩固概念,但难度会略有提升,比如加入取模、位运算或字符串长度判断等组合条件。

暂无足够依据预测 2027 年之后具体年份的题量,因为 2026 年的数据本身异常偏高(100 题),可能包含大量其他类别的分支相关题,需要更多年份的细分数据才能准确判断趋势。

同考点真题

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