GESP 2024年6月_C++七级试卷
从PDF导入:GESP 2024年6月_C++七级试卷
试卷题目预览
下列C++代码的输出结果是( )。
#include
#include
using namespace std;
int main() {
cout << sin(3.1415926 / 2);
return 0;
}
对于如下图的二叉树,说法正确的是( )。

已知两个序列s1={1,3,4,5,6,7,7,8,1}、s2={3,5,7,4,8,2,9,5,1},则它们的最长公共子序列是( )。
关于序列{2,7,1,5,6,4,3,8,9},以下说法错误的是( )。
关于图的深度优先搜索和广度优先搜索,下列说法错误的是( )。
对于如下二叉树,下面访问顺序说法错误的是( )。

以下哪个方案不能合理解决或缓解哈希表冲突( )。
在C++中,关于运算符&,下面说法正确的是( )。
下面关于图的说法正确的是( )。
图的存储和遍历算法,下面说法错误的是( )。
如下图所示的邻接表结构,表示的是下列哪个选项中的图?

如下图所示的邻接矩阵(inf表示无穷大),表示的是下列哪个选项中的图?

下面程序的输出为( )。
#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;
}
下面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;
}
下列选项中,哪个可能是下图的深度优先遍历序列( )。

C++语言中,表达式6&5的结果类型为int、值为1。
冒泡排序是稳定的排序算法。
唯一分解定理(算术基本定理)指出,每个大于1的自然数都可以唯一地分解成若干个素数的乘积。因此,我们可以很容易的对给定的自然数n进行质因数分解,时间复杂度仅为O{log(n)}
C++语言中,可以为同一个类定义多个构造函数。
使用math.h或cmath头文件中的对数函数,表达式log(128)的结果类型为double、值约为7.0。
一颗N层的二叉树,至少有2N-1个节点。
非连通图不能使用广度优先搜索算法进行遍历。
现使用有N个表项的哈希表,从M个元素中进行查找。该哈希表为解决哈希函数冲突,为每个表项处建立单链表存储冲突元素。其查找操作的最坏情况时间复杂度为O(M)。
动态规划有递推实现和递归实现,对于很多问题,通过记录子问题的解,两种实现的时间复杂度是相同的。
泛洪算法的递归方法容易造成溢出,因此大的二维地图算法中,一般不用递归方法。
黑白翻转
时间限制: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。
区间乘积
时间限制:1.0s 内存限制:512.0MB
小杨有一个包含n个正整数的序列A=[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。







