CCF GESP 2024年6月认证 C++ 7级

单选题
共 15 道 每题 2 分 共计 30 分
第 1 题

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

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

$0$

B

$1$

C

$0.5$

D

$0.7071$

第 2 题

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

A

先序遍历是 $132$。

B

中序遍历是 $123$。

C

后序遍历是 $312$。

D

先序遍历和后序遍历正好是相反的。

第 3 题

已知两个序列 $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,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 题

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

A

二叉树是也是一种图。

B

二叉树的前序遍历和后序遍历都是深度优先搜索的一种。

C

深度优先搜索可以从任意根节点开始。

D

二叉树的后序遍历也是广度优先搜索的一种。

第 6 题

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

A

$HDEBFIGCA$ 不是它的后序遍历序列

B

$ABCDEFGHI$ 是它的广度优先遍历序列

C

$ABDHECFGI$ 是它的深度优先遍历序列

D

$ABDHECFGI$ 是它的先序遍历序列

第 7 题

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

A

丢弃发生冲突的新元素。

B

在每个哈希表项处,使用不同的哈希函数再建立一个哈希表,管理该表项的冲突元素。

C

在每个哈希表项处,建立二叉排序树,管理该表项的冲突元素。

D

使用不同的哈希函数建立额外的哈希表,用来管理所有发生冲突的元素。

第 8 题

在 C++ 中,关于运算符 &,下面说法正确的是( )。

A

$2$ & $3$ 的结果是 true

B

$011$ & $111$ 的结果是 $3$

C

$3$ & $6$ 的结果是 $2$

D

$110$ & $101$ 的结果是 $4$

第 9 题

下面关于图的说法正确的是( )。

A

在无向图中,环是指至少包含三个不同顶点,并且第一个顶点和最后一个顶点是相同的路径。

B

在有向图中,环是指一个顶点经过至少另一个顶点到自身的路径。

C

在有向图中,如果任意两个顶点之间都存在一条边,则这个图一定是强连通图。

D

在有向图中,所有顶点的入度和出度的总和就是图的边数的两倍。

第 10 题

图的存储和遍历算法,下面说法错误的是( )。

A

图的深度优先搜索和广度优先搜索对有向图和无向图都适用。

B

图的深度优先搜索和二叉树的先序遍历道理是不一样的。

C

图的深度优先搜索需要借助栈来完成。

D

邻接表中,顶点 $v_i$ 对应链表中的边结点数目正好是顶点 $v_i$ 的度。

第 11 题

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

A

B

C

D

第 12 题

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

A

B

C

D

第 13 题

下面程序的输出为( )。

#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;
}
A

5

B

8

C

13

D

无法正常结束。

第 14 题

下面 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^2)$

C

$O(n^3)$

D

$O(n^4)$

第 15 题

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

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

单选题部分已到底了。