#G1125. 2024年06月 GESP C++ 八级

2024年06月 GESP C++ 八级

GESP 202406 C++ 八级

第 1 题

GESP 活动期间,举办方从获胜者 ABCDE 五个人中选出三个人排成一队升国旗,其中 A 不能排在队首,请问有多少种排法?({{ select(1) }})

  • 2424
  • 4848
  • 3232
  • 1212

第 2 题

77 进制数 235235 转换成 33 进制数是({{ select(2) }})。

  • 1112111121
  • 1112211122
  • 1121111211
  • 1111211112

第 3 题

0,1,2,3,4,50,1,2,3,4,5 这些数字组成一个三位数,请问没有重复数字的情况下,有多少种组法({{ select(3) }})。

  • 180180
  • 120120
  • 8080
  • 100100

第 4 题

VV 个顶点、EE 条边的图的深度优先搜索遍历时间复杂度为({{ select(4) }})。

  • O(V)O(V)
  • O(E)O(E)
  • O(V+E)O(V + E)
  • O(log(V+E))O(\log(V + E))

第 5 题

一对夫妻生男生女的概率相同。已知这对夫妻有两个孩子,其中一个是女孩,另一个是男孩的概率是多少?({{ select(5) }})

  • 23\frac{2}{3}
  • 14\frac{1}{4}
  • 12\frac{1}{2}
  • 13\frac{1}{3}

第 6 题

112024202420242024 个数中,共有({{ select(6) }})个包含数字 66 的数。

  • 544544
  • 546546
  • 564564
  • 602602

第 7 题

二进制数 100.001100.001 转换成十进制数是({{ select(7) }})。

  • 4.254.25
  • 4.1254.125
  • 4.54.5
  • 4.754.75

第 8 题

以下函数声明,哪个是符合 C++ 语法的?({{ select(8) }})。

  • void BubbleSort(char a[][], int n);
  • void BubbleSort(char a[][20], int n);
  • void BubbleSort(char a[10][], int n);
  • void BubbleSort(char[,] a, int n);

第 9 题

下面有关 C++ 重载的说法,错误的是({{ select(9) }})。

  • 两个参数个数不同的函数可以重名。
  • 两个参数类型不同的函数可以重名。
  • 两个类的方法可以重名。
  • 所有 C++ 运算符均可以重载。

第 10 题

小于或等于给定正整数 nn 的数中,与 nn 互质的数的个数,我们称为欧拉函数,记作 ϕ(n)\phi(n)。下面说法错误的是({{ select(10) }})。

  • 如果 nn 是质数,那么 ϕ(n)=n1\phi(n) = n - 1
  • 两个质数一定是互质数。
  • 两个相邻的数一定是互质数。
  • 相邻的两个质数不一定是互质数。

第 11 题

已知一棵二叉树有 1010 个节点,则其中至多有({{ select(11) }})个节点有 22 个子节点。

  • 44
  • 55
  • 66
  • 33

第 12 题

二项展开式 $(x + y)^n = x^n + n x^{n-1} y + \frac{n(n-1)}{2} x^{n-2} y^2 + \ldots + y^n$ 的系数,正好满足杨辉三角的规律。当 n=10n = 10 时,二项式展开式中 xy9x y^9 项的系数是({{ select(12) }})。

  • 55
  • 99
  • 1010
  • 88

第 13 题

下面程序的时间复杂度为( )。

bool notPrime[N] = {false};
void sieve() {
    for (int n = 2; n * n < N; n++)
        if (!notPrime[n])
            for (int i = n * n; i < N; i += n)
                notPrime[i] = true;
}

{{ select(13) }}

  • O(N)O(N)
  • O(N×logN)O(N \times \log N)
  • O(N×loglogN)O(N \times \log \log N)
  • O(N2)O(N^2)

第 14 题

下面程序的最差时间复杂度为( )。

int gcd(int m, int n) {
    if (m == 0)
        return n;
    return gcd(n % m, m);
}

{{ select(14) }}

  • O(n)O(\sqrt{n})
  • O(log(n))O(\log(n))
  • O(n)O(n)
  • O(1)O(1)

第 15 题

下面程序的输出为( )。

#include <iostream>
using namespace std;
int main() {
    int cnt = 0;
    for (int x = 0; x <= 10; x++)
        for (int y = 0; y <= 10; y++)
            for (int z = 0; z <= 10; z++)
                if (x + y + z <= 15)
                    cnt++;
    cout << cnt << endl;
    return 0;
}

{{ select(15) }}

  • 9090
  • 9191
  • 710710
  • 711711

第 16 题

ABCDE 五个小朋友,排成一队跑步,其中 AB 两人必须排在一起,一共有 48 种排法({{ select(16) }})。

  • 正确
  • 错误

第 17 题

已知 double 类型的变量 ab,则执行语句 a = a + b; b = a - b; a = a - b; 后,变量 ab 的值会互换({{ select(17) }})。

  • 正确
  • 错误

第 18 题

一个袋子中有 3 个完全相同的红色小球、2 个完全相同的蓝色小球。每次从中取出 1 个,再放回袋子,这样进行 3 次后,可能的颜色顺序有 8 种({{ select(18) }})。

  • 正确
  • 错误

第 19 题

已知 int 类型的变量 ab 中分别存储着一个直角三角形的两条直角边的长度,则斜边的长度可以通过表达式 sqrt(a * a + b * b) 求得({{ select(19) }})。

  • 正确
  • 错误

第 20 题

在一个包含 vv 个顶点、ee 条边的带权连通简单有向图上使用 Dijkstra 算法求最短路径,时间复杂度为 O(v2)O(v^2),可进一步优化至 O(e+vlog(v))O(e + v \log(v))({{ select(20) }})。

  • 正确
  • 错误

第 21 题

NN 个元素的二叉排序树中查找一个元素,最差情况的时间复杂度是 O(logN)O(\log N)({{ select(21) }})。

  • 正确
  • 错误

第 22 题

C++ 语言中,可以为同一个类定义多个析构函数({{ select(22) }})。

  • 正确
  • 错误

第 23 题

使用单链表和使用双向链表,查找元素的时间复杂度相同({{ select(23) }})。

  • 正确
  • 错误

第 24 题

为解决哈希函数冲突,可以使用不同的哈希函数为每个表项各建立一个子哈希表,用来管理该表项的所有冲突元素。这些子哈希表一定不会发生冲突({{ select(24) }})。

  • 正确
  • 错误

第 25 题

要判断无向图的连通性,在深度优先搜索和广度优先搜索中选择,深度优先的平均时间复杂度更低({{ select(25) }})。

  • 正确
  • 错误