C++面向对象复习材料.docx

上传人:b****2 文档编号:2000915 上传时间:2023-05-02 格式:DOCX 页数:44 大小:31.98KB
下载 相关 举报
C++面向对象复习材料.docx_第1页
第1页 / 共44页
C++面向对象复习材料.docx_第2页
第2页 / 共44页
C++面向对象复习材料.docx_第3页
第3页 / 共44页
C++面向对象复习材料.docx_第4页
第4页 / 共44页
C++面向对象复习材料.docx_第5页
第5页 / 共44页
C++面向对象复习材料.docx_第6页
第6页 / 共44页
C++面向对象复习材料.docx_第7页
第7页 / 共44页
C++面向对象复习材料.docx_第8页
第8页 / 共44页
C++面向对象复习材料.docx_第9页
第9页 / 共44页
C++面向对象复习材料.docx_第10页
第10页 / 共44页
C++面向对象复习材料.docx_第11页
第11页 / 共44页
C++面向对象复习材料.docx_第12页
第12页 / 共44页
C++面向对象复习材料.docx_第13页
第13页 / 共44页
C++面向对象复习材料.docx_第14页
第14页 / 共44页
C++面向对象复习材料.docx_第15页
第15页 / 共44页
C++面向对象复习材料.docx_第16页
第16页 / 共44页
C++面向对象复习材料.docx_第17页
第17页 / 共44页
C++面向对象复习材料.docx_第18页
第18页 / 共44页
C++面向对象复习材料.docx_第19页
第19页 / 共44页
C++面向对象复习材料.docx_第20页
第20页 / 共44页
亲,该文档总共44页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

C++面向对象复习材料.docx

《C++面向对象复习材料.docx》由会员分享,可在线阅读,更多相关《C++面向对象复习材料.docx(44页珍藏版)》请在冰点文库上搜索。

C++面向对象复习材料.docx

C++面向对象复习材料

1、面向对象程序设计将描述事物的数据与封装在一起,作为一个相互依存、不可分割的整体来处理。

A)信息

B)数据隐藏

C)对数据的操作

D)数据抽象

2、下列语句中,错误的是。

A)int*p=newint(5);

B)int*p=newint[5];

C)int*p=newint[20][(0);

D)int*p=newint;

3、下面有关类和对象的说法中,正确的是。

A)系统为类和对象分配内存空间

B)类和对象没有区别

C)系统为类分配存储空间,不为对象分配存储空间

D)类与对象的关系和数据类型与变量的关系类似

4、下列有关类和对象的说法中,不正确的是。

A)任何一个对象只能属于一个类

B)对象是类的一个实例

C)类实质上是一种数据类型

D)一个类只能有一个对象

5、下列说法中,不正确的是。

A)要在类的外部直接使用类的私有成员是错误的

B)一个对象数组中的所有数组元素属于同一个类

C)当在类外部定义成员函数时,必须在函数名前加上类名和作用域运算符

D)同一个类的两个对象占用相同的内存空间

6、在声明类时,下面的说法正确的是。

A)数据成员的数据类型可以是register

B)可以在类的声明中给数据成员赋初值

C)没有用private,public,protected定义的数据成员是公有成员

D)定义时,private,public,protected可以按任意顺序出现

7、下列关于构造函数的描述中,正确的是。

A)构造函数必须带有参数

B)构造函数可以带有返回值

C)构造函数的名字与类名完全相同

D)构造函数必须定义,不能默认

8、下列有关析构函数叙述中,不正确的是。

A)析构函数必须与类名相同,并在其前面加上符号~,以便和构造函数名区别

B)析构函数不能带有任何参数,不能有返回值

C)析构函数可以重载

D)对于全局定义的对象,在程序开始时调用构造函数,到程序结束时调用析构函数

9、关于成员函数特征的下列叙述中,是错误的。

A)成员函数一定是内联函数

B)成员函数可以重载

C)成员函数可以设置参数的默认值

D)成员函数可以是静态的

