02328面向对象程序设计资料整理(1004长大)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
面向对象程序设计复习资料
(2328)
一、单项选择题
1.假设P是指针,声明指针s引用指针p正确方法是()
A.int* s&=p B.int &*s=p C.int *&s=p D.int s* &=p
2.在C+ +中,可以为类的所有成员共享的是()
A、枚举成员
B、公有数据成员
C、私有函数成员
D、公有函数成员
3.C+ +中,下列哪个关键字不能提供封装。()
A、struct
B、union
C、class
D、case
4.下而关于类的复制构造函数的说法正确的是()
A.一个类只能有一个复制构造函数
B.可以为void类型
C.不能有返回类型
D.不能使用缺省参数
5.下面叙述正确的是:()
A.派生类不可以使用私有派生
B.保护派生时,基类的保护成员在派生类中是公有的
C.对基类成员的访问可以允许两义性
D.赋值兼容规则也适用于多重继承的组合
6.定义虚函数使用关键字()
A.:: B.virtual C.& D.->
7.在下面几项中,运算符在C++中能被重载的是()
A .= B.? : C.sizeof D. : :
A.结构B.类C.继承D.引用
8.在执行下面程序语句之后,num的值为()
int num = 500;
int& ref= num;
ref = = ref -50;
A.450 B.500 C.-50 D.无法确定
9.所有在函数外面定义的变量,连同形式参数,都属于()
A、局部变量
B、全局变量
C、静态变量
D、寄存器变量
10.面向对象的程序中,哪项不是对象的特点。()
A、多态性
B、抽象性和封装性
C、中断
D、继承性
11.下面在半初始化说法正确的是()
A.初始化列表可以初始化任何类
B.初始化列表也也可以初始化具有私有成员的类
C.初始化列表只能初始化公有数据成员
D.初始化列表可以初始化所有数据成员
12.产生编译时的多态性的必要条件是使用()
A.静态成员 B.友元函数 C.重载成员函数D.虚函数
13.operator经常和C++的一个运算符连用,构成一个运算符函数名.运算符函数的返回类型不能是()
A.void
B.char
C.int
D.f loat
14.下面是对C++运算符的叙述,正确的叙述是()
A.只有类运算符 B.只有友元运算符
C.同时具有类运算符和友元运算符D.同一个运算符只能重载一次
15.在面向对象的设计中,一切都是围绕着什么展开的()
A.类B.结构C.数据类型D.对象
16.下面哪项不能算是面向对象程序设计所具有的显著特点()
A.封装
B.继承
C.抽象
D.递归
17.下面选项中哪一项不是结构和类的共同特性()
A.对象可以用作数组的元素 B.在缺省情况下,成员是私有的
C.对象之间可以相互赋值 D.可以说明指向对象的指针和引用
18.下面有关类性质说法错误的是()
A.一个类可以有多个构造函数,但只有一个析构函数
B.析构函数和构造函数都不能有返回类型
C.不可以给析构函数指定参数
D.一个类中不可以说明具有类类型的数据成员
19.下面叙述不正确的是()
A.成员的访问能力取决于派生方式
B.基类的私有成员在公有派生类中不可访问
C.对象可以访问所有成员
D.公有基类成员在保护派生中保护的
20.成为抽象类的一个条件是这个类()
A.至少有一个纯虚函数 B.至少有一个虚函数
C.只含有一个纯虚函数 D.只含有一个虚函数
21.下列叙述正确的是()
A.有1个运算符不能被重载 B.有2个运算符不能被重载
C.有3个运算符不能被重载 D.有4个运算符不能被重载
22.在以下选项中,不属于模板特点的选项是()
A.处理数据时,处理的是不同类型的相同操作
B.声明不需要给出数据类型
C.对于相同的数据类型产生不同的实例
D.对于不同的数据类型能够产生不同的实例
23.通过什么建立类树()
A.类B.虚函数C.多重继承D.单一继承
24.C++使用新的分配动态内存的函数是()
A . malloc ( ) B. f ree( ) C. delete D. new
25.以下关于C+ +对象特点叙述不正确的是()
A、对象可以进行四则运算 C、对象可以用作数组的元素
C、对象可以用作函数参数
D、对象之间可以相互赋值
26.有关复制构造函数说法错误的是()
A.复制构造函数不能使用初始化列表
B. 复制构造函数不能有返回值
C. 复制构造函数名与类名相同并可以有多个复制构造函数
D. 复制构造函数的参数可以为引用对象
27.对友元函数描述正确的是()
A.一个类的友元函数是该类的一个特殊成员函数
B.一个类的友元函数可以访问类的所有数据成员
C.友元函数只允许访问该类对象的私有成员
D.友元函数只允许访问该类的公有成员
28.进行文件操作时需要包含的头问家是()
A.iostream.h B. f stream.h C.stdio.h D. stdlib.h
29.下面关于类模板叙述不正确的是()
A.声明类模板“;”号结束B.不能重载运算符
C.可以使用友元函数D.能使用虚函数
30.系统不会为类自动建立什么成员函数()
A.默认构造函数B.默认析构函数C.默认虚析构函数D.默认赋值运算赋二、填空题:
1.函数int * f unc(void)的返回类型是__ _ __.
2.C+ +中,关键字用作联合.
3.关键字virtual可以用来声明类.
4.抽象类至少要含有一个,这种函数属于虚函数
5.成员函数“void print( )const;”是类的函数,它只能被const对象调用。
6.声明double的转换函数是。
7.模板分为模板和类模板。
8.类群是由一些彼此互不相关的组成。
9.类的作用于限定符是。
10..Base(Base&)是类Base的_ __函数的原型声明,它的等效形式为Base(const Base&)。
11.要想取消动态联编,可以使用,它的另一个基本用途是避免两义性.
12.声明double的转换函数是。
13.根据类对其成员的要求,可把类分为模板和无约束模板。
14.在面向对象程序设计时,函数一定既提供了接口也提供了实现。
15.函数f unc(int &a)里面使用return;语句,则函数的返回值类型为_ _.
16.一般使用类中的函数供类内部的成员函数使用,可以实现更好的封装性。
17.成员名限定的符号是_ _,它可以在引用成员时避免两义性.
18.对类的构造函数而言,析构函数可以为虚函数, 不可以为虚函数.
19.指向类成员的指针引入了新的运算符和->*.
20.使用友元重载提取符函数时,它的第2个参数必需使用形式。
21.一个模板声明可以列出多个参数,多个参数之间必须使用隔开。
20.设计类的基本原则应该是。
22.语句int * x=new int(58);使*x .
23.如果要为其他对象提供相互作用的接口,可以通时函数实现。
24.空类Empty的声明形式为。
25.只有继承的情况下,基类的派生类之间才有赋值兼容性规则。
26.产生多态性要求类之间的继承关系满足。
27.使用友元重载提取符函数时,它的第2个参数必需使用形式。
28.类群是由一些彼此互不相关的组成。
三、改错题
1.指出下面程序段中的错误。
const int R= 15;
R=3 *R;
int m =50-R;
cout << m < 2.找出以下程序中的错误,并说明原因。 # include < iostream.h> class base { int m, n; public: base(int a, int b):m(b),n(a) void Disp( ){cout< }; 3.找出以下程序中的错误,并说明错在何处。 # include class base { int m; public: base(int a):m(a){}; int Getx(){retum m;} }; class derived : private base