2025年3月GESP认证C++等级考试三级真题(含答案和解析-在末尾)_第1页
2025年3月GESP认证C++等级考试三级真题(含答案和解析-在末尾)_第2页
2025年3月GESP认证C++等级考试三级真题(含答案和解析-在末尾)_第3页
2025年3月GESP认证C++等级考试三级真题(含答案和解析-在末尾)_第4页
2025年3月GESP认证C++等级考试三级真题(含答案和解析-在末尾)_第5页
已阅读5页,还剩6页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

2025年3月GESP认证C++等级考试三级真题(含答案和解析-在末尾)一、单选题(每题2分,共30分)。1.题Base64编码将每3字节的输入数据编码为4字节的输出数据。如果输入数据长度不是3的倍数,会用=号填充。在Base64编码中,如果输入字符串的长度为10字节,编码后的字符串长度是多少()。A.12字节B.13字节C.14字节D.16字节2.题UTF-8编码规则如下。以下哪个字节序列是合法的UTF-8编码()。A.0xC00x80B.0xF00x900x800x80C.0x800x800x80D.0xFF0xFE0xFD3.在8位二进制原码表示中,八进制数-5的二进制形式是什么()。A.10000101B.11111010C.11111011D.000001014.十进制数111.111的二进制表示可以是下面的()。A.1101111.0001110001B.1101110.1001110001C.1101111.1001110001D.1101111.00111100015.在C++中,补码的主要作用是()。A.提高浮点数的精度B.简化整数的加减法运算C.增加整数的表示范围D.优化内存分配6.在C++中,一个8位有符号整数(使用补码表示)的范围是()。A.-128到127B.-127到128C.-256到255D.0到2557.在C++中,以下代码的输出是什么()。inta=-5;unsignedintb=a;cout<<b;A.-5B.5C.4294967291D.编译错误8.下列程序的作用是()。intmain(){intdecimal=25;cout<<oct<<decimal;return0;}A.将十进制数转换成八进制数B.将八进制数转换成十进制数C.将二进制数转换成八进制数D.将八进制数转换成16进制数9.下面程序是将十进制转十六进制,横线处应该填入的是()。#include<iostream>usingnamespacestd;intmain(){intdecimal=255;__________________return0;}A.cout<<oct<<decimal;B.cout<<decimal<<decimal;C.cout<<hex<<decimal;D.不能正确执行10.以下代码的说法正确的是什么()。#include<iostream>usingnamespacestd;intmain(){inta=0b1101;intb=0b1011;cout<<(a^b);return0;}A.进行的是整体异或运算B.进行的是按位同或运算C.进行的是按位与运算D.进行的是按位异或运算11.下面枚举法查找最大值索引程序中,横线处应该填写的是()。#include<iostream>usingnamespacestd;intmain(){intarr[]={3,7,2,9,5};intmaxIndex=0;for(inti=1;i<5;i++){______________________________{maxIndex=i;}}cout<<maxIndex;return0;}A.if(arr[maxIndex]>arr[i])B.if(arr[i]-1>arr[maxIndex])C.if(arr[i]+1>arr[maxIndex])D.if(arr[i]>arr[maxIndex])12.以下代码的功能是将数组中的奇数和偶数分别放在数组的前半部分和后半部分,横线处应该填入的是()。#include<iostream>usingnamespacestd;intmain(){intarr[]={1,2,3,4,5};intleft=0,right=4;while(left<right){while(arr[left]%2==1&&left<right)left++;___________________________________________________if(left<right){swap(arr[left],arr[right]);}}for(inti=0;i<5;i++){cout<<arr[i]<<"";}return0;}A.while(arr[left]%2==0&&left<right)right--;B.while(arr[right]%2==0&&left<right)left--;C.while(arr[right]%2!=0&&left<right)right--;D.while(arr[right]%2==0&&left<right)right--;13.下面程序最后能够得到HelloC++的是()。intmain(){stringstr="HelloWorld";___________________cout<<str;return0;}A.str.replace(0,5,"C++");B.str.replace(5,5,"C++");C.str.replace(1,5,"C++");D.str.replace(4,5,"C++");14.想要得到字符串world,下面程序横线处应该填入的是()。#include<iostream>#include<string>usingnamespacestd;intmain(){stringstr="HelloC++";__________________________________return0;}A.B.cout<<str.substr(5,5);C.D.15.有n个正整数,假设一个正整数是美丽数字当且仅当该正整数是9的倍数但不是8的倍数。下面的程序是编写计算n个正整数中美丽数字的数量,横线处应该填入的是()。for(inti=1;i<=n;i++){cin>>a;__________________________cnt++;}A.if(a%9!=0&&a%8!=0)B.if(a%9==0&a%8==0)C.if(a%9==0&&a%8!=0)D.if(a%9==0&a%8!=0)二、判断题(每题2分,共20分)。16.判断一个三角形是否成立的条件只有:任意两边长度之和大于第三条边的长度。()。A.正确B.错误17.这段程序进行的是判断一个从键盘输入的字符的ASCII是否是奇数,若是,输出YES,否则,输出NO。()。intmain(){charx;scanf("%c",&x);intASCII=(int)x;cout<<(x&1?"YES":"NO")<<'\n';return0;}A.正确B.错误18.闰年的定义如下。普通闰年:公历年份是4的倍数,且不是100的倍数的,为闰年(如2004年、2020年等就是闰年)。世纪闰年:公历年份是整百数的,必须是400的倍数才是闰年(如1900年不是闰年,2000年是闰年)。下面程序是判断是否是闰年的正确程序()。cin>>n;cout<<((n%4==0&&n%100!=0)||(n%400==0))?1:0;return0;A.正确B.错误19.题C++语句cout<<(n%15==0?"YES":"NO");能够判断一个整数能否被3和5同时整除。()。A.正确B.错误20.有n个同学,从中抽取任意个人数来参加学校组织的大合唱,共有2的n次幂个方法。()。A.正确B.错误21.若将一个正整数化为二进制数,在此二进制数中,我们将数字1的个数是偶数的这类二进制数称为A类数,否则就称其为B类数。()。例如。(13)10=(1101)2,其中1的个数为3则称此数为B类数。(10)10=(1010)2,其中1的个数为2,称此数为A类数。判断(2025)10化为二进制后,1的个数为偶数个,因此2025为A类数。A.正确B.错误22.该段程序将n不停地除以2,并输出此时的商和余数,直到n=0为止。()。longlongn;cin>>n;while(n!=0){cout<<n/2<<''<<n%2<<'\n';n/=2;}A.正确B.错误23.两个13进制的数A和B,在10进制下分别表示10和11。(A+B)13=(18)13,也就是说13进制数A加上13进制数B,和是13进制数18。()。A.正确B.错误24.题k进制,逢k进第二位,k2进百位,k3进千位。()。A.正确B.错误25.题CCF(十九进制)=21AC(十三进制)(不区分大小写)。()。A.正确B.错误三、编程题(每题25分,共50分)。26.题2025。题目描述:小A有一个整数x,他想找到最小的正整数y使得下式成立:(xandy)+(xory)=2025。其中and表示二进制按位与运算,or表示二进制按位或运算。如果不存在满足条件的y,则输出-1。输入格式:一行,一个整数x。输出格式:一行,一个整数,若满足条件的y存在则输出y,否则输出-1。数据范围:对于所有测试点,保证0≤x<2025。提示:(xandy)+(xory)=2025。其中:and表示按位与运算,运算符为&。or表示按位或运算,运算符为|。27.词频统计。题目描述:在文本处理中,统计单词出现的频率是一个常见的任务。现在,给定n个单词,你需要找出其中出现次数最多的单词。在本题中,忽略单词中字母的大小写(即Apple、apple、APPLE、aPPle等均视为同一个单词)。请你编写一个程序,输入n个单词,输出其中出现次数最多的单词。输入格式:第一行,一个整数n,表示单词的个数。接下来n行,每行包含一个单词,单词由大小写英文字母组成。输入保证,出现次数最多的单词只会有一个。输出格式:输出一行,包含出现次数最多的单词(输出单词为小写形式)。数据范围:对于所有测试点,1≤n≤100,每个单词的长度不超过30,且仅由大小写英文字母组成。答案解析如下。1.答案:D。解析:输入字符串长度为10,按题目所描述的Base64编码规则,其中前9个字符,输出为12个字符,最后1个字符不是3的倍数,用3个=号填充。故一共是16个字符。2.答案:B。解析:将选项中的16进制数转换为2进制,观察可知,答案为B。3.答案:A。解析:八位二进制原码,从左侧数第一位是符号位,负数为1,其余正常短除法即可。4.答案:A。解析:将十进制数转换为二进制,分别计算整数部分111应用短除法得1101111,小数部分采用乘2取整,顺序排列法,观察4个选项小数部分可知答案为A。5.答案:B。解析:补码是计算机中表示有符号整数的一种方式,其核心目的是统一加法和减法的运算逻辑。6.答案:A。解析:8位二进制,第一位为符号位表示正负,剩下7位,每位可以填0,也可以填1,根据乘法原理,能表示27个数字,范围为[-128,127]。7.答案:C。解析:int类型-5的补码为10000000000000000000000000000101,将数值赋给unsignedint类型后,原符号位被视为数值位,应用位权法232+22+20,计算后为C选项。8.答案:A。解析:题目代码用C++输出流控制数字的进制格式,oct是八进制简写,将变量decimal以八进制形式输出。9.答案:C。解析:题目代码用C++输出流控制数字的进制格式,hex是十六进制简写,将变量decimal以十六进制形式输出。10.答案:D。解析:0b前缀表示后面是一个二进制数字,^是按位异或的计算符。因此将2个二进制数字做异或计算即可。11.答案:D。解析:程序为打擂台找最值,需要填充的语句为“若当前的元素比最大的元素还要大,则更新最大值的索引(即数组下标)。12.答案:D。解析:按照题干所示的方法进行模拟,当查找区间存在时,对应代码while(left<right),则用left变量充当左指针,right指针充当右指针,分别从左往右,从右往左扫描,遇到第一个偶数/奇数时停下来,交换它们,以此达成题意。13.答案:B。解析:replace方法原型为basic_string&replace(size_typepos,size_typecount,constbasic_string&str);第一参数表示替换开始的下标位置,第二个表示要从刚才位置开始替换到第几个,第三个表示替换为什么。14.答案:D。解析:insert方法原型为basic_string&insert(size_typeindex,size_typecount,CharTch);第一个参数表示插入位置,第二个参数表示插入的字符串是什么。substr方法原型为basic_stringsubstr(size_typepos=0,size_typecount=npos)const;第一个参数表示截取子串的开始位置,第二个表示截取长度。15.答案:C。解析:按照题干描述模拟即可。16.答案:错误。解析:也可以用任意两边之差小于第三边来进行判断。17.答案:正确。解析:x&1操作是一个常见的奇偶性判断写法,等价于x%2。18.答案:正确。解析:根据题意程序先判断n是否4的倍数且非100倍数,再判断是否400倍数,满足其中1个,n为闰年输出1,否则输出0。19.答案:正确。解析:3和5互质,故可以通过模它们的乘积来判断是否能同时整除3和5。20.答案:正确。解析:抽取时一个一个考虑,每一个同学都有可能抽中或抽不中,根据乘法原理,答案为2n。21.答案:正确。解析:将2025进行短除法后观察其2进制即可。22.答案:正确。解析:程序描述了短除法过程。23.答案:正确。解析:A+B=21,将十进制数21转换为13进制,得到18。24.答案:错误。解析:只有十进制下,才存在百位,千位,其他进制中并不存在。25.答案:错误。解析:将CCF(十九进制)转换为4575(十进制),再转换为210C(十三进制)。结果明显与题干描述不符。26.参考程序。#include<cstdio>usingnamespacestd;intx;intmain(){scanf("%d",&x);for(inti=1;i<=2025;

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论