版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2025年12月GESP编程能力认证C++等级考试三级真题(含答案和解析)一、单选题(每题2分,共30分)。1.请将二进制数(1101.101)2,转换为等值的10进制数()。A.14.25B.13.625C.13.5D.14.5答案:B。解析:二进制转十进制的规则是“整数部分从右到左按2n-1累加,小数部分从左到右按2-n累加”。整数部分:(1101)2=1×23+1×22+0×21+1×20=8+4+0+1=13。小数部分:(0.101)2=1×2-1+0×2-2+1×2-3=0.5+0+0.125=0.625。合计:13+0.625=13.625,对应选项B。2.以下关于标准C++一维数组的描述,哪一项是错误的?()。A.数组的下标从0开始B.数组在内存中是连续存放的C.数组的长度只能在运行时才能确定D.可以在程序中修改数组某个元素的值答案:C。解析:逐一分析选项。A正确:C++数组下标默认从0开始,如arr[0]是第一个元素。B正确:数组元素在内存中连续存储,地址按顺序递增。C错误:标准C++中,普通一维数组的长度必须是编译期常量(如intarr[5]),不能在运行时通过变量动态确定(C++11后的vector除外,但题目限定“标准C++一维数组”)。D正确:数组元素是可变的,可通过arr[i]=值修改。3.下列代码段执行后,变量sum的值是()。{intsum=0;for(inti=1;i<=10;i++){if(i%3==8>>2)continue;sum+=i;}}A.12B.17C.33D.40答案:D。解析:先拆解关键运算。8>>2是右移位运算,8的二进制是1000,右移2位为0010(十进制2),因此条件i%3==2。循环逻辑:i从1到10,若i%3=2则跳过本次循环(continue),否则累加i到sum。符合条件的i:1(1%3=1)、3(3%3=0)、4(4%3=1)、6(6%3=0)、7(7%3=1)、9(9%3=0)、10(10%3=1)。sum=1+3+4+6+7+9+10=40,对应选项D。4.执行以下程序段,输出值是()。intx=5;if(x==3>>2)x=8>>3;cout<<x<<endl;A.0B.5C.120D.1答案:B。解析:分步分析。3>>2:3的二进制是11,右移2位为0(十进制0)。条件x==0:x初始值为5,5≠0,因此if语句体不执行。最终输出x的初始值5,对应选项B。5.已知字符串s="C++Programming"下列程序运行的结果是()。cout<<(int)(s.length()|3)<<endl;A.14B.15C.16D.17答案:B。解析:核心步骤。s.length():字符串"C++Programming"的字符数(含空格):C(1)、+(2)、+(3)、空格(4)、P(5)、r(6)、o(7)、g(8)、r(9)、a(10)、m(11)、m(12)、i(13)、n(14)、g(15),长度为15。15|3:位或运算,15二进制1111,3二进制0011,或运算结果为1111(十进制15)。输出(int)15,对应选项B。6.以下代码是一个程序的部分代码,能够正确执行,输出的结果是()。intarr[5]={1,2,3,4,5};intp=arr[1];cout<<(p+2)<<endl;A.1B.2C.3D.4答案:D。解析:关键逻辑。intarr[5]={1,2,3,4,5}:数组下标从0开始,arr[1]是第二个元素,值为2。intp=arr[1]:p赋值为2。p+2=2+2=4,输出结果为4,对应选项D。7.以下关于C++求最小值函数min()的描述,不正确的是()。A.函数必须返回一个值B.该函数可以嵌套调用C.调用min(5)是错误的,不能通过编译。D.调用min()(不传任何参数)可以通过编译,结果为0。答案:D。解析:逐一分析选项。A正确:min()是有返回值函数,必须返回最小值。B正确:min()可嵌套调用,如min(min(1,2),3)。C正确:标准min()函数至少需要2个参数,min(5)参数数量不足,编译报错。D错误:min()不传参数时,参数数量不匹配,编译直接报错,无法执行,更不会返回0。8.在一个特定的计算机系统中,假如unsignedint类型需要占用2个字节的存储空间(每个字节有8位),则unsignedint可以表示的数据范围是()。A.0~65535B.0~65536C.-65536~65535D.0~32767答案:A。解析:计算规则——2个字节=16位,无符号整型仅存储非负数。取值范围:0~216-1,即0~65535(216=65536),对应选项A。9.以下代码执行后,数组arr的内容是()。intarr[6]={1,2,3,4,5,6};for(inti=0;i<6;i+=2){arr[i]=arr[i]+arr[i+1];arr[i+1]=arr[i]-arr[i+1];arr[i]=arr[i]-arr[i+1];}A.{2,1,4,3,6,5}B.{1,2,3,4,5,6}C.{3,1,4,2,5,3}D.{1,3,2,5,4,6}答案:A。解析:核心逻辑。循环i+=2:i取0、2、4,每次交换arr[i]和arr[i+1](通过算术运算交换,无需临时变量)。分步执行。i=0:交换arr[0]和arr[1]→数组变为{2,1,3,4,5,6}。i=2:交换arr[2]和arr[3]→数组变为{2,1,4,3,5,6}。i=4:交换arr[4]和arr[5]→数组变为{2,1,4,3,6,5}。最终数组内容为{2,1,4,3,6,5},对应选项A。10.题a&b|(c^d),其中a=3,b=7,c=15,d=4,计算结果是()。A.十进制11B.二进制11C.八进制11D.十六进制11答案:A。解析:运算优先级:先算括号,再算&,再算|,分步计算。转换为二进制:a=3(0011)、b=7(0111)、c=15(1111)、d=4(0100)。c^d:1111^0100=1011(十进制11)。a&b:0011&0111=0011(十进制3)。3|11:0011|1011=1011(十进制11)。结果为十进制11,对应选项A。11.整型变量x的初始值为10,以下代码的输出结果是()。intt=x--;t-=x;cout<<t<<endl;A.0B.-1C.1D.死循环答案:C。解析:关键步骤。intt=x--:后置自减,先将x的当前值(10)赋值给t,再x减1(x变为9)。t-=x:等价于t=t-x,即t=10-9=1。输出t的值1,对应选项C。12.根据下面的流程图,如果成绩score输入60,输出的结果是()。A.优秀B.及格C.不及格D.没有输出答案:B。解析:输入score=60,进入条件判断。若score≥90→优秀;≥70→良好;≥60→及格;否则不及格。60≥60,满足“及格”条件,输出“及格”,对应选项B。13.以下代码运行后,sum的结果是()。intarr[5]={2,4,6,8,10};intsum=0;for(inti=0;i<5;i++){switch(arr[i]%(1|2)){case0:sum+=1;break;case1:sum+=2;break;case2:sum+=3;break;}}A.10B.11C.14D.15答案:B。解析:分步拆解。先计算1|2:1二进制01,2二进制10,位或运算结果为11(十进制3),因此switch条件为arr[i]%3。遍历数组元素,计算每个元素的arr[i]%3并累加sum。arr[0]=2:2%3=2→sum+=3(sum=3)。arr[1]=4:4%3=1→sum+=2(sum=5)。arr[2]=6:6%3=0→sum+=1(sum=6)。arr[3]=8:8%3=2→sum+=3(sum=9)。arr[4]=10:10%3=1→sum+=2(sum=11)。最终sum=11,对应选项B。14.以下关于C++中abs()函数的描述,正确的是()。A.abs()函数可用于计算int类型整数的绝对值,头文件为<cmath>或<cstdlib>。B.调用abs(3.14)可以四舍五入得到3C.abs(-1,-2)的返回值是1D.若传入负数浮点数,abs()会自动截断小数部分后返回整数绝对值。答案:A。解析:逐一分析选项。A正确:标准C++中,abs()用于计算int类型的绝对值,头文件支持<cmath>或<cstdlib>。B错误:abs()的参数是int类型,传入3.14会被自动截断为3,返回3是截断结果,而非四舍五入。C错误:abs()仅支持单个参数,abs(-1,-2)参数数量错误,编译报错。D错误:传入负数浮点数时,abs()会先截断小数部分(如abs(-3.9)→abs(-3)→3),但这并非函数的设计用途,且部分编译器可能报错,正确处理浮点数绝对值应使用fabs()。15.如果字符串s的值是GESP,以下代码s的最后结果是()。for(inti=0;i<s.length();i++){s[i]=toupper(s[i]+i);}A.GESPB.HFTRC.hespD.GFUS答案:D。解析:核心步骤。toupper()把小写字母转换为大写字母。s="GESP",字符依次为'G'、'E'、'S'、'P',i从0到3遍历。逐个计算字符变化。i=0:s[0]+0='G'(ASCII码71)→toupper(71)='G'(s[0]仍为'G')。i=1:s[1]+1='E'(69)+1=70→toupper(70)='F'(s[1]变为'F')。i=2:s[2]+2='S'(83)+2=85→toupper(85)='U'(s[2]变为'U')。i=3:s[3]+3='P'(80)+3=83→toupper(83)='S'(s[3]变为'S')。最终字符串s为"GFUS",对应选项D。二、判断题(每题2分,共20分)。16.在C++中,数组名不能改变,数组名不能被赋值。()。答案:正确。解析:数组名本质是数组首元素的地址常量,常量的值不能修改,因此数组名不能被赋值(如intarr[5];arr=newint[3];是错误的),该说法正确。17.整型变量a的值为3,浮点数变量b的值为3.5,在C++编译环境下,经过a*=b计算后,a的值变为10.5,此时如果输出a,将输出10.5。()。答案:错误。解析:a是整型变量,整型与浮点型运算时,结果为浮点型,把浮点型结果赋值给整型变量a,果会自动截断为整型(舍弃小数部分)。a*=b等价于a=a*b=3*3.5=10.5,截断后a的值为10(整型)。输出a时,将输出10而非10.5,该说法错误。18.题strcmp(str1,str2)返回0表示str1大于str2,返回正数表示两者相等。()。答案:错误。解析:strcmp(str1,str2)的返回值规则。返回0:str1和str2相等。返回正数:str1大于str2。返回负数:str1小于str2。题目描述颠倒了返回值的含义,该说法错误。19.以下代码输出结果为8。()。inta=5,b=3;intc=a+++++b;cout<<c<<endl;答案:错误。解析:分步计算。a++是后置自增,先取a的当前值5参与运算,再a变为6。++b是前置自增,先b变为4,再取4参与运算。c=5+4=9,输出结果为9而非8,该说法错误。20.位运算符&、|、^、~的优先级高于算术运算符+、-、*、/。()。答案:错误。解析:运算符优先级——算术运算符(*、/高于+、-)的优先级高于位运算符(&、|、^、~),例如3+2&1等价于(3+2)&1,而非3+(2&1),该说法错误。21.在C++中,inta[]={1,2,3,4,5};可以定义一个包含5个元素的整型数组。()。答案:正确。解析:该语句是数组的初始化方式之一,省略数组长度时,编译器会根据初始化列表的元素个数自动确定数组长度为5,数组a包含1、2、3、4、5五个元素,该说法正确。22.题C++表达式z=a>b?x:y等同于如下代码。if(a>b){z=x;}else{z=y;}以下代码执行后,输出将会是2()。intmain(){intarr[5]={1,2,3,4,5};cout<<arr[3>2?1:2]<<endl;return0;}答案:正确。解析:(1)三目运算符a>b?x:y的逻辑与题干中的if-else语句完全一致,是简写形式。(2)条件3>2为真,三目运算符返回1,因此arr[1]是数组第二个元素,值为2。(3)输出结果为2,该说法正确。23.在C++中,++和--运算符只能用于整型变量,不能用于浮点数变量。()。答案:错误。解析:++和--运算符不仅可用于整型变量,也可用于浮点数变量(如doubled=3.5;d++;执行后d=4.5),只是浮点数的自增/自减是数值加1/减1,该说法错误。24.给定一个正整数a,当需要计算-a的补码时,有这样一个计算技巧:将a的二进制形式从右往左扫描,遇到第一个1之后,将找到的第一个1左边的所有位都取反,能得到-a的补码。()。答案:正确。解析:以8位二进制为例,正整数a的补码是其本身,-a的补码是a的反码加1,而题干中的技巧是该规则的等价简化。例:a=6(二进制00000110),从右往左找第一个1(第2位,从0开始计数),左边所有位取反→11111010,即-6的补码(与反码00000001加1结果一致),该说法正确。25.以下代码中,Hello将被输出5次。()。for(inti=0;i<5;i++);{cout<<"Hello"<<endl;}答案:错误。解析:for循环后的分号;表示循环体为空,循环仅执行5次空操作,之后的{cout<<"Hello"<<endl;}是独立代码块,仅执行1次,因此Hello仅输出1次而非5次,该说法错误。三、编程题(每题25分,共50分)。26.试题名称:密码强度。时间限制:1.0s。内存限制:512.0MB。题目描述:小杨是学校网络安全小组的成员,今天他的任务是设计一个“密码强度检测器”,帮助同学们检查自己的密码是否足够安全。一个安全的密码需要满足以下条件。(1)密码至少包含8个字符(太短的密码容易被猜出来哦!)。(2)密码至少包含一个大写字母(A、B、C、…、Z都可以)。(3)密码至少包含一个数字(0、1、2、3、…、9都可以)。例如。(1)密码PAs1s2an是安全密码(有8位、包含大写字母P、A和数字1、2)。(2)密码ab1da3cd不是安全密码(没有大写字母)。(3)密码Paabdbcd不是安全密码(没有数字)。(4)密码Pa2不是安全密码(只有3位,太短了)。输入格式:第一行一个正整数T,代表需要安全检测的密码组数。对于每组密码,一行包含一个字符串,代表需要安全检测的密码。输出格式:对于每组密码,输出一行,如果满足强度要求输出Y,否则输出N。输入样例。输出样例。样例解释。(1)密码PAs1s2an是安全密码(有8位、包含大写字母P、A和数字1、2)。(2)密码1a2bCql3是安全密码(有8位、包含大写字母C和数字1、2、3)。(3)密码Pa12bsna是安全密码(有8位、包含大写字母P和数字1、2)。(4)密码ab1da3cd不是安全密码(没有大写字母)。(5)密码Paabdbcd不是安全密码(没有数字)。(6)密码Pa2不是安全密码(只有3位,太短了)。数据范围:对于所有测试点,保证1≤T≤100,并且每组密码长度不超过100且至少为1,每组密码仅由大小写字母和数字组成。参考程序。#include<iostream>#include<string>usingnamespacestd;intmain(){intT;cin>>T;while(T--){stringpassword;cin>>password;boolhas_upper=false;boolhas_digit=false;for(size_ti=0;i<password.length();++i){if(isupper(password[i])){has_upper=true;}if(isdigit(password[i])){has_digit=true;}}if(password.length()>=8&&has_upper&&has_digit){cout<<"Y\n";}else{cout<<"N\n";}}return0;}解析:输入T组密码,每组密码需检查三个条件:长度≥8、含大写字母、含数字。用两个布尔变量has_upper和has_digit标记是否满足“含大写字母”和“含数字”。遍历密码字符串,通过isupper()和isdigit()函数判断字符类型,更新标记变量。最后判断三个条件是否同时满足,输出Y或N。27.试题名称:小杨的智慧购物。时间限制:1.0s。内存限制:512.0MB。题目描述:小杨的班级要举办一个环保手工作品展览,老师请小杨去文具店购买M种不同的文具(例如——铅笔、橡皮、尺子等)。商店里共有N件文具,每件文具都有一个种类编号(从1到M)和价格。小杨的预算有限,他想了一个聪明的办法:对于每种文具,他只买最便宜的那一件(如果同种文具有多件价格相同且都是最便宜的,他只会购买其中的一件)。请你帮小杨计算出,买齐这M种文具一共需要花费多少钱。输入格式:第一行两个
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 小店美食活动策划方案(3篇)
- 户外研修活动方案策划(3篇)
- 施工方案文件编码(3篇)
- 梨园五一活动策划方案(3篇)
- 海关装修施工方案(3篇)
- 篮球活动加油方案策划(3篇)
- 行业活动庆典策划方案(3篇)
- 预定折扣活动策划方案(3篇)
- 组合代谢工程改造酿酒酵母鞘脂途径合成四乙酰基植物鞘氨醇的研究
- 基于机器学习的污水处理COD预测模型及检测系统设计
- 膜分离技术-反渗透(RO)(药物分离纯化课件)
- 现代纺纱技术课件 第一章绪论
- 西南科技大学833材料科学基础2016-2022年考研初试真题
- 译林版英语七年级下册全册短语汇总
- DB3208-T 173-2022群众体育智力运动 掼蛋 术语与定义
- GA/T 1939-2021法庭科学电流斑检验扫描电子显微镜/X射线能谱法
- YY/T 0951-2015干扰电治疗设备
- JJF 1189-2008测长仪校准规范
- 2023年湖南九嶷职业技术学院高职单招(英语)试题库含答案解析
- 中兴微电子技术
- 东西方文化导论之日本
评论
0/150
提交评论