版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2026年3月GESP认证C++四级真题(含答案)一、单选题(每题2分,共30分)。1.执行下面程序后,输出为()。intf(intx=2){returnx*3;}intmain(){cout<<f()<<""<<f(4);}A.212B.612C.64D.126答案:B。2.执行下面代码后,输出为()。intmain(){inta=5;int*p=&a;int**q=&p;**q+=7;cout<<a<<""<<*p;}A.55B.1212C.125D.512答案:B。3.已知下面代码,则表达式*(*(p+2)+1)的值为()。inta[3][4]={{1,2,3,4},{5,6,7,8},{9,10,11,12}};int(*p)[4]=a;A.6B.10C.9D.11答案:B。4.执行下面程序后,输出为()。voidfun(inta,int&b,int*c){a+=1;b+=2;*c+=3;}intmain(){intx=1,y=1,z=1;fun(x,y,&z);cout<<x<<""<<y<<""<<z;}A.234B.134C.214D.111答案:B。5.执行下面程序后输出为()。intx=3;voidf(int&x){x+=2;}intmain(){intx=10;f(x);cout<<x<<""<<::x;}A.123B.105C.125D.103答案:A。6.下列关于结构体初始化的写法,正确的是()。A.structPoint{intx,y;};Pointp=(1,2);B.structPoint{intx,y;};Pointp={1,2};C.structPoint{intx,y;};Pointp=newPoint(1,2);D.structPoint{intx,y;};Pointp=<1,2>;答案:B。7.执行下面代码后输出为()。structS{inta;intb;};voidg(Ss){s.a+=10;}voidh(S&s){s.b+=10;}intmain(){Ss{1,2};g(s);h(s);cout<<s.a<<""<<s.b;}A.1112B.112C.112D.12答案:B。8.关于递推算法的描述,正确的是()。A.递推表现为函数自己调用自己B.递推从已知初值出发,利用递推关系逐步推出后续结果。C.递推只能用于指数复杂度问题D.递推一定需要回溯答案:B。9.执行climb(6)的返回值为()。intclimb(intn){if(n<=2)returnn;inta=1,b=2,c=0;for(inti=3;i<=n;i++){c=a+b;a=b;b=c;}returnc;}A.8B.13C.5D.10答案:B。10.某排序算法对如下数据排序(按score升序),则下面关于该排序算法稳定性的描述中,说法正确的是()。初始:(90,'A'),(90,'B'),(80,'C'),(90,'D')。排序后:(80,'C'),(90,'A'),(90,'B'),(90,'D')。A.不稳定,因为出现了相同分数。B.稳定,因为相同score的相对顺序保持为A在B前、B在D前。C.不稳定,因为C跑到前面了。D.无法判断答案:B。11.下面代码试图把数组按升序进行“插入排序”,横线处应填写()。voidins(inta[],intn){for(inti=1;i<n;i++){intkey=a[i];intj=i-1;while(j>=0&&__________){a[j+1]=a[j];j--;}a[j+1]=key;}}A.a[j]<keyB.a[j]>keyC.a[j+1]>keyD.a[j]==key答案:B。12.下列代码段的时间复杂度为()。intcnt=0;for(inti=0;i<n;i++){for(intj=0;j<n;j++){if((i+j)%3==0)cnt++;}}A.O(n)B.O(nlogn)C.O(n2)D.O(2n)答案:C。13.下面哪种方式不能实现将字符串Welcometo2026!输出重定向到文件log.txt()。A.freopen("log.txt","w",stdout);cout<<"Welcometo2026!"<<endl;fclose(stdout);B.std::ofstreamoutFile("log.txt");cout<<"Welcometo2026!"<<endl;outFile.close();C.ofstreamlog_file("log.txt");streambuf*org_cout=cout.rdbuf();cout.rdbuf(log_file.rdbuf());cout<<"Welcometo2026!"<<endl;cout.rdbuf(org_cout);D.std::ofstreamoutFile("log.txt");outFile<<"Welcometo2026!"<<endl;outFile.close();答案:B。14.执行下面程序,输出结果是()。intdivi(inta,intb){if(b==0)throw0;returna/b;}intmain(){try{cout<<divi(10,0);}catch(constchar*msg){cout<<"A";}catch(int){cout<<"B";}}A.AB.BC.程序崩溃D.无输出答案:B。15.下列函数实现排行榜中单个元素的位置调整(类似插入排序的相邻搬移)。当某玩家分数增加,需将其向前移动时,while循环的条件应为()。structPlayer{intscore;};voidup(Playerplayers[],intn,intidx){Playercur=players[idx];inti=idx;while(____________________){players[i]=players[i-1];i--;}players[i]=cur;}A.i>0&&cur.score>players[i-1].scoreB.i>0&&cur.score<players[i-1].scoreC.i<n-1&&cur.score>players[i+1].scoreD.i<n-1&&cur.score<players[i+1].score答案:A。二、判断题(每题2分,共20分)。16.下面代码执行结束时,变量a的值变成15。()。voidadd10(int&x){x+=10;}intmain(){inta=5;add10(a);}答案:正确。17.引用一旦绑定某个变量,就不能再绑定其他变量。()。答案:正确。18.执行下面代码,输出结果为5。()。intmain(){inta[2][3];cout<<&a[1][2]-&a[0][1]<<endl;return0;}答案:错误。19.下面程序可以正常编译并输出10。()。intcalc(intx,inty=10);intcalc(intx){returnx*2;}intcalc(intx,inty){returnx*y;}intmain(){cout<<calc(5);}答案:错误。20.下面程序执行后输出2010。()。intx=10;voidf(){intx=20;cout<<x;}intmain(){f();cout<<x;}答案:正确。21.在C++中,如果声明了一个指针变量但没有显式初始化,该指针会自动被初始化为nullptr。()。答案:错误。22.下面代码没有语法错误。()。structGameCharacter{stringname;intlevel;floatposition_x;floatposition_y;structEquipment{stringweapon;intattack_bonus;intdefense_bonus;}equipment;structSkill{stringname;intdamage;}skills[8];intskill_count;};答案:正确。23.下面程序能够把Hello写入data.txt文件中。()。ofstreamfout("data.txt");cout<<"Hello";fout.close();答案:错误。24.由于选择排序和插入排序的时间复杂度均为O(n2),在任何实际场景下两者的性能表现几乎相同,可以互相替代。()。答案:错误。25.下面用递推方式计算斐波那契数列第n项的程序,时间复杂度是O(2n)。()。intfib(intn){if(n<=1)returnn;intf0=0,f1=1,cur=0;for(inti=2;i<=n;i++){cur=f0+f1;f0=f1;f1=cur;}returncur;}答案:错误。三、编程题(每题25分,共50分)。26.试题名称:山之谷。时间限制:1.0s。内存限制:512.0MB。题目描述:现有一片山地,可以视为一个N行M列的网格图,第i行j列的海拔为hij。如果一个单元格的海拔不高于其所有相邻单元格(相邻包括上、下、左、右、左上、右上、左下、右下,最多8个方向)的海拔,则称该单元格为山谷。请你数一数该片山地中有多少山谷。输入格式:第一行包含2个整数N,M,表示山地的大小。之后N行,每行包含M个整数hi,1,hi,2,hi,M,表示海拔。输出格式:输出1行,包含1个整数C,表示山谷的数量。输入样例。输出样例。样例解释:样例1如图所示,绿色单元格代表山谷。数据范围:保证1≤N,M≤100,1≤hij≤105。参考程序。#include<iostream>usingnamespacestd;intmain(){intn,m;inth[105][105];cin>>n>>m;for(inti=1;i<=n;i++)for(intj=1;j<=m;j++)cin>>h[i][j];for(inti=0;i<=max(n,m)+1;i++)h[i][0]=h[0][i]=h[i][m+1]=h[n+1][i]=1e9;intans=0;for(inti=1;i<=n;i++)for(intj=1;j<=m;j++){boolok=true;for(inti2=i-1;i2<=i+1;i2++)for(intj2=j-1;j2<=j+1;j2++)if(h[i][j]>h[i2][j2]){ok=false;break;}ans+=ok;}cout<<ans;return0;}27.试题名称:礼盒排序。时间限制:1.0s。内存限制:512.0MB。题目描述:商店推出了许多礼盒,每个礼盒中包含k件商品,每件商品都有一个价格。现在需要对这些礼盒进行排序,排序规则如下。(1)先按礼盒总价格从小到大排序。(2)如果总价格相同,按礼盒中最贵商品的价格从小到大排序。(3)如果仍然相同,按礼盒中最便宜商品的价格从小到大排序。(4)如果仍然相同,按礼盒编号从小到大排序。请输出排序后的礼盒编号。输入格式:第一行包含两个整数n和k,分别表示礼盒数量和每个礼盒中商品的数量。接下来n行,每行包含k个整数,第i行表示第i个礼盒中各商品的价格。输出格式:输出一行,包含排序后的礼盒编号(编号从1开始),用空格分隔。输入样例。输出样例。样例解释:4个礼盒分别如下。排序过程。(1)按总价排序,3号礼盒总价最小。(2)其余总价均为10,再按最大值排序,4号最大值更小。(3)1号和2号最大值相同,再按最小值排序,2号更小。最终顺序为:3421。数据范围:保证1≤n≤103,1≤k≤10,商品价格≤104。参考程序。#include<iostream>#include<vector>#include<algorithm>usingnamespacestd;structCombo{intsum,mx,mn,id;};boolcmp(constComb
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 医院医疗废物处理方案及措施
- 人力资源管理制度培训资料
- 中国餐饮连锁品牌发展战略以蜜雪冰城为例
- 中医药治疗神经系统疾病的实践
- 实践中的智慧:校企合作为何能促进教育发展
- 软件工程师项目管理与团队协作
- 软件工程实践与项目管理经验
- 儿童心理健康:成长过程中的心理疏导
- 通信网络基础设施安全规划
- 儿童疫苗接种流程及注意事项
- EBSD入门简介姚宗勇课件
- 口内数字化印模
- 高考数学真题全刷-决胜800题
- GB/T 2007.7-1987散装矿产品取样、制样通则粒度测定方法手工筛分法
- 印刷及纸张基础知识培训课件
- 充分高效利用时间主题班会课件
- 皮带机安装检验批
- 利用导数证明数列不等式问题课件-高考数学二轮复习
- 教师礼仪规范全套课件完整版ppt教程最全
- 汽车可靠性教学课件汇总完整版电子教案全书整套课件幻灯片(最新)
- 五年级下册语文课件-第四单元《9 古诗三首》部编版 (共48张PPT)
评论
0/150
提交评论