#GESP1035. [GESP202406七级] 客观题

一.单选题(每题2分,共30分)

  1. 下列C++代码的输出结果是

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

  1. 对于如下图的二叉树,说法正确的是 ( )。

    1

  1. 已知两个序列 s1= {1,3,4,5,6,7,7,8,1}s2= {3,5,7,4,8,2,9,5,1} ,则它们的最长公共子序列是

  1. 关于序列 {2,7,1,5,6,4,3,8,9} ,以下说法错误的是

  1. 关于图的深度优先搜索和广度优先搜索,下列说法错误的是

  1. 对于如下二叉树,下面访问顺序说法错误的是( )。

2

下面有关说法,错误的是

  1. 以下哪个方案不能合理解决或缓解哈希表冲突( )。

  1. 在C++中,关于运算符&,下面说法正确的是

  1. 下面关于图的说法正确的是

  1. 图的存储和遍历算法,下面说法错误的是

  1. 如下图所示的邻接表结构,表示的是下列哪个选项中的图?。

    3

  1. 如下图所示的邻接矩阵(inf 表示无穷大),表示的是下列哪个选项中的图?
![4](./503/file/4.PNG)

  1. 下面程序的输出为
```cpp
#include <iostream>
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;
}

  1. 下面 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;
}

  1. 下列选项中,哪个可能是下图的深度优先遍历序列

    5

二.判断题(每题2分,共20分)

  1. C++语⾔中, 表达式 6 & 5 的结果类型为 int 、 值为 1

  1. 冒泡排序是稳定的排序算法。

  1. 唯⼀分解定理(算术基本定理) 指出, 每个⼤于1的自然数都可以唯⼀地分解成若⼲个素数的乘积。 因此,我们可以很容易的对给定的自然数 n 进⾏质因数分解, 时间复杂度仅为O(log(n))。

  1. C++语⾔中, 可以为同⼀个类定义多个构造函数。

  1. 使⽤ math.hcmath 头⽂件中的对数函数, 表达式 log(128) 的结果类型为 double 、 值约为 7.0

  1. ⼀颗 N 层的⼆叉树, ⾄少有2N12^{N-1}个节点。

  1. 非连通图不能使⽤⼴度优先搜索算法进⾏遍历。

  1. 现使⽤有 N 个表项的哈希表, 从 M 个元素中进⾏查找。 该哈希表为解决哈希函数冲突, 为每个表项处建⽴单 链表存储冲突元素。 其查找操作的最坏情况时间复杂度为O(M)

  1. 动态规划有递推实现和递归实现, 对于很多问题, 通过记录⼦问题的解, 两种实现的时间复杂度是相同的。

  1. 泛洪算法的递归⽅法容易造成溢出, 因此⼤的⼆维地图算法中, ⼀般不⽤递归⽅法。