#1387. GESP-C++ 综合模拟测(HJXXT)
GESP-C++ 综合模拟测(HJXXT)
CCF GESP C++ 综合模拟测 (2025 年 03 月 5号)
一、单选题(每题 2 分,共 30 分)
(1)定义一个包含 5 个整数的一维数组,正确的是( )
{{ select(1) }}
- int a[5];
- int a(5);
- int a{5};
- int a = [5];
(2)已知int arr[4] = {10, 20, 30, 40};,访问数组中第 3 个元素的正确方式是( )####
{{ select(2) }}
- arr[2]
- arr[3]
- arr(2)
- arr{2}
(3)以下对冒泡排序算法的描述,正确的是( )####
{{ select(3) }}
- 冒泡排序是一种不稳定的排序算法
- 冒泡排序在最好情况下的时间复杂度为 (O(n))
- 冒泡排序不需要额外的存储空间
- 冒泡排序每次比较相邻的两个元素,将较小的元素往后移
(4)选择排序在每次选择元素时,是从( )选择。####
{{ select(4) }}
- 已排序部分
- 未排序部分
- 整个数组
- 数组的前半部分
(5)定义一个 3 行 4 列的二维数组,正确的是( )
{{ select(5) }}
- int a[3, 4];
- int a[3][4];
- int a(3, 4);
- int a[][4] = {{1, 2, 3}, {4, 5, 6}};
(6)字符数组char str[10] = "Hello";,该字符数组的实际长度是( )
{{ select(6) }}
- 5
- 6
- 10
- 不确定
(7)关于函数定义和调用,以下说法正确的是( )
{{ select(7) }}
- 函数定义可以嵌套,但函数调用不能嵌套
- 函数必须有返回值
- 函数定义时的参数是实参,函数调用时的参数是形参
- 函数可以提高代码的复用性
(8)以下递归函数的功能是计算( )
int func(int n) {
if (n == 0) return 1;
return n * func(n - 1);
}
{{ select(8) }}
- n的阶乘
- n的平方
- n的立方
- 2n
(9)若有结构体定义struct Point { int x; int y; };,定义一个结构体变量并初始化,正确的是( )
{{ select(9) }}
- Point p = {1, 2};
- struct Point p = [1, 2];
- Point p(1, 2);
- struct Point p = {x: 1, y: 2};
(10)十进制数 25 转换为二进制数是( )
{{ select(10) }}
- 11001
- 10101
- 11101
- 10011
(11)以下位运算符中,按位与运算符是( )
{{ select(11) }}
- |
- &
- ^
- ~
(12)已知int a = 5, b = 3;,则a & b的结果是( )
{{ select(12) }}
- 1
- 3
- 5
- 7
(13)枚举算法的核心思想是( )
{{ select(13) }}
- 分而治之
- 穷举所有可能情况
- 贪心选择
- 动态规划
(14)对于一个需要频繁插入和删除元素的场景,以下哪种数据结构更合适( )
{{ select(14) }}
- 数组
- 链表
- 栈
- 队列
(15)以下关于递推算法的描述,错误的是( )
{{ select(15) }}
- 递推算法需要有初始条件
- 递推算法分为正序递推和倒序递推
- 递推算法一定比递归算法效率高
- 斐波那契数列的计算可以使用递推算法
二、判断题(每题 2 分,共 20 分)
1.数组名在很多情况下会被转换为指向数组首元素的指针。( )
{{ select(16) }}
- 对
- 错
2.插入排序是一种稳定的排序算法。( )
{{ select(17) }}
- 对
- 错
3.计数排序的时间复杂度始终为 (O(n))。( )
{{ select(18) }}
- 对
- 错
4.二维数组在内存中按列存储时,先存储第一列元素,再存储第二列元素。( )
{{ select(19) }}
- 对
- 错
5.字符串可以用字符数组存储,也可以使用string类型存储,二者没有区别。( )
{{ select(20) }}
- 对
- 错
6.函数的形参在函数调用时才分配内存空间。( )
{{ select(21) }}
- 对
- 错
7.递归函数调用自身时,每次调用的参数必须不同,否则会导致无限递归。( )
{{ select(22) }}
- 对
- 错
8.结构体中的成员不能是结构体类型。( )
{{ select(23) }}
- 对
- 错
9.二进制数 1010 转换为十六进制数是 A。( )
{{ select(24) }}
- 对
- 错
10.位运算中的左移操作相当于对操作数乘以 2 的移动位数次方。( )
{{ select(25) }}
- 对
- 错
相关
在以下作业中: