GESP:2025年12月 C++八级 真题及解析

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

【答案解析】

1.解释:答案选B。
详细解析见下图——
GESP:2025年12月 C++八级 真题及解析 第7张
2.解释:答案选B。
详细解析见下图——
GESP:2025年12月 C++八级 真题及解析 第8张
相关知识点的复习与拓展:
截至考试当年12月,有关归并排序的实现,可以参考下图加深理解其实现原理——
已关注
关注
重播 分享
3.解释:答案选A。
详细解析见下图——
GESP:2025年12月 C++八级 真题及解析 第9张
4.解释:答案选C。

详细解析见下图——

GESP:2025年12月 C++八级 真题及解析 第10张

5.解释:答案选B。

详细解析见下图——

GESP:2025年12月 C++八级 真题及解析 第11张

6.解释:答案选C。

详细解析见下图——
GESP:2025年12月 C++八级 真题及解析 第12张
GESP:2025年12月 C++八级 真题及解析 第13张
7.解释:答案选B。
详细解析见下图——
GESP:2025年12月 C++八级 真题及解析 第14张
8.解释:答案选B。
详细解析见下图——
GESP:2025年12月 C++八级 真题及解析 第15张
9.解释:答案选C。
详细解析见下图——
GESP:2025年12月 C++八级 真题及解析 第16张
GESP:2025年12月 C++八级 真题及解析 第17张
GESP:2025年12月 C++八级 真题及解析 第18张
10.解释:答案选C。
详细解析见下图——
GESP:2025年12月 C++八级 真题及解析 第19张
11.解释:答案选C。
详细解析见下图——
GESP:2025年12月 C++八级 真题及解析 第20张
GESP:2025年12月 C++八级 真题及解析 第21张
12.解释:答案选B。
详细解析见下图——
GESP:2025年12月 C++八级 真题及解析 第22张
13.解释:答案选A。
详细解析见下图——
GESP:2025年12月 C++八级 真题及解析 第23张
14.解释:答案选C。

详细解析见下图——

GESP:2025年12月 C++八级 真题及解析 第24张

15.解释:答案选B。

详细解析见下图——

GESP:2025年12月 C++八级 真题及解析 第25张
GESP:2025年12月 C++八级 真题及解析 第26张
GESP:2025年12月 C++八级 真题及解析 第27张

【答案解析】

1.解释:正确。

加法原理就是,做一件事,完成它可以有几类不同方案,每一类方案里有若干种独立方法,各类方法互不重叠、互不影响,那么,完成这件事的总方法数 = 各类方法数相加

2.解释:正确

在C++语言中,引用(Reference)具有以下特性:

● 别名:引用是某个已定义变量的别名(Alias)。它不是一种新的数据类型,而是给现有变量起一个新名字。

● 必须初始化:引用在定义时必须同时进行初始化,且必须用一个已存在的变量去初始化它。

● 不可重新绑定:一旦引用被初始化绑定到一个变量上,它就永远绑定在这个变量上,不能再被修改去引用另一个变量。

我们可以用下面的代码复制到编译器中运行,从而加深理解——

#include <iostream>using namespace std;intmain() {    int a = 10;    int b = 20;    int &ref = a;  // ref 引用 a,此时 ref 等价于 a    cout << "ref = " << ref << endl; // 输出 10    ref = b;  // 这行代码不是让 ref 引用 b,而是将 b 的值赋给 a(即 ref)    cout << "a = " << a << endl; // 此时 a 的值变为 20    // C++ 不允许以下操作:    // int &ref; // 错误:未初始化    // ref = &b; // 错误:不能重新绑定引用    return 0;}

程序运行结果如下图所示——

GESP:2025年12月 C++八级 真题及解析 第28张

3.解释:正确。

详细解析见下图——

GESP:2025年12月 C++八级 真题及解析 第29张
GESP:2025年12月 C++八级 真题及解析 第30张
GESP:2025年12月 C++八级 真题及解析 第31张

相关知识点的复习与拓展:

截至考试当年12月,有关十大经典排序算法的特点对比,可以参考下图帮助记忆——

GESP:2025年12月 C++八级 真题及解析 第32张

4.解释:正确。

详细解析如下——

GESP:2025年12月 C++八级 真题及解析 第33张

5.解释:正确。

详细解析如下——

GESP:2025年12月 C++八级 真题及解析 第34张

6.解释:正确。

详细解析如下——

GESP:2025年12月 C++八级 真题及解析 第35张

7.解释:错误

详细解析见下图——

GESP:2025年12月 C++八级 真题及解析 第36张
GESP:2025年12月 C++八级 真题及解析 第37张

8.解释:错误

