GESP 2024年3月_C++七级试卷

从PDF导入:GESP 2024年3月_C++七级试卷

C++ 180分钟 总分 100.0 27 题
试卷题目预览
第1题 中级 2.0分 单选
下列关于排序的说法,正确的是( )。
A. 冒泡排序是最快的排序算法之一。
B. 快速排序通常是不稳定的。
C. 最差情况,N个元素做归并排序的时间复杂度为O(N)。
D. 以上均不正确。
第2题 中级 2.0分 单选
下面的程序属于哪种算法( )。

A. 贪心算法
B. 动态规划
C. 深度优先搜索
D. 广度优先搜索
第3题 中级 2.0分 单选
下面有关C++类的说法,错误的是( )。
A. C++类对象销毁时,会执行析构函数。
B. C++类可以通过定义构造函数实现自动类型转换。
C. C++类可以通过重载[]运算符实现通过给定下标访问数组成员的元素。
D. C++类可以包含任意类型的成员变量。
第4题 中级 2.0分 单选
一个连通的简单无向图,共有28条边,则该图至少有( )个顶点。
A. 6
B. 7
C. 8
D. 9
第5题 中级 2.0分 单选
以下哪个方案不能合理解决或缓解哈希表冲突( )。
A. 在每个哈希表项处,使用单链表管理该表项的冲突元素。
B. 建立额外的单链表,用来管理所有发生冲突的元素。
C. 使用不同的哈希函数再建立一个哈希表,用来管理所有发生冲突的元素。
D. 用新元素覆盖发生冲突的哈希表项。
第6题 中级 2.0分 单选
已知一棵二叉树的中序遍历序列为:{C,F,B,A,E,D,G},后序遍历序列为:{F,C,B,E,G,D,A},则下列说法中正确的是( )。
A. 该树是平衡二叉树。
B. 该树的高为4。
C. 该树有4个叶节点。
D. 以上说法都不对。
第7题 中级 2.0分 单选
以下关于二叉排序树的说法,正确的是( )。
A. 二叉排序树的中序遍历序列一定是有序的。
B. 在含n个节点的二叉排序树中查找元素,最差情况的时间复杂度为O(logn)。
C. 二叉排序树一定是二叉平衡树。
D. 以上说法都不对。
第8题 中级 2.0分 单选
已知x为double类型的变量,且值大于0,则下列表达式的值一定大于0的是( )。
A. sin(x)/x
B. exp(x)-x
C. log(x)-x
D. x*x-x
第9题 中级 2.0分 单选
一个简单有向图有10个结点、30条边。再增加多少条边可以成为完全图。( )
A. 60
B. 70
C. 15
D. 20
第10题 中级 2.0分 单选
下列选项中,哪个可能是下图的深度优先遍历序列( )。

A. 8,6,1,5,3,4,2,10,7,12,11,9
B. 7,8,6,4,2,1,5,3,12,9,11,10
C. 8,10,12,9,11,4,5,3,2,1,6,7
D. 7,8,10,9,11,12,4,5,1,2,3,6
第11题 中级 2.0分 单选
下面schedule函数的时间复杂度为( )。

A. O(n)
B. O(logn)
C. O(nlogn)
D. O(n²)
第12题 中级 2.0分 单选
下面search函数的平均时间复杂度为( )。

A. O(n)
B. O(logn)
C. O(1)
D. 可能无法返回
第13题 中级 2.0分 单选
下面count_triple函数的时间复杂度为( )。

int count_triple(int n) {
int cnt = 0;
for (int a = 1; a <= n; a++)
for (int b = a; a + b <= n; b++)
for (int c = b; a + b + c <= n; c++)
if (a * a + b * b == c * c)
cnt++;
return cnt;
}

A. O(N)
B. O(N²)
C. O(N³)
D. O(N⁴)
第14题 中级 2.0分 单选
下面程序的输出为( )。

A. 6
B. 13
C. 20
D. 无法正常结束。
第15题 中级 2.0分 单选
下面的程序使用邻接矩阵表达的带权无向图,则从顶点0到顶点3的最短距离为( )。

int weight[4][4] = {
{0, 2, 5, 8},
{2, 0, 1, 7},
{5, 1, 0, 4},
{8, 7, 4, 0}
};