10、下列说法中,不正确的是。

A)利用常对象只能调用类中的常成员函数

B)类的常数据成员和引用成员必须在构造函数的初始化表中进行初始化

C)常成员函数可以对类中的任何数据成员进行更新

D)在程序中既可以定义指针数据成员,也可以定义对象指针

11、友元函数的作用是。

A)提高程序的运行效率

B)加强类的封装性

C)实现数据的隐藏性

D)增加成员函数的种类

12、在下列有关静态成员函数的描述中,正确的是。

A)静态成员函数只能在类外定义

B)在静态成员函数中可以使用this指针

C)在建立对象前,就可以为静态数据成员赋值

D)静态成员函数在类外定义时,要用static前缀

13、使用派生类的主要原因是。

A)提高程序的运行效率

B)加强类的封装性

C)提高代码的可重用性

D)实现数据的隐藏

14、下列说法,不正确的是。

A)函数在重载时其函数名应相同

B)基类中定义了虚函数ab(int,int),若在派生类中重新定义ab(int),则在派生类中ab为重载函数

C)C++中所有运算符都可以重载

D)对于基类中定义的运算符重载函数,派生类中不一定可以继承

15、下列叙述中,不正确的说法是。

A)不能直接由抽象类建立对象

B)至少有一个纯虚函数的类称为抽象类

C)抽象类中能包含构造函数

D)抽象类中不能有数据成员

16、下列说法中,不正确的是。

A)在派生过程中构造函数不被继承

B)在派生过程中析构函数不被继承

C)声明为指向基类对象的指针可以指向其公有派生的对象

D)声明为指向公有派生类对象的指针可以指向其基类的对象

17、关于虚函数的描述中,正确的是。

A)虚函数是一个static类的成员函数

B)虚函数是一个非静态成员函数

C)派生类的虚函数与基类的虚函数具有不同的参数个数和类型

D)内联函数、构造函数、静态变量可以声明为虚函数

18、模板的使用是为了。

A)实现多态性

B)提高代码的运行效率

C)加强类的封装性

D)提高代码的可重用性

19、下列说法中,不正确的是。

A)类模板代表一个具体的、实际的类

B)函数模板经实例化生成的具体函数称为模板函数

C)在template语句与函数模板定义语句间不允许有别的语句

D)模板函数类似于重载函数,只是更严格一些

20、当包含头文件iostream.h后,一个C++源程序中的cin是。

A)一个标准语句。

B)预定义的类。

C)预定义的函数。

D)预定义的对象。

一、选择填空题

1、.下列关于运算符重载的叙述中,正确的是()

A.运算符重载可以改变操作数的个数

B.运算符重载可以改变操作数的优先级

C.运算符重载可以改变操作数的结合性

D.运算符重载可以不能改变操作数的个数、不能改变运算符的优先级和结合性

2、.下列说明中有关构造函数的正确说法是()

A.任一类必定有构造函数

B.可定义没有构造函数的类

C.构造函数不能重载

D.任一类必定有缺省的构造函数

3、下面有关类和对象的说明中,正确的是。

A.类与对象没有区别

B.要为类和对象分配存储空间

C.对象是类的实例,为对象分配存储空间而不为类分配存储空间

D.类是对象的实例,为分分配存储空间而不为对象分配存储空间

4、对于一个C++类,

A、只能有一个构造函数和一个析构函数B.可有一个构造函数和多个析构函数

C.可有多个构造函数和一个析构函数D.可有多个构造函数和多个析构函数

5、一个基类以私有方式派生时,其基类中的公有成员和保护成员在派生类中

A.均为私有成员B.均为公有成员C.均为保护成员D.仍为公有和保护成员

6、虚函数

A.可实现静态多态性B.可实现动态多态性

C.不能实现多态性D.既可实现静态多态性,又可实现动态多态性

4.多态性分为两种:

静态多态性和动态多态性。

函数重载属于两种多态性中的

5.在定义一个类时,缺省的构造函数时唯一的。

