#1082. GESP C++ 六 级 2023年9月真题 · 单选题

GESP C++ 六 级 2023年9月真题 · 单选题

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

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

1. 近年来,线上授课变得普遍,很多有助于改善教学效果的设备也逐渐流行,其中包括比较常用的手写板,那么它属于哪类设备?

{{ select(1) }}

  • 输入
  • 输出
  • 控制
  • 记录

2. 如果a和b均为int类型的变量,且b的值不为0,那么下列能正确判断“a是b的3倍”的表达式是?

{{ select(2) }}

  • (a>>3==b)
  • (a - b)%3==0
  • (a/b==3)
  • (a==3*b)

3. 以下不属于面向对象程序设计语言的是?

{{ select(3) }}

  • C++
  • Python
  • Java
  • C

4. 下面有关C++类定义的说法,错误的是?

{{ select(4) }}

  • C++类实例化时,会执行构造函数。
  • C++自定义类可以通过定义构造函数实现自动类型转换。
  • C++自定义类可以通过重载>、<等运算符实现大小比较。
  • C++自定义类可以包含任意类型的成员。

5. 有关下面C++代码的说法,错误的是?

{{ select(5) }}

  • 代码 cout << st << endl; 会报错,因为没有为 MyStr 类重载 << 运算符。
  • 第6行代码的data是MyStr类的成员变量。
  • 代码MyStr st("ABC");不会报错,将执行构造函数。
  • 代码 cout<< st.data <<endl; 可输出 ABC。

6. 下列关于命名空间的说法错误的是?

{{ select(6) }}

  • 命名空间可以嵌套, 例如 namespace A { namespace B { int i;}} 。
  • 命名空间只可以在全局定义。
  • 命名空间中可以存放变量和函数。
  • 如果程序中使用了using命令同时引用了多个命名空间,并且命名空间中存在相同的函数,会出现程序运行错误。

7. 有关下面C++代码的说法,正确的是?

{{ select(7) }}

  • 这段代码不能正常运行。
  • ManyData类可用于构造队列(Queue)数据结构。
  • 在上⾯代码环境,代码 cout<< myData.__data[0] << endl; 可以增加到代码main 函数末尾( return 0; 之前),且不会导致报错。
  • 可以为ManyData类的push()、pop()函数增加异常处理代码,否则在使用ManyData类时可能导致运行时错误或逻辑错误(不一定局限于上述代码中的main函数)。

8. 有关下面C++代码的说法,错误的是?

{{ select(8) }}

  • MoreData类可用于构造队列(Queue)数据结构。
  • 代码第29行,连续push()的用法将导致编译错误。
  • __data是MoreData类的私有成员,只能在类内访问。
  • 以上说法均没有错误。

9. 某内容仅会出现ABCDEFG,其对应的出现概率为0.40、0.30、0.15、0.05、0.04、0.03、0.03,如下图所示。按照哈夫曼编码规则,假设B的编码为11,则D的编码为?

{{ select(9) }}

  • 10010
  • 10011
  • 10111
  • 10001

10. 下面有关格雷码的说法,错误的是?

{{ select(10) }}

  • 在格雷码中,任意两个相邻的代码只有一位二进制数不同。
  • 格雷码是一种唯一性编码。
  • 在格雷码中,最大数和最小数只有一位二进制数不同。
  • 格雷码是一种可靠性编码。

11. 有关下图的二叉树,说法正确的是?

{{ select(11) }}

  • 既是完全二叉树也是满二叉树。
  • 既是二叉搜索树也是平衡二叉树。
  • 非平衡二叉树。
  • 以上说法都不正确。

12. N个节点的二叉搜索树,其查找的平均时间复杂度为?

{{ select(12) }}

  • O(1)
  • O(N)
  • O(log N)
  • O(N2)

13. 青蛙每次能跳1或2步。下面是青蛙跳到第N步台阶C++实现代码。该段代码采用的算法是?

{{ select(13) }}

  • 递推算法
  • 贪心算法
  • 动态规划算法
  • 分治算法

14. N个节点的双向循环链,在其中查找某个节点的平均时间复杂度是?

{{ select(14) }}

  • O(1)
  • O(N)
  • O(log N)
  • O(N2)

15. 关于C++语言,以下说法不正确的是?

{{ select(15) }}

  • 若对象被定义为常量,则它只能调用以const修饰的成员函数。
  • 所有的常量静态变量都只能在类外进行初始化。
  • 若类A的对象a是类B的静态成员变量,则a在main()函数调用之前应被初始化。
  • 静态全局对象、常量全局对象都是在main函数调用之前完成初始化,执行完main函数后被析构。