版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
2025年6月GESP编程能力认证C++等级考试三级真题(含答案和解析-在末尾)一、单选题(每题2分,共30分)。1.题8位二进制原码能表示的最小整数是()。A.-127B.-128C.-255D.-2562.反码表示中,零的表示形式有()。A.1种B.2种C.8种D.16种3.补码10111011对应的真值是()。A.-69B.-59C.-68D.-584.若X的8位补码为00001010,则X/2的补码是()。A.00000101B.10000101C.00000101或10000101D.算术右移后结果取决于符号位5.二进制数1101.101对应的十进制数是()。A.13.625B.12.75C.11.875D.14.56.补码加法中,若最高位和次高位进位不同,则说明()。A.结果正确B.发生上溢C.发生下溢D.结果符号位错误7.八进制数35.6对应的十进制数是()。A.29.75B.28.5C.27.625D.30.258.二进制数1010|1100的结果是()。A.1000B.1110C.1010D.11009.以下哪个位运算可以交换两个变量的值(无需临时变量)()。A.a=a^b;b=a^b;a=a^b;B.a=a&b;b=a|b;a=a&b;C.a=a|b;b=a^b;a=a^b;D.a=~a;b=~b;a=~a;10.如何正确定义一个长度为5的整型数组()。A.intarray=newint[5];B.arrayint[5];C.int[]array={1,2,3,4,5};D.intarray[5];11.以下程序使用枚举法(穷举法)求解满足条件的三位数,横线处应该填入的是()。#include<iostream>usingnamespacestd;intmain(){intcount=0;for(inti=100;i<=999;i++){inta=i/100;____________________intc=i%10;if(a*a+b*b==c*c){count++;}}cout<<count<<endl;return0;}A.intb=(i/10)/10;B.intb=(i/10)%10;C.intb=(i%10)/10;D.intb=(i%10)%10;12.以下程序模拟了一个简单的小球反弹过程,横线处应该填入的是()。#include<iostream>usingnamespacestd;intmain(){intheight=10;intdistance=0;for(inti=1;i<=5;i++){//模拟5次落地。______________________height/=2;distance+=height;}cout<<distance<<endl;return0;}A.distance+=height/2;B.distance+=height;C.distance+=height*2;D.distance+=height+1;13.题C++代码strings="GESP考试";s占据的字节数是()。A.10B.8C.8或10D.取决于计算机采用什么编码14.题C++语句strings="GespTest";执行s.rfind("e")以后,输出的是()。A.1B.2C.6D.315.字符串"Gesp考试",字符数是()。A.10B.8C.6D.字符数多少取决于编码二、判断题(每题2分,共20分)。16.题C++中string的==运算符比较的是字符串的内存地址,而非内容。()。A.正确B.错误17.题string的substr(1,3)返回从下标1开始的3个字符的子串。()。A.正确B.错误18.题x是浮点数,(x>>1)等价于x/2。()。A.正确B.错误19.题string("hello")=="hello"的比较结果为true。()。A.正确B.错误20.题sort可以直接用于排序set中的元素。()。A.正确B.错误21.题(x&1)==0可以判断整数x是否为偶数。()。A.正确B.错误22.题string的substr(2,10)在字符串长度不足时会抛出异常。()。A.正确B.错误23.在数学纸面计算中,pow(2,3)的计算结果一定是8,但是在C++中,如果遇到数据类型是浮点数,那就不一定正确。()。A.正确B.错误24.在C++中,枚举的底层类型可以是非整型(如float或double)。()。A.正确B.错误25.函数声明doublef();返回int时,会自动转换为double。()。A.正确B.错误三、编程题(每题25分,共50分)。26.试题名称:奇偶校验。时间限制:1.0s。内存限制:512.0MB。题目描述:数据在传输过程中可能出错,因此接收方收到数据后通常会校验传输的数据是否正确,奇偶校验是经典的校验方式之一。给定n个非负整数c1,c2……cn代表所传输的数据,它们的校验码取决于这些整数在二进制下1的数量之和的奇偶性。如果这些整数在二进制下共有奇数个1,那么校验码为1;否则校验码为。你能求出这些整数的校验码吗?输入格式:第一行,一个正整数n,表示所传输的数据量。第二行,n个非负整数,表示所传输的数据。输出格式:输出一行,两个整数,以一个空格分隔。第一个整数表示c1,c2……cn在二进制下1的总数量。第二个整数表示校验码(0或1)。数据范围:对于所有测试点,保证1≤n≤100,0≤ci≤255。27.试题名称:分糖果。时间限制:1.0s。内存限制:512.0MB。题目描述:有n位小朋友排成一队等待老师分糖果。第i位小朋友想要至少ai颗糖果,并且分给他的糖果数量必须比分给前一位小朋友的糖果数量更多,不然他就会不开心。老师想知道至少需要准备多少颗糖果才能让所有小朋友都开心。你能帮帮老师吗?输入格式:第一行,一个正整数n,表示小朋友的人数。第二行,n个正整数a1,a2,……,an,依次表示每位小朋友至少需要的糖果数量。输出格式:输出一行,一个整数,表示最少需要准备的糖果数量。数据范围:对于所有测试点,保证1≤n≤100,0≤ai≤109。答案解析如下。1.答案:A。解析:注意此题问的是原码,原码第1位是符号位,后面7位是数据位。题目问能表示的最小的数,那就是最小的负数,所以符号位是1,剩下7位数据位最多就是(1111111)2=127,所以合起来,8位原码最小的就是-127,选A。2.答案:B。解析:在反码表示中,零有两种表示形式+0(全0)和-0(全1)。3.答案:A。解析:补码10111011最高位为1,表示负数。求真值可以将其符号位不变,其余各位依次取反再加1,得到(11000101)2=(-69)10,所以答案为A。4.答案:A。解析:方法1——00001010转为十进制为10,X/2=5,补码为00000101。方法2:除以2相当于是右移1位。在补码表示中,正数右移1位时,高位补0;负数右移1位时,高位补1。此处X为正数,故X/2的补码为00000101。5.答案:A。解析:将二进制数1101.101转换为十进制,1101=1×23+1×22+0×21+1×20+1×2-1+0×2-2+1×2-3=8+4+0+1+0.5+0+0.125=13.625。因此答案为A。6.答案:B。解析:当最高位符号位没进位,次高位有进位,这种情况下,只有可能是最高位原来为0,次高位进位使得最高位变为1(若最高位本来为1,次高位进位了,则会使得最高位也发生进位,与题意不符)。所以只有可能是两个非负数相加,超过整数表示范围的上限,变成负数的情况。这种情况称为“上溢”。因此,选项B正确。7.答案:A。解析:将八进制数35.6转换为十进制,(35.6)8=3×81+5×80+6×8-1=24+5+6÷8=29+0.75=29.75。因此答案为A。8.答案:B。解析:符号|表示按位或操作,即只要对应位有一个为1,结果就为1。1010|1100按位进行或运算:1|1=1;0|1=1;1|0=1;0|0=0。结果为1110。答案为B。9.答案:A。解析:要交换两个变量的值,可以使用异或运算的特性——a^a=0,a^0=a,且异或运算满足交换律和结合律。正确的交换代码是:a=a^b;(a现在变为a^b);b=a^b;(b变为(a^b)^b=a);a=a^b;(a变为(a^b)^a=b)。因此答案为A。10.答案:D。解析:在主流编程语言(如C、C++、Java)中,正确定义长度为5的整型数组的方式是使用类型后跟数组名,然后在方括号中指定长度。选项D"intarray[5];"是标准的声明方式,定义了一个名为array的5个整数元素的数组。答案为D。11.答案:B。解析:程序在寻找满足a²+b²=c²的三位数。已知a=i/100(百位),c=i%10(个位),所以b应为十位数,即(i%100)/10或(i/10)%10。在这些选项中,"intb=(i/10)%10;"正确提取了十位数字。答案为B。12.答案:B。解析:程序模拟小球反弹过程,每次弹起高度为上次的一半(height/=2)。总距离应包含下落距离和上升距离。第9行是高度减半,减半完应为反弹的高度,第10行则累加了反弹得上升距离。所以由此可知,程序目前还缺累加下落距离,应填在第8行。由于第8行时高度还未减半,所以直接累加即可(下落高度是原高度,反弹高度是当次下落高度的一半)。所以答案选B。13.答案:D。解析:在C++中,汉字采用不同的编码方案所得到的字节数不同。14.答案:C。解析:string的rfind()方法从右向左查找字符,返回找到的字符下标。"GespTest"中,从右向左第一个"e"出现在"Test"中,下标为6(从0开始)。15.答案:C。解析:字符串"Gesp考试"包含6个字符——G、e、s、p、考、试。16.答案:错误。解析:string类型变量进行==比较时,比较的是内容,只有字符串字面量进行==比较时,才比较地址而非内容。17.答案:正确。解析:string的substr(pos,len)函数返回从pos位置开始、长度为len的子字符串。substr(1,3)表示从索引1(第二个字符)开始,提取长度为3的子串。例如,对于字符串"Hello",substr(1,3)将返回"ell"。18.答案:错误。解析:位运算只能针对整数类型进行运算。19.答案:正确。解析:string类型进行==比较时,比较的是内容。所以题面描述正确。20.答案:错误。解析:set不可以用sort排序。21.答案:正确。解析:本质为取出x二进制的最低位进行判断,偶数的二进制形式中最低位一定为0。22.答案:错误。解析:当字符串长度不足时,不会抛出异常,会截取到最后一个字符。23.答案:正确。解析:计算机无法精确表示所有小数。24.答案:错误。解析:必须是整型。25.答案:正确。解析:这里有一个自动地隐式类型转换。26.参考程序。#include<cstdio>usingnamespacestd;intn,v;intmain(){scanf("%d",&n);for(inti=1;i<=n;i++){intc;scanf("%d",&c);while(c){v+=c&1;c>>=1;}}printf("%d%d\n",v,v&1);return0;}解析:读取n个整数,对每个整数执行位运算处理——v+=c&1计算当前数的最低位并累
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026年四川省甘孜藏族自治州高三压轴卷语文试卷含解析
- 26年银发用电安全问题解决方案课件
- 外汇经纪人职业规划
- 天津大中专就业指导热线
- 巡查组安全生产检查要点讲解
- 工程行业廉洁试题及答案
- 福建省龙岩市2025-2026学年高二语文上学期期末教学质量检查试题含解析
- 逻辑学题目及详解
- 钢琴演奏试卷及详解
- 金融机构内部控制体系建设自查整改复查报告
- 基础学护理冷热敷
- 道路交通事故现场勘查规范
- 大气污染防治专项资金项目申请报告撰写要点与2025年申报指南
- 2025年专利审查协作中心招聘考试面试常见问题解答
- 后勤管理内控知识培训课件
- 洛阳二外小升初数学试卷
- 2025-2030中国儿童营养早餐行业销售动态与竞争策略分析报告
- 结构稳定理论(第2版)课件 第7、8章 钢架的稳定、拱的平面内屈曲
- 2025年德勤秋招测试题及答案大全
- 转诊考核管理办法
- 体育类特长班宣传课件
评论
0/150
提交评论