GESP 202312 C++ 五级 真题解析

GESP 五级 · 25 道题逐题解析速查表:答案、考点、一句话思路,点击任意题号看完整解析。

GESP 五级 全部真题

逐题速查表

题号题型答案考点解题思路
第 1 题 选择题 C — 这题考递归与循环的时间复杂度对比。拿到题先看两版代码:fiboA 是递归,fiboB 是迭代。别被代码量骗了,递归看似简洁,实则每次调用又拆成两次,形似二叉树,总调用次数呈指数增长…
第 2 题 选择题 C 函数与递归、分治算法 这题考的是递归分治中区间边界的精确划分。拿到题先别急着背模板,盯着代码里的 m 定义和 merge 函数的参数。merge 把 T[s..m] 和 T[m+1..t] 合起来,那递…
第 3 题 选择题 D 函数 全局变量stepCount是贯穿整个程序的生命线,先理清fracA和fracB各自会触发多少次stepCount自增,再按调用顺序把打印结果串起来就能锁定答案。
第 4 题 选择题 A — 这题考的是冒泡排序里交换条件的写法。既然要偶数在前、奇数在后,就得让奇数往后沉。拿到题先想:偶数在前意味着什么?意味着遇到‘前奇后偶’的情况必须交换。所以条件就是判断 lstA[j…
第 5 题 选择题 B 链表 这题考带头节点的双向链表插入。拿到题先别急着写代码,脑子里过一遍链表结构:头节点后面跟着数据节点。插入新节点 p 时,p 要插在头节点和原来的第一个数据节点之间。关键就是:原来的第…
第 6 题 选择题 A 函数与递归、算法、最大公约数与最小公倍数 这题考的是递归深度与输入规模的关系,别被'无限递归'吓住,关键看参数y每次怎么变,以及rc到底在统计什么。
第 7 题 选择题 C — 这题考快速排序的递归拆分与vector拼接。拿到题先看operator+只接两个vector,pivot是int,所以拼接时必须显式转成vector,否则类型不匹配编译不过,这是解…
第 8 题 选择题 B 复杂度分析 这题考时间复杂度,别被 sqrt 吓住,直接数循环跑几步就行。A 版循环到 N/2,B 版循环到根号 N,最大情况就是都跑完,代入大 O 记号对比大小,选那个描述最准的。
第 9 题 选择题 D 分治算法、函数与递归、二分查找 这题考的是算法思想的辨析,别被递归函数名带偏,抓住‘子问题是否重叠’这个核心判据,就能一眼看出它只是分治递归,绝不是动态规划。
第 10 题 选择题 B 二分查找、复杂度分析 这题其实就考一个核心直觉:二分每次把范围砍一半,N 到 1 需要砍多少次?次数就是 log₂N,所以复杂度是 O(log N)。
第 11 题 选择题 D 模拟 这题就是大数模拟加法,循环里 t 已经累加完当前位和进位了,横线上只要把 t 的个位存进结果、再把剩下的作为新进位赋给 t 即可,直接看选项里谁同时做了取模和整除就能秒杀。
第 12 题 选择题 B 指针与引用、链表 这道题考的是链表类型判断,拿到代码先别急着看逻辑,直接看节点定义里有没有Prev和Next两个指针成员,有就是双向,没有就是单向。
第 13 题 选择题 B — 这题考的是通讯卫星最本质的物理作用。拿到题先别想高级功能,直接定位它在通信链路里的角色:它是悬在空中的‘站’,负责把地面的信号‘接’过来,再‘转’给远方。抓住‘跨距离转发’这个核心…
第 14 题 选择题 C 算法、二分查找 这题考的是算法适用场景,核心在于理解‘判断’与‘查找’的本质区别。拿到题先想:二分法能直接用来判定素数吗?显然不能,它得依赖一个已经排好序的素数表。既然表是现成的,那‘判断’就失去…
第 15 题 选择题 B 算法、快速排序 这道题考排序算法每趟的核心机制。拿到题先别急着背算法名,而是想:这趟操作到底是在‘挑极值’还是‘分区间’?把四个算法每趟做的事列出来对比,答案自然浮现。
第 16 题 判断题 A 算法、归并排序 这题就是考经典结论,拿到题直接回想归并排序的‘分治’流程:一层层二分到底(深度 logN),每层合并都要扫一遍(工作量 N),相乘就是 O(N log N),选 A 没错。
第 17 题 判断题 B 二分答案 这题考的是二分答案的适用条件。拿到题先别急着套模板,要反问自己:判定条件是否随答案单调?巧克力能切成任意矩形,只要长宽是原长的约数且乘积≥L²,这破坏了单调性,所以不能二分。
第 18 题 判断题 B 函数 这题别光盯着递推公式看,代码里藏着致命陷阱。拿到题先扫一眼函数调用名,发现 Fibo 里调的是 fiboA 和 fiboB,而这两个函数在题面里根本没定义。递归函数若调用未定义函数…
第 19 题 判断题 A 贪心算法 这题考的是贪心算法的核心定义。拿到题先别想复杂证明,直接回归课本定义:贪心就是每步选当前最优,且不回溯。题干前半句说它能达局部最优(定义成立),后半句说可能非全局最优(反例存在,如…
第 20 题 判断题 A — 这题其实就考一个核心认知:任何合数(非质数)都能被拆成质数的乘积。拿到题别想复杂算法,直接回忆质数与合数的定义和欧几里得定理的推论,就能秒懂为什么程序一定能设计出来。
第 21 题 判断题 A 算法 分析时间复杂度时关注循环层数和每层迭代次数,递归算法则分析递归树。注意最坏/最好/平均情况的区别。
第 22 题 判断题 B 字符数组与字符串处理 这题考的是进制转换算法与字符串构造细节。拿到题先别急着看选项,把代码当黑盒跑一遍:循环里 N%8 取余、加'0'转字符没错,但后面 rst += string(s) 才是命门——它…
第 23 题 判断题 A 算法 这题考的是 STL 标准库算法。拿到题先别急着看选项,盯着函数名 sort 和它的作用域:它只管把区间里的元素按非降序排好,完全不关心原本相等的元素谁先谁后。
第 24 题 判断题 A — 图的存储方式:邻接矩阵(O(n²)空间,适合稠密图)、邻接表(O(n+m)空间,适合稀疏图)。
第 25 题 判断题 A 复杂度分析、链表 这题考的是冒泡排序在链表上的时间复杂度。别被双向链表多一个指针带偏,冒泡核心就是两两比较交换,两种链表遍历次数都是n²,复杂度自然一样。

本套考点分布

算法 · 6 题函数与递归 · 3 题链表 · 3 题复杂度分析 · 3 题二分查找 · 3 题分治算法 · 2 题函数 · 2 题最大公约数与最小公倍数 · 1 题模拟 · 1 题指针与引用 · 1 题快速排序 · 1 题归并排序 · 1 题二分答案 · 1 题贪心算法 · 1 题字符数组与字符串处理 · 1 题

怎么刷这一套

建议按「限时做 → 对答案 → 读常见错误」三步走。先按考试的真实节奏做完,再回来看每一题的解析;尤其是"常见错误"那一段——它对应的是命题人反复设置的陷阱,读完能直接迁移到同类题上。

想做限时模考,可在 OI伴学 平台切换考试模式;错题会自动归集,并按考点推荐同类练习。

← GESP 五级 全部真题真题解析总览