GESP:2026年3月 C++七级 真题及解析

四季读书网 7 0
GESP:2026年3月 C++七级 真题及解析
老师已经为大家准备好电子打印版需要完整电子版文件的朋友,可以拉到文末查看
GESP:2026年3月 C++七级 真题及解析-第1张图片-四季读书网
GESP:2026年3月 C++七级 真题及解析-第2张图片-四季读书网
GESP:2026年3月 C++七级 真题及解析-第3张图片-四季读书网
GESP:2026年3月 C++七级 真题及解析-第4张图片-四季读书网
GESP:2026年3月 C++七级 真题及解析-第5张图片-四季读书网
GESP:2026年3月 C++七级 真题及解析-第6张图片-四季读书网
GESP:2026年3月 C++七级 真题及解析-第7张图片-四季读书网
GESP:2026年3月 C++七级 真题及解析-第8张图片-四季读书网
GESP:2026年3月 C++七级 真题及解析-第9张图片-四季读书网

【答案解析】

1.解释:答案选D。

详细解析见下图——

GESP:2026年3月 C++七级 真题及解析-第10张图片-四季读书网

2.解释:答案选D。

详细解析见下图——

GESP:2026年3月 C++七级 真题及解析-第11张图片-四季读书网

3.解释:答案选B。

详细解析见下图——
GESP:2026年3月 C++七级 真题及解析-第12张图片-四季读书网
GESP:2026年3月 C++七级 真题及解析-第13张图片-四季读书网
4.解释:答案选B。

详细解析见下图——

GESP:2026年3月 C++七级 真题及解析-第14张图片-四季读书网

5.解释:答案选D。

详细解析见下图——

GESP:2026年3月 C++七级 真题及解析-第15张图片-四季读书网

6.解释:答案选D。

选项A:分治‌。分治算法是将一个复杂的问题分解成多个相似的子问题,然后递归地解决这些子问题,最后将子问题的解合并得到原问题的解。DFS虽然有递归过程,但它主要是沿着一条路径不断深入探索,并不是将问题分解为多个独立的子问题并合并解,所以DFS没有运用分治思想,该选项‌错误‌
‌选项B:贪心‌。贪心算法在每一步选择中都采取在当前状态下最好或最优(即最有利)的选择,从而希望导致结果是全局最好的。而DFS在选择相邻未访问顶点时,并没有从全局最优的角度去选择,只是简单地选择一个未访问的相邻顶点继续探索,所以DFS没有运用贪心思想,该选项‌错误‌
选项C:动态规划‌。动态规划是通过把原问题分解为相对简单的子问题,并保存子问题的解,避免重复计算,以解决复杂问题。DFS在执行过程中并没有保存子问题的解来避免重复计算,它只是按照深度优先的方式进行遍历,所以DFS没有运用动态规划思想,该选项‌错误‌
选项D:回溯‌。回溯算法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法。DFS在遍历图时,当某个顶点的所有相邻顶点均已被访问时,就退回到前一顶点继续搜索,这符合回溯的思想,所以DFS主要运用了回溯思想,该选项‌正确‌
综上,答案选D
7.解释:答案选B。
详细解析见下图——
GESP:2026年3月 C++七级 真题及解析-第16张图片-四季读书网
GESP:2026年3月 C++七级 真题及解析-第17张图片-四季读书网
GESP:2026年3月 C++七级 真题及解析-第18张图片-四季读书网
GESP:2026年3月 C++七级 真题及解析-第19张图片-四季读书网
GESP:2026年3月 C++七级 真题及解析-第20张图片-四季读书网
GESP:2026年3月 C++七级 真题及解析-第21张图片-四季读书网
8.解释:答案选A。
详细解析见下图——
GESP:2026年3月 C++七级 真题及解析-第22张图片-四季读书网
9.解释:答案选A。
详细解析见下图——
GESP:2026年3月 C++七级 真题及解析-第23张图片-四季读书网
GESP:2026年3月 C++七级 真题及解析-第24张图片-四季读书网
相关知识点的复习与拓展:

截至考试当年3月,有关二叉树深度优先搜索的三种遍历方式,可以参考下图帮助记忆——

