面向对象程序设计复习题
一、单项选择题
1.下面关于对象概念的描述中,_______是错误的;B
A.对象代表着正在创建的系统中的一个实体 B.对象就是C语言中的结构体变量
C.对象是一个状态和操作或方法的封装体 D.对象之间的信息传递是通过消息进行的
2. 继承机制的作用是: C
A.信息隐藏 B.数据封装 C.定义新类 D.数据抽象
3.有关析构函数的说法不正确的是_________D
A.析构函数有且只有一个 B.析构函数无任何函数类型 C.析构函数没有形参
D.析构函数不能是虚函数
4.友元的作用之一是__________A
A.提高程序的运行效率 B.加强类的封装性
C.实现数据的隐藏性 D.增加成员函数的种类
5.通常拷贝构造函数的参数是__________;C
A.某个对象名 B.某个对象的成员名 C.某个对象的引用名 D.某个对象的指针名
6.如果在基类中将show声明为不带返回值的纯虚函数,正确的写法是________;C
show=0; void show;
void show=0; show=0 virtual;
7.下面关于友元的描述中,错误的是_________;D
A.友元函数可以访问该类的私有数据成员
B.一个类的友元类中的成员函数都是这个类的友元函数
C.友元可以提高程序的运行效率
D.类与类之间的友元关系可以继承
8.在C++中,_________运算符不能重载;B
A. + B.: D.<=
9.下列关于运算符重载的描述中,________是正确的;D
A.运算符重载可以改变操作数的个数 B.运算符重载可以改变优先级
C.运算符重载可以改变结合性 D.运算符重载不可以改变语法结构
10. 在下列函数原型中,可以作为类AA构造函数的是_________D
A.void AAint ; B.int AA ; C.AAintconst; D.AAint;
11.在声明类时,下面的说法正确的是_________;C
A.可以在类的声明中给数据成员赋初值
B.数据成员的数据类型可以是register
,public,protected可以按任意顺序出现
D.没有用private,public,protected定义的数据成员是公有成员
12.继承具有________,即当基类本身也是某一个类的派生类时,底层的派生类也会自动继承间接基类的成员;B
A.规律性 B.传递性 C.重复性 D.多样性
13.在多重继承中,公有派生和私有派生对于基类成员在派生类中的可访问性与单继承的规则___________;A
A.完全相同 B.完全不同 C.部分相同,部分不同 D.以上都不对
14.对虚函数的调用__________;D
A.一定使用动态联编 B.必须使用动态联编
C.一定使用静态联编 D.不一定使用动态联编
15.关于成员函数特征的下述描述中,_______是错误的;A
A.成员函数一定是内置函数 B.成员函数可以重载
C.成员函数可以设置参数的默认值 D.成员函数可以是静态的
16. 下面关于c++语言变量的叙述错误的是_______B
A.在c++语言中变量分为auto,static,extern和register四种存储类型
B.自动变量和外部变量的作用域为整个程序
C.内部变量的作用域是定义它的函数
D.外部静态变量的作用域是定义它的文件
17.下列的各类函数中,_______不是类的成员函数;C
A.构造函数 B.析构函数 C.友元函数 D.拷贝构造函数
18. 有如下类声明:
class Foo {ing bar ;};
则Foo类的成员bar是_________C
A.公有数据成员 B.公有成员函数 C.私有数据成员 D.私有成员函数
19.下列表示引用的方法中,__________是正确的;已知:int m=10; D
A. float &t=&m; &y=10; &z; D. int &x=m;
20.设置虚基类的目的是________;B
A.简化程序 B.消除二义性 C.提高运行效率 D.减少目标代码
21.对于类中定义的成员,其隐含访问权限为________B
22.关于类和对象不正确的说法是________ B
A.类是一种类型,它封装了数据和操作 B.一个类的对象只有一个
C.对象是类的实例 D.一个对象必属于某个类
23.声明一个类的对象时,系统自动调用一个函数___c___;撤消对象时,系统自动调用一个函数;该函数为___c___
A.成员函数;构造函数 B.复制构造函数;析构函数
C.构造函数;析构函数 D.析构函数;复制构造函数
24.当一个派生类私有继承一个基类时,基类中的所有公有成员和保护成员成为派生类的__A______
成员 成员
成员 D.友元
25.在C++中,要实现动态联编,必须使用_____D___调用虚函数
A.类名 B.派生类指针
C.对象名 D.基类指针
26.若一个类中含有纯虚函数,则该类称为____A____
A. 抽象类 B. 纯基类
C.派生类 D. 基类
27.下列关于this指针的叙述中,正确的是___D_____
A.任何与类相关的函数都有this指针
B.类的成员函数都有this指针
C.类的友元函数都有this指针
D.类的非静态成员函数才有this指针
28.有如下类声明:
class Book {int num ;};
则Book类的成员num是___D_____
A.公有数据成员 B.公有成员函数 C.私有数据成员 D.私有成员函数
29.下面有关重载函数的说法中正确的是___C_____
A.重载函数必须具有不同的返回值类型; B.重载函数形参个数必须不同;
C重载函数必须有不同的形参列表; D.重载函数名可以不同;
30.设置虚基类的目的是___A_____
A.消除二义性 B.简化代码
C.提高运行效率 D.减少目标代码
31.在C++语言程序中,对象之间的相互通信通过___B_____
A.继承实现 B.调用成员函数实现
C.封装实现 D.函数重载实现
32.下列运算符中,在C++语言中不能重载的是__C______
A. B.>= C.:: D./
33.下面对友元函数描述正确的是___C_____
指向类成员函数的指针 A.友元函数的实现必须在类的内部定义 B.友元函数是类的成员函数
C.友元函数破坏了类的封装性和隐藏性 D.友元函数不能访问类的私有成员
34.下面叙述不正确的是___A_____
A.基类的保护成员在派生类中仍然是保护成员
B.基类的保护成员在公有派生类中仍然是保护成员
C.基类的保护成员在私有派生类中是私有成员
D.对基类成员的访问必须是无二义性
35.下面对静态数据成员的描述中,正确的是___D_____
A.静态数据成员可以在类体内进行初始化
B.静态数据成员不可以被类的对象调用
C.静态数据成员不能受private控制符的作用
D.静态数据成员可以直接用类名调用
36.在C++类语言体系中,不能被派生类继承的有_______B
A.转换函数 B.构造函数 C.虚函数 D.静态成员函数
37.在类的定义中,用于为对象分配内存空间,对类的数据成员进行初始化并执行其他内部管理操作的函数是____C____
A.友元函数 B.虚函数 C.构造函数 D.析构函数
38.下列关于虚基类的描述中,错误的是_B_______
A.设置虚基类的目的是为了消除二义性;
B.虚基类的构造函数在非虚基类之后调用;
C.若同一层包含多个虚基类,这些基类的构造函数按照它们的次序调用;
D.若虚基类由非基类派生而来,则仍然先调用基类构造函数,再用派生类的构造函数;
39.考虑函数原型voidtestinta,int b=7,char="",下面的函数调用中,属于不合法调用的是___C_____
A. test5 5,8 6,"" 0,0."";
40.下列关于构造函数的描述中,错误的是___D_____
A.构造函数可以设置默认参数; B.构造函数在定义类对象时自动执行
C.构造函数可以是内联函数; D.构造函数不可以重载
41.在重载一个运算符时,如果其参数表中有一个参数,则说明该运算符是 ; D
A.一元成员运算符 B.二元成员运算符 C.一元友元运算符 D.选项B和选项C都可能
42.在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是 ; C
A.派生类的对象可以赋给基类的对象 B.派生类的对象可以初始化基类的引用
C.派生类的对象可以直接访问基类中的成员 D.派生类的对象的地址可以赋给指向基类的指针
43.下面关于虚函数的描述,错误的是 ; B
A.在成员函数声明的前面加上virtual修饰,就可把该函数声明为虚函数
B.基类中说明了虚函数后,派生类中对应的函数也必须说明为虚函数
C.虚函数可以是另一个类的友元函数,但不能是静态成员函数
D.基类中说明的纯虚函数在其任何派生类中都必须实现
44.定义派生类时,若不使用关键字显示地规定采用何种继承方式,则默认方式为 ; A
A.私有继承 B.非私有继承 C.保护继承 D.公有继承
45.有如下程序:
include
using namespace std;
class ONE{
int c;
public:
ONE:c0{cout<<1;}
ONEint n:cn{cout<<2;}
};
class TWO{
ONE onel;
ONE one2;
public:
TWOint m:one2m{cout<<3;}
};
int main{
TWO t 4 ;
return 0 ;
}
运行时的输出结果是 ; C
A.3
B.23
C.123
D.213
46.关于静态数据成员的描述中正确的是D
A类的静态数据成员不是类的所有对象共享的数据 B类的静态数据成员不能被类的成员函数调用
C类的静态数据成员不能被类的构造函数调用 D类的静态数据成员必须进行初始化
47下面正确的是,在父类中的访问属性访问修饰符在子类中的访问属性C
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。
发表评论