版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2024年3月GESP编程能力认证C++等级考试二级真题(含答案和解析-在末尾)一、单选题(每题2分,共30分)。1.下列流程图的输出结果是()。A.优秀B.良好C.不及格D.没有输出2.以下选项中不符合C++变量命名规则的是()。A.studentB.2_fromC._toD.Text3.以下选项中,不能用于表示分支结构的C++保留字是()。A.switchB.returnC.elseD.if4.下列说法错误的是()。A.while循环满足循环条件时不断地运行,直到指定的条件不满足为止。B.if语句通常用于执行条件判断。C.在C++中可以使用foreach循环。D.break和continue语句都可以用在for循环和while循环中。5.下列4个表达式中,答案不是整数8的是()。6.下面C++代码执行后的输出是()。A.8B.14C.26D.507.下面C++代码执行后的输出是()。A.16B.36C.49D.818.下面C++代码执行后的输出是()。A.2B.3C.4D.59.下面C++代码执行后的输出是()。A.5B.6C.7D.810.以下C++代码判断一个正整数N的各个数位是否都是偶数。如果都是,则输出“是”,否则输出“否”。例如N=2024时输出“是”,则横线处应填入()。A.breakB.continueC.N=N/10D.N=N%1011.有句俗话叫“三天打渔,两天晒网”。如果小杨前三天打渔,后两天晒网,一直重复这个过程,以下程序代码用于判断,第n天小杨是在打鱼还是晒网,横线处应填写()。A.i==0B.i==4C.i==0&&i==4D.i==0||i==412.一个数的所有数字倒序排列后这个数的大小保持不变,这个数就是回文数,比如101与6886都是回文数,而100不是回文数。以下程序代码用于判断一个数是否为回文数,横线处应填写()。A.10*a+n%10B.a+n%10C.10*a+n/10D.a+n/1013.给定两个整数n与k,打印出一个栅栏图形,这个栅栏应该分成n段,段与段之间的间隔为+,段内的填充为k个-。形如n=5,k=6时,图形如下以下程序代码用于绘制该图形,横线处应填写()。A.cout<<'+'<<endl;B.cout<<'+'<<''<<endl;C.cout<<'+';D.cout<<'+'<<'';14.小杨的父母最近刚刚给他买了一块华wei手表,他说手表上跑的是鸿meng,这个鸿meng是()。A.小程序B.计时器C.操作系统D.神话人物15.中国计算机学会(CCF)在2024年1月27日的颁奖典礼上颁布了王选奖,王选先生的重大贡献是()。A.制造自动驾驶汽车B.创立培训学校C.发明汉字激光照排系统D.成立方正公司二、判断题(每题2分,共20分)。16.如果有以下C++代码,那么cout<<t的结果为28.5。()。A.正确B.错误17.题Xyz,xYz,xyZ是三个不同的变量()。A.正确B.错误18.题cout<<(8<9<10)的输出结果为true。()。A.正确B.错误19.题for(i=0;i<100;i+=2);语句中变量i的取值范围是0到99。()。A.正确B.错误20.题C++中cout<<float(2022)与cout<<float('2022')运行后的输出结果均为2022。()。A.正确B.错误21.已知A的ASCII码值为65,表达式int('C')+abs(-5.8)的值为72.8。()。A.正确B.错误22.题bool()函数用于将给定参数或表达式转换为布尔类型。语句bool(-1)返回的是false值。()。A.正确B.错误23.如果变量a的值使得C++表达式sqrt(a)==abs(a),则a的值为0。()。A.正确B.错误24.小杨今年春节回奶奶家了,奶奶家的数字电视要设置ip地址并接入到WIFI盒子才能收看节目,那这个WIFI盒子具有路由器的功能。()。A.正确B.错误25.任何一个for循环都可以转化为等价的while循环。()。A.正确B.错误三、编程题(每题25分,共50分)。26.乘法问题。问题描述:小A最近刚刚学习了乘法,为了帮助他练习,我们给他若干个正整数,并要求他将这些数乘起来。对于大部分题目,小A可以精准地算出答案,不过,如果这些数的乘积超过106,小A就不会做了。请你写一个程序,告诉我们小A输入描述:第一行一个整数n,表示正整数的个数。接下来n行,每行一个整数a。小A需要将所有的a乘起来。保证n≤50,a≤100。输出描述:输出一行,如果乘积超过106,则输出>1000000;特别提醒:在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。样例输入1。样例输出1。样例输入2。样例输出2。样例输入3。样例输出3。27.小杨的日字矩阵。问题描述:小杨想要构造一个N×N的日字矩阵(N为奇数),具体来说,这个矩阵共有N行,每行N个字符,其中最左列、最右列都是|,而第一行、最后一行、以及中间一行(即第(N+1)/2行)的第2~N-1个字符都是-,其余所有字符都是半角小写字母x。例如,一个N=5的日字矩阵如下。请你帮小杨根据给定的N打印出对应的“日字矩阵”。输入描述:一行一个整数N(5≤N≤49,保证N为奇数)。输出描述:输出对应的“日字矩阵”。请严格按格式要求输出,不要擅自添加任何空格、标点、空行等任何符号。你应该恰好输出N行,每行除了换行符外恰好包含N个字符,这些字符要么是-,要么是|,要么是x。你的输出必须和标准答案完全一致才能得分,请在提交前仔细检查。特别提醒:在常规程序中,输入、输出时提供提示是好习惯。但在本场考试中,由于系统限定,请不要在输入、输出中附带任何提示信息。样例输入1。样例输出1。样例输入2。样例输出2。答案解析如下。1.答案:B。解析:程序开始,cj被赋值为75,验证cj>=60,75>=60成立进入YES分支,验证cj>=90;75>=90不成立进入NO分支;输出"良好",程序结束。2.答案:B。解析:有效的变量名是由大小写字母、数字、下划线组成的任意长度的序列,且第一个字符不能为数字。另外,C++中有一些关键字已被编程语言保留,不能用作变量名。B选项的第一个字符为数字,不符合要求。3.答案:B。解析:switch是用于多分支选择的保留字,根据条件值执行若干语句。if、else也是用于分支选择的保留字,根据条件真假执行特定语句。return不是表示分支结构的保留字,它用于终止当前函数并返回指定值(如果存在)给调用者。4.答案:C。解析:C++中也没有直接称为foreach的循环结构。C++11中引入的用于遍历的容器的范围for循环使用的是任然是关键字for。C++中没有foreach关键字。5.答案:B。解析:A选项为绝对值函数,表达式的结果是8;B选项为最值函数首先执行内部的max(8,9),结果是9,然后执行min(9,10),结果是9。C选项为函数式强制类型转换,截断取整结果为8。D选项为平方根函数结果为浮点类型的8。6.答案:C。解析:n=3,i的初值为0,当i小于2是会执行循环。因此,循环会执行两次。m的初值为8,第一次循环m=7*2被更新为14;第二次循环m=13*2;被更新为26,最终输出26。7.答案:D。解析:i=1,n=81因为while条件满足进入循环,执行i+=1,当i增加到3的时候if条件成立result被赋值为9;当i增加到9的时候if条件第二次成立result被赋值为81;当i增加为10时,while条件不成立结束循环输出81。8.答案:B。解析:s=2,t=10第一次进入循环if条件成立t被更新为5;第二次进入循环if条件不成立t被更新为4;第三次进入循环if条件成立t被更新为2与s相等结束循环;循环执行了3次ans自增了三次最终输出3。9.答案:C。解析:cur=2,masks=10,前5次循环if条件不满足,第5次循环后cur=0,masks=5;第6次进入循环if条件满足masks先加7后减1被更新为11;第7次进入循环if条件满足masks被更新为17与n相同结束循环。循环执行了7次days自增了7次最终输出7。10.答案:A。解析:在十进制下,一个数的奇偶性由它的个位数字决定。因为,十进制是基于10的倍数来构建的,而10是2的倍数,这意味着除了个位以外的任何位上的数字(十位、百位、千位等)乘以其对应的10的幂次,都将产生一个偶数。本题在循环中使用if语句判断当前N的个位是否为偶数,如果是则通过N/=10去掉个位继续检查下一位;如果不是则说明已经找到了一个奇数位,没有必要继续检查,使用break立刻结束循环。11.答案:D。解析:n为4或5时晒网,当n=4时i为4%5=4;当n=5时5%5=0。12.答案:A。解析:要判断一个数是否为回文数,需要将这个数反转。反转的过程中,每一步都需要将已有的反转数a乘以10(为新的数字位腾出空间),然后加上n的当前最后一个数字(即n%10)。所以,横线处的代码应该是:a=10*a+n%10;这样每次循环都会取出n的最后一位数字,加到a的最后,同时n除以10去掉最后一位。循环直到n为0,此时如果a与原始的数字k相等,那么原始的数字就是回文数。13.答案:C。解析:每段的开始打印一个+,然后打印k个-。因为j从1开始,循环会执行k-1次,所以我们需要在循环外再打印一个-来确保每段有k个-。在所有段打印完之后,还需要打印一个额外的+来结束栅栏图形。因此,选项C是正确的,它每段的开始打印一个+,不会造成换行或额外的空格。14.答案:C。解析:鸿蒙HarmonyOS是华为开发的全场景分布式操作系统,支持多种终端设备运行,提供应用开发、设备开发的一站式服务的平台。15.答案:C。解析:王选先生是中国著名的计算机科学家,他的重大贡献是发明了汉字激光照排系统,这一发明极大地推动了中国印刷业的现代化进程。16.答案:错误。解析:int(s)将double类型的18.5转换为int类型,通过截断取整结果为18再加上10最终输出28。17.答案:正确。解析:在C++中,变量名是区分大小写的,Xyz、xYz和xyZ是三个不同的变量。18.答案:错误。解析:程序输出结果为1。19.答案:错误。解析:在这个for循环中,变量i从0开始,以2为步长递增,直到它不小于100。因此,i的取值是0,2,4,……,96,98。99不在这个范围内,所以它不会取到99。20.答案:错误。解析:cout<<float(2022)将输出浮点数2022。而cout<<float('2022')会将int类型的多字符字面量转换成float类型后做输出,输出结果不为2022。21.答案:正确。解析:字符'C'的ASCII码值是67。int('C')将字符'C'转换为其ASCII码值,即67。abs(-5.8)计算-5.8的绝对值,结果是5.8。所以表达式int('C')+abs(-5.8)的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 山东省菏泽市2026年高三第二次诊断性检测语文试卷含解析
- (人教新课标)六年级语文上册《-我的伯父鲁迅先生》教学详案
- 《计算机网络技术项目化教程》实验报告汇 (PKT仿真实验)实验1-8 visio的使用 -配置DNS服务器
- 书法等级考试题库及答案
- 疝气术后伤口愈合促进方法
- 遴选考试(案例分析与对策性论文)自测试题库及答案
- 古建筑工程考勤管控制度
- 雨课堂学堂在线学堂云《展览会策划与组织(中山)》单元测试考核答案
- 2025下半年软考系统架构设计师真题及答案解析
- 酒店安全管理制度范本
- PDCA提高卧床患者踝泵运动的执行率
- GB/T 37364.4-2024陆生野生动物及其栖息地调查技术规程第4部分:鸟类
- 《离心泵知识培训》课件
- 《采矿新技术》课件
- 2023年四川南充中考物理真题及答案
- 生产工艺总方案模版
- 招投标及合同管理实习报告
- 防汛安全教育培训记录
- 2023届高考英语复习3500词之派生词总结讲义素材
- 第五章同位素地球化学
- GB/T 28783-2012气动标准参考大气
评论
0/150
提交评论