详细解析见下图——

GESP:2025年12月 C++八级 真题及解析 第38张

9.解释:错误

一个类可以有多个构造函数(即构造函数重载),根据参数列表的不同,可以定义不同的初始化方式。

一个类只能有一个析构函数,析构函数没有参数、不能重载、也不能被显式调用,它的形式是固定的。

10.解释:错误
详细解析如下图所示——
GESP:2025年12月 C++八级 真题及解析 第39张
GESP:2025年12月 C++八级 真题及解析 第40张
GESP:2025年12月 C++八级 真题及解析 第41张
GESP:2025年12月 C++八级 真题及解析 第42张
GESP:2025年12月 C++八级 真题及解析 第43张

GESP 2025年12月 C++八级 猫和老鼠

#include<cstdio>#include<algorithm>#include<vector>#include<queue>using namespace std;const int N = 1e5 + 5;const long long oo = 1e18;int n, m;int a, b;int c[N];vector<pair<intint>> e[N];long long dis[N];priority_queue<pair<long longint>> q;long long ans;intmain(){    scanf("%d%d", &n, &m);    scanf("%d%d", &a, &b);    for (int i = 1; i <= n; i++)        scanf("%d", &c[i]);    for (int i = 1; i <= m; i++)    {        int u, v, w;        scanf("%d%d%d", &u, &v, &w);        e[u].emplace_back(make_pair(v, w));        e[v].emplace_back(make_pair(u, w));    }    for (int i = 1; i <= n; i++)        dis[i] = oo;    dis[b] = 0;    q.push(make_pair(-dis[b], b));    while (!q.empty())    {        auto p = q.top();        q.pop();        if (dis[p.second] != -p.first)            continue;        int u = p.second;        for (auto r : e[u])        {            int v = r.first, w = r.second;            if (dis[v] > dis[u] + w)            {                dis[v] = dis[u] + w;                q.push(make_pair(-dis[v], v));            }        }    }    for (int i = 1; i <= n; i++)        if (dis[i] < dis[a])            ans += c[i];    printf("%lld\n", ans);    return 0;}
代码思路——
GESP:2025年12月 C++八级 真题及解析 第44张

GESP:2025年12月 C++八级 真题及解析 第45张
GESP:2025年12月 C++八级 真题及解析 第46张

GESP 2025年12月 C++八级 宝石项链

#include<bits/stdc++.h>using namespace std;const int N=2e5+5// 开两倍!!int t[N],nxt[N][20],sum[N<<2],mx[N<<2]; // 线段树四倍空间// 宏定义左右儿子#define _L i<<1#define _R i<<1|1voidpushup(int i)// 上推维护    sum[i]=sum[_L]+sum[_R];    mx[i]=max(mx[_L],mx[_R]);}voidupdate(int i,int l,int r,int x,int k)// 单点修改    if(l==r){        sum[i]=1,mx[i]=k;        return;    }    int mid=(l+r)>>1;    if(x<=mid) update(_L,l,mid,x,k);    else update(_R,mid+1,r,x,k);    pushup(i);}intmain(){    int n,m,ans=0;    cin>>n>>m;    for(int i=1;i<=n;i++){        cin>>t[i];        t[n+i]=t[i]; // 破环成链    }    for(int i=2*n;i>=1;i--){        update(1,1,m,t[i],i); // 将颜色 t[i] 改为最近出现的位置 i        if(sum[1]==m) nxt[i][0]=mx[1]; // 若有 m 种颜色 更新下标        else nxt[i][0]=2*n+1// 不存在合法段 设为极大值        for(int j=1;(1<<j)<=2*n;j++) // 倍增预处理            nxt[i][j]=nxt[nxt[i][j-1]+1][j-1];    }    for(int i=1;i<=n;i++){        int pos=i,cnt=0;        for(int j=19;j>=0;j--){ // 倍增得出答案            // 没有预处理到或超出序列终点则跳过            if(!nxt[pos][j] or nxt[pos][j]>n+i-1continue;            pos=nxt[pos][j]+1,cnt+=(1<<j); // 更新位置和数量        }        ans=max(ans,cnt);    }    cout<<ans;}
代码思路——
GESP:2025年12月 C++八级 真题及解析 第47张
GESP:2025年12月 C++八级 真题及解析 第48张

课程体系——

GESP:2025年12月 C++八级 真题及解析 第49张
需要无水印PDF格式文件,
或者课程体系咨询,
欢迎扫描下面二维码添加好友垂询。
GESP:2025年12月 C++八级 真题及解析 第50张

GESP:2025年12月 C++八级 真题及解析 第51张

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

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

喜欢您关注我们哦——

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