2026 年 6 月 GESP C++ 一级真题 · 逐题详解

四季读书网 2 0
2026 年 6 月 GESP C++ 一级真题 · 逐题详解

2026 年 6 月 GESP C++ 一级真题 · 逐题详解

一、单选题(每题 2 分,共 30 分)

第 1 题|答案 C湿度传感器把外界的物理信号(湿度)转换成数据送进控制器,这正是"采集信息、输入系统"的角色,对应计算机的输入设备(类比键盘、鼠标、麦克风)。处理器负责运算,存储器负责记忆,输出设备负责把结果呈现出来——都不符合"采集并送入"这个动作。

第 2 题|答案 D考的是开发环境的基础操作常识。变量名批量替换(A)、撤销(B)、调整缩进(C)都是编辑器的常规功能,描述都正确。D 说"注释里不能中英文混用"是错的——注释是给人看的,中英文随便混,编译器根本不读它。题目问"不正确的",所以选 D。

第 3 题|答案 Dfloat a = 3 + 3.5;,右边 3 + 3.5 中只要有一个是小数,整个表达式就按浮点运算,结果是 6.5,赋给 float 完全合法,输出 6.5。代码不会报错,排除 A、B;结果不是 6,排除 C。这里要破除一个误区:整数 + 小数 = 小数,不会被截断。

第 4 题|答案 C先算原式 -2 * 2 % 4:* 和 % 同级、从左到右,先 -2*2 = -4,再 -4 % 4 = 0。原式 = 0

  • -(2*2)%4 = -4%4 = 0 ✓ 相同
  • (-2*2)%4 = -4%4 = 0 ✓ 相同
  • -2*(2%4) = -2*2 = -4 ✗ 不同
  • (2*2)%-4 = 4%-4 = 0 ✓ 相同

求"不同的",选 C。考点是运算符优先级和加括号后的求值顺序。

第 5 题|答案 B

int a = 3;int b = a;   // b 拷贝了 a 当前的值 3,b 从此独立a = 4;       // 改 a 不影响 bprintf("%d %d", a, b);  // 4 3

关键:b = a 是值拷贝,b 拿到的是 3 这个数,不是 a 这个盒子。之后 a 变 4,b 还是 3。输出 4 3

第 6 题|答案 Dcin >> N 读整数时,遇到第一个非数字字符就停下。输入 2026-6-27,它读完 2026 碰到 - 就停了,N = 2026,输出 2026。后面的 -6-27 留在缓冲区不管。选 D。

第 7 题|答案 C(求"错误的") 代码:N>M 输出 A 差值,否则输出 B 差值

  • A:输入 4 3,N>M,输出 A 1 ✓
  • B:输入 3 4,N≤M,输出 B 1 ✓
  • C:输入 3 3,N 不大于 M,走 else,输出 B 0,但选项说输出 A 0 ✗ 错误
  • D:输入 4 4,走 else,输出 B 0 ✓

陷阱在 N > M 是严格大于,相等时走 else。选 C。

第 8 题|答案 C(求"错误的")cnt += 1 等价于 cnt = cnt + 1

  • cnt = cnt + 1 ✓
  • cnt = 1 + cnt ✓(加法可交换)
  • cnt =+ 1 ✗ 这其实是 cnt = (+1),即把 cnt 直接赋值为 1,不是自增!
  • cnt = +1 + cnt ✓

C 是经典陷阱:=+ 不是一个运算符,它会被拆成 = 和正号 +。选 C。

第 9 题|答案 A代码:num 从 1 开始,循环 35 次,每次先打印再判断。输出规律是 1 2 3 4 5 6 7 8 9 10 11 然后跳回 5,再 5 6 7 8 9 10 11 循环。说明:num 一直 +1 增长,到了某个值就跳回 5

观察:11 之后回到 5。所以条件是"当 num 大于某值时减,否则加"。填 >/=+=:

  • 当 num > 10(即 num=11)时 num /= 2,11/2=5(整数除法),正好跳回 5!
  • 否则 num += 1 正常 +1。

验证规律完全吻合。选 A > /= +=。这题难点在于**用整数除法实现"跳回"**。

第 10 题|答案 A

