GESP 2026年3月_C++三级试卷

从PDF导入:GESP 2026年3月_C++三级试卷

C++ 120分钟 总分 100.0 27 题
试卷题目预览
第1题 中级 2.0分 单选
如果字符变量_1的值是字符1,那么(int)_1的值是?( )
A. 1
B. -1
C. 49
D. +1或者-1
第2题 中级 2.0分 单选
a,b是整型变量,各自有互不相同的初始值。下列程序实现了什么效果( )

A. a,b的值从始至终都没有改变
B. a,b的值实现了互换
C. a,b的值互换了以后,又还回去了,相当于没有变化
D. a,b的值最后和原值不一样,没有任何意义
第3题 中级 2.0分 单选
关于下列正确的程序段,说法正确的是( )

A. 字符数组str1和str2完全相同
B. 这段程序将输出不同的结果
C. 字符数组str1和str2不相等
D. 这两个赋值方式完全相同
第4题 中级 2.0分 单选
关于以下程序段,说法正确的是( )

A. C++11标准中,这是未定义行为,不同的环境有可能出现不同的结果
B. 22
C. 21
D. 20
第5题 中级 2.0分 单选
8位二进制下,十进制数-15的补码是( )
A. 11110000
B. 10001111
C. 10010000
D. 11110001
第6题 中级 2.0分 单选
三进制数2102转换成十进制是:( )
A. 63
B. 65
C. 67
D. 69
第7题 中级 2.0分 单选
二进制数10110101是某数的8位补码,该数的十进制是( )
A. -73
B. -75
C. -77
D. 75
第8题 中级 2.0分 单选
已知unsigned char c = 0x0F;(十六进制0F=二进制00001111),执行c = c << 3;后,c的十进制值是:( )
A. 64
B. 72
C. 80
D. 120
第9题 中级 2.0分 单选
补码的情况下,关于按位取反运算,用笔计算的情况下,以下说法错误的是:( )
A. ~5的结果是-6(int类型,32位)
B. ~0的结果是0(int类型,32位)
C. ~(-3)的结果是2(int类型,32位)
D. ~8的结果是-9(int类型,32位)
第10题 中级 2.0分 单选
执行以下C++代码后,sub的值是( )

A. 20
B. 02
C. 2026
D. 026
第11题 中级 2.0分 单选
执行以下代码后,输出结果是:( )

A. 4
B. 6
C. 24
D. 30
第12题 中级 2.0分 单选
执行以下代码后,输出结果是:( )

A. 4
B. 5
C. 6
D. 10
第13题 中级 2.0分 单选
以下问题中,最不适合用枚举法解决的是:( )
A. 找出1~100之间所有能被7整除的数
B. 找出100~200之间的所有质数
C. 计算1+2+3+…+1000的和
D. 找出三位数中个位、十位、百位数字之和等于10的数
第14题 中级 2.0分 单选
用枚举法解决"鸡兔同笼问题:头共35个,脚共94只,求鸡和兔的数量",以下枚举逻辑最合理的是:( )
A. 枚举鸡的数量x(0~35),兔的数量y=35-x,判断2*x + 4*y == 94
B. 枚举兔的数量y(0~94),鸡的数量x=35-y,判断2*x + 4*y == 94
C. 枚举所有整数x(0-100)和y(0-100),判断x+y==35 && 2*x+4*y==94
D. 枚举脚的总数sum(0~94),判断sum == 94
第15题 中级 2.0分 单选
模拟"字符串加密":规则为"每个字符ASCII码+3,若超过z(122)则从a重新开始",以下代码中正确的条件判断是:( )

