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

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

C++ 180分钟 总分 100.0 27 题
试卷题目预览
第1题 中级 2.0分 单选
下列C++代码的输出结果是( )。

#include
#include
using namespace std;
int main() {
cout << sin(3.1415926 / 2);
return 0;
}

A. 0
B. 1
C. 0.5
D. 0.7071
第2题 中级 2.0分 单选
对于如下图的二叉树,说法正确的是( )。

A. 先序遍历是132。
B. 中序遍历是123。
C. 后序遍历是312。
D. 先序遍历和后序遍历正好是相反的。
第3题 中级 2.0分 单选
已知两个序列s1={1,3,4,5,6,7,7,8,1}、s2={3,5,7,4,8,2,9,5,1},则它们的最长公共子序列是( )。
A. {3,5,7,8,1}
B. {3,4,5,7,8}
C. {5,7,8}
D. {3,5,7,9,1}
第4题 中级 2.0分 单选
关于序列{2,7,1,5,6,4,3,8,9},以下说法错误的是( )。
A. {2,5,6,8,9}是它的最长上升子序列
B. {1,5,6,8,9}是它的最长上升子序列
C. {7,5,4,3}是它的最长下降子序列
D. {1,5,6,8,9}是它的唯一最长上升子序列
第5题 中级 2.0分 单选
关于图的深度优先搜索和广度优先搜索,下列说法错误的是( )。
A. 二叉树也是一种图。
B. 二叉树的前序遍历和后序遍历都是深度优先搜索的一种。
C. 深度优先搜索可以从任意根节点开始。
D. 二叉树的后序遍历也是广度优先搜索的一种。
第6题 中级 2.0分 单选
对于如下二叉树,下面访问顺序说法错误的是( )。

A. HDEBFIGCA不是它的后序遍历序列
B. ABCDEFGHI是它的广度优先遍历序列
C. ABDHECFGI是它的深度优先遍历序列
D. ABDHECFGI是它的先序遍历序列
第7题 中级 2.0分 单选
以下哪个方案不能合理解决或缓解哈希表冲突( )。
A. 丢弃发生冲突的新元素。
B. 在每个哈希表项处,使用不同的哈希函数再建立一个哈希表,管理该表项的冲突元素。
C. 在每个哈希表项处,建立二叉排序树,管理该表项的冲突元素。
D. 使用不同的哈希函数建立额外的哈希表,用来管理所有发生冲突的元素。
第8题 中级 2.0分 单选
在C++中,关于运算符&,下面说法正确的是( )。
A. 2&3的结果是true
B. 011&111的结果是3
C. 3&6的结果是2
D. 110&101的结果是4
第9题 中级 2.0分 单选
下面关于图的说法正确的是( )。
A. 在无向图中,环是指至少包含三个不同顶点,并且第一个顶点和最后一个顶点是相同的路径。
B. 在有向图中,环是指一个顶点经过至少另一个顶点到自身的路径。
C. 在有向图中,如果任意两个顶点之间都存在一条边,则这个图一定是强连通图。
D. 在有向图中,所有顶点的入度和出度的总和就是图的边数的两倍。
第10题 中级 2.0分 单选
图的存储和遍历算法,下面说法错误的是( )。
A. 图的深度优先搜索和广度优先搜索对有向图和无向图都适用。
B. 图的深度优先搜索和二叉树的先序遍历道理是不一样的。
C. 图的深度优先搜索需要借助栈来完成。
D. 邻接表中,顶点i对应链表中的边结点数目正好是顶点i的度。
第11题 中级 2.0分 单选
如下图所示的邻接表结构,表示的是下列哪个选项中的图?

A.
B.
C.
D.
第12题 中级 2.0分 单选
如下图所示的邻接矩阵(inf表示无穷大),表示的是下列哪个选项中的图?

A.
B.
C.
D.
第13题 中级 2.0分 单选
下面程序的输出为( )。

#include
using namespace std;
int fib(int n) {
if (n <= 1)
return n;
return fib(n - 1) + fib(n - 2);
}
int main() {
cout << fib(6) << endl;
return 0;
}

