#1570. GESP八级真题(202406)

GESP八级真题(202406)

C++ 八级 2024 年 06 ⽉

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

第 1 题 GESP活动期间,举办⽅从获胜者ABCDE五个⼈中选出三个⼈排成⼀队升国旗,其中A不能排在队⾸,请问有多少种排法?

{{ select(1) }}

  • 24
  • 48
  • 32
  • 12

第 2 题 7进制数235转换成3进制数是( )。

{{ select(2) }}

  • 11121
  • 11122
  • 11211
  • 11112

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

{{ select(3) }}

  • 180
  • 120
  • 80
  • 100

第 4 题 有V个顶点、E条边的图的深度优先搜索遍历时间复杂度为( )。

{{ 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 题 从1到2024这2024个数中,共有( )个包含数字6的数。

{{ select(6) }}

  • 544
  • 546
  • 564
  • 602

第 7 题 ⼆进制数 100.001 转换成⼗进制数是( )。

{{ select(7) }}

  • 4.25
  • 4.125
  • 4.5
  • 4.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 题 ⼩于或等于给定正整数n的数中,与n互质的数的个数,我们称为欧拉函数,记作ϕ(n)\phi(n) 。下⾯说法错误的是( )。

{{ select(10) }}

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

第 11 题 已知⼀棵⼆叉树有10个节点,则其中⾄多有( )个节点有2个⼦节点。

{{ select(11) }}

  • 4
  • 5
  • 6
  • 3

第 12 题 ⼆项展开式 的系数$(x+y)^n = x^n + nx^{n-1}y+\frac{n(n-1)}{2}x^{n-2}y^2+...+y^n$,正好满⾜杨辉三角的规律。当n=10n=10时,⼆项式展开式中 xy9xy^9项的系数是( )。

{{ select(12) }}

  • 5
  • 9
  • 10
  • 8

第 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) }}

  • 90
  • 91
  • 710
  • 711

**2 判断题(每题 2 分,共 20 分) **

第 1 题 ABCDE五个⼩朋友,排成⼀队跑步,其中AB两⼈必须排在⼀起,⼀共有48种排法。

{{ select(16) }}

第 2 题 已知 double 类型的变量 ab ,则执⾏语句 a = a + b; b = a - b; a = a - b; 后,变量 ab 的值会互换。

{{ select(17) }}

第 3 题 ⼀个袋⼦中有3个完全相同的红⾊⼩球、2个完全相同的蓝⾊⼩球。每次从中取出1个,再放回袋⼦,这样进⾏3次后,可能的颜⾊顺序有8种。

{{ select(18) }}

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

{{ select(19) }}

第 5 题 在⼀个包含 v 个顶点、 e 条边的带权连通简单有向图上使⽤Dijkstra算法求最短路径,时间复杂度为 O(v2)O(v^2) ,可进⼀步优化⾄O(e+vlog(v))O(e+v log(v))

{{ select(20) }}

第 6 题 在 NN个元素的⼆叉排序树中查找⼀个元素,最差情况的时间复杂度是O(logN)O(log N)

{{ select(21) }}

第 7 题 C++语⾔中,可以为同⼀个类定义多个析构函数。

{{ select(22) }}

第 8 题 使⽤单链表和使⽤双向链表,查找元素的时间复杂度相同。

{{ select(23) }}

第 9 题 为解决哈希函数冲突,可以使⽤不同的哈希函数为每个表项各建⽴⼀个⼦哈希表,⽤来管理该表项的所有冲突元素。这些⼦哈希表⼀定不会发⽣冲突。

{{ select(24) }}

第 10 题 要判断⽆向图的连通性,在深度优先搜索和⼴度优先搜索中选择,深度优先的平均时间复杂度更低。

{{ select(25) }}