A. 6
B. 7
C. 8
D. 9
第16题 中级 2.0分 判断
祖冲之是南北朝时期杰出的数学家、天文学家,其主要贡献在数学、天文历法和机械制造三方面。他首次将"圆周率"精算到小数第七位,即在3.1415926和3.1415927之间。
T. 正确
F. 错误
第17题 中级 2.0分 判断
C++语言中,表达式2^3的结果类型为int、值为8。
T. 正确
F. 错误
第18题 中级 2.0分 判断
一棵有N个节点的完全二叉树,则树的深度为⌊log₂N⌋+1。
T. 正确
F. 错误
第19题 中级 2.0分 判断
能用动态规划解决的问题,一般也可以用贪心法解决,但动态规划的效率更高。
T. 正确
F. 错误
第20题 中级 2.0分 判断
使用math.h或cmath头文件中的正弦函数,表达式sin(30)的结果类型为double、值约为0.5。
T. 正确
F. 错误
第21题 中级 2.0分 判断
要求出简单有向图中从顶点A到顶点B的最短路径,在深度优先搜索和广度优先搜索中选择,广度优先更适合。
T. 正确
F. 错误
第22题 中级 2.0分 判断
某N个表项的哈希表,在发生哈希函数冲突时采用向后寻找空位的方法解决冲突。其查找操作的平均时间复杂度为O(1),即使当该哈希表的每个表项都有元素时,查找操作的平均时间复杂度仍为O(1) 。( )
T. 正确
F. 错误
第23题 中级 2.0分 判断
动态规划有递推实现和递归实现,有时两种实现的时间复杂度不同。
T. 正确
F. 错误
第24题 中级 2.0分 判断
围棋游戏中,判断落下一枚棋子后是否会提掉对方的子,可以使用泛洪算法来实现。
T. 正确
F. 错误
第25题 中级 2.0分 判断
类B继承了抽象类A,但未实现类A中的纯虚函数f,则类B不能直接实例化。
T. 正确
F. 错误
第26题 中级 25.0分 编程
交流问题

时间限制:1.0s 内存限制:512.0MB
来自2所学校A校、B校的N名同学相聚在一起相互交流,方便起见,我们把这些同学从1至N编号。
他们共进行了M次交流,第i次交流中,编号为ui,vi的同学相互探讨了他们感兴趣的话题,并结交成为了新的朋友。
由于这次交流会的目的是促进两校友谊,因此只有不同学校的同学之间会交流,同校同学并不会相互交流。
作为A校顾问,你对B校的规模非常感兴趣,你希望求出B校至少有几名同学、至多有几名同学。

【输入格式】
第一行两个正整数N,M。接下来M行,每行两个正整数ui,vi,表示一次交流。
【输出格式】
输出一行两个整数,用单个空格隔开,分别表示B校至少有几名同学、至多有几名同学。
【样例输入1】
4 2
1 2
3 4
【样例输出1】
2 2
对于100%的测试点,保证N≤10⁵,M≤2×10⁵。
第27题 中级 25.0分 编程
俄罗斯方块

时间限制:1.0s 内存限制:512.0MB
小杨同学用不同种类的俄罗斯方块填满了一个大小为n×m的网格图。
网格图由n×m个带颜色方块构成。小杨同学现在将这个网格图交给了你,请你计算出网格图中俄罗斯方块的种类数。
如果两个同色方块是四连通(即上下左右四个相邻的位置)的,则称两个同色方块直接连通;若两个同色方块同时与另一个同色方块直接或间接连通,则称两个同色方块间接连通。
一个俄罗斯方块由一个方块和所有与其直接或间接连通的同色方块组成。
定义两个俄罗斯方块的种类相同当且仅当通过平移其中一个俄罗斯方块可以和另一个俄罗斯方块重合;如果两个俄罗斯方块颜色不同,仍然视为同一种俄罗斯方块。

【输入格式】
第一行包含两个正整数n,m。对于之后n行,第i行包含m个正整数,表示该行m个方块的颜色。
【输出格式】
输出一个非负整数,表示俄罗斯方块的种类数。
【样例输入1】
5 8
1 1 2 2 3 3 4 4
1 1 2 2 3 3 4 4
1 1 2 2 3 3 4 5
1 1 2 2 3 3 6 6
1 1 2 2 7 7 8 8
【样例输出1】
7
对于全部数据,保证有1≤n,m≤500,0≤aij≤500²。
💬