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.float
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. free( ) 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. fstream.h C.stdio.h D. stdlib.h
29.下面关于类模板叙述不正确的是()A.声明类模板“;”号结束B.不能重载运算符
C.可以使用友元函数D.能使用虚函数
30.系统不会为类自动建立什么成员函数()A.默认构造函数B.默认析构函数C.默认虚析构函数D.默认赋值运算赋二、填空题:
1.函数int * func(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.函数func(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.找出以下程序中的错误,并说明错在何处。