版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2025年12月GESP编程能力认证C++等级考试八级真题(含答案)一、单选题(每题2分,共30分)。1.某平台生成“取件码”由6个字符组成:前4位为数字(0-9),后2位为大写字母(A-Z),其中字母不能为I、O。假设数字和字母均可重复使用,要求整个取件码中恰好有2个数字为奇数。共有多少种不同取件码?()。A.1,440,000B.2,160,000C.2,535,000D.8,640,000答案:B。2.下列代码实现了归并排序(MergeSort)的分治部分。为了正确地将数组a的[left,right]区间进行排序,横线处应该填入的是()。voidmerge_sort(inta[],intleft,intright){if(left>=right)return;intmid=(left+right)/2;merge_sort(a,left,mid);________;//在此处填入选项。merge(a,left,mid,right);//合并操作。}A.merge_sort(a,mid,right)B.merge_sort(a,mid+1,right)C.merge_sort(a,left,mid+1)D.merge_sort(a,mid-1,right)答案:B。3.某社团有男生8人、女生7人。现需选出1名队长(性别不限)、1名副队长(性别不限)、2名宣传委员(两人无角色区别,且必须至少1名女生)。假如一人不能兼任多职,共有多少种不同选法?()。A.12012B.11844C.12474D.11025答案:A。4.二项式(2x-y)8的展开式中x5y3项的系数为()。A.-7168B.7168C.-1792D.1792答案:C。5.下面是使用邻接矩阵实现的Dijkstra算法的核心片段,用于求单源最短路径。在找到当前距离起点最近的顶点u后,需要更新其邻接点j的距离。横线处应填入的代码是()。for(intj=1;j<=n;j++){if(!visited[j]&&graph[u][j]<INF){if(________){//在此处填入选项。dis[j]=dis[u]+graph[u][j];}}}A.dis[j]<dis[u]+graph[u][j]B.dis[j]>dis[u]+graph[u][j]C.graph[u][j]>dis[u]+dis[j]D.dis[j]>graph[u][j]答案:B。6.下面程序使用动态规划求两个字符串的最长公共子序列(LCS)长度,横线处应填入的是()。#include<algorithm>#include<string>#include<vector>usingnamespacestd;intlcs_len(conststring&a,conststring&b){intn=(int)a.size(),m=(int)b.size();vector<vector<int>>dp(n+1,vector<int>(m+1,0));for(inti=1;i<=n;i++)for(intj=1;j<=m;j++)if(a[i-1]==b[j-1])dp[i][j]=dp[i-1][j-1]+1;else________;//在此处填入选项。returndp[n][m];}A.dp[i][j]=dp[i-1][j]+dp[i][j-1];B.dp[i][j]=min(dp[i-1][j],dp[i][j-1]);C.dp[i][j]=max(dp[i-1][j],dp[i][j-1]);D.dp[i][j]=max(dp[i-1][j],dp[i][j-1])+1;答案:C。7.已知两个点A(x1,y1)和B(x2,y2)在平面直角坐标系中的坐标。下列C++表达式中,能正确计算这两点之间直线距离的是()。A.sqrt((x1-x2)^2+(y1-y2)^2)B.sqrt(pow(x1-x2,2)+pow(y1-y2,2))C.pow(x1-x2,2)+pow(y1-y2,2)D.abs(x1-x2)+abs(y1-y2)答案:B。8.已知inta=10;执行int&b=a;b=20;后,变量a的值是()。A.10B.20C.30D.编译错误答案:B。9.下列代码的时间复杂度(以n为自变量,忽略常数与低阶项)是()。longlongs=0;for(inti=1;i<=n;i++){for(intj=1;j*j<=i;j++){s+=j;}}答案:C。10.下列程序实现了线性筛法(欧拉筛),用于在O(n)时间内求出1~n之间的所有质数。为了保证每个合数只被其最小质因子筛掉,横线处应填入的语句是()。for(inti=2;i<=n;i++){if(!not_prime[i])primes[++cnt]=i;for(intj=1;j<=cnt&&i*primes[j]<=n;j++){not_prime[i*primes[j]]=true;if(________)break;//在此处填入选项。}}A.i+primes[j]==nB.primes[j]>iC.i%primes[j]==0D.i%primes[j]!=0答案:C。11.在C++语言中,关于类的继承和访问权限,下列说法正确的是()。A.派生类可以访问基类的private成员。B.基类的protected成员在私有继承(privateinheritance)后,在派生类中变为public。C.派生类对象在创建时,会先调用基类的构造函数,再调用派生类自己的构造函数。D.派生类对象在销毁时,会先调用基类的析构函数,再调用派生类自己的析构函数。答案:C。12.当输入6时,下列程序的输出结果为()。#include<iostream>usingnamespacestd;intf(intn){if(n<=3)returnn;returnf(n-1)+f(n-2)+2*f(n-3);}intmain(){intn;cin>>n;cout<<f(n)<<endl;return0;}A.14B.27C.28D.15答案:B。13.从1到999这999个正整数中,十进制表示中数字5恰好出现一次的数有多少个?()。A.243B.271C.300D.333答案:A。14.当输入2023时,下列程序的输出结果为()。#include<iostream>usingnamespacestd;intmain(){intx,ans=0;cin>>x;while(x!=0){x-=x&-x;ans++;}cout<<ans<<endl;return0;}A.7B.8C.9D.11答案:C。15.对连通无向图执行Kruskal算法。已按边权从小到大依次扫描到某条边e=(u,v)。此时在已经构建的部分MST结构中,(u,v)已在同一连通块内。关于边e的处理,下列说法正确的是()。A.必须选入MST,否则可能不连通。B.一定不能选入MST(在此扫描顺序下)。C.若后续出现更大的边权,可以回溯改选e。D.只有当e是当前最小边时才能舍弃。答案:B。二、判断题(每题2分,共20分)。16.若一项任务可用两种互斥方案完成:方案A有m种做法,方案B有n种做法,则总做法数为m+n。()。答案:正确。17.在C++语言中,引用一旦被初始化,就不能再改为引用另一个变量。()。答案:正确。18.快速排序和归并排序的平均时间复杂度都是O(nlogn),但快速排序是不稳定的排序算法,归并排序是稳定的排序算法。()。答案:正确。19.使用math.h或cmath头文件中的函数,表达式sqrt(4)的结果类型为double。()。答案:正确。20.在杨辉三角形中,第n行(从0开始计数,即第n行有n+1个数)的所有数字之和等于2n。()。答案:正确。21.使用二叉堆优化的Dijkstra最短路算法,在某些特殊情况下时间复杂度不如朴素实现的O(v2)。()。答案:正确。22.题n个不同元素依次入栈的出栈序列数与将n个不同元素划分成若干非空子集的方案数相等。()。答案:错误。23.快速排序在最坏情况下的时间复杂度为O(nlogn),可以通过随机化选择基准值(pivot)的方法完全避免退化。()。答案:错误。24.在C++语言中,一个类可以拥有多个构造函数,也可以拥有多个析构函数。()。答案:错误。25.求两个序列的最长公共子序列(LCS)时,使用滚动数组优化空间后,仍然可以还原出具体的LCS序列。()。答案:错误。三、编程题(每题25分,共50分)。26.试题名称:猫和老鼠。时间限制:1.0s。内存限制:512.0MB。题目描述:猫和老鼠所在的庄园可以视为一张由n个点和m条带权无向边构成的连通图。结点依次以1,2…n编号,结点i(1≤i≤n)有价值为ci的奶酪。在m条带权无向边中,第i(1≤i≤m)条无向边连接结点ui与结点vi,边权wi表示猫和老鼠通过这条边所需的时间。猫窝位于结点a,老鼠洞位于结点b。对于老鼠而言,结点u是安全的当且仅当——老鼠能规划一条从结点u出发逃往老鼠洞的路径,使得对于路径上任意结点x(包括结点u与老鼠洞)都有:猫从猫窝出发到结点x的最短时间严格大于老鼠从结点u沿这条路径前往结点x所需的时间。老鼠在拿取安全结点的奶酪时不存在被猫抓住的可能,但在拿取不是安全结点的奶酪时则不一定。为了确保万无一失,老鼠决定只拿取安全结点放置的奶酪。请你计算老鼠所能拿到的奶酪价值之和。输入格式:第一行,两个正整数n,m分别表示图的结点数与边数。第二行,两个正整数a,b分别表示猫窝的结点编号,以及老鼠洞的结点编号。第三行,n个正整数c1,c2…cn,表示各个结点的奶酪价值。接下来m行中的第i行(1≤i≤m)包含三个正整数ui,vi,wi表示图中连接结点ui与结点vi的边,边权为wi。输出格式:输出一行,一个整数,表示老鼠所能拿到的奶酪价值之和。输入样例1。输出样例1。输入样例2。输出样例2。数据范围:对于40%的测试点,保证1≤n≤500,1≤m≤500。对于所有测试点,保证1≤n≤105,1≤m≤105,1≤a,b≤n且a≠b,1≤ui,vi≤n,1≤wi≤109。参考程序。#include<cstdio>#include<algorithm>#include<vector>#include<queue>usingnamespacestd;constintN=1e5+5;constlonglongoo=1e18;intn,m;inta,b;intc[N];vector<pair<int,int>>e[N];longlongdis[N];priority_queue<pair<longlong,int>>q;longlongans;intmain(){scanf("%d%d",&n,&m);scanf("%d%d",&a,&b);for(inti=1;i<=n;i++)scanf("%d",&c[i]);for(inti=1;i<=m;i++){intu,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(inti=1;i<=n;i++)dis[i]=oo;dis[b]=0;q.push(make_pair(-dis[b],b));while(!q.empty()){autop=q.top();q.pop();if(dis[p.second]!=-p.first)continue;intu=p.second;for(autor:e[u]){intv=r.first,w=r.second;if(dis[v]>dis[u]+w){dis[v]=dis[u]+w;q.push(make_pair(-dis[v],v));}}}for(inti=1;i<=n;i++)if(dis[i]<dis[a])ans+=c[i];printf("%lld\n",ans);return0;}27.试题名称:宝石项链。时间限制:1.0s。内存限制:512.0MB。题目描述:小A有一串包含n枚宝石的宝石项链,这些宝石按照在项链中的顺序依次以1,2…n编号,第n枚宝石与第1枚宝石相邻。项链由m种宝石组成,其中第i枚宝石种类为ti。小A想将宝石项链分给他的好朋友们。具体而言,小A会将项链划分为若干连续段,并且需要保证每段都包含全部m种宝石。请帮小A计算在满足条件的前提下,宝石项链最多可以划分为多少段。输入格式:第一行,两个正整数n,m分别表示宝石项链中的宝石的数量与种类数。第二行,n个正整数t1,t2…tn,表示每枚宝石的种类。输出格式:输出一行,一个整数,表示宝石项链最多可以划分的段数。输入样例1。输出样例1。输入样例2。输出样例2。数据范围:对于40%的测试点,保证2≤n≤100。对于所有测试点,保证2≤n≤105,2≤m≤n,1≤ti≤m,保证1,2…m均在t1,t2…tn中出现。参考程序。#include<cstdio>#include<algorithm>usingnamespacestd;constintL=20;constintN=2e5+5;constintoo=1e9;intn,m;intt[N],jump[L][N];intcnt[N],tot;intans;intgo(intu){intcnt=0,ans=0;for(inti=L-1;i>=0;i--)if(cnt+jump[i][u]<=n){
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025-2026学年大班游泳教案英语
- 2025-2026学年艺术家课程教学设计
- 2025-2026学年叼着肉的狗教案
- 四川文化艺术学院《计算机控制技术》2024-2025学年第二学期期末试卷
- 广东轻工职业技术学院《植物细胞工程》2024-2025学年第二学期期末试卷
- 河北工程大学科信学院《商务英语听力(二)》2024-2025学年第二学期期末试卷
- 内江卫生与健康职业学院《律师公证业务》2024-2025学年第二学期期末试卷
- 玉柴职业技术学院《舞蹈教学法Ⅲ(二)》2024-2025学年第二学期期末试卷
- 吉林城市职业技术学院《汽车电子商务》2024-2025学年第二学期期末试卷
- 淮阴工学院《民法学二:物权、人格权》2024-2025学年第二学期期末试卷
- 加油站防恐安全培训
- 酒店线上推广方案
- 感受生活中的法律完整版
- Micro Shield程序初级应用指南
- GB/T 21837-2023铁磁性钢丝绳电磁检测方法
- 苏州山塘街区
- 职业卫生法律法规职业卫生法律法规
- 船体设计师个人简历模板
- 超声心动检查技术 心脏各瓣膜频谱多普勒的正常波形
- 2023学年完整公开课版《元宵节》
- 药物过敏急救处理
评论
0/150
提交评论