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

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

第 1 题 下列C++代码的输出结果是 ( )。

 1 #include <iostream>
 2 #include <cmath>
 3 using namespace std;
 4 int main() {
 5     cout << sin(3.1415926 / 2);
 6     return 0;
 7 } 

{{ select(1) }}

  • 00
  • 11
  • 0.50.5
  • 0.70710.7071

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

1

{{ select(2) }}

  • 先序遍历是 132132
  • 中序遍历是 123123
  • 后序遍历是 312312
  • 先序遍历和后序遍历正好是相反的。

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

{{ select(3) }}

  • {3,5,7,8,1}
  • {3,4,5,7,8}
  • {5,7,8}
  • {3,5,7,9,1}

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

{{ select(4) }}

  • {2,5,6,8,9} 是它的最长上升子序列
  • {1,5,6,8,9} 是它的最长上升子序列
  • {7,5,4,3} 是它的最长下降子序列
  • {1,5,6,8,9} 是它的唯一最长上升子序列

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

{{ select(5) }}

  • 二叉树是也是一种图。
  • 二叉树的前序遍历和后序遍历都是深度优先搜索的一种。
  • 深度优先搜索可以从任意根节点开始。
  • 二叉树的后序遍历也是广度优先搜索的一种。

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

2

{{ select(6) }}

  • HDEBFIGCA 不是它的后序遍历序列
  • ABCDEFGHI 是它的广度优先遍历序列
  • ABDHECFGI 是它的深度优先遍历序列
  • ABDHECFGI 是它的先序遍历序列

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

{{ select(7) }}

  • 丢弃发生冲突的新元素。
  • 在每个哈希表项处,使用不同的哈希函数再建立一个哈希表,管理该表项的冲突元素。
  • 在每个哈希表项处,建立二叉排序树,管理该表项的冲突元素。
  • 使用不同的哈希函数建立额外的哈希表,用来管理所有发生冲突的元素。

第 8 题 在C++中,关于运算符&,下面说法正确的是

{{ select(8) }}

  • 2 & 3 的结果是 true
  • 011 & 111 的结果是 3
  • 3 & 6 的结果是 2
  • 110 & 101 的结果是 4

第 9 题 下面关于图的说法正确的是

{{ select(9) }}

  • 在无向图中,环是指至少包含三个不同顶点,并且第一个顶点和最后一个顶点是相同的路径。
  • 在有向图中,环是指一个顶点经过至少另一个顶点到自身的路径。
  • 在有向图中,如果任意两个顶点之间都存在一条边,则这个图一定是强连通图。
  • 在有向图中,所有顶点的入度和出度的总和就是图的边数的两倍。

第 10 题 图的存储和遍历算法,下面说法错误的是

{{ select(10) }}

  • 图的深度优先搜索和广度优先搜索对有向图和无向图都适用。
  • 图的深度优先搜索和二叉树的先序遍历道理是不一样的。
  • 图的深度优先搜索需要借助栈来完成。
  • 邻接表中,顶点viv_i对应链表中的边结点数目正好是顶点viv_i的度。

第 11 题 如下图所示的邻接表结构,表示的是下列哪个选项中的图?

![3](./5466/file/3.PNG)

{{ select(11) }}

  • 3.1
  • 3.2
  • 3.3
  • 3.4

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

![4](./5466/file/4.PNG)

{{ select(12) }}

  • 4.1
  • 4.2
  • 4.3
  • 4.4

第 13 题 下面程序的输出为

 1 #include <iostream>
 2 using namespace std;
 3 int fib(int n) {
 4     if (n <= 1)
 5         return n;
 6     return fib(n - 1) + fib(n - 2);
 7 }
 8 int main() {
 9     cout << fib(6) << endl;
10     return 0;
11 } 

{{ select(13) }}

  • 55
  • 88
  • 1313
  • 无法正常结束。

第 14 题 下面 count_triple 函数的时间复杂度为

 1 int count_triple(int n) {
 2     int cnt = 0;
 3     for (int a = 1; a <= n; a++)
 4         for (int b = a; a + b <= n; b++) {
 5             int c = sqrt(a * a + b * b);
 6             if (a + b + c > n)
 7                 break;
 8             if (a * a + b * b == c * c)
 9                 cnt++;
10         }
11     return cnt;
12 } 

{{ select(14) }}

  • O(n)O(n)
  • O(n2)O(n^{2})
  • O(n3)O(n^{3})
  • O(n4)O(n^{4})

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

5

{{ select(15) }}

  • 1, 3, 7, 5, 4, 2, 6, 8, 9
  • 9, 4, 2, 1, 3, 5, 7, 6, 8
  • 1, 3, 4, 2, 7, 6, 8, 9, 5
  • 9, 7, 6, 8, 4, 2, 1, 5, 3