for (i = 1; i < 5; i++)if (i % 2 == 0) {continue;cout << i << "#";   // 永远执行不到(continue 之后)    }cout << i << "END#";

两个关键点:

  1. continue 后面的语句永远不会执行(死代码)。
  2. 偶数时 continue,奇数时啥也不做,循环正常跑完,i 最终变成 5。
  3. 循环结束后 cout << i << "END#",i=5,输出 5END#

选 A。陷阱:很多人以为会打印 1#3#,但那行在 continue 之后,根本到不了。

第 11 题|答案 B

for (i = 2; i < N; i++)if (N % i == 0) { cout << "1#"break; }elsecout << "0#";

这是在找 N 的因子。从 i=2 开始:整除就输出 1# 并跳出;不整除输出 0# 继续。

  • A 输入 2:i<2 不成立,循环不执行,无输出。选项说输出 1# ✗
  • B 输入 15:i=2,15%2≠0→0#;i=3,15%3=0→1# 并 break。输出 0#1# ✓
  • C 输入 1:循环不执行,无输出 ✗
  • D 输入 3:i=2,3%2≠0→0#;i=3 不满足 i<3,结束。输出 0# ✗

选 B。

第 12 题|答案 A(求"错误的") 循环 i 从 0 到 9 共 10 次,tot 累加成 10,输出 10。

  • A 说改成 1 <= i 输出"同样为 45"——首先原输出是 10 不是 45,描述本身就错;改条件后还会少跑一次,结果也变。✗ 错误
  • i = tot = 0 连等赋值合法,等价 ✓
  • C 交换 tot+=1 和 i+=1 顺序,不影响结果 ✓
  • D 交换两个初始化语句顺序,不影响 ✓

选 A。

第 13 题|答案 B四位数 n,要取十位数字。十位 = 先去掉个位(n/10),再对 10 取余(%10)。即 (n/10)%10。选 B。 口诀:取某一位 = 先除到它在末尾,再 %10

第 14 题|答案 B秒针位置 = (起始 + 经过秒数)对 60 取余,得到 0~59 的刻度,所以 L1 填 (start + n) % 60(用 / 是错的)。 回到 12 点方向 = 刚好指向 0,L2 填 pos == 0(注意判断相等用 ==,不是赋值 =)。选 B。

第 15 题|答案 B(求"不应填入的") 判断质数,for 从 i=2 开始试除。循环条件可以是:

  • i < N:逐个试到 N-1,正确(虽慢)✓
  • i <= N/2:试到一半,正确 ✓
  • i*i <= N:试到 √N,正确且高效 ✓
  • i <= N:会试到 i=N,而 N % N == 0 永远成立,导致质数被误判为合数输出 NO ✗

所以不应填 B。这题考质数判断的边界:试除上界绝不能取到 N 本身。


二、判断题(每题 2 分,共 20 分)

第 1 题|✓AI 眼镜内置操作系统、能联网(Wi-Fi/蓝牙),具备查询、通信能力,考场禁带合理。表述正确。

第 2 题|✓对大于 100 的整数 n:(n/10)%10 取的是十位;(n%100)/10 先留下后两位再除 10,取的也是十位。两者都取十位,结果相同。✓

第 3 题|✗

for (i = 0; i < 20; i += 3)if (i % 3 != 0break;cout << i;

i 取 0、3、6、9...全是 3 的倍数,i%3!=0 永远不成立,break 永不触发。循环正常结束时 i 增到 21(i=18 时还满足<20,加 3 变 21 退出),输出 21,不是 19。✗

第 4 题|✗求阶乘却写 int rst = 0;,0 乘任何数都是 0,最后输出 0,不是 N!。初值应为 1。✗

第 5 题|✓while(N>0){ 输出 N%10; N/=10; } 不断取个位再砍掉,能逐位(从低到高)输出 N 的各位数字。功能正确。✓

第 6 题|✓printf("\n") 和 printf("%c", '\n') 都是输出一个换行符,效果完全相同。✓

第 7 题|✗2.5 % 2——% 取模运算不允许用于浮点数,这是编译错误,根本生成不了可执行代码。题目说"能生成可执行代码但运行时报错"是错的。✗

第 8 题|✗

int total;   // 未初始化!值是随机的for (n=1..4) total *= n;

total 没赋初值,是个垃圾值,乘出来结果不确定,不会稳定输出 24。(就算初值是 1,1×1×2×3×4=24,但前提是初始化为 1——这里没有。)✗

第 9 题|✓(以官方答案为准) a=4:(a%2==0) 为真 = 1,(a/2) = 2。按 C++ 语义 1 + 2 = 3。此题官方给 ✓,题面数值在传抄中可能略有出入,课堂以 CCF 公布版为准。重点掌握考点本身:关系表达式的值为 0 或 1,可直接参与算术运算。

第 10 题|✗

while (x < 4) {    x++;if (x == 2continue;   // x=2 时跳过下面的输出cout << x << ",";}

有 continue:x=2 时跳过打印,输出 1,3,4,。删掉 continue 后,x=2 也会打印,变成 1,2,3,4,。两者不同。✗


三、编程题(每题 25 分,共 50 分)

编程题 1:去旅行

思路:三种方案各算总价,取最小。

  • 方案 1:直飞 = a
  • 方案 2:高铁到 C + 飞机 = b + c
  • 方案 3:高铁到 C + 高铁 = b + d

读入 4 个数,比较三者最小值输出即可。

#include<iostream>usingnamespacestd;intmain(){int a, b, c, d;cin >> a >> b >> c >> d;int x = a, y = b + c, z = b + d;if (x <= y && x <= z) cout << x;elseif (y <= x && y <= z) cout << y;elsecout << z;cout << endl;return0;}

考点:多变量比较求最小值。也可用 min(a, min(b+c, b+d))(需 #include <algorithm>)更简洁。典型的一级编程题难度——读数、算式、比较。

编程题 2:交税

思路(分段计税):每月报酬 a,

  • a ≤ 800:不交税
  • a > 800:超出部分按 20% 交,即 (a-800)*0.2

12 个月累加,最后保留两位小数输出。

#include<iostream>#include<cstdio>usingnamespacestd;intmain(){double ans = 0.0;for (int i = 0; i < 12; ++i) {double a;cin >> a;if (a > 800.0)            ans += (a - 800.0) * 0.2;    }printf("%.2f\n", ans);return0;}

考点:① 浮点数 double 的使用;② 条件分段(超过 800 才计税);③ 循环累加;④ 格式化输出 printf("%.2f") 保留两位小数——这是一级高频得分点,很多娃栽在"保留两位小数"上。


四、知识点分类汇总:这套卷子各考点考了几道?

把全卷 25 道客观题 + 2 道编程题按知识点归类,一眼看出 6 月一级的"火力分布":

知识点
涉及题目
题数
计算机基础 / 硬件常识
单选1、判断1
2
开发环境与基本概念
单选2
1
数据类型与浮点
单选3、判断7
2
运算符与优先级
单选4、单选8、单选9
3
取模 / 取位(数位拆分)
单选13、判断2
2
变量与赋值(值拷贝、初始化)
单选5、判断4、判断8
3
输入输出(cin/cout、printf)
单选6、判断6、编程2
3
分支结构(if-else)
单选7、单选14
2
循环结构(for/while)
单选12、判断3、判断5
3
循环 + break/continue
单选10、单选11、判断10
3
综合应用(质数、阶乘、比较、计税)
单选15、判断9、编程1、编程2
4

一句话看懂这张表:

  • 循环相关(循环结构 + break/continue)合计 6 道,是当之无愧的第一大考点;
  • 运算与取位(运算符 + 取模取位)合计 5 道,紧随其后;
  • 变量、输入输出各 3 道,也是高频。

也就是说,这套卷子里超过一半的分,压在循环、运算、变量这三块上。一级想稳过,劲就该往这三处使。


如果你家娃看完解析,有些地方还是"似懂非懂"——比如那个 b = a 之后为什么 b 不变、num /= 2 怎么就跳回 5 了、continue 后面那行为什么永远到不了——这恰恰是我们做训练营想解决的问题。

干巴巴的文字讲"值拷贝""循环跳转",孩子点头说懂了,换道题又错。所以在 GESP 一级 14 天训练营 里,这些最抽象的点全做成了会动的动画微课:

  • 第 5 题的"值拷贝",画成两个盒子——b = a 时把 a 里的 3 复制一份放进 b,然后 a 翻牌变 4,b 里那个 3 纹丝不动,一眼看懂"拷的是数,不是盒子";
  • 第 9 题 num /= 2 跳回 5,让 num 盒子一步步往上数,到 11 时"啪"地一除变 5,单步走、边走边猜,规律自己就看出来了;
  • 循环里的 break、continue 跳到哪,用一条会动的箭头领着孩子走,哪行执行了、哪行被跳过,清清楚楚。

配上全部历年真题免费刷(按章节分类,6 月新题已收录)、原创讲义和即时判分练习,就是想让零基础的娃跟着真题的"考点分量"走,把劲用在刀刃上

📣 GESP 一级 · 暑期 14 天免费学习营,首期免费、限 30 人。 准备 9 月一级的零基础小学生(三年级以上更合适)正合适,每天 1~1.5 小时逐日解锁,从基础一路带到循环专题,第 14 天结营测评摸底。

报名三步:打开 👉 www.gesppass.com/camp,注册后点「免费申请上车」占名额,扫码进「GESP 一级集训营」群,满 20 人或 7 月 6 日准时开营。

2026 年 6 月 GESP C++ 一级真题 · 逐题详解-第1张图片-四季读书网

名额不多,看到就上车 🚀 觉得这份解析有用,转发给同样在备战 GESP 的家长朋友——拉满 20 人,大家一起开练。

抱歉,评论功能暂时关闭!