GESP C++ 三级模拟试题1
- 选择题
- (2023年6月)二进制数 11.01 在十进制下是( )。
- 3.01
- 3.05
- 3.125
- 3.25
- (2023年9月)下列流程图的输出结果是?( )
- 60
- 20
- 5
- 1
- (2023年9月)已知⼤写字符'A'的ASCII编码的⼗六进制表⽰为0x41 ,则字符'L'的ASCII编 码的⼗六进制表⽰为 ( )。
- 4A
- 4B
- 4C
- 52
- (样题)枚举算法的主要特点是( )
- 以空间换时间
- 逐个尝试所有可能的解
- 动态规划
- 贪心策略
- (样题)以下哪个属于 C++语言中的位运算符?( )
- +
- -
- *
- &
- (2023年9月)如果数组定义为long long array[] = {3, 5, 7, 2};,则数组array占⽤的字节 数为( )。
- 32
- 16
- 8
- 4
- (样题)在 C++语言中,可以定义一个一维整型数组的是( )。
- int array[5];
- int array[];
- int[5] array;
- int[] array;
- (2023年6月)下列关于进制的叙述,不正确的是( )
- 正整数的二进制表示中只会出现 0 和 1。
- 10 不是 2 的整数次幂,所以十进制数无法转换为二进制数。
- 从二进制转换为 8 进制时,可以很方便地由低到高将每 3 位二进制位转换为 对应的一位 8。
- 从二进制转换为 16 进制时,可以很方便地由低到高将每 4 位二进制位转换为 对应的一位 16。
- (2023年6月)下列关于 C++语言中数组的叙述,不正确的是( )。
- 数组必须先定义后使用。
- 数组的所有元素在内存中是连续存放的。
- 除了字符数组,在定义数组时“[]”内必须有常数。
- 不能对数组赋值,但可以对数组的每个基础类型的元素赋值。
- (样题)下列哪个是 C++语言中用于获取字符串长度的函数( )
- length()
- len()
- getLength()
- strlen()
- (2023年9月)如果 a和b均为int类型的变量 ,下列表达式不能正确判断“ a等于b ” 的是( )。
- ((a >= b) && (a <=b))
- ((a >> 1) == (b >> 1))
- ((a + b) == (a + a))
- ((a ^ b) == 0)
- (2023年9月)如果 a为char类型的变量 ,下列哪个表达式可以正确判断“a是⼤写字 母”?( )
- a - 'A' <= 26
- 'A' <= a <= 'Z'
- 'A' <= 'a' <= 'Z
- ('A' <= a) && (a <= 'Z')
- (2023年6月)在下列代码的横线处填写( ),可以使得输出是“24 12”。
#include <iostream>
using namespace std;
int main(){
int a=12,b=24;
;//在此处填入代码
a=a^b;
b=a^b;
cout<<a<<" "<<b<<endl;
return 0;
}
-
- a = a ^ b
- b = a ^ b
- a = a + b
- b = a + b
- (样题)在下列代码的横线处填写(),可以保证输出是“1357”,不会有多余字符。
#include <iostream>
#include <string>
using namespace std;
int main(){
char str[]="123456";
for( ) // 在此处填入代码
cout<<str[i];
return 0;
}
-
- int i = 0; i < strlen(str); i++
- int i = 0; str[i] != '\0'; i++
- int i = 1; i <= 7; i += 2
- int i = 0; i <= 6; i += 2
- (2023年6月)在下列代码的横线处填写( ),可以使得输出不是“31"。
#include <iostream>
using namespace std;
int main(){
int array[5]={1,2,4,8,16};
int res=0;
for(int i=0;i<5;i++)
;//在此处填写代码
cout<<res<<endl;
return 0;
}
-
- res=res+array[i]
- res=res&array[i]
- res=res|array[i]
- res=res^array[i]
- 判断题
- (2023年6月)一个算法可以用不同的形式来描述,但要求描述比较规范,因此不能用自然 语言描述。
- (样题)二进制数据编码中,负数的补码是通过对原码按位取反并加 1 得到的。
- (2023年6月)在C++语⾔中,长度为 的数组,访问下标为 的元素会引起编译错误。
- (2023年9月)字符常量'3'的值和int类型常量3的值是相同的,只是占⽤的字节数不同。
- (2023年9月)在C++语⾔中,数组下标的⼤⼩决定元素在逻辑上的先后顺序,与元素在内 存中位置的先后顺序⽆关。
- (2023年6月)在C++语言中,可以使用字符(如'0')作为数组下标。
- (样题)C++语言中的数组可以根据需要自动调整大小。
- (2023年6月)计算机中存储的数据都是二进制形式。因此,在使用 C++语言编写程序时,将 所有十进制数改写为相同数值的二进制数,会使得程序运行效率更高。
- (2023年9月)在C++语言中,表达式(0xf == 015)的值为 true。
- (2023年6月)如果 a 为 int 类型的变量,且表达式((a | 3) == 3)的值为 true,则说明 a 在从 0 到 3 之间(可能为 0、可能为 3)。
- 编程题
- 春游(2023年6月)
【问题描述】
老师带领同学们春游。已知班上有N位同学,每位同学有从 0 到N − 1 的唯
一编号。到了集合时间,老师确认是否所有同学都到达了集合地点,就让同学们
报出自己的编号。到达的同学都会报出的编号,不会报出别人的编号,但有的同
学很顽皮,会多次报出。你能帮老师找出有哪些同学没有到达吗?
【输入描述】
输入包含 2 行。第一行包含两个整数N和M,表示班级有N位同学,同学们 共有M次报出编号。约定 2 ≤ N, M ≤ 1000。 第二行包含M个整数,分别为M次报出的编号。约定所有编号都在合理范围 内。
【输出描述】
输出一行。如果所有同学都到达,则输出N;否则由小到大输出所有未到达 的同学编号,空格分隔。
【样例输入1】
3 3
0 2 1
【样例输出1】
3
【样例输入2】
3 5
0 0 0 0 0
【样例输出2】
1 2
- 最长连续重复字符
【问题描述】
请统计输入的字符串中最大连续重复字符的个数, 要求统计出字符串中哪个字符连续出现的次数最多,并且要统计该字符连续出现的次数,如果该字符有多个,只输出最先出现的那个字符。
例如:字符串为 AAA222BBAAAaa,则在这个字符串中,字符 A 和字符 2 连续出现的次数都是最多,都是 3 次,只需要输出A 3。
【输入描述】
共一行,一个字符串,长度不超过1000。
【输出描述】
共一行,连续出现次数最多的字符,和出现次数,使用空格隔开。
【样例输入1】
AAA222BBAAAaa
【样例输出1】
A 3
【样例输入2】
abcdef
【样例输出2】
a 1
【样例输入3】
aaa111BBBBB333
【样例输出3】
B 5