《C++程序设计》第三套作业及其答案 第 1 页 共 10 页
《C++程序设计》第三套作业及其答案
说明:本套作业涵盖第7章——第10章所学的内容。本套作业共有33道单选题,33个答案,满分为100分,错一道题扣除3分。
1、C++中的类有两种用法:一种是类的实例化,即生成类的对象,并参与系统的运行;另一种是通过( B ),派生出新的类。
(A)复用 (B)继承 (C)单继承 (D)多继承
2、继承具有( B ),即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员。
(A)规律性 (B)传递性 (C)重复性 (D)多样性
3、若类A和类B的定义如下:
class A {
int i, j;
public:
void get();
// …
《C++程序设计》第三套作业及其答案 第 2 页 共 10 页
};
class B : A {
int k;
public:
void make();
// …
};
void B::make() {
k = i * j;
}
则上述定义中,( D )是非法的表达式。
(A)void get(); (B)int k; (C)void make(); (D)k = i * j;
4、在多继承中,公有派生和私有派生对于基类成员在派生类中的可访问性与单继承的规则( A )。
《C++程序设计》第三套作业及其答案 第 3 页 共 10 页
(A)完全相同 (B)完全不同
(C)部分相同,部分不同 (D)以上都不对
5、下列对派生类的描述中,( D )是错误的。
(A)一个派生类可以做另一个派生类的基类
(B)派生类至少有一个基类
(C)派生类的成员除了它自己的成员外,还包含了它的基类的成员
(D)派生类中继承的基类成员的访问权限到派生类保持不变
6、派生类的对象对它的基类成员中( A )是可以访问的。
(A)公有继承的公有成员 (B)公有继承的私有成员
(C)公有继承的保护成员 (D)私有继承的公有成员
7、对基类和派生类的关系描述中,( B )是错误的。
(A)派生类是基类的具体化 (B)派生类是基类的子集
(C)派生类是基类定义的延续 (D)派生类是基类的组合
《C++程序设计》第三套作业及其答案 第 4 页 共 10 页
8、在派生类的构造函数的成员初始化列表中,不能包含( C )。
(A)基类的构造函数 (B)派生类中内嵌对象的初始化
(C)基类的内嵌对象初始化 (D)派生类中一般数据成员的初始化
9、在关于多继承二义性的描述中,( C )是错误的。
(A)一个派生类的两个基类中都有某个同名成员,在派生类中对这个成员的访问可能出现二义性
(B)解决二义性的最常用的方法是对成员名的限定法
(C)基类和派生类中同时出现的同名函数,也存在二义性问题
(D)一个派生类是从两个基类派生来的,而这两个基类又有一个共同的基类,对该基类成员进行访问时,也可能出现二义性
10、设置虚基类的目的是( B )。
(A)简化程序 (B)消除二义性
(C)提高运行效率 (D)较少目标代码
11、在下列运算符中,( C )运算符在C++中不能重载。
《C++程序设计》第三套作业及其答案 第 5 页 共 10 页
(A)&& (B)[ ] (C):: (D)new
12、对定义重载函数的下列要求中,( D )是错误的。
(A)要求参数的个数不同 (B)要求参数中至少有一个类型不同
(C)要求参数个数相同时,参数类型不同 (D)要求函数的返回值不同
13、在下列函数中,( C )不能重载。
(A)成员函数 (B)非成员函数 (C)析构函数 (D)构造函数
14、在下列关于运算符重载的描述中,( D )是正确的。
(A)运算符重载可以改变运算数的个数 (B)运算符重载可以改变优先级
(C)运算符重载可以改变结合性 (D)运算符重载不可以改变语法结构
15、重载一个运算符函数时,其参数表中没有任何参数,这说明该运算符是( C (A)一元非成员运算符 (B)二元非成员运算符
(C)一元成员运算符 (D)二元成员运算符
16、在关于动态联编的下列描述中,( D )是错误的。
。
)《C++程序设计》第三套作业及其答案 第 6 页 共 10 页
(A)动态联编是以虚函数为基础的
(B)动态联编是在运行时确定所调用的函数代码的
(C)动态联编调用函数操作是指向对象的指针或对象引用
(D)动态联编是在编译时确定操作函数的
17、在关于虚函数的描述中,( C )是正确的。
(A)虚函数是一个static类型的成员函数
(B)虚函数是一个非成员函数
(C)基类中说明了虚函数后,派生类中与其对应的函数可不必说明为虚函数
(D)派生类的虚函数与基类的虚函数具有不同的参数个数和类型
18、在关于纯虚函数和抽象类的描述中,( C )是错误的。
(A)纯虚函数是一种特殊的虚函数,它没有具体的实现
(B)抽象类是指具有纯虚函数的类
(C)一个基类中说明有纯虚函数,该基类的派生类一定不再是抽象类
《C++程序设计》第三套作业及其答案 第 7 页 共 10 页
(D)抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出
19、在下列描述中,( D )是抽象类的特性。
(A)可以说明虚函数 (B)可以进行构造函数重载
(C)可以定义友元函数 (D)不能说明其对象
20、( C )是一个在基类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都必须定义自己的版本。
(A)虚析构函数 (B)虚构造函数 (C)纯虚函数 (D)静态成员函数
21、如果一个类至少有一个纯虚函数,那么就称该类为( A )。
(A)抽象类 (B)虚基类 (C)派生类 (D)以上都不对
22、对于虚函数的调用( D )。
(A)一定使用动态联编 (B)一定使用静态联编
(C)必须使用动态联编 (D)不一定使用动态联编
23、在C++中,打开一个文件,就是将这个文件与一个( B )建立关联;关闭一个文件,就取消这种关联。
《C++程序设计》第三套作业及其答案 第 8 页 共 10 页
(A)类 (B)流 (C)对象 (D)结构
24、若定义 cin>>str;
当输入为:
Object Windows Programming!
所得到的结果是 str=( B )。
(A)Object Windows Programming! (B)Object
(C)Object Windows (D)Object Windows Programming
25、进行文本操作时需要包含( B )文件。
(A)iostream.h (B)fstream.h (C)stdio.h (D)stdlib.h
26、使用如setw()的操作对数据进行格式输出时,应包含( C )文件。
(A)iostream.h (B)fstream.h (C)iomanip.h (D)stdlib.h
27、已知int a, *pa=&a; 输出指针pa十进制的地址值的方法是( D )。
(A)cout << pa; (B)cout << *pa;
《C++程序设计》第三套作业及其答案 第 9 页 共 10 页
(C)cout << &pa; (D)cout << long(pa);
28、关于getline()函数的下列描述中,( D )是错误的。
(A) 该函数是用来从键盘上读取字符串的
(B) 该函数读取的字符串长度是受的
(C) 该函数读取字符串时,遇到终止符时便停止
(D) 该函数中所使用的终止符只能是换行符
29、关于read()函数的下列描述中,( D )是正确的。
(A) 该函数是用来从键盘输入中获取字符串
(B) 该函数所获取的字符多少是不受的
(C) 该函数只能用于文本文件的操作中
(D) 该函数只能按规定读取所指定的字符数
30、控制格式I/O的操作中,( D )是设置域宽的。
(A)ws (B)oct (C)setfill() (D)setw()
《C++程序设计》第三套作业及其答案 第 10 页 共 10 页
31、磁盘文件操作中,打开磁盘文件的访问模式常量时,( C )是以追加方式打开文件的。
(A)in (B)out (C)app (D)ate
32、下列函数中,( D )是对文件进行写操作的。
(A)get() (B)read() (C)seekg() (D)put()
33、C++的异常处理机制使得异常的引发和处理( B )。
(A)必须在同一函数中 (B)不必在同一函数中
(C)不能在同一函数中 (D)以上答案都不对
(完)