版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2025年9月GESP编程能力认证C++等级考试二级真题(含答案和解析-在末尾)一、单选题(每题2分,共30分)。1.人工智能现在非常火,小杨就想多了解一下,其中就经常听人提到“大模型”。那么请问这里说的“大模型”最贴切是指()。A.大电脑模型B.大规模智能C.智能的单位D.大语言模型2.在TCP协议中,完成连接建立需要通过()握手。A.一次B.二次C.三次D.四次3.下面的C++代码用于输入姓名,然后输出姓名,正确的说法是()。stringXingMing;cout<<"请输入您的姓名:";cin>>XingMing;cout<<XingMing;A.XingMing是汉语拼音,不能作为变量名称。B.可以将XingMing改为XingMingC.可以将XingMing改为xingmingD.可以将XingMing改为Xing-Ming4.下面C++代码用于获得正整数N的第M位数,如N等于1234,M等于2,则输出3。此题假设M的值大于等于1且小于等于N的位数。横线处应填入的代码是()。intN,M,div=1;cout<<"请输入一个正整数:";cin>>N;cout<<"请输入从右到左取第几位数:";cin>>M;for(inti=0;i<(M-1);i++)div*=10;cout<<(______________);A.N%div/10B.N/div/10C.N%div%10D.N/div%105.下面C++代码执行,其输出是()。a,b=3,4;c=a==b;cout<<a<<''<<b<<''<<c;A.340B.333C.444D.以上都不对6.某种编号的规则是“XX-Y”,其中XX从00到11,Y从0到9。第1个编号是00-0,第2个编号是01-1……第12个编号11-1,第13个编号00-2,即其编码规则是XX和Y同时增1,到XX到11时下一个变为00,Y到9时,下一个变为0。下面的C++代码用于生成第N个编号,横线处应填上的代码是()。cout<<"请输入编号位置:";cin>>N;part1=N%_____;part2=N%_____;if(part1<10)printf("0%d-%d\n",part1,part2);elseprintf("%d-%d\n",part1,part2);A.1210B.1010C.119D.997.下面的C++代码执行后其输出是()。cnt=0;for(inti=-10;i<10;i++)for(intj=0;j<i;j++)cnt+=1;cout<<cnt;A.145B.125C.55D.458.下面C++代码执行后其输出是()。for(i=1;i<12;i++){if(i%2==0)continue;for(j=0;j<i;j++)if(i*j%2)break;}if(i>=12)cout<<(i*j);A.110B.12C.不确定D.无输出9.阅读下面的C++代码,其中变量都是整型,则说法正确的是()。cin>>a>>b;while(b!=0){remainder=a%b;a=b;b=remainder;}cout<<a;A.b不能为0,因为a%b将导致错误。B.a必须小于b,否则a%b将导致错误。C.a和b都必须为正整数,否则a%b将导致错误。D.如果a输入为0,则不管b的输入值是什么,输出值的绝对值都是abs(b)。10.下面C++代码执行后输出是()。num=0;while(num<=5){num+=1;if(num==3)continue;printf("%d#",num);}A.1#2#4#5#6#B.1#2#4#5#6C.1#2#3#4#5#6#D.1#2#3#4#5#611.下面C++代码用于记录多个输入数中的最大数和最小数(输入-999则输入结束),相关说法错误的是()。cin>>now_num;min_num=max_num=now_num;while(now_num!=-999){if(max_num<now_num)max_num=now_num;if(min_num>now_num)min_num=now_num;cin>>now_num;}cout<<min_num<<''<<max_num;A.程序运行时如果第一个数输入-999,则输出将是-999-999。B.程序输入过程中,如果输入的第一个数不是-999,则如果待输入的数据中没有-999,则程序能求出已输入整数中的最大数和最小数。C.如果用于输入考试成绩,即成绩中不可能有-999,则程序能求出已输入成绩中的最高成绩和最低成绩。D.可以将cin>>now_num;移动到while(now_num!=-999){下面,结果不变。12.下面C++代码执行后输出与5有关数的数量。“与5有关的数”定义为含有5或者能被5整除的数。相关说法正确的是()。cnt=0;for(i=1;i<1000;i++){if(i%5==0){cnt+=1;continue;}j=i;while(j>0)if(j%10==5){cnt+=1;break;}elsej/=10;}cout<<cnt;A.删除代码中continue不影响程序执行结果B.删除j=i并将while循环内的j修改为i,不影响程序执行结果。C.代码中break修改为j=0,不影响程序执行结果。D.将while(j>0)修正为while(j>=0)不影响程序执行的结果13.下面C++代码实现输出如下图形,应该在横线处填入的代码是()。cout<<"请输入层数:";cin>>N;K=1;for(i=1;i<N+1;i++){for(int_=1;_<___________;_++)cout<<"";for(int_=1;_<________;_++){cout<<K;K+=1;if(K==10)K=1;}cout<<'\n';}A.N-i+1i+1B.N-iiC.NiD.N-ii+114.下面C++代码执行,其输出是()。inta=9,b=27;a='a'+'b';b='a'-'b';a=a-b;cout<<a<<''<<b<<endl;A.196-1B.279C.9897D.不确定15.有个无限长的链,由3种外形相同但材质不同的环链成。3种环的重量分别是3、4、6克,相同材质的多个环每12克一组,分别记为G3、G4、G6。链依次G3、G4、G6、G3、G4、G6……同时对链上所有环从头依次编号1、2、3、4……输入正整数代表环编号,求该编号前所有环(不含该环本身)的重量。下面是C++代码是实现,正确说法是()。iintN,G,R;intwc=0;cin>>N;//输入正整数。G=(N-1)/9;//L1。R=(N-1)%9;//L2:保存余数。wc+=36*G;if((1<=R)&&(R<=4))wc+=3*R;//L3。elseif((5<=R)&&(R<=7))wc+=4*R;//L4。elseif(R==8)wc+=6*(R-1);//L5。cout<<wc<<endl;A.必须同时修改L1和L2代码行才能实现功能B.必须同时修改L3和L4代码行才能实现功能C.必须同时修改L3和L5代码行才能实现功能D.其他说法都不对二、判断题(每题2分,共20分)。16.在集成开发环境里调试程序时,要注意不能修改源程序,因为如果修改,就要终止调试、关闭该文件并重新打开,才能再次开始调试。()。A.正确B.错误17.在C++代码中,假设N为正整数且大于100,则N/100将舍弃个位和十位,如N为1234则cout<<(N/100)将输出12。如果N小于100,则其值为0。()。A.正确B.错误18.下列C++代码执行后将输出1,因为a确实小于20和10。()。a=5;cout<<(a<10and20);A.正确B.错误19.下面的C++代码中变量都是整型,则执行后将输出1。()。x,y,z=5,10,15;result=x<y<z;cout<<result;A.正确B.错误20.下面C++代码执行时如输入99.99,将输出及格两个汉字。()。intscore;cout<<"请输入学生成绩:";cin>>score;if(score>=60)printf("及格");elseprintf("不及格");A.正确B.错误21.执行下面的C++代码时输入123,则输出是DCB。()。inta;cin>>a;while(a){cout<<'A'+a%10;a/=10;}A.正确B.错误22.下面的C++代码执行后将输出+#+#3#。()。inti;for(i=0;i<3;i++){if(i==2)continue;printf("+#");}cout<<i<<'#';A.正确B.错误23.下列C++代码用于求斐波那契数列,即第1个数0,第2个数1,从第三个数开始,是前两个数之和。如果输入的值为大于1的正整数,该代码能实现。()。cin>>n;a=0,b=1;for(intj=0;j<n;j++){cout<<a<<"";b=b+a;a=b-a;}A.正确B.错误24.下面的C++不能实现如下输出,但如果将L1标记的cout<<0行移动if块外面,或者说移动到L2标记行,则可以。()。intn,i,j;cout<<"请输入矩阵大小n:";cin>>n;for(i=0;i<n;i++){for(j=0;j<n;j++){if(i==j){cout<<i+1;continue;cout<<0;//L1。}//L2。}printf("\n");}A.正确B.错误25.题C++代码cout<<('5'+4);执行后的输出为9。()。A.正确B.错误三、编程题(每题25分,共50分)。26.试题名称:优美的数字。时间限制:1.0s。内存限制:512.0MB。题目描述:如果一个正整数在十进制下的所有数位都相同,小A就会觉得这个正整数很优美。例如,正整数6的数位都是6,所以6是优美的。正整数99的数位都是9,所以99是优美的。正整数123的数位不都相同,所以123并不优美。小A想知道不超过n的正整数中有多少优美的数字。你能帮他数一数吗?输入格式:一行,一个正整数n。输出格式:一行,一个正整数,表示不超过n的优美正整数的数量。数据范围:对于所有测试点,保证1≤n≤2025。27.试题名称:菱形。时间限制:1.0s。内存限制:512.0MB。题目描述:小A想绘制一个菱形。具体来说,需要绘制的菱形是一个n行n列的字符画,n是一个大于1的奇数。菱形的四个顶点依次位于第1行、第1列、第n行、第n列的正中间,使用#绘制。相邻顶点之间也用#连接。其余位置都是.例如,一个5行5列的菱形字符画如下。给定n,请你帮小A绘制对应的菱形。输入格式:一行,一个正整数n。输出格式:输出共n行,表示对应的菱形。数据范围:对于所有测试点,保证3≤n≤29并且n为奇数。答案解析如下。1.答案:D。解析:在人工智能领域,“大模型”通常指“大语言模型”(LargeLanguageModel,LLM),是基于海量数据训练、参数量非常大的AI模型,如ChatGPT。A、B、C选项均不专业或表达不准确,正确答案是D。2.答案:C。解析:可以把TCP三次握手想象成两个人打电话确认通话。①客户端说:“喂,你能听到吗?”(SYN)。②服务器回:“能听到,你能听到我吗?”(SYN+ACK)。③客户端回应:“能听到,我们开始吧。”(ACK)。这样双方都确认了“能发”和“能收”,连接才正式建立。3.答案:C。解析:A选项字母可做变量,B选项中含有空格,C选项可行,D选项含有-连字符。4.答案:D。解析:模拟拆位取数的过程,每次都将原数N除以10的倍数,以去掉最后若干位,之后通过对10取余来获得最后一位,从而完成模拟拆位。5.答案:D。解析:假设题目中的变量都已提前声明。a,b=3,4在C++中不是多变量赋值语法,是一个逗号表达式语句,只有b被赋值为3,而c被赋值为默认值与3比较的结果。6.答案:A。解析:%运算符用于求余数,N%12和N%10可将编号按周期规律分解为两个部分。当N小于12时,part1为N本身,确保前段编号在00到11范围内;N%10使后段始终为个位数。结合输出格式要求,选项A的12和10能正确实现该逻辑。7.答案:D。解析:外层循环变量i从-10到9,内层循环j从0到i-1。当i≤0时,j的循环条件不成立,无法进入内层循环;仅当i>0时,内层循环执行i次。因此,cnt累加过程为1+2+…+9=45。故正确答案为D。8.答案:B。解析:外层循环i从1到11,当i为偶数时continue跳过;i为奇数时进入内层循环j从0到i-1。但内层if判断i*j%2为真时break,由于i为奇数,j从0开始,首次j=0时i*j=0,不满足break条件,随后j递增,一旦j为奇数则i*j为奇数,触发break。因此内层循环在j=1时即退出。最终i=11结束后i++变为12,跳出外层循环,执行if(i>=12)输出i*j,此时j未被重新定义,值为上次循环结束时的1,故输出12。9.答案:D。解析:当a输入为0时,remainder=0%b=0,随后a被赋值为b,b被赋值为0,循环结束,最终输出a的值即为b的初始值。若b为负数,则输出其绝对值为|b|,因此D选项正确。10.答案:A。解析:当num=3时,continue语句生效,跳过printf语句,不输出3#,其余情况下均执行输出。循环从num=1到num=6,每次递增1,当num=6时仍满足num<=5的条件,进入循环并输出6#,随后num变为7,不再满足条件,循环结束。因此输出为1#2#4#5#6#。注意,当num=6时仍满足num≤5的判断条件,故正确答案为A。11.答案:D。解析:将cin>>now_num;放在while循环体内首行会导致首次输入无法读取,且条件判断会基于未初始化的now_num,引发逻辑错误或未定义行为。原代码先读取第一个数并赋值给min_num和max_num,确保了后续比较的正确性,因此D选项的说法错误,移动后程序无法正常工作。12.答案:C。解析:C选项正确,因当个位为5时,已统计该数,break用于跳出当前while循环,避免重复判断;若改为j=0,会使j在下次循环条件判断时为0,从而退出while循环,效果等同于break,因此程序逻辑不变,统计结果一致。其他选项均会引发错误或改变行为:A项删除continue可能导致重复计数;B项直接修改i将破坏for循环变量;D项改为j>=0会导致死循环,因j始终非负且无法退出。13.答案:A。解析:当i从1开始递增时,每行星号前的空格数应逐行递减,因此首空应填入N-i+1,确保第i行前输出N-i+1个空格,使图形呈右对齐的三角形排列。次空控制每行输出的数字个数,观察图形可知第i行应输出i个数字,因此第二空应填i。选项A中第一空为N-i+1,第二空为i+1,但实际需输出i个数字,故此处存在矛盾;重新审视发现,每行数字连续递增且从1到9循环,结合K的更新逻辑与图形行数匹配,最终确定第二空应为i,对应正确选项应为B。14.答案:A。解析:字符a+b的和为97+98,a-b的差为97-98,即a的值为196,b的值为-1,最终结果为A。15.答案:D。解析:根据题意,每9个环为一个周期,分别对应G3、G4、G6的组合,每个周期总重为3×4+4×3+6×2=12+12+12=36克。对于输入编号N,前N-1个环的重量由完整周期数G和剩余环数R决定。G=(N-1)/9正确计算了完整周期数,R=(N-1)%9正确得出余下环的位置。wc+=36*G累加整周期重量无误。但后续判断中,R∈[1,4]对应G3组前4个3克环,应加3×R;R∈[5,7]对应G4组3个4克环,应加4×(R-4)+12,而非4×R;R=8时为G6组第1个6克环,应加6×1+24,而代码wc+=6*(R-1)即6×7,明显错误。因此L4与L5均错,仅改一处无法修复,D正确。16.答案:错误。解析:现代集成开发环境(IDE)通常允许在调试过程中修改源代码并继续运行(称为热替换或即时编译),即使不支持此功能,也无需关闭文件重新打开,只需重新编译并运行即可,因此题目说法错误。17.答案:正确。解析:在C++中,整数除法会自动向下取整。当N为正整数且大于100时,N/100相当于去掉个位和十位数字,保留百位及以上部分,例如1234/100结果为12。若N小于100,则商不足1,结果为0。因此该说法正确。18.答案:错误。解析:在C++中,逻辑运算符的优先级和结合性需特别注意。表达式a<10and20中,and的优先级低于比较运算符,因此实际等价于(a<10)and20。由于原因错误,答案仍为错。19.答案:正确。解析:假设本题中的变量都已经提前声明,第一行将变量z设为5,其他式子无意义。在C++中,关系运算符具有左结合性,表达式x<y<z等价于(x<y)<z。无论x<y为真或假,结果为1或0,接着判断<z(即<5),恒为真,因此最终输出1。20.答案:正确。解析:当输入99.99时,由于score为整型,将读取到99,score值为99。99≥60为真,程序执行printf("及格"),输出“及格”两个汉字。因此该说法正确。21.答案:错误。解析:当输入123时,a的值为123。进入while循环后,a%10依次得到3、2、1,'A'+3='D','A'+2='C','A'+1='B',因此输出顺序为DCB。但由于整数和字符相互运算,得到的结果是整数类型,需强制转换为字符类型才能正确输出对应字母。22.答案:正确。解析:i从0开始循环,当i=0和i=1时均执行printf("+#"),输出"+#"两次;i=2时触发continue,跳过本次循环,不输出。循环结束后i值为3,接着输出i的值3和"#",最终结果为"+#+#3#"。23.答案:正确。解析:当n≥1时,循环依次输出斐波那契数列的前n项。初始a=0、b=1,每次输出a后更新b为a+b,a为原b值,即实现a、b向后推进一位。对于n>1的情况,数列能正确生成;n=1时仅输出第一项0,也符合要求,因此代码逻辑正确。24.答案:正确。解析:原代码中L1行的“cout<<0;”位于continue语句后,无法执行,导致非对角线元素未输出0。将该行移至if块外(L2处),则每次循环中若不满足i==j,会正常输出0,从而正确生成题目要求的矩阵。25.答案:错误。解析:字符'5'的ASCII码值为53,执行('5'+4)相当于53+4=57,结果是ASCII码为57的字
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 26年阿尔茨海默病心理干预
- 26年老年热射病应急处理课件
- 高考志愿就业方向解析
- 职业规划案例项目化指南
- 创业学专业就业前景
- 脑卒中健康手工制作指导
- 个人职业发展规划图表
- 煤炭开发合同2026年勘探深度
- 油门加速“二次点火”成长为先
- 福建省连城县2025-2026学年高一地理下学期3月月考试题
- 越秀地产招聘笔试题库2026
- 2026湖北神农架林区公安局招聘辅警22人考试模拟试题及答案解析
- 2026新疆阿克苏地区拜城县面向社会招聘警务辅助人员200人笔试备考试题及答案解析
- 2026年江苏基层法律服务工作者考试试题与参考答案
- 超星尔雅学习通《大学生国家安全教育(中国人民警察大学)》2026章节测试及答案
- 2025年全国应急管理普法知识竞赛试题库和答案
- 2025至2030中国征信行业信用修复服务市场发展研究报告
- 眼镜厂安全生产管理制度
- 110接处警建设方案
- 2026公共营养师之三级营养师题库附答案
- (正式版)DB61∕T 1989-2025 《 土地整治项目耕地等别评定及产能评估技术规范》
评论
0/150
提交评论