当自定义的构造函数的每一个参数均又缺省值或,这种构造函数时缺省的构造函数。

7、重载运算“+”,实现a+b运算,则

A.a必须为对象,b可为整数或实数B.a和b必须为对象

C.b必须为对象,a可为整数或实数D.a和b均可为整数或实数

8、设类B是基类A的派生类,并有语句“Aa1,*pa=&a1;Bb1,*pb=&b1;”,则正确的语句是

A.pb=pa;B.b1=a1;C.a1=b1;D.*pb=*pa;

9、下列关于类的构造函数和析构函数的叙述中,不正确的是。

A.类的析构函数可以重载

B.类的构造函数可以重载

C.定义一个类时可以不显式定义构造函数

D.定义一个类时可以不显式定义析构函数

10、下列叙述中不正确的是。

A.含纯虚函数的类为抽象类B.不能直接由抽象类建立对象

C.抽象类不能作为派生类的基类D.纯虚函数没有其函数的实现部分

11、以下关于运行时的多态性的叙述中,不正确的是。

A.运行时的多态性要通过虚函数来实现

B.运行时的多态性要通过指向基类的指针来实现

C.运行时的多态性是在编译时确定其要执行的函数

D.运行时的多态性是在执行过程中根据具体被操作的对象来确定要运行的函数

4.在C++中,运算符重载有两种实现方法:

一种是通过成员函数来实现。

另一种则通过来实现。

12、产生有关对象的叙述中,不正确的是____。

A、产生对象时必定要调用构造函数B、撤消对象时必定要调用析构函数

C、对象被保护,其私有成员不能随意访问D、对象可以没有构造函数或析构函数

13、下面有关一个类的友元函数的叙述中,正确的是____。

A、允许在类外访问类中除私有成员以外的任何成员

B、允许在类外访问类中的任何成员

C、友元函数也是该类的成员函数

D、友元函数的定义必须放在该类的公有部分

14、以下关于多态性的描述中,错误的是____。

A、动态多态性是通过类的继承关系和虚函数来实现的

B、静态多态性是通过函数的重载或运算符的重载来实现的

C、多态性通常使用虚数组或重载技术来实现

D、为实现动态多态性,基类必须定义为含有纯虚函数的抽象类

15、以下有关类的叙述中,不正确的是()

A.若该类未定义无参构造函数,则编译器自动生成一个无参数的缺省构造函数。

B.若该类未定义析构函数,则编译器自动生成一个析构函数。

C.若该类未定义拷贝构造函数,则编译器自动生成一个拷贝构造函数。

D.任一类均有构造函数和析构函数。

16、下面有关运算符重载的叙述中,正确的是()

A.非静态成员函数重载运算符时带有this指针

B.友元函数载运算符时带有this指针

C.成员函数与友元函数重载运算符时都不带有this指针

D.用成员函数或友元函数重载同一运算符时,两者的参数类型与参数个数相同

17、设有类定义:

classM{

public:

int*v;

M(){}

M(inti){v=newint(i);}

};

下列表示中,定义该类的对象m,对其成员v进行正确操作的是()

A.Mm;m.v=10;B.Mm;*m.v=10;C.Mm;m.*v=10;D.Mm(10);

18、以下有关析构函数的叙述中,正确叙述的是。

A.析构函数可以有一个或多个参数B.可以重载析构函数

C.析构函数可以定义为虚函数D.必须显式地自定义析构函数

19、下面有关基类与其派生类的叙述中,正确的是。

A.派和类对象不能赋给基类对象

B.派生类对象的地址不能赋给其基类的指针变量

C.基类对象不能赋给派生类对象

D.基类对象的地址能赋给其派生类的指针变量

20、对于基类中的private成员,其在公有派生类中的访问权限为

A.不可访问B.privateC.protectedD.public

21、假定AB为一个类的类名,则该类的拷贝构造函数的函数原型是________。

A.AB&(ABx)B.AB(ABx)C.AB(AB&x)D.AB(AB*x)

