版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2025年9月GESP编程能力认证C++等级考试一级真题(含答案和解析-在末尾)一、单选题(每题2分,共30分)。1.人工智能现在非常火,小杨就想多了解一下,其中就经常听人提到“大模型”。那么请问这里说的“大模型”最贴切是指()。A.大电脑模型B.大规模智能C.智能的单位D.大语言模型2.小杨这学期刚开学就选修了一门编程课,然后就想编写程序来计算1到10001之间的所有偶数的和。他希望程序采用简单累加整数的方法,同时希望源程序尽可能清晰、简洁,则下面关于实现累加时采用的主要控制结构的哪个说法最不合适()。A.使用循环结构B.使用循环和分支的组合C.仅使用顺序结构D.不使用分支结构3.下面的C++代码用于输入姓名,然后输出姓名,正确的说法是()。stringXingMing;cout<<"请输入您的姓名:";cin>>XingMing;cout<<XingMing;A.XingMing是汉语拼音,不能作为变量名称。B.可以将XingMing改为XingMingC.可以将XingMing改为xingmingD.可以将XingMing改为Xing-Ming4.下列C++代码中a和b都是整型变量,执行后,其结果是()。a=13;b=5;cout<<a/b<<a%//b<<a%b;a*b;A.23B.23C.20D.以上都不准确5.题C++表达式3*4%5/6的值是()。A.10B.5C.2D.06.下面的C++代码中变量N和M都是整型,则执行时如果先输入10并输入一个制表符后输入20并回车,其输出的数值是()。scanf("%d",&N);scanf("%d",&M);printf("{%d}",N+M);A.{30}B.1020C.{N+M}D.不输出,继续等待输入。7.当前是9月,编写C++代码求N个月后的月份。横线处应填入的代码是()。intN,M;cin>>N;M=_____________;if(M==0)printf("%d个月后12月",N);elseprintf("%d个月后是%d月",N,M);A.N%12B.9+N%12C.(9+N)/12D.(9+N)%128.下面C++代码执行后的输出是()。intn=0;for(inti=0;i<100;i++)n+=i%2;cout<<n;A.5050B.4950C.50D.499.下面的C++代码执行后输出是()。intN=0,i;for(i=-100;i<100;i++)N+=i%10;cout<<N;A.900B.100C.0D.-10010.下面C++代码执行后输出是()。inti;for(i=1;i<5;i++){if(i%3==0)break;printf("%d#",i);}if(i>5)printf("END\n");A.1#2#B.1#2#ENDC.1#2D.1#2#3#4#END11.下面的C++代码用于求N的镜面数(N的个位到最高位的各位数字依次反过来出现在数字中,但高位0将被忽略,不输出),如输入1234,则将输出4321,又如输入120,则将输出21,错误的选项是()。cout<<"请输入个位数不为0的正整数:";cin>>N;rst=0;//保存逆序结果。while(______________){rst=rst*10+N%10;N=N/10;}cout<<rst<<endl;A.N!=0B.not(N==0)C.N=0D.N>012.下面C++代码用于交换两个正整数a和b的值,不能实现交换的代码是()。A.cout<<"输入第一个正整数:";cin>>a;cout<<"输入第二个正整数:";cin>>b;temp=a;a=b;b=temp;cout<<"a="<<a<<"b="<<b<<endl;B.cout<<"输入第一个正整数:";cin>>a;cout<<"输入第二个正整数:";cin>>b;b=a-b;a=a-b;b=a+b;cout<<"a="<<a<<"b="<<b<<endl;C.cout<<"输入第一个正整数:";cin>>a;cout<<"输入第二个正整数:";cin>>b;a=a+b;b=a-b;a=a-b;cout<<"a="<<a<<"b="<<b<<endl;D.cout<<"输入第一个正整数:";cin>>a;cout<<"输入第二个正整数:";cin>>b;a,b=b,a;cout<<"a="<<a<<"b="<<b<<endl;13.下面C++代码用于获得正整数N的第M位数,约定个位数为第1位,如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%1014.下面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#615.下面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){下面,结果不变。二、判断题(每题2分,共20分)。16.在集成开发环境里调试程序时,要注意不能修改源程序,因为如果修改,就要终止调试、关闭该文件并重新打开,才能再次开始调试。()。A.正确B.错误17.执行C++表达式10%0.5将报错,因为0.5所在位置只能是整数。()。A.正确B.错误18.下面C++代码执行后将输出9。()。for(i=0;i<10;i++)break;cout<<i;A.正确B.错误19.下面C++代码执行后将输出55。()。n=0;for(inti=0;i>-10;i--)n=n+i*-1;cout<<n;A.正确B.错误20.将下面C++代码中的L1行的i=0修改为i=1,其输出与当前代码输出相同。()。cnt=0;for(inti=0;i<100;i++)//L1。cnt+=i;cout<<cntA.正确B.错误21.将下面C++代码中的i<10修改为i<=10,其执行后输出相同。()。intn,i;n=i=0;while(i<10){n+=i;i+=1;}cout<<n;A.正确B.错误22.下面的C++代码执行后将输出45。()。intn,i;n=i=0;while(i<10){i+=1;n+=i;}cout<<n;A.正确B.错误23.执行C++代码cout<<(12+12.12)将报错,因为12是int类型,而12.12是float类型,不同类型不能直接运算。()。A.正确B.错误24.下面C++代码执行时将导致无限循环(也称死循环)。()。intcount=0;while(count<5){count+=1;if(count==3)continue;cout<<count<<'';}A.正确B.错误25.下列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.错误三、编程题(每题25分,共50分)。26.试题名称:商店折扣。时间限制:1.0s。内存限制:512.0MB。题目描述:商店正在开展促销活动,给出了两种方案的折扣优惠。第一种方案是购物满x元减y元;第二种方案是直接打n折,也就是说价格变为原先的n/10。这里的x,y,n均是正整数,并且1≤y<x,1≤n<10。需要注意的是,第一种方案中满减优惠只能使用一次。例如购物满10元减3元时,若挑选了价格总和为33元的物品,只能减免3元,需要支付30元。小明在商店挑选了价格总和为p元的物品,结账时只能使用一种优惠方案。小明最少需要支付多少钱呢?输入格式:四行,四个正整数x,y,n,p,含义见题目描述。输出格式:一行,一个小数,表示小明最少需要支付多少钱,保留两位小数。数据范围:对于所有测试点,保证1≤y<x≤100,1≤n<10,1≤p≤100。27.试题名称:金字塔。时间限制:1.0s。内存限制:512.0MB。题目描述:金字塔由n层石块垒成。从塔底向上,每层依次需要n×n,(n-1)×(n-1)……2×2,1×1块石块。请问搭建金字塔总共需要多少块石块?输入格式:一行,一个正整数n,表示金字塔的层数。输出格式:一行,一个正整数,表示搭建金字塔所需的石块数量。数据范围:对于所有测试点,保证1≤n≤50。答案解析如下。1.答案:D。解析:“大模型”在近年的人工智能领域通常是指大语言模型(LargeLanguageModel,LLM),例如GPT系列、BERT等。这类模型具有巨大的参数量(可达千亿级别),在海量文本数据上训练,能够完成文本生成、对话、翻译等多种自然语言处理任务。2.答案:C。解析:题目要求计算1到10001之间的所有偶数的和。A使用循环结构:合适,可以循环遍历每个数。B使用循环和分支的组合:合适,在循环内用分支判断是否为偶数再累加。C仅使用顺序结构:不合适,因为顺序结构只能逐条执行固定步骤,而这里有10001个数,不可能写10001行判断与累加代码。D不使用分支结构:合适,例如循环步长为2,从2开始直接累加偶数,无需分支判断。3.答案:C。解析:C++变量命名规则——(1)只能包含字母、数字、下划线。(2)不能以数字开头。(3)区分大小写。选项分析如下:A汉语拼音可以作为变量名,只要符合命名规则。B“XingMing”中间有空格,不合法。C“xingming”全部小写,合法,只是与原来大小写不同。D“Xing-Ming”含减号,不合法。4.答案:C。解析:实际有效代码行变为cout<<a/b<<a%a*b;(//注释掉了中间部分并去掉了分号,下一行接上)。计算:a/b=13/5=2。a%a*b=(13%13)*5=0*5=0。输出为:20(无空格、无换行)。5.答案:D。解析:表达式按优先级计算,3*4=12,12%5=2,2/6=0(整数除法舍去小数部分)。最终结果为0。6.答案:A。解析:scanf中空格/制表符/回车可作为输入分隔符,读取整数直到遇到非数字字符。因此输入10\t20时,N=10,M=20,输出30,数值部分是30,{}作为字符串原样输出,所以选A。7.答案:D。解析:总月份数为9+N,需映射到1-12范围,用(9+N)%12。若结果为0,对应12月(如9+3=12,12%12=0→12月)。若结果非0,直接为目标月份(如9+4=13,13%12=1→1月)。8.答案:C。解析:i%2的结果,i为偶数时,i%2=0(如i=0,2,4…);i为奇数时,i%2=1(如i=1,3,5…)。循环范围i=0~99,共100个数,其中奇数有50个(1,3,5,…,99),累加结果n=50。9.答案:C。解析:i从-100到99遍历,i%10取每个数的个位数字(在C++中,取余运算符%的结果与被除数的符号一致)。由于正负整数的个位余数会相互抵消(如-1和1的个位余数、-2和2的个位余数等之和为0),最终累加和为0。选C。10.答案:A。解析:i=1、i=2时,if条件不成立,输出1#、2#。i=3时,if条件成立执行break终止循环。后续if(i>5)不满足(i=3),不输出END。最终输出1#2#选A。11.答案:C。解析:求镜面数的循环需持续处理N的每一位,直到N为0。选项A、B、D均表示“N不为0”,符合循环逻辑(在C++中,not是逻辑非运算符,等价于!)。选项C是赋值语句不是条件,逻辑错误。选C。12.答案:D。解析:选项D中a,b=b,a;虽然是C++合法语法,无法实现交换;A、B、C均为合法交换逻辑。选D。或者带入数据a=1,b=2求解验证也可以排除D。13.答案:D。解析:第7行循环的作用是——将div变为10^(M-1)(如M=2时,div=10),那么想要获取N的第M位,需要先将第M位移到个位(N/div),再对10取余(%10),即N/div%10。选D。14.答案:A。解析:循环中num从0~5,当num=3时,continue跳过输出语句其余num=0,1,2,4,5时,输出(num+1)#。最终输出1#2#4#5#6#。选A。15.答案:D。解析:程序逻辑——先读入第一个数初始化最大/最小值,再循环读入后续数更新最大/最小。选项D:若将cin>>now_num;移到while内,第一个数无法初始化min_num和max_num,逻辑错误;A、B、C均符合程序逻辑。选D。16.答案:错误。解析:在现代集成开发环境(IDE)中,调试期间修改源代码后,通常IDE会提示源代码已更改,并询问是否重新编译并继续调试,或者停止调试。有些IDE(如VisualStudio、Code::Blocks、Xcode等)支持“编辑并继续”(EditandContinue)功能,允许在调试时修改代码并立即应用,无需完全终止调试会话。即使不支持该功能,也只需重新编译并再次启动调试,不必“关闭文件再重新打开”。因此题目说法不准确。17.答案:正确。解析:在C++中,取模运算符%要求两个操作数都是整数类型。如果有一个操作数是浮点数(如0.5),则编译时会报错(编译错误)。因此表达式10%0.5是无效的,会报错。18.答案:错误。解析:for循环进入后立即执行break,直接跳出循环,此时i仍为初始值0,输出0而非9。说法错误。19.答案:错误。解析:i从0递减到-9,循环内累加0,1,2,…,9,总和为45(非55)。说法错误。20.答案:正确。解析:原代码累加0~99,修改为i=1后累加1~99,但0不影响总和(总和仍为4950),输出相同。说法正确。21.答案:错误。解析:原条件i<10累加0~9(和为45),改为i<=10累加0~10(和为55),输出不同。说法错误。22.答案:错误。解析:循环先i+=1再n+=i,i取1~10,累加和为55(非45)。说法错误。23.答案:错误。解析:C++允许in
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 四级阅读选词填空题目及详解
- 经济法考试题库及详解
- 机械技术基础及设计 3
- 类风湿关节炎缓解期管理专家共识(2026版)
- 2025年湖南郴州遴选考试(案例分析与对策性论文)综合练习试题库及答案
- 【2026】年事业单位联考《职业能力倾向测验》A类试题+答案
- 遴选考试(案例分析与对策性论文)全真模拟试题库及答案(湖南省怀化市2025年)
- 炼金工岗前节能考核试卷含答案
- 采油测试工岗前理论综合考核试卷含答案
- 兽用中药制剂工安全知识宣贯评优考核试卷含答案
- 第5章第2节染色体变异高一下学期生物人教版必修2
- 食堂食品安全监控系统建设方案
- 2026年电气工程及其自动化试题预测试卷含答案详解【研优卷】
- 湖南省长郡教育集团2026届中考四模历史试题含解析
- 2026年临床医学检验临床基础检验模拟题库附参考答案详解(完整版)
- 2026中国武夷实业股份有限公司招聘笔试历年参考题库附带答案详解
- 2026年二级注册计量师提分评估复习及答案详解【新】
- 电梯使用管理与维修保养规则
- 国企运营岗位招聘笔试题
- 2025-2030中央空调系统节能改造项目经济效益测算及推广实施细则
- 环境监测数据质量管理制度-环境检测机构模版-2026版
评论
0/150
提交评论