GESP:2026年3月 C++七级 真题及解析-第25张图片-四季读书网
10.解释:答案选B。
逐个选项校验——
选项 A: 1,5,4,8,7,9,6,3,2
错误逻辑:序列第 4 位是 8,前一位是 4。
图中只有 5→8、8→4,不存在 4 指向 8 的边,从 4 无法走到 8,矛盾。
选项 B: 1,5,8,4,7,9,6,3,2
①1→5(合法)
②5→8(合法)
③8→4(合法)
④4 回溯到 8,8→7(合法)
⑤7 回溯到 8,8→9(合法)
⑥9 回溯到 2,2→9;9 前驱是 6,9 回溯到 6(合法)
⑦6→3(合法)
3→2(合法)
全程所有相邻节点都满足有向边关系,无逆向行走,符合 DFS 深度优先逻辑
选项 C: 2,5,8,7,9,6,3,4,1
错误逻辑:倒数第二位是 4,最后一位是 1。
图中 1 能指向 4,4 没有指向 1 的边,无法从 4 走到 1。
选项 D: 8,9,6,3,2,5,1,4,7
错误逻辑:先访问 5,后访问 1。
从8出发,访问到 2 后,根据深度优先遍历“先深入再回溯”的规则,应直接访问1→4→7,而不是先访问 5 、再回溯 1 ……;选项中的顺序,不符合深度优先遍历“先深入再回溯”的规则,排除。
正确答案:B。
11.解释:答案选B。
详细解析见下图——
GESP:2026年3月 C++七级 真题及解析-第26张图片-四季读书网
12.解释:答案选C。
详细解析见下图——
GESP:2026年3月 C++七级 真题及解析-第27张图片-四季读书网
13.解释:答案选D。
详细解析如下——
GESP:2026年3月 C++七级 真题及解析-第28张图片-四季读书网
14.解释:答案选D。

详细解析见下图——

GESP:2026年3月 C++七级 真题及解析-第29张图片-四季读书网
GESP:2026年3月 C++七级 真题及解析-第30张图片-四季读书网
15.解释:答案选C。

详细解析见下图——

GESP:2026年3月 C++七级 真题及解析-第31张图片-四季读书网
相关知识点的复习与拓展:
GESP:2026年3月 C++七级 真题及解析-第32张图片-四季读书网
GESP:2026年3月 C++七级 真题及解析-第33张图片-四季读书网
GESP:2026年3月 C++七级 真题及解析-第34张图片-四季读书网

【答案解析】

1.解释:正确。

详细解析见下图——

GESP:2026年3月 C++七级 真题及解析-第35张图片-四季读书网
相关知识点的复习与拓展:
GESP:2026年3月 C++七级 真题及解析-第36张图片-四季读书网

2.解释:错误。

详细解析见下图——

GESP:2026年3月 C++七级 真题及解析-第37张图片-四季读书网

3.解释:正确

详细解析见下图——

GESP:2026年3月 C++七级 真题及解析-第38张图片-四季读书网
相关知识点的复习与拓展:
截至考试当年3月,关于指针传递/地址传递值传递的区别,可以参考下面的表格和视频所示,加深理解——
GESP:2026年3月 C++七级 真题及解析-第39张图片-四季读书网
视频——
已关注
关注
重播 分享

4.解释:错误

动态规划和贪心算法虽然都能解决最值问题,但它们的适用场景有本质区别——

● 动态规划适用于具有最优子结构和重叠子问题的问题,它会考虑所有可能的子问题并保存结果,确保得到全局最优解。

● 贪心算法依赖贪心选择性质,即每一步做出局部最优选择,最终希望得到全局最优,但并非所有具有最优子结构的问题都满足贪心选择性质。

📌 反例说明

最典型的反例是0-1背包问题

● 动态规划可以在O(nW)的多项式时间内求解(n为物品数量,W为背包容量)。

● 贪心算法无法得到最优解,例如,当物品重量和价值不成正比时,优先选择单位价值最高的物品可能会导致背包剩余空间无法利用,最终总价值不是最大。

📌 总结

存在大量可以用动态规划求解,但无法用贪心算法得到最优解的问题。只有当问题同时具备最优子结构和贪心选择性质时,贪心算法才能得到最优解。

5.解释:正确。

详细解析见下图——

GESP:2026年3月 C++七级 真题及解析-第40张图片-四季读书网
相关知识点的复习与拓展:
GESP:2026年3月 C++七级 真题及解析-第41张图片-四季读书网

6.解释:错误。

详细解析如下——

GESP:2026年3月 C++七级 真题及解析-第42张图片-四季读书网
相关知识点的复习与拓展:
GESP:2026年3月 C++七级 真题及解析-第43张图片-四季读书网

7.解释:正确

深度优先遍历的序列通常不唯一,但题目中给出了两个关键约束:

● 每个顶点有不同的编号:避免了顶点标识产生歧义。

