0 #GESP125. GESP六级第一次练习题单

GESP六级第一次练习题单

  1. 以下不属于面向对象程序设计语言的是( )。 {{ select(1) }}
  • C++
  • Python
  • Java
  • C
  1. 下面有关C++类定义的说法,错误的是( )。 {{ select(2) }}
  • C++类实例化时,会执行构造函数。
  • C++自定义类可以通过定义构造函数实现自动类型转换。
  • C++自定义类可以通过重载 > 、 < 等运算符实现大小比较。
  • C++自定义类可以包含任意类型的成员。
  1. 有关下面C++代码的说法,错误的是( )。

    image

{{ select(3) }}

  • 代码 cout << st << endl; 不会报错,将正常输出 ABC。
  • 第 6 行代码的 data 是 MyStr 类的成员变量。
  • 代码 MyStr st("ABC"); 不会报错,将执行构造函数。
  • 以上说法均没有错误。
  1. 下列关于命名空间的说法错误的是( )。

{{ select(4) }}

  • 命名空间可以嵌套, 例如 namespace A { namespace B { int i;}} 。
  • 命名空间只可以在全局定义。
  • 命名空间中可以存放变量和函数。
  • 如果程序中使用了 using 命令同时引用了多个命名空间,并且命名空间中存在相同的函数,会出现程序运行 错误。
  1. 有关下面C++代码的说法,正确的是( )。

    image

{{ select(5) }}

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

    image

{{ select(6) }}

  • MoreData 类可用于构造队列(Queue)数据结构。
  • 代码第29行,连续 push() 的用法将导致编译错误。
  • __data 是 MoreData 类的私有成员,只能在类内访问。
  • 以上说法均没有错误。
  1. 某内容仅会出现 ABCDEFG ,其对应的出现概率为0.40、0.30、0.15、0.05、0.04、0.03、0.03,如下图所示。按照哈夫曼编码规则,假设 B 的编码为 11 ,则 D 的编码为( )。

    image

{{ select(7) }}

  • 10010
  • 10011
  • 10111
  • 10001
  1. 下面有关格雷码的说法,错误的是( )。

{{ select(8) }}

  • 在格雷码中,任意两个相邻的代码只有一位二进制数不同。
  • 格雷码是一种唯一性编码。
  • 在格雷码中,最大数和最小数只有一位二进制数不同。
  • 格雷码是一种可靠性编码。
  1. 关于C++语言,以下说法不正确的是( )。 {{ select(9) }}
  • 若对象被定义为常量,则它只能调用以 const 修饰的成员函数。
  • 所有的常量静态变量都只能在类外进行初始化。
  • 若类 A 的对象 a 是类 B 的静态成员变量,则 a 在main() 函数调用之前应被初始化。
  • 静态全局对象、常量全局对象都是在 main 函数调用之前完成初始化,执行完 main 函数后被析构。
  1. 关于C++类和对象的说法 ,错误的是() {{ select(10) }}
  • 在 C++中 ,⼀切皆对象, 即便是字⾯量如整数 5 等也是对象
  • 在 C++中 ,可以⾃定义新的类 ,并实例化为新的对象
  • 在 C++中, 内置函数和⾃定义函数 ,都是类或者对象
  • 在 C++中 ,可以在⾃定义函数中嵌套定义新的函数
  1. 有关下⾯C++代码的说法 ,错误的是( ) {{ select(11) }}

    image

  • C++中类内部可以嵌套定义类
  • 在类中定义的类被称为内部类 ,定义类的类被称为外部类
  • 内部类可以随便访问 ,不需要通过外部类来访问
  • 代码中 Point 被称为内部类,可以通过外部类 Rectangle 来访问Rectangle::Point
  1. 有关下面 C++代码的说法 ,正确的是( ) {{ select(12) }}

    image

  • 第 14行代码错误,第 15行正确
  • 第 15行代码错误,第 14行代码正确
  • 第 14、15 两行代码都正确
  • 第 6行代码可修改为 objCounter += 1
  1. 有关下⾯C++代码的说法 ,错误的是( ) {{ select(13) }}

    image

  • 上列 C++代码适⽤于构造各种⼆叉树
  • 代码 struct BiNode ⽤于构造⼆叉树的节点
  • 代码 BiTree(){root=Creat();} ⽤于构造⼆叉树
  • 析构函数不可以省略
  1. 对 hello world 使用霍夫曼编码(HuffmanCoding),最少 bit(比特)为( ) {{ select(14) }}
  • 4
  • 32
  • 64
  • 88
  1. 在构建哈夫曼树时,每次应该选择( )合并。 {{ select(15) }}
  • 最小权值的节点
  • 最大权值的节点
  • 随机节点
  • 深度最深的节点
  1. 面向对象的编程思想主要包括以下哪些原则( )?{{ select(16) }}
  • 贪心、动态规划、回溯
  • 并发、并行、异步
  • 递归、循环、分治
  • 封装、继承、多态
  1. 给定⼀个简单的类定义如下,( )语句在类的外部正确地创建了⼀个 Circle 对象并调用了 getArea 函数?