22、下面有关类的构造函数与析构函数的叙述正确的是________。

A.同一个类的析构函数只能有一个

B.同一个类的构造函数只能有一个

C.同一个类的析构函数可定义多个

D.类的构造函数名可任意定义

23、在类定义中,如果仅定义了数据成员,而没有定义成员函数时,则由系统自动生成的成员函数有缺省构造函数、析构函数、拷贝构造函数和___(3)__函数。

24、以下选项中没有this指针的函数是。

A.内联成员函数B.构造函数C.静态成员函数D.析构函数

25、若通过类得成员函数和友元函数所实现的运算符重载得功能是一样的,下列说法正确的是。

A.这两种函数的参数相同,函数体实现的过程不同

B.编译器对这两种函数编译时所作的解释相同

C.这两种函数都带有this指针

D.友元函数比成员函数多一个参数

26、以下选项中错误的是。

A.派生类可以继承多个基类

B.可以有多个派生类继承同一个基类

C.派生类可以有多个虚基类

D.抽象类必须是虚基类

27、若定义类CA;

ClassCA{

public:

CA(intx=0);

};

执行语句“CAa(4),b[3],*p[2];”,则自动调用该类的构造函数的次数为。

A.6B.4C.3D.1

27、下列关于运算符重载的描述中,正确的是

A.运算符重载可以改变操作数的个数

B.运算符重载可以改变操作数的优先级

C.运算符重载可以改变操作数的结合性

D.运算符重载可以实现对象与操作数之间的新的操作功能,但运算符的操作数的个数、运算符的优先级和运算符的结合性均不可改变

28、下列关于构造函数和析构函数的叙述中,错误的是

A.均无返回值

B.均不可定义为虚函数

C.构造函数可以重载,但析构函数不可重载

D.构造函数可带参数,但析构函数不可带参数

29.下列关于虚函数的描述中,正确的是

A.虚函数是一个static类型的成员函数

B.虚函数是一个非成员函数

C.基类中采用virtual说明一个虚函数后,派生类中相同原型的函数也是虚函数

D.派生类中的虚函数必须与基类中相同函数名的虚函数具有不同的参数个数或类型

30.若函数func中存在语句:

this->x=0;

设该语句的语法是正确的,则与该语句有关的下列叙述中,错误的是

A.x是类的成员数据,func是该类的友元函数

B.x是类的成员数据,func是该类的成员函数

C.this->x和x是同一个变量

D.func不是一个静态成员函数

31、下列关于友元函数和静态函数的叙述中,错误的是

A、静态成员函数载类体中说明时加static,而载类外定义时不能加static;

B、虚函数不能为友元函数,也不能为静态成员函数;

C、友元函数在类体中说明时加friend,而载类定义之外定义函数时不能加friend;

D、友元函数不带this指针,静态成员函数带this指针;

32、下列对派生类的叙述中,错误的是

A、一个派生类可以作为另一个派生类的基类

B、派生类至少有一个基类

C、派生类的成员除了它自己的成员外,还包括它的所有基类的成员

D、派生类中继承的基类成员的访问权限在派生类中保持不变

33、以下关于多态性的描述中,正确地是

A、静态多台是通过类的继承关系和虚函数来实现的

B、动态多态是通过函数的重载或运算符的重载来实现的

C、C++提供了静态多态性和动态多态性

D、为实现动态多态性,基类必须定义为含有纯虚函数的抽象类

34、下列对于构造函数和析构函数的叙述中,正确的是

A、构造函数可以重载,析构函数不能重载;

B、构造函数不可以重载,析构函数可以重载

C、构造函数可以重载,析构函数也可以重载

A、构造函数不能重载,析构函数也不能重载

35、已定义类A,该类构造函数的参数都没有缺省值。

执行语句:

Aa1

(2),a2(1,2),*p=newA[3];

则自动调用给类的缺省构造函数的次数为

A、1B、2C、3D、5