A. if (str[i]> 122) str[i] = str[i] + 3 - 26;
B. if (str[i] > 122) str[i] = str[i] - 26;
C. if (str[i] + 3 > 122) str[i] = str[i] - 23;
D. if (str[i] + 3 > 'z') str[i] = 'a' + (str[i] + 3 - 'z') - 1;
第16题 中级 2.0分 判断
定义int arr[5] = {1,2,3};,则arr[3]的值为0,arr[5]是合法下标。
T. 正确
F. 错误
第17题 中级 2.0分 判断
定义double arr[10];,未手动初始化时,数组中所有元素的默认值为0.0。
T. 正确
F. 错误
第18题 中级 2.0分 判断
定义int arr[] = {1,2,3};,则sizeof(arr)的结果为12(int占4字节)。
T. 正确
F. 错误
第19题 中级 2.0分 判断
下面的流程图是用来求1+2+3+…+10的和。请判断:这个流程图的逻辑正确还是错误?
T. 正确
F. 错误
第20题 中级 2.0分 判断
下面流程图的功能是计算5对2取余数,输出结果为1。
T. 正确
F. 错误
第21题 中级 2.0分 判断
已知大写字符A的ASCII编码的十六进制表示为0x41,计算字符m的ASCII编码的八进制表示为155(八进制)。
T. 正确
F. 错误
第22题 中级 2.0分 判断
在C++位运算中,各种不同的运算符有优先级的区分,使用括号能够解决优先级的问题。
T. 正确
F. 错误
第23题 中级 2.0分 判断
由于在0~255范围内,char类型和int类型可以互换,因此在这里x和y相等。

T. 正确
F. 错误
第24题 中级 2.0分 判断
在C++语言中,表达式((0xf0 + 0x15) == 255)的值为true。
T. 正确
F. 错误
第25题 中级 2.0分 判断
如果a为int类型的变量,且a的二进制最低位为0,则表达式((a & 3 & 1) == 0)的值为true。
T. 正确
F. 错误
第26题 中级 25.0分 编程
二进制回文串

对于一个正整数N,我们将其转换为不含前导零的二进制表示,如果这个二进制序列从左向右读与从右向左读完全相同,则称该数为二进制回文数。例如,9的二进制表示为1001,是二进制回文数;6的二进制表示为110,不是二进制回文数。 你的任务是:给定一个正整数N,计算在1到N的范围内二进制回文数的数量。

【输入格式】
输入一行,包含一个正整数N。
【输出格式】
输出一行,包含一个数,表示在1到N的范围内二进制回文数的数量。
【样例输入】

15
【样例输出】

6
【样例解释】

样例1中,1到15范围内1、3、5、7、9、15是二进制回文数。
N ≤ 1000。
第27题 中级 25.0分 编程
凯撒密码

凯撒密码是一种替换加密技术,明文中的所有字母都在字母表上向后(或向前)按照一个固定数目进行偏移后被替换成密文。例如,当偏移量是3的时候,所有的字母A将被替换成D,B被替换成E,X被替换成A,Y被替换成B,Z被替换成C。 这个加密方法是以罗马共和时期凯撒的名字命名的,据称当年凯撒曾用此方法与其将军们进行联系。但是和所有的利用字母表进行替换的加密技术一样,凯撒密码非常容易被破解,而且在实际应用中也无法保证通信安全。 现在给你一个已破解的凯撒密码明文与密文,与一个有相同偏移量的未破解凯撒密码密文,请你帮忙破解它。

【输入格式】
输入共三行:
第一行包含一个字符串,表示已破解的凯撒密码明文;
第二行包含一个字符串,表示已破解的凯撒密码密文;
第三行包含一个字符串,表示待破解的凯撒密码密文。
【输出格式】
输出一行,包含一个字符串,表示待破解的凯撒密码对应的明文。
【样例输入】

【样例输出】

THEQUICKBROWNFOXJUMPSOVERTHELAZYDOG
<img src="/static/uploads/images/2c5aa26b90.png" style="max-width:35%;border-radius:6px;margin:8px 0;" />
【样例解释】

样例1中,通过已破解的密码得出偏移量为'D' - 'A' = 3,因此,对未破解部分进行逆向偏移:密文中的W对应明文中的T('W' - 3 = 'T'),密文中的K对应明文中的H('K' - 3 = 'H'),以此类推。
保证密码长度均不超过1000,所有字符串由大写字母组成。
💬