版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2024年6月GESP编程能力认证C++等级考试七级真题(含答案和解析-在末尾)一、单选题(每题2分,共30分)。1.下列C++代码的输出结果是()。#include<iostream>#include<cmath>usingnamespacestd;intmain(){cout<<sin(3.1415926/2);return0;}A.0B.1C.0.5D.0.70712.对于如下图的二叉树,说法正确的是()。A.先序遍历是132。B.中序遍历是123。C.后序遍历是312。D.先序遍历和后序遍历正好是相反的。3.已知两个序列s1={1,3,4,5,6,7,7,8,1}、s2={3,5,7,4,8,2,9,5,1},则它们的最长公共子序列是()。4.关于序列{2,7,1,5,6,4,3,8,9},以下说法错误的是()。A.{2,5,6,8,9}是它的最长上升子序列。B.{1,5,6,8,9}是它的最长上升子序列。C.{7,5,4,3}是它的最长下降子序列。D.{1,5,6,8,9}是它的唯一最长上升子序列。5.关于图的深度优先搜索和广度优先搜索,下列说法错误的是()。A.二叉树是也是一种图。B.二叉树的前序遍历和后序遍历都是深度优先搜索的一种。C.深度优先搜索可以从任意根节点开始。D.二叉树的后序遍历也是广度优先搜索的一种。6.对于如下二叉树,下面访问顺序说法错误的是()。A.HDEBFIGCA不是它的后序遍历序列B.ABCDEFGHI是它的广度优先遍历序列C.ABDHECFGI是它的深度优先遍历序列D.ABDHECFGI是它的先序遍历序列7.以下哪个方案不能合理解决或缓解哈希表冲突()。A.丢弃发生冲突的新元素。B.在每个哈希表项处,使用不同的哈希函数再建立一个哈希表,管理该表项的冲突元素。C.在每个哈希表项处,建立二叉排序树,管理该表项的冲突元素。D.使用不同的哈希函数建立额外的哈希表,用来管理所有发生冲突的元素。8.在C++中,关于运算符&,下面说法正确的是()。9.下面关于图的说法正确的是()。A.在无向图中,环是指至少包含三个不同顶点,并且第一个顶点和最后一个顶点是相同的路径。B.在有向图中,环是指一个顶点经过至少另一个顶点到自身的路径。C.在有向图中,如果任意两个顶点之间都存在一条边,则这个图一定是强连通图。D.在有向图中,所有顶点的入度和出度的总和就是图的边数的两倍。10.图的存储和遍历算法,下面说法错误的是()。A.图的深度优先搜索和广度优先搜索对有向图和无向图都适用。B.图的深度优先搜索和二叉树的先序遍历道理是不一样的。C.图的深度优先搜索需要借助栈来完成。D.邻接表中,顶点vi对应链表中的边结点数目正好是顶点vi的度。11.如下图所示的邻接表结构,表示的是下列哪个选项中的图()。A.B.C.D.12.如下图所示的邻接矩阵(inf表示无穷大),表示的是下列哪个选项中的图()。A.B.C.D.13.下面程序的输出为()。#include<iostream>usingnamespacestd;intfib(intn){if(n<=1)returnn;returnfib(n-1)+fib(n-2);}intmain(){cout<<fib(6)<<endl;return0;}A.5B.8C.13D.无法正常结束。14.下面count_triple函数的时间复杂度为()。intcount_triple(intn){intcnt=0;for(inta=1;a<=n;a++)for(intb=a;a+b<=n;b++){intc=sqrt(a*a+b*b);if(a+b+c>n)break;if(a*a+b*b==c*c)cnt++;}returncnt;}A.O(n)B.O(n2)C.O(n3)D.O(n4)15.下列选项中,哪个可能是下图的深度优先遍历序列()。二、判断题(每题2分,共20分)。16.题C++语言中,表达式6&5的结果类型为int、值为1。()。A.正确B.错误17.冒泡排序是稳定的排序算法()。A.正确B.错误18.唯一分解定理(算术基本定理)指出,每个大于1的自然数都可以唯一地分解成若干个素数的乘积。因此,我们可以很容易的对给定的自然数n进行质因数分解,时间复杂度仅为O(log(n))。()。A.正确B.错误19.题C++语言中,可以为同一个类定义多个构造函数()。A.正确B.错误20.使用math.h或cmath头文件中的对数函数,表达式log(128)的结果类型为double、值约为7.0。()。A.正确B.错误21.一颗N层的二叉树,至少有2N-1个节点()。A.正确B.错误22.非连通图不能使用广度优先搜索算法进行遍历()。A.正确B.错误23.现使用有N个表项的哈希表,从M个元素中进行查找。该哈希表为解决哈希函数冲突,为每个表项处建立单链表存储冲突元素。其查找操作的最坏情况时间复杂度为O(M)。()。A.正确B.错误24.动态规划有递推实现和递归实现,对于很多问题,通过记录子问题的解,两种实现的时间复杂度是相同的()。A.正确B.错误25.泛洪算法的递归方法容易造成溢出,因此大的二维地图算法中,一般不用递归方法()。A.正确B.错误三、编程题(每题25分,共50分)。26.试题名称:黑白翻转。时间限制:1.0s。内存限制:512.0MB。题面描述:小杨有一棵包含n个节点的树,这棵树上的任意一个节点要么是白色,要么是黑色。小杨认为一棵树是美丽树当且仅当在删除所有白色节点之后,剩余节点仍然组成一棵树。小杨每次操作可以选择一个白色节点将它的颜色变为黑色,他想知道自己最少要执行多少次操作可以使得这棵树变为美丽树。输入格式:第一行包含一个正整数n,代表树的节点数。第二行包含n个非负整数a1,a2,……,an,其中如果ai=0,则节点i的颜色为白色,否则为黑色。之后n-1行,每行包含两个正整数xi,yi,代表存在一条连接节点xi和yi的边。输出格式:输出一个整数,代表最少执行的操作次数。样例1。样例解释:将节点1和3变为黑色即可使这棵树变为美丽树,此时删除白色节点5,剩余黑色节点仍然组成一棵树。数据范围。对于全部数据,保证有1≤n≤105,0≤ai≤1。27.试题名称:区间乘积。时间限制:1.0s。内存限制:512.0MB。题面描述:小杨有一个包含n个正整数的序列A=[a1,a2,……,an]。小杨想知道有多少对<L,r>(1≤L≤r≤n)满足al×aL+1×……×ar,为完全平方数。一个正整数x为完全平方数当且仅当存在一个正整数y使得x=y×y。输入格式:第一行包含一个正整数n,代表正整数个数。第二行包含n个正整数a1,a2,……,an,代表序列A。输出格式:输出一个整数,代表满足要求的<L,r>数量。样例1。样例解释:满足条件的<L,r>有<3,3>和<1,5>。数据范围。对于全部数据,保证有1≤n≤105,0≤ai≤30。答案解析如下。1.答案:B。解析:计算机中的三角函数使用的是弧度,3.1415926可以看作Π,也就是求sin(Π/2)=1。2.答案:D。解析:先序遍历为123,中序遍历为132,后序遍历为321,答案选D。3.答案:A。解析:最长公共子序列指最长的序列满足即是s1的子序列又是s2的子序列,选项A满足要求且是最长的。4.答案:D。解析:{2,5,6,8,9}也是它的最长上升子序列,并不唯一。5.答案:D。解析:广度优先搜索往往使用队列按照节点的深度有序的方式依次遍历,很容易发现,后序遍历中节点的深度并不有序。6.答案:A。解析:后序遍历可以记作左右根,上图的后序遍历为HDEBFIGCA,选项A错误。7.答案:A。解析:不能丢弃发生冲突的新元素。8.答案:C。解析:运算符&是按位与,结果类型为整类型,A错误。数字3的二进制为11,6的二进制为110,所以3&6=2。注意B和D选项中,011为八进制的9,而111、110、101则均为十进制。9.答案:D。解析:每条有向边都会贡献一个入度和一个出度,所以所有顶点的入度和出度的总和就是图的边数的两倍,选项D正确。10.答案:B。解析:图的深度优先搜索和二叉树的先序遍历都基于深度优先的原理。11.答案:C。解析:注意到存边方式是邻接表,0号点(V1)连向的是3号点(V4)和1号点(V2),1号点连向的是4,2,0号点,2号点连向的是4,3,1号点,依次类推,可以选出正确选项C。12.答案:A。解析:注意到存边方式是邻接矩阵,0连向2,3,距离分别是12和30,1不连向任何人,2连向4,距离是32,依次类推,可以选出正确答案A。13.答案:B。解析:容易发现这是斐波那契数列,可以使用递推的方式,算出斐波那契数列的前6项分别是1,1,2,3,5,8,答案为B。14.答案:B。解析:两层for循环,每层for循环的上界均为n,总时间复杂度为O(n2)。15.答案:C。解析:深度优先遍历需要按照能走就走的原则进行遍历,A选项5后面应该是6,B选项3后面应该是7,D选项8后面应该是5。16.答案:错误。解析:6的二进制位110,5二进制为101,6&5=4。17.答案:正确。解析:稳定的排序算法指值相同的元素在排序前后的相对顺序不变,冒泡排序是稳定的排序算法。18.答案:错误。解析:对n进行质因数分解的时间复杂度为O(sqrt(n))。19.答案:正确。解析:C++会根据参数的不同选择正确的构造函数。20.答案:错误。解析:log默认是以e为底。21.答案:错误。解析:N层的二叉树,最少的节点数量为N。22.答案:错误。解析:非连通图需要进行多次广度优先搜索算法。23.答案:正确。解析:如果M个元素全部冲突,则需要去单链表进行查询,时间复杂度为O(M)。24.答案:正确。解析:使用递归算法并记录子问题的解就是动态规划中的记忆化搜索,和递推算法实现动态规划的时间复杂度一致。25.答案:正确。解析:C++中栈空间一般比较小,递归层数过大容易造成栈溢出。26.参考程序。#include<bits/stdc++.h>usingnamespacestd;constintN=1e5+10;vector<int>g[N];intcol[N],num[N];intans,sum;voidcalc(intx,intfa){num[x]+=col[x];for(autoi:g[x]){if(i!=fa){calc(i,x);num[x]+=num[i];}}}voiddfs(intx,intfa){intfl=0;if(num[x]!=sum&&num[x]!=0)fl=1;for(autoi:g[x]){if(i!=fa){dfs(i,x);if(num[i]!=0&&num[i]!=num[x]-col[x]){fl=1;}}}if(fl==1&&col[x]!=1)ans++;}intmain(){intn;cin>>n;for(inti=1;i<=n;i++){cin>>col[i];sum+=col[i];}for(inti=1;i<n;i++){intu,v;cin>>u>>v;g[u].push_back(v);g[v].push_back(u);}calc(1,0);dfs(1,0);cout<<ans<<"\n";}27.参考程序。#include<bits/stdc++.h>usingnamespacestd;map<int,int>mp;constintN=1e5+10;intcalc(intx){intres=0;for(inti=2;i*i<=x;i++){if(x%i==0){while(x%i==0){x/=i;res^=(1<<(i-1));}}}if(x!=1){res^=(1<<
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 家庭生活支撑承诺函6篇
- 大数据行业数据分析与挖掘方案
- 公共客运事业优先发展责任书(5篇)
- 财务资金审批流程标准化文档
- 个人信用修复保证函4篇
- 核实物流运输费用回复函7篇
- 小学主题班会课件:生活实践与安全教育
- 小学主题班会课件:家校合一共育未来
- 团结友爱大家庭携手共进成栋梁小学主题班会课件
- 公司公益责任持续发展承诺函3篇
- 健康膳食解码智慧树知到期末考试答案章节答案2024年佳木斯大学
- 初高中数学课标比较与分析
- 护士在不同生命阶段的护理需求
- 总包对分包单位管理制度
- 美术教案-4-6岁-《千里江山图》
- 档案整理及数字化服务方案(技术标 )
- 磁生电教案(大赛一等奖作品)
- 部编版小学五年级语文下册第六单元综合测试卷(含答案)
- 货币银行学智慧树知到答案章节测试2023年上海财经大学浙江学院
- GB/T 18742.3-2002冷热水用聚丙烯管道系统第3部分:管件
- GB/T 18601-2001天然花岗石建筑板材
评论
0/150
提交评论