● 总是优先选择编号更小的相邻顶点:明确了顶点访问顺序的优先级规则。

在这两个约束下,每次选择下一个访问的顶点都是唯一确定的,因此从指定顶点开始的遍历序列必然是唯一的。

题干的说法是正确的✅ 。

8.解释:错误

详细解析见下图——

GESP:2026年3月 C++七级 真题及解析-第44张图片-四季读书网

9.解释:错误

详细解析见下图——

GESP:2026年3月 C++七级 真题及解析-第45张图片-四季读书网

10.解释:正确。

详细解析见下图——

GESP:2026年3月 C++七级 真题及解析-第46张图片-四季读书网
GESP:2026年3月 C++七级 真题及解析-第47张图片-四季读书网
GESP:2026年3月 C++七级 真题及解析-第48张图片-四季读书网
GESP:2026年3月 C++七级 真题及解析-第49张图片-四季读书网

GESP 2026年3月 C++七级 拆分

#include<iostream>using namespace std;// 定义模数常量,题目要求对 10^9 取模const int MOD = 1e9/** * 快速幂函数,用于计算 (base^exp) % MOD *  * 由于 n 最大可达 10^6,直接循环相乘会超时。 * 使用快速幂算法可以将时间复杂度降低到 O(log exp)。 *  * @param base 底数 * @param exp 指数 * @return long long 计算结果 */longlongpower(longlong base, longlong exp){    long long res = 1;      // 初始化结果为 1    base %= MOD;            // 先对底数取模,防止溢出    while (exp > 0) {        // 如果当前指数是奇数,将当前的 base 乘入结果中        if (exp % 2 == 1) {            res = (res * base) % MOD;        }        // 底数自乘(相当于进位),指数除以 2        base = (base * base) % MOD;        exp /= 2;    }    return res;}intmain(){    // 关闭cin与stdio同步,加速cin输入速度    ios::sync_with_stdio(false);    // 解绑cin与cout,避免cout刷新拖慢cin读取    cin.tie(nullptr);    int t;    if (cin >> t) {        while (t--) {            int n;            cin >> n;            // --- 情况 1:n 较小 (n <= 3) ---            // 此时不拆分或者拆分出的乘积不如原数大(例如 3=1+2, 1*2=2<3)            if (n <= 3) {                cout << n << '\n';                continue;            }            // --- 情况 2:n > 3,利用贪心策略拆分 ---            // 计算 n 中包含多少个 3            int cnt = n / 3            // 计算余数            int rem = n % 3            long long ans = 0;            if (rem == 0) {                // 余数为 0:正好全部拆成 3                // 结果 = 3^(n/3)                ans = power(3, cnt);            }             else if (rem == 1) {                // 余数为 1:                // 拿出一个 3 和这个 1 组合成 4 (即 2+2),因为 2*2 > 3*1                // 所以 3 的个数减 1,再乘以 4                // 结果 = 3^(cnt-1) * 4                ans = (power(3, cnt - 1) * 4) % MOD;            }             else if (rem == 2) {                // 余数为 2:                // 直接保留这个 2,因为 2 > 1*1                // 结果 = 3^cnt * 2                ans = (power(3, cnt) * 2) % MOD;            }            cout << ans << '\n';        }    }    return 0;}
代码思路——
GESP:2026年3月 C++七级 真题及解析-第50张图片-四季读书网

GESP:2026年3月 C++七级 真题及解析-第51张图片-四季读书网
GESP:2026年3月 C++七级 真题及解析-第52张图片-四季读书网

GESP 2026年3月 C++七级 物流网络

