#CCF4874. [GESP202312 八级] 选择题

[GESP202312 八级] 选择题

2023年12月CCF-GESP编程能力等级认证C++编程八级真题

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

第1题 小杨要从A城到B城,又想顺路游览一番。他有两个选项:1、坐高铁路到C城游览,再坐高铁或飞机到B城;2、坐船到D城游览,再坐船、高铁或飞机到B城。请问小杨从A城到B城共有几种交通方案可以选择?( )。

{{ select(1) }}

  • 2
  • 3
  • 5
  • 6

第2题 以下哪个函数声明是符合语法的,且在调用时可以将二维数组的名字作为实际参数传递给形式参数 a ?( )。

{{ select(2) }}

  • void QuickSort(int a[][10], int n);
  • void QuickSort(int a[5][], int m);
  • void QuickSort(int a[][], int n, int m);
  • void QuickSort(int ** a, int n, int m);

第3题 下面有关C++类和对象的说法,错误的是( )。

{{ select(3) }}

  • 对象的生命周期开始时,会执行构造函数。
  • 对象的生命周期结束时,会执行析构函数。
  • 类的析构函数可以为虚函数。
  • 类的构造函数可以为虚函数。

第4题 使用邻接矩阵表达 n 个顶点的有向图,则该矩阵的大小为( )。

{{ select(4) }}

  • n×(n+1)
  • n×n
  • n×(n-1)
  • n×(n-1)/2

第5题 5 位同学排队,其中一位同学不能排在第一,则共有多少种可能的排队方式?( )。

{{ select(5) }}

  • 5
  • 24
  • 96
  • 120

第6题 一个无向图包含 n 个顶点,则其最小生成树包含多少条边?( )。

{{ select(6) }}

  • n-1
  • n
  • n+1
  • 最小生成树可能不存在。

第7题 已知三个 double 类型的变量 a 、 b 和 theta 分别表示一个三角形的两条边长及二者的夹角(弧度),则下列哪个表达式可以计算这个三角形的面积?( )。

{{ select(7) }}

  • a * b * sin(theta) / 2
  • (a + b) * sin(theta) / 2
  • a * b * cos(theta) / 2
  • sqrt(a * a + b * b - 2 * a * b * cos(theta))

第8题 对有 n 个元素的二叉排序树进行中序遍历,其时间复杂度是( )。

{{ select(8) }}

  • O(1)
  • O(log(n))
  • O(n)
  • 2

第9题 假设输入参数 m 和 n 满足m≤n,则下面程序的最差情况的时间复杂度为( )。

{{ select(9) }}

  • O(log(n))
  • O(n)
  • O(n×m)
  • O(m×log(n))

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

{{ select(10) }}

  • O(n)O(n)
  • O(an)O(a^n)
  • O(log(n))O(log(n))
  • O(log(n)×a)O(log(n) \times a)

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

{{ select(11) }}

  • O(2n)O(2^n)
  • O(2m×(nm))O(2^m \times (n-m))
  • O(C(n,m))O(C(n,m))
  • O(m×(nm))O(m \times (n-m))

第12题 下面的程序使用出边的邻接表表达有向图,则下列选项中哪个是它表达的图?( )。

{{ select(12) }}

第13题 下面程序的输出为( )。

{{ select(13) }}

  • 12
  • 18
  • 36
  • 42

第14题 下面程序的输出为( )。

{{ select(14) }}

  • 3
  • 6
  • 11
  • 22

第15题 下面的程序中,二维数组 h 和 v 分别代表如下图所示的网格中的水平边的时间消耗和垂直边的时间消耗。 程序使用动态规划计算从左下角到右上角的最小时间消耗,则横线处应该填写下列哪个选项的代码?( )。

{{ select(15) }}

  • dis[i][j] = min(dis[i - 1][j] + v[i - 1][j], dis[i][j - 1] + h[i][j - 1]);
  • dis[i][j] = min(dis[i - 1][j] + h[i - 1][j], dis[i][j - 1] + v[i][j - 1]);
  • dis[i + 1][j + 1] = min(dis[i][j + 1] + v[i][j + 1], dis[i + 1][j] + h[i + 1][j]);
  • dis[i + 1][j + 1] = min(dis[i][j + 1] + h[i][j + 1], dis[i + 1][j] + v[i + 1][j]);

二、判断题 (每题2分,共20分)

第16题 C++语言非常强大,可以用来求解方程的解。例如,如果变量 x 为 double 类型的变量,则执行语句 x * 2- 4 = 0; 后,变量 x 的值会变为 2.0 。

{{ select(16) }}

  • 正确
  • 错误

第17题 一个袋子中有3个完全相同的红色小球、2个完全相同的蓝色小球。每次从中取出1个,且不放回袋子,这样进行3次后,将取出的小球依次排列,则可能的颜色顺序有7种。

{{ select(17) }}

  • 正确
  • 错误

第18题 杨辉三角,是二项式系数的一种三角形排列,在中国南宋数学家杨辉1261年所著的《详解九章算法》一书中出现,是中国数学史上的一项伟大成就。

{{ select(18) }}

  • 正确
  • 错误

第19题 N个顶点的有向完全图(不带自环)有N×(N-1)/2条边。

{{ select(19) }}

  • 正确
  • 错误

第20题 如果待查找的元素确定,只要哈希表的大小不小于查找元素的个数,就一定存在不会产生冲突的哈希函数。

{{ select(20) }}

  • 正确
  • 错误

第21题 动态规划算法的时间复杂度一般为:必要状态的数量,乘以计算一次状态转移方程的时间复杂度。

{{ select(21) }}

  • 正确
  • 错误

第22题 已知 int 类型的变量 a 、 b 和 h 中分别存储着一个梯形的顶边长、底边长和高,则这个梯形的面积可以通过表达式 (a + b) * h / 2 求得。

{{ select(22) }}

  • 正确
  • 错误

第23题 判断图是否连通只能用广度优先搜索算法实现。

{{ select(23) }}

  • 正确
  • 错误

第24题 在 个元素的二叉排序树中查找一个元素,最好情况的时间复杂度是O(logN)。

{{ select(24) }}

  • 正确
  • 错误

第25题 给定double类型的变量x,且其值大于等于0,我们可以通过二分法求出x\sqrt x的近似值

{{ select(25) }}

  • 正确
  • 错误