一、单选题(每题2分,共50分。)
1.函数重载的目的是()。
A、实现共享B、使用方便,提高可读性
C、提高速度D、减少空间
2.下面选项中不属于面向对象程序设计特征的是()。
A、继承性B、多态性C、类比性D、封装性
3.下列关于虚基类的描述中,错误的是()。
A、使用虚基类可以消除由多继承产生的二义性
B、声明″classC:virtualpublicA″说明类C为虚基类
C、构造派生类对象时,虚基类的构造函数只被调用一次
D、建立派生类对象时,首先凋用虚基类的构造函数
4.下列关键字中,()不是类中定义数据成员使用的关键字。
A、staticB、constC、externD、double
5.下列对派生类的描述中,()是错误的。
A、一个派生类可以作为另一个派生类的基类
B、派生类至少应有一个基类
C、基类中成员的访问权限被派生类继承后都不改变
D、派生类的成员除了自己定义的成员外,还包含了它的基类成员
6.下列符号中不属于c++关键字的是()。
A、friendB、namespace
C、continueD、byte
7.下列()是C++语言的有效标识符。
A、_No1B、N0.1C、D、int
8.while和do-while循环的主要区别是()。
A、do-while的循环体至少无条件执行一次
B、while的循环控制条件比do-while的循环控制条件更严格
C、do-while允许从外部转到循环体内
D、do-while的循环体不能是复合语句
9.结构化程序的三种基本结构是()。
A、递归、迭代和回溯B、过程、函数和子程序
C、顺序、选择和循环D、调用、返回和选择
10.()不是属于面向对象程序设计的特性。
A、抽象性B、数据相关性C、多态性D、继承性
11.下列数组定义中错误的是()。
A、chars[5]=”ABCDD”;
B、chars[6]=”ABCDD”;
C、chars[7]=”ABCDD”;
D、chars[]=”ABCDD”;
12.关于多继承二义性的描述,()是错误的。
A、派生类的多个基类中存在同名成员时,派生类对这个成员访问可能出现二义性
B、如果一个派生类是从具有两个同名间接基类的两个直接基类派生来的,则派生类对该公共基类的访问可能出现二义性
C、解决二义性最常用的方法是使用作用域运算符对成员进行限定
D、派生类和它的基类中出现同名函数时,将出现二义性
13.可以用p.a的形式访问派生类对象p的基类成员a,其中a是()。
A、私有继承的公有成员B、公有继承的保护成员
C、公有继承的私有成员D、公有继承的公有成员
14.已知枚举类型声明语句为:
enumCOLOR{WHITE,YELLOW,GREEN=5,RED,BLACK=9};
则下列说法中错误的是()。
A、枚举常量YELLOW的值为1B、枚举常量RED的值为6
C、枚举常量BLACK的值为9D、枚举常量WHITE的值为1
15.已有定义:chara[]="Love",b[]={L,o,v,’e’};,以下叙述中正确的是()
A、数组a和b的长度相同B、a数组长度小于b数组长度
C、a数组长度大于b数组长度D、上述说法都不对
16.以下关于运算符优先顺序的描述中正确的是()。
A、关系运算符算术运算符赋值运算符逻辑运算符
B、逻辑运算符关系运算符算术运算符赋值运算符
C、赋值运算符逻辑运算符关系运算符算术运算符
D、算术运算符关系运算符赋值运算符逻辑运算符
17.关于纯虚函数和抽象类的描述中,()是错误的。
A、纯虚数是一种特殊的虚函数,它没有具体实现
B、抽象类中一定具有一个或多个纯虚函数
C、抽象类的派生类中一定不会再有纯虚函数
D、抽象类一般作为基类使用,使纯虚函数的实现由其派生类给出
18.()是析构函数的特征。
A、一个类中可以定义多个析构函数B、析构函数名与类名相同
C、析构函数的定义只能在类体内D、析构函数可以有一个或多个参数
19.关于下列虚函数的描述中,()是正确的。
A、虚函数是一个static存储类的成员函数
B、虚函数是一个非成员函数
C、基类中说明了虚函数后,派生类中可不必将对应的函数说明为虚函数
D、派生类的虚函数与基类的虚函数应具有不同的类型或个数
20.在派生类中重新定义虚函数时必须在()方面与基类保持一致。
A、参数个数B、参数值C、参数名字D、函数内容
21.下面的语句中能将类B定义为类A的友元类的是()。
A、classA{friendclassB}
B、friendclassB
C、classA{classB}
D、classB{friendclassA}
22.对于类定义
classA{
public:
virtualvoidfunc1(){}
voidfunc2(){}
};
classB:publicA{
public:
voidfunc1(){cout〃classBfunc1〃end1;}
virtualvoidfunc2(){cout〃classBfunc2〃end1;}
};
下面正确的叙述是()
A、A::func2()和B::func1()都是虚函数
B、A::func2()和B::func1()都不是虚函数
C、B::func1()是虚函数,而A::func2()不是虚函数
D、B::func1()不是虚函数,而A::func2()是虚函数
23.下面的函数声明中,()是“voidCZ(inta,intb);”的重载函数。
A、intCZ(intx,inty);
B、voidCZ(inta,floatb);
C、floatCZ(inta,intb,intc=0);
D、intCZ(inta,intb=0);
24.在私有继承的情况下,基类成员在派生类中的访问权限()。
A、受限制B、保持不变C、受保护D、不受保护
25.执行语句k=30;j=k++;后k和j的值分别为()。
A、k=30,j=30B、k=30,j=31
C、k=31,j=30D、k=31,j=31
二、是非题(正确的填写“T”,错误的填写“F”。每题1分,共20分。)
1.一般类的定义格式分为说明部分和实现部分。
2.在C++中,设置参数默认值只能在定义函数时设置。
3.带有纯虚函数的类是抽象类。
4.子对象是类的一种数据成员,它是另一个类的对象。
5.在C++中,函数名实际上是一个指针,它指向函数的入口。
6.抽象类中只能有一个纯虚函数。
7.子对象是类的一种数据成员,一个类中只能含有一个子对象作其成员。
8.类中被说明为protected和private的成员只能被其派生类的成员函数访问,不能被其它的函数访问。
9.函数代码小,频繁调用情况下适宜采用inline定义内联函数。
10.对象数组的元素可以是不同类的对象。
11.函数的参数个数和类型都相同,只是返回值不同,这不是重载函数。
12.引用和指针都可作函数参数。
13.break语句也可以用于if体内,它可退出if语句。
14.对于任意正确定义的类,都可以构造出该类型的对象。
15.程序中可以说明抽象类的指针或引用,但是不能说明抽象类的对象。
16.若要实例化一个含有引用型数据成员的类,那么只能使用构造函数初始化列表来初始化该数据成员。
17.?号不能在C++中重载。
18.运算符重载是为了改变优先级。
19.友元类是被定义在某个类中的嵌套类。
20.友元函数只能访问类的私有成员,不能访问公有和保护成员。
购买专栏解锁剩余2%