面向对象程序设计复习资料.docx
- 文档编号:1853764
- 上传时间:2022-10-24
- 格式:DOCX
- 页数:27
- 大小:25.85KB
面向对象程序设计复习资料.docx
《面向对象程序设计复习资料.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计复习资料.docx(27页珍藏版)》请在冰豆网上搜索。
面向对象程序设计复习资料
面向对象程序设计期末总复习题
一、单项选择题
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)
A.virtualshow()=0;B.virtualvoidshow();
C.virtualvoidshow()=0;D.voidshow=0virtual;
7.下面关于友元的描述中,错误的是_________。
(D)
A.友元函数可以访问该类的私有数据成员
B.一个类的友元类中的成员函数都是这个类的友元函数
C.友元可以提高程序的运行效率
D.类与类之间的友元关系可以继承
8.在C++中,_________运算符不能重载。
(B)
A.+B.?
:
C.-D.<=
9.下列关于运算符重载的描述中,________是正确的。
(D)
A.运算符重载可以改变操作数的个数B.运算符重载可以改变优先级
C.运算符重载可以改变结合性D.运算符重载不可以改变语法结构
10.在下列函数原型中,可以作为类AA构造函数的是_________(D)
A.voidAA(int);B.intAA();C.AA(int)const;D.AA(int);
11.在声明类时,下面的说法正确的是_________。
(C)
A.可以在类的声明中给数据成员赋初值
B.数据成员的数据类型可以是register
C.private,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.有如下类声明:
classFoo{ingbar;};
则Foo类的成员bar是_________(C)
A.公有数据成员B.公有成员函数C.私有数据成员D.私有成员函数
19.下列表示引用的方法中,__________是正确的。
已知:
intm=10;(D)
A.float&t=&m;B.int&y=10;C.int&z;D.int&x=m;
20.设置虚基类的目的是________。
(B)
A.简化程序B.消除二义性C.提高运行效率D.减少目标代码
21.对于类中定义的成员,其隐含访问权限为________(B)
A.publicB.privateC.staticD.protected
22.关于类和对象不正确的说法是________(B)
A.类是一种类型,它封装了数据和操作B.一个类的对象只有一个
C.对象是类的实例D.一个对象必属于某个类
23.声明一个类的对象时,系统自动调用一个函数;撤消对象时,系统自动调用一个函数;该函数为___c___
A.成员函数;构造函数B.复制构造函数;析构函数
C.构造函数;析构函数D.析构函数;复制构造函数
24.当一个派生类私有继承一个基类时,基类中的所有公有成员和保护成员成为派生类的__A______
A.private成员B.protected成员
C.public成员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.有如下类声明:
classBook{intnum();};
则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.考虑函数原型void test(int a,intb=7,char="*"),下面的函数调用中,属于不合法调用的是___C_____
A.test(5) B.test(5,8)C.test(6,"#") D.test(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
usingnamespacestd;
classONE{
intc;
public:
ONE():
c(0){cout<<1;}
ONE(intn):
c(n){cout<<2;}
};
classTWO{
ONEonel;
ONEone2;
public:
TWO(intm):
one2(m){cout<<3;}
};
intmain(){
TWOt4()
return0
}
运行时的输出结果是()。
C
A.3
B.23
C.123
D.213
46.关于静态数据成员的描述中正确的是D
A)类的静态数据成员不是类的所有对象共享的数据 B)类的静态数据成员不能被类的成员函数调用
C)类的静态数据成员不能被类的构造函数调用 D)类的静态数据成员必须进行初始化
47下面正确的是,在父类中的访问属性访问修饰符在子类中的访问属性()C
A)public,private不能直接访问B)protect,public,public
C)private,public不能直接访问D)protect,private,protect
48类A是类B的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 面向 对象 程序设计 复习资料
![提示](https://static.bdocx.com/images/bang_tan.gif)