#1112. GESP C++ 七 级 2024年9月真题 · 单选题

GESP C++ 七 级 2024年9月真题 · 单选题

GESP C++ 七 级 2024年9月真题(180 分钟,总分 100 分)

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

1. 已知小写字母b的ASCII码为98,下列C++代码的输出结果是(  )。

#include <iostream>
using namespace std;
int main()
{
    char a = 'b';
    a++;
    cout << a;
    return 0;
}

{{ select(1) }}

  • b
  • c
  • 98
  • 99

2. 已知a为int类型变量,下列表达式不符合语法的是(  )。

{{ select(2) }}

  • &a + 3
  • +a & 3
  • a - - 4
  • a++3

3. 下列关于C++语言中指针的叙述,不正确的是(  )。

{{ select(3) }}

  • 指针变量中存储的是内存地址。
  • 指针变量指向的内存地址不一定能够合法访问。
  • 结构类型中的指针成员不能指向该结构类型。
  • 定义指针变量时必须指定其指向的类型。

4. 下列关于C++类的说法,错误的是(  )。

{{ select(4) }}

  • 将C++类对象通过值传递给函数参数时,会自动调用复制构造函数。
  • 将一个类的对象赋值给该类的另一个对象时,不会自动调用构造函数。
  • 定义C++类对象时,一定会调用默认构造函数。
  • 构造派生类的对象时,一定会调用基类的构造函数。

5. 某二叉树T的先序遍历序列为:{A B D C E G H F},中序遍历序列为:{D B A H G E C F},则下列说法中正确的是(  )。

{{ select(5) }}

  • T的高为5
  • T有4个叶节点
  • T是平衡树
  • 以上说法都不对

6. 一棵完全二叉树有431个结点,则叶结点有多少个?(  )

{{ select(6) }}

  • 176
  • 215
  • 216
  • 255

7. 下列关于树的说法,错误的是(  )。

{{ select(7) }}

  • 二叉树的中序遍历与其深度优先遍历总是相同的。
  • 所有树都可以构造一颗二叉树与之一一对应。
  • 如果树的一个叶结点有两个不同的祖先结点,那么其中一个一定是另一个的祖先结点。
  • 树的结点不能有两个父结点。

8. 一个简单无向图有10个结点、30条边。再增加多少条边可以成为完全图。(  )

{{ select(8) }}

  • 10
  • 15
  • 51
  • 60

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

{{ select(9) }}

  • 丢弃发生冲突的新元素。
  • 用新元素覆盖发生冲突的元素。
  • 用新元素覆盖在冲突位置的下一个位置。
  • 将新元素放置在冲突位置之后的第一个空位。

10. 一个迷宫,已知从起点不经过重复结点到达终点的路径有且仅有一条,则下面说法错误的是(  )。

{{ select(10) }}

  • 可以使用深度优先搜索找到这条路径。
  • 可以使用广度优先搜索找到这条路径。
  • 该迷宫内与起点连通的结点,一定也与终点连通。
  • 该迷宫内与起点连通的结点及它们之间的路径可以抽象为无向无环图。

11. 下面程序的输出为(  )。

#include <iostream>
#include <cmath>
using namespace std;
int main()
{
    cout << (int)log(8) << endl;
    return 0;
}

{{ select(11) }}

  • 2
  • 3
  • 8
  • 无法通过编译。

12. 下面程序的输出为(  )。

#include <iostream>
#define N 10
using namespace std;
int path[N][N];
int main()
{
    for (int i = 1; i < N; i++)
        path[i][0] = i;
    for (int j = 1; j < N; j++)
        path[0][j] = j;
    for (int i = 1; i < N; i++)
        for (int j = 1; j < N; j++)
            path[i][j] = path[i - 1][j] + path[i][j - 1];
    cout << path[8][4] << endl;
    return 0;
}

{{ select(12) }}

  • 84
  • 495
  • 1012
  • 结果是随机的。

13. 上题中程序的时间复杂度为(  )。

{{ select(13) }}

  • O(1)
  • O(N)
  • O(N log N)
  • O(n2)

14. 下面fib函数的时间复杂度为(  )。

int fib_rcd[MAX_N];
int fib(int n)
{
    if (n <= 1)
        return 1;
    if (fib_rcd[n] > 0)
        return fib_rcd[n];
    return fib(n - 1) + fib(n - 2);
}

{{ select(14) }}

  • O(n)
  • O(ϕn),ϕ=5−12O(\phi^n), \phi = \frac{\sqrt{5} - 1}{2}
  • O(2n)
  • 无法正常结束。

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

{{ select(15) }}

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