A. 5
B. 8
C. 13
D. 无法正常结束。
第14题 中级 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++) {
int c = sqrt(a * a + b * b);
if (a + b + c > n)
break;
if (a * a + b * b == c * c)
cnt++;
}
return cnt;
}

A. O(n)
B. O(n²)
C. O(n³)
D. O(n⁴)
第15题 中级 2.0分 单选
下列选项中,哪个可能是下图的深度优先遍历序列( )。

A. 1,3,7,5,4,2,6,8,9
B. 9,4,2,1,3,5,7,6,8
C. 1,3,4,2,7,6,8,9,5
D. 9,7,6,8,4,2,1,5,3
第16题 中级 2.0分 判断
C++语言中,表达式6&5的结果类型为int、值为1。
T. 正确
F. 错误
第17题 中级 2.0分 判断
冒泡排序是稳定的排序算法。
T. 正确
F. 错误
第18题 中级 2.0分 判断
唯一分解定理(算术基本定理)指出,每个大于1的自然数都可以唯一地分解成若干个素数的乘积。因此,我们可以很容易的对给定的自然数n进行质因数分解,时间复杂度仅为O{log(n)}
T. 正确
F. 错误
第19题 中级 2.0分 判断
C++语言中,可以为同一个类定义多个构造函数。
T. 正确
F. 错误
第20题 中级 2.0分 判断
使用math.h或cmath头文件中的对数函数,表达式log(128)的结果类型为double、值约为7.0。
T. 正确
F. 错误
第21题 中级 2.0分 判断
一颗N层的二叉树,至少有2N-1个节点。
T. 正确
F. 错误
第22题 中级 2.0分 判断
非连通图不能使用广度优先搜索算法进行遍历。
T. 正确
F. 错误
第23题 中级 2.0分 判断
现使用有N个表项的哈希表,从M个元素中进行查找。该哈希表为解决哈希函数冲突,为每个表项处建立单链表存储冲突元素。其查找操作的最坏情况时间复杂度为O(M)。
T. 正确
F. 错误
第24题 中级 2.0分 判断
动态规划有递推实现和递归实现,对于很多问题,通过记录子问题的解,两种实现的时间复杂度是相同的。
T. 正确
F. 错误
第25题 中级 2.0分 判断
泛洪算法的递归方法容易造成溢出,因此大的二维地图算法中,一般不用递归方法。
T. 正确
F. 错误
第26题 中级 25.0分 编程
黑白翻转

时间限制:1.0s 内存限制:512.0MB
小杨有一棵包含n个节点的树,这棵树上的任意一个节点要么是白色,要么是黑色。
小杨认为一棵树是美丽树当且仅当在删除所有白色节点之后,剩余节点仍然组成一棵树。
小杨每次操作可以选择一个白色节点将它的颜色变为黑色,他想知道自己最少要执行多少次操作可以使得这棵树变为美丽树。

【输入格式】
第一行包含一个正整数n。第二行包含n个非负整数a₁,a₂,...,aₙ。之后n-1行描述边。
【输出格式】
输出一个整数,代表最少执行的操作次数。
【样例输入1】
5
0 1 0 1 0
1 2
1 3
2 4
2 5
【样例输出1】
2
对于全部数据,保证有1≤n≤10⁵,0≤ai≤1。
第27题 中级 25.0分 编程
区间乘积

时间限制:1.0s 内存限制:512.0MB
小杨有一个包含n个正整数的序列A=[a₁,a₂,...,aₙ]。
小杨想知道有多少对(1≤l≤r≤n)满足aₗ×aₗ₊₁×...×aᵣ为完全平方数。
一个正整数x为完全平方数当且仅当存在一个正整数Y使得x=Y×Y。

【输入格式】
第一行包含一个正整数n。第二行包含n个正整数a₁,a₂,...,aₙ。
【输出格式】
输出一个整数,代表满足要求的<l,r>数量。
【样例输入1】
5
1 2 3 4 6
【样例输出1】
2
对于全部数据,保证有1≤n≤10⁵,1≤ai≤30。
💬