兰大《面向对象程序设计》21秋平时作业3
试卷总分:100 得分:100
一、单选题 (共 13 道试题,共 52 分)
1.下列关于构造函数说法不正确的是()。
A.构造函数必须与类同名
B.构造函数可以省略不写
C.构造函数必须有返回值
D.在构造函数中可以对类中的成员进行初始化
2.在多文件结构中,通常把类的声明单独放在()中
A.主文件
B.实现文件
C.库文件
D.头文件
3.已知 Value 是一个类,Value 是 Value 的一个对象。下列以非成员函数形式重载的运算符函数原形中,正确的是()
A.Valueoperator+(Valuev,inti)
B.Valueoperator+(Valuev=value,inti)
C.Valueoperator+(Valuev,inti=0)
D.Valueoperator+(Valuev=value,inti=0)
4.在编译指令中,宏定义使用哪个指令()。
A.#include
B.#define
C.#if
D.#else
5.下面描述中,表达错误的是()
A.公有继承时基类中的public成员在派生类中仍是public的
B.公有继承是基类中的private成员在派生类中仍是private的
C.公有继承时基类中的protected成员在派生类中仍是protected的
D.私有继承时基类中的public成员在派生类中是private的
6.如果未显式赋值,则将整型值( )赋给枚举中的第一个元素。
A.1
B.0
C.2
D.3
7.派生类可以访问其基类的( )。
A.公用成员
B.保护成员
C.私有派生
D.公用和保护成员
8.在关键字public后定义的成员为该类的
A.私有
B.公有
C.保护
D.任何
9.要使语句“p=new int[10][20]”正确,p应事先定义为
A.int*p
B.int**p
C.int*p[20]
D.int(*p)[20]
10.以下不合法的数值常量是()
A.011
B.lel
C.8.0E0.5
D.0xabcd
11.已知 Value 是一个类,Value 是 Value 的一个对象。下列以非成员函数形式重载的运算符函数原形中,正确的是()
A.Value operator+(Value v, int i)
B.Value operator+(Value v=value, int i)
C.Value operator+(Value v,int i=0)
D.Value operator+(Value v=value, int i=0)
12.执行如下的程序段后,输出结果是( ) cout.fill('*'); cout.width(6); cout.fill('#'); cout << 123 << endl;
A.###123
B.123###
C.***123
D.123***
13.当保护继承时,基类的()在派生类中成为保护成员,在类作用域外不能够通过派生类的对象来直接访问该成员。
A.任何成员
B.公有成员和保护成员
C.保护成员和私有成员
D.私有成员
二、多选题 (共 2 道试题,共 8 分)
14.自定义数据类型有()
A.枚举
B.结构
C.数组
D.类
15.C++中,函数调用的形式有:
A.传值调用
B.拷贝调用
C.传址调用
D.引用调用
三、判断题 (共 10 道试题,共 40 分)
16.继承可以使得一个类可以直接获得另一个类的性质和特征。
17.符号常量在声明时一定要赋初值,而在程序中间不能改变其值。
18.static成员函数没有this指针,因为它不是任何对象的组成部分。
19.结构体变量不可以用同类型的结构体变量直接赋值。
20.数据成员在初始化列表中的书写顺序无关紧要,但初始化列表对数据成员初始化的执行次序就是类中定义数据成员的次序。
21.C++支持两种多态:编译时的多态(重载)和运行时的多态(虚函数)
22.当使用基类或内层类的带参数的构造函数来完成基类成员或对象成员的初始化时,有时候不需要定义派生类的构造函数。
23.在基类中声明虚函数,则派生类中同型的成员函数自动成为虚函数。
24.若要保证一个公共的基类在在派生类中只产生一个基类子对象,则必须都以虚基类的方式继承它
25.构造函数的函数体中,不能使用return语句;但在实现该类的自动类型转化函数时,必须有return 语句。 ( )