#G2503C4A. [GESP202503 四级] 客观题

[GESP202503 四级] 客观题

一、单项选择题(共 15 题,每题 2 分,共计 30 分;每题有且仅有一个正确选项)

  1. 关于下述代码,说法错误的是:

image

{{ select(1) }}

  • 函数 multiply 的定义应该放到函数 main 之前
  • 函数声明 int multiply(int x, int y); 中明确指定了函数 multiply() 的返回值为整数类型
  • 在 main 函数中,函数 multiply 通过 multiply(a, b) 被调用,其中 a 和 b 是定义在 main 函数中的变量,它们作为实参传递给了 multiply 函数的形参 x 和 y
  • 运行上述代码,将输出 The result is: 20
  1. 执行下述代码将输出:

image

{{ select(2) }}

  • 2020
  • 2010
  • 1010
  • 编译错误
  1. 执行下述代码后,变量 a 的值为:

image

{{ select(3) }}

  • 10
  • 20
  • 随机值
  • 编译错误
  1. 以下哪种参数传递方式可以避免拷贝大型对象?{{ select(4) }}
  • 只能用值传递
  • 只能用引用传递
  • 只能用指针传递
  • 引用传递和指针传递均可
  1. 执行下述代码,将输出:

image

{{ select(5) }}

  • 12
  • 21
  • 22
  • 11
  1. 下列描述中,正确定义一个名为 Person 的结构体并正确初始化了一个 Person 结构体变量 p:

{{ select(6) }}

  • image
  • image
  • image
  • image
  1. 给定如下代码,下列描述错误的是:

image

{{ select(7) }}

  • 结构 Person 内嵌套结构 Address
  • Person 有一个 Address 类型的 address 成员
  • 一个 Person 类型变量 p 的 address 的初始化可以写成: p.address.street = "123 Main St"; p.address.city = "Anytown";
  • 结构的嵌套可以减少命名冲突,因此可以不必控制嵌套层次
  1. 假设 int arr[2][3] = {{1,2,3},{4,5,6}}; ,则 arr[1][2] 的值是:

    {{ select(8) }}

  • 2
  • 3
  • 5
  • 6
  1. 下列选项中,正确定义二维数组的是:

{{ select(9) }}

  • int arr[3,4];
  • int arr[3][4];
  • int arr(3,4);
  • int a[3-4];
  1. 小杨正在爬楼梯,需要爬 n 阶才能到达楼顶。如果每次可以爬 1 个或 2 个台阶,下列递推代码横线上应填写:

image

{{ select(10) }}

  • image
  • image
  • image
  • image
  1. 给定如下算法,其横线处代码时间复杂度为:

image

{{ select(11) }}

  • O(n2)O(n^2)
  • O(n×2n)O(n \times 2^n)
  • O(1)O(1)
  • O(n3)O(n^3)
  1. 下列关于排序稳定性的描述,正确的是:{{ select(12) }}
  • 稳定性指算法的时间复杂度恒定
  • 稳定排序保证相同元素的相对顺序不变
  • 选择排序是稳定排序
  • 插入排序不是稳定排序
  1. 对数组 arr[]={5,3,8,1} 进行升序排序,执行第一轮冒泡排序后数组内容为:{{ select(13) }}
  • 3, 5, 1, 8
  • 3, 1, 5, 8
  • 3, 5, 8, 1
  • 5, 3, 8, 1
  1. 运行下列代码,将出现:

image

{{ select(14) }}

  • 屏幕上输出 Caught: Runtime error occurred.
  • 屏幕上输出 Caught an unknown exception.
  • 程序调用 std::terminate()
  • 编译错误
  1. 下列方式中,不能将字符串 “Happy Spring!” 输出重定向到文件 log.txt 的是:

{{ select(15) }}

  • image
  • image
  • image
  • image

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

  1. 函数是 C++ 中的核心概念,用于封装可重用的代码块。{{ select(16) }}
  • 正确
  • 错误
  1. 在 C++ 中,函数的返回类型可以省略,默认为 int。{{ select(17) }}
  • 正确
  • 错误
  1. 结构体的成员默认是 public 访问权限。{{ select(18) }}
  • 正确
  • 错误
  1. 假设整数数组 arr[4] = {0,1,2,3};其首元素地址为 0x7ffee4065820,经 int* p = arr; p += 1; 后,指针 p 的值是 1。{{ select(19) }}
  • 正确
  • 错误
  1. 二维数组作为函数参数时,必须显式指定所有维度的大小。{{ select(20) }}
  • 正确
  • 错误
  1. 递推是一种通过已知初始值和递推公式逐步求解目标值的算法。{{ select(21) }}
  • 正确
  • 错误
  1. 考虑最坏情况下冒泡排序算法的时间复杂度,设待排序数据个数为 $n$,其递推关系式为 T(n)=T(n1)+n,T(0)=1T(n)=T(n-1)+n,T(0)=1

{{ select(22) }}

  • 正确
  • 错误
  1. 插入排序在最好情况(已有序)下的时间复杂度是 O(n2)O(n^2)

{{ select(23) }}

  • 正确
  • 错误
  1. 对数组 arr[]={4,3,1,5,2} 进行升序排序,执行第一轮选择排序后数组内容是 {1,4,3,5,2}。{{ select(24) }}
  • 正确
  • 错误
  1. 未捕获异常会调用 std::terminate 终止程序。{{ select(25) }}
  • 正确
  • 错误