GESP四级C++最新10次真题分析:指针是第一道分水岭
- 2026-11-10 14:47:59
2024年3月 ~ 2026年9月,最新10套四级C++真题。四级是GESP的分水岭——指针、结构体、排序、递推一起上桌。10套卷里,指针相关题目每套至少3道,没有一次缺席。
获取 最新10次gesp4解析.pdf
请关注状元编程公众号,回复 20261110gesp4
大家好,我是专注少儿编程的状元老师。前面已经写完一、二、三级真题分析(点击公众号主页可看),今天轮到四级。
四级和前三级最大的不同:它第一次把"C++这门语言本身"作为主要考察对象。前三级考的是"会用循环解决问题",四级开始考"懂不懂这门语言"——指针怎么传值、二维数组怎么存、结构体怎么初始化、排序算法稳不稳定。
我把最近10套真题(2024.03、2024.06、2024.12、2025.03、2025.06、2025.09、2025.12、2026.03、2026.06、2026.09,共250道客观题+19道编程题,其中2024年9月四级试卷缺失)逐题过了一遍,下面是完整分析。
01 卷面结构:三年没变过
| 合计 | 27题 | 100分 |
和一、二、三级完全一致:编程题占一半。但四级编程题的"含金量"明显更高——它开始要求你真正理解数据在内存里是怎么放的。
02 编程题全清单:网格题和排序题接班
10套19道编程题,能看出三个明显阵营:
阵营一:网格模拟题(6道)——黑白方块、荒地开垦、画布裁剪、排兵布阵、山之谷、扫雷。这是四级编程题的第一大类,核心套路都是"二维数组+按规则逐格检查"。特别是山之谷和扫雷连续两套都在考"8邻域"(检查上下左右+四个斜角共8个格子),判断题和编程题里反复出现。
阵营二:排序应用题(4道)——字符排序、排序、礼盒排序、有序网格。注意:排序在四级不只是客观题知识,2026年3月的"礼盒排序"、2026年9月的"有序网格"(每行升序+每列升序)都要求你亲手写排序逻辑。
阵营三:模拟与递推(其余)——宝箱、优先购买、身高体重指数(公式计算BMI)、新汉诺塔。"新汉诺塔"值得单独说:它不是经典汉诺塔,而是要用两个递推式 f[i] = 2×g[i-1]+1、g[i] = 2×g[i-1]+f[i-1]+2 联合推导,这是10套里编程题最"数学"的一道。
03 四级独有的六大考点
前面三级没考过、四级开始成体系考的内容:
① 指针与引用(每套必考3~5道,四级第一巨头)
指针声明、 *p解引用、指针算术(*(p+5)、*(*(arr+1)+2))引用的铁律:绑定之后不能改绑——2026年3月和6月连续两套都拿这个出判断题 三种传参方式的区别:值传递(改不动外面的)、引用传递、指针传递。"通过函数交换两个变量的值"这种题,每套都有变体
② 二维数组与内存
行优先连续存储,会算地址: int arr[3][16],arr[1]占多少字节?传参必须写列数: int arr[][4]合法,int arr[3][]非法"定义二维数组时可以省第一维但不能省第二维"——判断题常客
③ 结构体
初始化写法合法性( Point p{3, 4}这种花括号初始化)结构体嵌套结构体(2025年12月考"结构体不能包含另一个结构体"——这是错的判断题) 结构体数组+指针访问( p->scorevs(*p).score)
④ 排序三兄弟:冒泡、插入、选择
这是四级客观题的绝对主力,10套卷每套至少2道:
代码填空:给你插入排序代码,挖掉内层循环条件让你填 稳定性:冒泡/插入是稳定排序,选择排序不稳定——这条考了不下8次 复杂度:插入排序最好O(n)、最坏O(n²);带flag的冒泡对有序数组只需一轮、O(n)
⑤ 递推算法
爬楼梯(每次爬1或2阶)、机器人跳格子(每次1或2格)、斐波那契——本质都是同一个递推式。考法两种:算具体值(ways(6)等于几)、算时间复杂度(递推O(n),朴素递归O(2ⁿ))。
⑥ 文件与异常处理
文件读写: ofstream写文件、ifstream读文件、输出重定向到 log.txt 的几种方式异常处理: try/catch/throw,catch 的类型必须和 throw 匹配——catch(int e)接不住throw "Error"
04 2026年的三个新信号
信号一:8邻域网格题成了编程题主战场。
2026年3月"山之谷"、6月"扫雷",连续两套考"检查周围8个格子"。这类题的标准写法是双重循环+方向偏移量数组(dx[8]、dy[8]),如果孩子只会上下左右四个方向,这道题就悬了。建议专门练一次扫雷。
信号二:排序从"背概念"升级为"写代码"。
以前排序只出现在客观题里选选项,2026年的"礼盒排序"和"有序网格"要求在编程题里真正实现排序逻辑。"有序网格"还有个隐藏难点:行排好序之后列才可能有序,处理的顺序有讲究。
信号三:异常处理开始出现在判断题陷阱里。
2026年6月考了"catch 能否捕获类型不匹配的异常"(不能,运行时直接 terminate),2026年9月又考了 catch(int e) 接不住 throw "Error"。这个考点以前只考概念,现在开始考具体行为,明显加深了。
05 命题规律:四级有自己的"重复题"
三级以前我们说"时事热点每套必考",四级不一样——它重复考的是"语言细节":
"引用绑定后不能改绑":2026年3月、2026年6月连考两次判断题,一个说"能",一个说"不能",答案都是"不能改绑" "哪种方式不能实现输出重定向":2024年12月和2026年3月出了几乎原题(都问 Welcome to...重定向到log.txt哪种方式不行)"选择排序不稳定":以各种马甲出现(按score排序扑克牌、学生排行榜、能量晶石),答案不变 爬楼梯递推:2025年9月小杨爬楼梯、2025年12月 climbStairs(5)、2026年3月 climb(6)、2026年9月 ways(6)——同一道题换了四个马甲 一个函数必须先声明再调用:判断题多次出现,声明和定义可以分开,但调用前必须有声明
结论很直接:四级真题的重复率是四个级别里最高的,刷真题的性价比也最高。
06 陷阱 TOP 6(全部出自真题)
① &++a 输出的是地址,不是 6
2024年3月判断题:int a=5; cout << &++a 会输出 6 吗?不会——&++a 是取自增后变量的地址,输出的是一个地址值。
② 未初始化的指针不会自动变成 nullptr
2026年3月判断题。局部指针变量不初始化就是野指针,值是随机的,C++不会帮你初始化为 nullptr。
③ int arr[3][] 不能编译
二维数组定义和传参时,第二维(列数)永远不能省。判断题反复考。
④ catch 的类型必须严格匹配
catch(int e) 捕获不了 throw "Error"(字符串字面量是 const char*),也捕获不了结构体异常。没被捕获的异常在运行时终止程序,不是编译错误。
⑤ 选择排序"遇到相等不交换"的描述是干扰项
有的判断题说"选择排序遇到相等元素不交换,所以是稳定的"——错。稳定性看的是最终结果中相等元素的相对顺序,选择排序的交换会打乱它。
⑥ 二维数组地址计算用"行优先"
int a[3][4],若 a[0][0] 地址为 X,则 a[1][0] 的地址是 X + 4×4(一行4个int,每个4字节),不是 X+4。每套卷都有一道地址计算题。
07 给备考四级的同学三条建议
第一,把指针练到"条件反射"。 指针占分最多,而且四级不考花活——就是 *p、p+1、引用绑定、三种传参这几个基本盘。建议把10套真题里所有指针题做完,错题记下来,你会发现自己错的基本是同一类。
第二,三个排序亲手各写一遍。 不要满足于"背稳定性和复杂度"——2026年的趋势是排序进编程题。冒泡、插入、选择三个函数,每个都能闭眼写出来,代码填空题就再也难不住你。
第三,网格题背下"方向偏移量"模板。 8邻域判断、扫雷计数这类题的代码骨架是固定的:外层遍历每个格子,内层用 dx[]/dy[] 数组查邻居。把模板练熟,山之谷、扫雷、荒地开垦是同一道题。
四级是GESP从"入门"走向"进阶"的门槛,也是含金量开始飙升的一级。跨过去,五级的链表、队列就是水到渠成。
(真题与解析资料已整理在公众号后台,需要的话在公众号回复"20261110gesp4"获取。)
上一篇:[GESP三级真题分析:字符串成了绝对主角] | 系列文章:一级、二级、三级均可在公众号主页查看