版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2024年9月GESP编程能力认证C++等级考试一级真题(含答案和解析-在末尾)一、单选题(每题2分,共30分)。1.据有关资料,山东大学于1972年研制成功DJL-1计算机,并于1973年投入运行,其综合性能居当时全国第三位。DJL-1计算机运算控制部分所使用的磁心存储元件由磁心颗粒组成,设计存贮周期为2μs(微秒)。那么该磁心存储元件相当于现代计算机的()。A.内存B.磁盘C.CPUD.显示器2.题C++程序执行出现错误,不太常见的调试手段是()。A.阅读源代码B.单步调试C.输出执行中间结果D.跟踪汇编码3.在C++中,下列表达式错误的是()。A.cout<<"Hello,GESP!"<<endl;B.cout<<'Hello,GESP!'<<endl;C.cout<<"""Hello,GESP!"""<<endl;D.cout<<"Hello,GESP!'<<endl;4.题C++表达式10-3*2的值是()。A.14B.4C.1D.05.在C++中,假设N为正整数10,则cout<<(N/3+N%3)将输出()。A.6B.4.3C.4D.26.题C++语句printf("6%2={%d}",6%2)执行后的输出是()。A."6%2={6%2}"B.6%2={6%2}C.0=0D.6%2={0}7.成功执行下面的C++代码,先后从键盘上输入5回车和2回车,输出是()。cin>>a;cin>>b;cout<<a+b;A.将输出整数7B.将输出52,5和2之间没有空格。C.将输出5和2,5和2之间有空格。D.执行结果不确定,因为代码段没有显示a和b的数据类型。8.下面C++代码执行后输出是()。intSum=0;for(inti=0;i<10;i++)Sum+=i;cout<<Sum;A.55B.45C.10D.99.下面C++代码执行后输出的是()。intN=0;for(inti=0;i<10;i++)N+=1;cout<<N;A.55B.45C.10D.910.下面C++代码执行后输出的是()。intN=0;for(inti=1;i<10;i+=2){if(i%2==1)continue;N+=1;}cout<<N;A.5B.4C.2D.011.下面C++代码执行时输入14+7后,正确的输出是()。12.执行下面C++代码后得到的输出是()。intcount=0,i,s;for(i=0,s=0;i<20;i++,count++)s+=i++;cout<<s<<""<<count;A.19020B.9510C.9019D.901013.下面C++代码拟用于计算整数N的位数,比如对123则输出123是3位整数,但代码中可能存在bug。下面有关描述正确的是()。intN,N0,rc=0;cout<<"请输入整数:";cin>>N;N0=N;while(N){rc++;N/=10;}printf("%d是%d位整数\n",N,rc);//L11。A.变量N0占用额外空间,可以去掉。B.代码对所有整数都能计算出正确位数C.L11标记的代码行简单修改后可以对正整数给出正确输出D.L11标记的代码行的输出格式有误14.下面的C++代码用于求连续输入的若干正五位数的百位数之和。例如输入3248825731412320,则输出3个正五位数的百位数之和为13。有关描述错误的是()。intM,Sum=0,rc=0;cout<<"请输入正整数:";cin>>M;while(M){M=(M/100%10);//L6。Sum+=M;rc++;cin>>M;}cout<<rc<<"个正五位数的百位数之和为"<<Sum;A.执行代码时如果输入232212345312345111110,则最后一行Sum的值是10。B.执行代码时如果输入23222345123411110,程序也能运行。C.将代码标记为L6那行改为M=(M%1000/100),同样能实现题目要求。D.将代码标记为L6那行改为M=(M%100/10),同样能实现题目要求。15.如果一个正整数N能够表示为X*(X+1)的形式,这里称它是一个“兄弟数”。例如,输入6,则输出“6是一个兄弟数”。下面C++代码用来判断N是否为一个“兄弟数”,在横线处应填入的代码可从(i)-(iv)中选择,则有几个能完成功能()。intN;cin>>N;for(inti=0;i<=N;i++)if(___________________)cout<<N<<"是一个兄弟数\n";(i)N==i*(i+1)(ii)N==i*(i-1)(iii)N/(i+1)==i(iv)N/(i-1)==i//从(i)-(iv)中选择。A.1B.2C.3D.4二、判断题(每题2分,共20分)。16.小杨最近开始学习C++编程,老师说C++是一门面向对象的编程语言,也是一门高级语言()。A.正确B.错误17.在C++中,表达式10/4和10%4的值相同,都是整数2,说明/和%可以互相替换()。A.正确B.错误18.题N是C++程序中的整型变量,则语句scanf("%d",&N)能接收形如正整数、负整数和0输入,但如果输入含字母或带小数点数,将导致无法执行()。A.正确B.错误19.下面C++代码能够执行,则将输出45()。for(inti=0;i<10;i++)Sum+=i;cout<<Sum;A.正确B.错误20.在C++代码中整型变量X被赋值为20.24,则cout<<(X++,X+1)/10执行后输出的是2.124()。A.正确B.错误21.下面C++代码执行后,最后一次输出是10()。for(inti=1;i<10;i+=3)cout<<i<<endl;A.正确B.错误22.在C++,break语句通常与if语句配合使用()。A.正确B.错误23.在C++代码中,不可以将变量命名为five-star,因为变量名中不可以出现-(减号)符号()。A.正确B.错误24.在C++语言中,整型、实数型、字符型、布尔型是不同数据类型,但这四种类型的变量间都可以比较大小()。A.正确B.错误25.题C++中,定义变量inta=5,b=4,c=3,则表达式(a<b<c)的值为逻辑假()。A.正确B.错误三、编程题(每题25分,共50分)。26.小杨购物。时间限制:1.0s。内存限制:512.0MB。题面描述:小杨有n元钱用于购物。商品A的单价是a元,商品B的单价是b元。小杨想购买相同数量的商品A和商品B。请你编写程序帮小杨计算出他最多能够购买多少个商品A和商品B。输入格式:第一行包含一个正整数n,代表小杨用于购物的钱的金额。第二行包含一个正整数a,代表商品A的单价。第三行包含一个正整数b,代表商品B的单价。输出格式:输出一行,包含一个整数,代表小杨最多能够购买的商品A和商品B的数量。样例1。对于样例1:由于需要购买相同数量的两种商品,因此小杨最多能够购买4件商品A和4件商品B,共花费4×1+4×2=12元。因此,样例1的答案为4。样例2。对于样例2:由于需要购买相同数量的两种商品,因此小杨最多能够购买4件商品A和4件商品B,共花费4×1+4×2=12元。如果小杨想购买5件商品A和5件商品B,则需花费5×1+5×2=15元,超过了小杨的预算13元。因此,样例2的答案为4。对于全部数据,保证有1≤n,a,b≤105。27.美丽数字。时间限制:1.0s。内存限制:512.0MB。题面描述:小杨有n个正整数,他认为一个正整数是美丽数字当且仅当该正整数是9的倍数但不是8的倍数。小杨想请你编写一个程序计算n个正整数中美丽数字的数量。输入格式:第一行包含一个正整数n,代表正整数个数。第二行包含n个正整数a1,a2,a3,…,an。输出格式:输出一个整数,代表其中美丽数字的数量。样例1。对于样例1:1既不是9的倍数,也不是8的倍数。9是9的倍数,不是8的倍数。72既是9的倍数,也是8的倍数。因此答案为1。对于全部数据,保证有1≤n≤105,1≤ai≤105。答案如下。1.答案:A。解析:本题考察计算机组成部分;题干强调磁心元件为计算机运算控制部分的存储元件,计算机中内存用于暂时存放CPU中的运算数据,以及与硬盘等外部存储器交换的数据,故该元件属于内存,所以本题正确答案为A。2.答案:D。解析:本题考察程序调试功能;阅读源代码——是一种非常常见的调试方法,通过查看代码逻辑来找出可能的问题;单步调试——是通过逐行执行代码,观察每一步的状态和变化,这也是常见的调试方法;输出执行中间结果——通过在代码中添加打印语句,查看程序运行时的变量值和状态,也是常见的方法;跟踪汇编码——是指查看编译后的汇编代码来调试程序,这是比较低级、复杂且不太常用的调试方式。所以本题正确答案为D。3.答案:D。解析:本题考察cout输出语句。在C++中通常使用单引号('')定义字符,使用双引号("")定义字符串。选项A输出内容在双引号内部,格式为字符串,能够正确输出Hello,GESP!;选项B单引号内格式为字符,只应该包含1个字符,但是实际传入多个字符,可能会产生某些特定的输出,但不会是Hello,GESP!。选项C前两个双引号为一对,内部无内容故没有输出,中间两个双引号为一对,能够正确输出Hello,GESP!,最后两个双引号为一对,内部无内容故没有输出,最终输出内容为Hello,GESP!,输出内容不会含有双引号,如果想要输出双引号(""),需要使用转义字符(\);选项D有一个双引号和一个单引号互不成对,会导致程序编译失败。所以本题正确答案为D。4.答案:B。解析:本题考察算术运算优先级。算式乘、除、取模运算优先级一致且比加、减运算优先级高,所以题目表达式先算3*2,结果为6,再算10–6,结果为4。所以本题正确答案为B。5.答案:C。解析:本题主要考察C++中的基本算术运算。在C++中,如果被除数和除数均为整数类型,那么进行除法运算的结果将会舍去余数,仅保留整数部分的商;%为取模操作,在C++中取模和取余功能一致。题目中N为整数10,除数3也为整数,所以N/3结果为3。N%3结果为1。最后算式为3+1结果为4。所以本题正确答案为D。6.答案:D。解析:本题考察printf格式化输出语句;printf语句中将会输出双引号中的格式化字符串,其中(%)为格式说明符,如本题的%d表示使用整数格式输出参量表中对应参量的值。参量表为格式化字符串右侧内容,与格式化字符串中的格式说明符一一对应。本题执行语句后会输出双引号中的内容,其中%d对应参量表中的6%2,其值为0。最终输出为6%2={0}。所以本题正确答案为D。7.答案:D。解析:本题考查变量的使用与变量运算;题目中没有给定a、b的数据类型,输出的结果不确定。所以本题正确答案为D。8.答案:B。解析:本题考查for循环语句;题目循环语句用i进行枚举,i从0开始,i逐个枚举从0、1、2···直到9;Sum从初值0开始,循环体语句为Sum累加每次i的值,最终结果为0~9求和为45。所以本题正确答案为B。9.答案:C。解析:本题考查for循环语句;题目循环语句用i控制循环,i从0开始,逐个枚举从0、1、2···直到9,一共10次循环。N初值从0开始,每次循环增加1,故循环结束后N的值为10,最后输出结果为10.所以本题正确答案为C。10.答案:D。解析:本题考查for循环语句、if语句以及continue语句;题目循环语句用i控制,i从1开始,每次循环增加2,i逐个枚举从1、3、5···直到9。循环内判断i除以2的余数是否为1(判断i是否为奇数):如果成立,将会continue跳过本次循环之后的语句,直接进入到下一次循环;如果不成立,才会执行语句N+=1。由于i每次循环的值除以2的余数均为1,所以不会执行N+=1,因此循环结束N的值没有变化,仍为初值0。所以本题正确答案为D。11.答案:A。解析:本题考察格式化输入输出语句以及基本算术、逻辑运算。题目使用scanf输入,需求%d为整数格式,键盘输入14+7,程序只会读入加法字符(+)前面的整数部分14,因此P的值输入为14,满足if语句中的条件,执行if语句中的输出语句,14%3结果为2,14%7结果为0,最终程序输出为第5行代码2,0。所以本题正确答案为A。12.答案:D。解析:本题考查for循环语句和自增(++)运算符。题目循环中循环控制变量为i,循环语句中又执行了i++语句,考虑第1次循环:初始count值为0,i值为0,s值为0,i<20成立。进入循环体,s+=i++语句根据运算优先级可拆分为两步:先执行s+=i,再执行i++,因此s值仍为0,i值变为1,循环体结束;执行i++,count++,i的值变为2,count的值变为1。后续循环执行流程一致,最终一共进行10次循环,s值变化为0+2+4+……+18=90,count的值变化为1、2、3……10。所以本题正确答案为D。13.答案:C。解析:本题考查数字拆位原理;变量N0如果不提前存储N的初始输入,循环结束后N的值变为0,无法最后输出时展示N的初始值,选项A错误;题目程序变量类型均为int类型,如果输入超出int类型最大值则会溢出,无法计算出正确位数,选项B错误;对L11标记的代码行将N修改为N0后可以最后展示N的初始值,选项C正确;L11标记的代码行的格式没有问题,选项D错误。14.答案:D。解析:本题考察while循环语句和基本算术运算;选项A输入的4个五位数的百位数为2、4、3、1,其和为10,选项A描述正确;选项B输入的数据为4个四位数,程序可以正常运行,不会编译失败,选项B描述正确;选项C考虑输入五位数12345,12345%1000值为345,345/100值为3,即为所需的百位数3,选项C描述正确;选项D考虑输入五位数12345,12345%100值为45,45/10值为4,不为所需百位数3,选项D描述错误。所以本题正确答案为D。15.答案:B。解析:本题主要考察变量的运算;考虑N为6与7的情况,首先6是“兄弟数”,7不是“兄弟数”。(i)当循环变量i的值为2时即可成功判断6,N为7不会输出;(ii)当循环变量i的值为3时即可成功判断6,N为7不会输出;(iii)当循环变量i的值为2时即可成功判断6,但是N为7时,当i为2时会错误判断;(iv)当循环变量i的值为3时即可成功判断6,但是N为7时,当i为3时会错误判断;所以(i)与(ii)可以成功判断。所以本题正确答案为B。16.答案:正确。解析:本题考察编程语言基本知识;C++是一门面向对象的高级编程语言。所以本题正确。17.答案:错误。解析:本题考察基本算术运算中的除法(/)和取模(%);除法和取模(在C++中与取余效果一致)是不同的功能运算,不能相互替换。所以本题错误。18.答案:错误。解析:本题考察scanf格式化输入语句;%d对应整数类型数据的输入,如果输入含字母或带小数点数,程序可以执行,但是会导致未知的输入结果。所以本题错误。19.答案:错误。解析:本题考察for循环语句;本题循环变量i枚举从0、1、2···直到9,循环体中执行Sum+=i,但是Sum没有给定初始值,所以最终Sum的值未知。所以本题错误。20.答案:错误。解析:本题考察变量的赋值和语句的执行顺序,本题X为整型变量,赋初值后为20,然后会先执行X++,X的值为21,然后执行(X+1)/10,输出结果为2。所以本题错误。21.答案:错误。解析:本题考察for循环语句;本题循环变量i枚
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 公共营养师-三级题库含答案(附解析)
- 图书管理制度
- 广东省广州市白云区2020-2021学年七年级下学期期末历史试题(含答案)
- 项目技术工作交接表(样表)
- 膀胱肿瘤患者的冥想治疗
- 重庆市2025-2026学年高三下学期第一次联考语文试卷含解析
- 铁路机车车辆驾驶人员职业技能鉴定考试复习题库(附答案)
- 【卫生专业技术资格考试口腔医学技术(初级(师)205)相关专业知识梳理难点精析】
- 【2025】哈尔滨市呼兰区沈家街道工作人员招聘考试真题
- 26年老年护理观察要点总结课件
- 航天精神人物事迹
- TCCEAS 006-2025 建设工程造价咨询工期标准(房屋、市政及城市轨道交通工程)
- GB/T 22766.12-2025家用和类似用途电器售后服务第12部分:电坐便器的特殊要求
- 中国抗癌协会脑胶质瘤整合诊疗指南2025版
- 2025年肿瘤随访登记培训试题有答案
- 前置胎盘伴出血护理个案
- 高空坠物安全知识培训
- 2025年自然资源局公务员面试技巧与模拟题详解
- 医学人工智能导论
- 2025年银行考试-中信银行运营管理资质认证考试历年参考题库含答案解析(5套典型考题)
- 2025年贵州省中考理科综合(物理化学)试卷真题(含答案详解)
评论
0/150
提交评论