#include<bits/stdc++.h>// 常用宏定义#define pii pair<ll,ll>#define mp make_pair#define fi first#define se second#define ll long long          // 将 ll 定义为 long long,防止费用溢出(最大 1e9*5000=5e12)using namespace std;// 快速读入(支持负数)inline ll read(){    ll x=0,f=0;char ch=getchar();    while(ch<'0'||ch>'9'){        if(ch == '-') f = 1;;        ch=getchar();    }    while(ch>='0'&&ch<='9'){        x=(x<<1)+(x<<3)+(ch^48);        ch=getchar();    }    return f?-x:x;}constexpr ll N=5007, M=10007;   // N最大点数,M最大边数(双向边,邻接表大小需2*m)// 链式前向星存图ll ver[M], head[N], nxt[M], edge[M], tot;   // 加边函数(无向边,调用两次)voidadd(ll x,ll y,ll z){    ver[++tot]=y, nxt[tot]=head[x], head[x]=tot;    edge[tot]=z;}bitset<N> vis;      // 标记是否已确定最短距离ll d[N];            // 距离数组// 原始输入边的结构体struct es{    ll x,y,w,b;     // 起点、终点、费用、景观评分}e[N];ll n,m;// Dijkstra 求从 1 到所有点的最短路(当前图已经建好)voiddij(){    memset(d,0x3f,sizeof d);   // 初始化为无穷大    vis.reset();               // 清空访问标记    d[1]=0;    priority_queue<pii, vector<pii>, greater<pii> > q;    q.push(mp(0,1));    while(q.size()){        auto x=q.top().se; q.pop();        if(vis[x]) continue;        vis[x]=1;        for(ll i=head[x]; i; i=nxt[i]){            ll y=ver[i], z=edge[i];            if(d[y] > d[x] + z){                d[y] = d[x] + z;                q.push(mp(d[y], y));            }        }    }}intmain(){    // 文件重定向(已注释)    // freopen("T.in","r",stdin);    // freopen("T.out","w",stdout);    n=read(), m=read();    for(ll i=1;i<=m;i++){        e[i].x=read();        e[i].y=read();        e[i].w=read();        e[i].b=read();    }    ll ans = 0x3f3f3f3f3f3f3f3f;   // 答案初始化为极大值    // 枚举哪条边作为“免费边”,且它必须是路径上景观评分最大的边    for(ll i=1; i<=m; i++){        // 每次重新建图,清空链式前向星        memset(head, 0sizeof head);        memset(ver, 0sizeof ver);        memset(edge, 0sizeof edge);        memset(nxt, 0sizeof nxt);        tot = 0;        // 建图规则:        // 1. 边 j == i :费用设为 0(免除费用)        // 2. 边 j != i 且 e[j].b <= e[i].b :正常加入,因为 i 必须是评分最高的,其他边不能超过它        // 3. 边 j != i 且 e[j].b > e[i].b :不加入,因为若路径包含 i,则 i 不是最高评分(非法)        for(ll j=1; j<=m; j++){            if(j == i){                add(e[j].x, e[j].y, 0);                add(e[j].y, e[j].x, 0);            }            else if(e[j].b <= e[i].b){                add(e[j].x, e[j].y, e[j].w);                add(e[j].y, e[j].x, e[j].w);            }        }        // 在当前图中跑最短路        dij();        // 更新最小费用        ans = min(ans, d[n]);    }    // 如果答案仍为无穷大说明不可达,输出 -1,否则输出 ans    cout << (ans == 0x3f3f3f3f3f3f3f3f ? -1 : ans);    return 0;}
代码思路——

首先枚举哪条边免费,注意风景比它大的边不要加入到图中,不然它可能就不是路径中风景最大的边了。然后每次建一次图跑一次dijkstra,最后取最小值即可。注意特判不连通的情况。

时间复杂度时间复杂度为O(mnlogn)

GESP:2026年3月 C++七级 真题及解析-第53张图片-四季读书网

课程体系——

GESP:2026年3月 C++七级 真题及解析-第54张图片-四季读书网
需要无水印PDF格式文件,
或者课程体系咨询,
欢迎扫描下面二维码添加好友垂询。
GESP:2026年3月 C++七级 真题及解析-第55张图片-四季读书网

GESP:2026年3月 C++七级 真题及解析-第56张图片-四季读书网

▍ 声明:本文整理自网络,如有侵权,请联系删除。

本公号刊载此文,是出于合法合理地分享和传播信息,扩大大受众范围,促进学术交流,推动共同进步之目的。公众号持有人郑重声明,本文的发布,将严格遵守相关规定和法律法规,不侵犯任意潜在作者的权益,不改变引用原文(若有)的意图和内容。若有来源标注错误或侵犯了您的合法权益,请随时与我们联系协商,联系(QQ):993225721,我们将及时更正、删除。文章若有幸得到转载,首先,公众号持有人感谢转载人为读者阅读提供了有价值的信息和知识,希望文章能够在被转载的平台上得到更广泛的传播和交流;其次,转载人应充分考虑到转载动作本身所可能带来的相应的风险和责任,包括但不限于侵犯知识产权、侵犯他人权益等行为所引起的法律责任,确保本文的合法传播和使用。同时,本人也极其愿意在转载过程中尽力配合转载人了解、关注、规避、消除相关的潜在风险。若转载人有相任何关疑虑,同样欢迎随时与我们联系协商,联系(QQ):993225721。

喜欢您关注我们哦——

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