image {{ select(17) }}

  • Circle c = Circle(5.0); c.getArea(c);
  • Circle c(5.0); getArea(c);
  • Circle c = new Circle(5.0); c.getArea();
  • Circle c(5.0); c.getArea();
  1. 3 位格雷编码的正确顺序是( )。{{ select(18) }}
  • 000, 001, 010, 011, 100, 101, 110, 111
  • 000, 001, 011, 010, 110, 111, 101, 100
  • 000, 010, 001, 011, 100, 110, 101, 111
  • 000, 010, 110, 100, 111, 101, 011, 001
  1. 给定一个空栈,执行以下操作序列:

操作序列: push(1), push(2), push(3), pop(), pop(), push(4), push(5), pop()

最终栈中的元素是( )。 {{ select(19) }}

  • 1, 2
  • 1, 4, 5
  • 1, 2, 5
  • 1, 4
  1. 面向对象的编程思想主要包括( )原则。{{ select(20) }}
  • 贪心、动态规划、回溯
  • 并发、并行、异步
  • 递归、循环、分治
  • 封装、继承、多态
  1. 运行下列代码,屏幕上输出( )。 {{ select(21) }}

    image

  • 1 1 1
  • 1 2 3
  • 1 1 2
  • 1 2 2
  1. 运行下列代码,屏幕上输出( )。

    image

    image

{{ select(22) }}

  • rectangle area: triangle area:
  • parent class area: parent class area:
  • 运行时报错
  • 编译时报错
  1. 在栈数据结构中,元素的添加和删除是按照什么原则进行的?。

{{ select(23) }}

  • 先进先出
  • 先进后出
  • 最小值先出
  • 随机顺序
  1. 对“classmycls”使用哈夫曼(Huffman)编码,最少需要( )比特。

{{ select(24) }}

  • 10
  • 20
  • 25
  • 30
  1. 在面向对象中,类是对象的实例。( ) {{ select(25) }}
  • 正确
  • 错误
  1. 在 C++类的定义中,使⽤ static 修饰符定义的静态成员被该类的所有对象共享。( ) {{ select(26) }}
  • 正确
  • 错误
  1. 在 C++类的定义中,可以定义初始化函数或运算符函数等。() {{ select(27) }}
  • 正确
  • 错误
  1. 哈夫曼编码是⼀种有损压缩算法。( ) {{ select(28) }}
  • 正确
  • 错误
  1. 在⾯向对象中,方法在 C++的 class 中表现为 class 内定义的函数 。() {{ select(29) }}
  • 正确
  • 错误
  1. C++类的定义中,可以没有构造函数,会给出默认的构造函数。() {{ select(30) }}
  • 正确
  • 错误
  1. 如果某个 C++对象( object)支持下标运算符(⽅括号运算符) ,则该对象在所对应 class 中以成员函数的形式进行了重载 。() {{ select(31) }}
  • 正确
  • 错误
  1. 哈夫曼编码(Huffman Coding)具有唯⼀性,因此有确定的压缩率。() {{ select(32) }}
  • 正确
  • 错误
  1. 哈夫曼树是一种二叉树。 {{ select(33) }}
  • 正确
  • 错误
  1. 继承是将已有类的属性和方法引入新类的过程。 {{ select(34) }}
  • 正确
  • 错误
  1. 哈夫曼编码的主要应用领域是有损数据压缩。{{ select(35) }}
  • 正确
  • 错误
  1. 栈的基本操作包括入栈(push)和出栈(pop)。{{ select(36) }}
  • 正确
  • 错误
  1. 使用哈夫曼编码对一些字符进行编码,如果两个字符的频率差异最大,则它们的编码可能出现相同的前缀。{{ select(37) }}
  • 正确
  • 错误
  1. 哈夫曼编码本质上是一种贪心策略。() {{ select(38) }}
  • 正确
  • 错误
  1. 创建一个对象时,会自动调用该对象所属类的构造函数。如果没有定义构造函数,编译器会自动生成一个默认的构造函数。() {{ select(39) }}
  • 正确
  • 错误
  1. 定义一个类时,必须手动定义一个析构函数,用于释放对象所占用的资源。( ) {{ select(40) }}
  • 正确
  • 错误
  1. C++中类内部可以嵌套定义类。( ) {{ select(41) }}
  • 正确
  • 错误
  1. 000, 001, 011, 010, 110, 111, 101, 100是一组格雷码。() {{ select(42) }}
  • 正确
  • 错误
  1. 在C++中,静态成员函数只能访问静态成员变量。( )

{{ select(43) }}

  • 正确
  • 错误