36、下列关于派生类的叙述中,不正确的是

A、派生类可以作为基类派生出新的派生类

B、一个派生类可以有多个基类

C、派生类继承了基类的所有成员

D、派生类只能继承基类中的非私有成员

37、定义以下的类:

classX{

inta;

public:

X(intx=0){a=x;}

};

classY:

publicX{

intb;

public:

Y(intx=0,inty=0):

X(y){b=x;}

};

在以下选项的说明语句中,存在语法错误的是

A.X*pa=newY(1,2)B.Xa1=Y(1,3)

C.Xb2(2,3);Y&a2=b2;D.Yb3(10);Xz3(b3);

38、下列关于虚函数的描述中,正确的是

A.虚函数可以是一个static类型的成员函数

B.虚函数可以是一个非成员函数

C.虚函数实现静态多态性

D.基类中采用virtual说明一个虚函数后,派生类中定义相同原型的虚函数时,可以不必加virtual说明

39、下述关于抽象类的描述中,错误的是_____。

A.可以通过在类中定义纯虚函数的方式定义抽象类

B不可以创建抽象类的对象

C不可以创建抽象类的引用

D.可以创建抽象类的指针

40、假设a是类E的对象,执行语句:

Eb=a;

则要调用类E中的_____。

A.缺省构造函数B.operator=()函数

c.拷贝构造函数D.对象之间的赋值

41、已知在函数set中,语句this一>ff=5;与语句ff=5;的效果完全相同。

根据这一结论,以下叙述中不正确的是_____。

A.ff是某个类的数据成员,Set是该类的友元函数

B.ff是某个类的数据成员,Set是该类的成员函数

C.Set不是该类的静态成员函数

D.ff不是该类的常成员数据

42、以下对派生类的描述中,不正确的是_____。

A.一个派生类可以作为另一个派生类的基类

B.派生类至少有一个基类

C.派生类的成员除了它自己的成员以外,还包含它的基类的成员

D.派生类中,从基类继承来的成员的访问权限在派生类中保持不变

43、以下有关抽象类的叙述中不正确的是()

A.抽象类至少含有一个纯虚函数

B.抽象类至少含有一个没有函数体的虚函数

C.在抽象类的派生类中可以提供纯虚函数的实现代码

D.可以说明抽象类的对象

44、下列关于构造函数的描述中不正确的是()

A.构造函数可以设置缺省参数

B.构造函数在定义类的对象是自动执行,但不能显示调用

C.构造函数ukeyi对静态数据成员进行初始化

D.构造函数可以重载

45、设有类定义:

classB{

public:

voidG(floatx=0){out<

voidG(doublex){cout<

}r;

则以下选线中存在语法错误的是()

A.r.G();B.r.G(10);C.r.G(3.14);D.r.G(-1.00);

46、下列有关构造函数的叙述中正确的是()

A.类的构造函数不能重载

B.任何一个类必定有构造函数

C.可以定义没有构造函数的类

D.任何一个类必定有一个缺省的构造函数

47、C++中运算符重载可以改变()

A.运算符的优先级

B.运算符的结合性

C.运算符实现的功能

D.运算符的操作数的个数

48、以下关于基类指针和派生类指针的叙述中不正确的是()

A.基类指针可以指向它的公有派生类的对象

B.基类指针可以指向它的多次派生类后的派生类的对象

C.派生类的指针不能指向基类的对象

D.若基类指针指向派生类的对象,通过该基类指针可以访问派生类对象的所有成员

49、以下关于友元函数的叙述中,正确的是()

A.友元函数不能访问类的私有成员

B.友元函数破坏了类的封装性和隐蔽性

C.友元函数的使用与类的成员函数相同

D.友元函数的实现必须在类的说明中定义

50、以下对类的析构函数的叙述中,正确的是()

A.析构函数完成累的初始化

B.析构函数完成对象的初始化

C.析构函数完成撤销对象的相关处理

D.析构函数和成员函数一样可以显式的调用

51、以下有关多态性的叙述中不正确的是()

A.C++语言的多态性分为编译时的多态性和运行时的多态性

B.编译时的多态性通过重载函数来实现

C.运行时的多态性通过虚拟函数来实现

D.函数重载和虚函数均可实现编译时的多态性和运行时的多态性

52、设已定义了一个类名为MyClass的类

MyClasss1,*s2,**s3,*s4[2];

当该语句执行后,调用该类的构造函数的次数依次是()

A.1B.2C.3D.5

53、在公有派生的情况下,派生类中定义的成员函数能访问其基类的()

A.公有成员和保护乘员B.公有成员和私有成员

C.保护成员和私有成员D.公有成员、保护成员和私有成员

54、面向对象的程序设计思想的主要特征中不包括()。

(A)继承性(B)功能分解、逐步求精

(C)封装性和信息隐藏(D)多态性

55、下列关于构造函数的描述中,错误的是()。

(A)构造函数的名字必须和类的名字相同

(B)在创建对象时,系统会自动调用构造函数

(C)构造函数可以重载

(D)构造函数可以指定返回类型

56、下列说法中错误的是()。

(A)公有继承时基类中的public成员在派生类中仍是public的

(B)私有继承时基类中的protected成员在派生类中仍是protected的

(C)私有继承时基类中的public成员在派生类中是private的

(D)保护继承时基类中的public成员在派生类中是protected的

57()不是构造函数的特征

(A)构造函数的函数名与类名相同

(B)构造函数可以重载

(C)构造函数可以设置默认参数

(D)构造函数必须指定类型说明

58关于成员函数特征的描述中,()是错误的

(A)成员函数一定是内联函数

(B)成员函数可以重载

(C)成员函数可以设置参数的默认值

(D)成员函数可以是静态的

59有关类和对象的说法,下列不正确的是()

(A)对象是类的一个实例

(B)任何一个对象只能属于一个具体的类

(C)一个类只能有一个对象

(D)类与对象的关系和数据类型与变量的关系相似

60、下列说法不正确的是()

A.在类中,成员的默认访问特性是私有的。

B.类封装了数据和操作。

C.类实质上是一种数据类型。

D.在类的定义中,必须包含private、public、protected三种存取方式对应的部分。

61、下列说法中不正确的是()

A.对象是类的一个实例。

B.任何一个对象只能属于一个类。

C.一个类只能有一个对象。

D.类与对象间的关系和数据类型与变量间关系相类似。

62、以下说法不正确的是()

A.同一个类的两个对象占用相同的内存空间。

B.要在类的外部直接使用类中的私有成员是错误的。

C.一个对象数组中的所有数组元素属于同一个类。

D.当在类的外部定义成员函数时,必须在函数名前加上类名和作用域运算符:

:

63、下列说法中不正确的是()

A.在类中不能对所定义的数据成员进行初始化。

B.类的公用成员函数是类与外界的接口。

C.在类的定义体中,决定成员访问权限的关键字private、public和protected在类体内出现的次序是一定的,且只能出现一次。

D.类的实现机制实现了数据隐藏。

65、一个类的析构函数产。

A.是唯一的B.允许重载C.至多可有两个D.只能是缺省的

67、

27.对于一个C++类,

A、只能有一个构造函数和一个析构函数B.可有一个构造函数和多个析构函数

C.可有多个构造函数和一个析构函数D.可有多个构造函数和多个析构函数

68一个基类以私有方式派生时,其基类中的公有成员和保护成员在派生类中

A.均为私有成员B.均为公有成员C.均为保护成员D.仍为公有和保护成员

69、虚函数

A.可实现静态多态性B.可实现动态多态性

C.不能实现多态性D.既可实现静态多态性,又可实现动态多态性

70、下列关于类的构造函数和析构函数的叙述中,不正确的是。

A.类的析构函数可以重载

B.类的构造函数可以重载

C.定义一个类时可以不显式定义构造函数

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 法律文书 > 调解书

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2