面向对象程序设计模拟题.docx

上传人:b****7 文档编号:16166065 上传时间:2023-07-11 格式:DOCX 页数:32 大小:25.05KB
下载 相关 举报
面向对象程序设计模拟题.docx_第1页
第1页 / 共32页
面向对象程序设计模拟题.docx_第2页
第2页 / 共32页
面向对象程序设计模拟题.docx_第3页
第3页 / 共32页
面向对象程序设计模拟题.docx_第4页
第4页 / 共32页
面向对象程序设计模拟题.docx_第5页
第5页 / 共32页
面向对象程序设计模拟题.docx_第6页
第6页 / 共32页
面向对象程序设计模拟题.docx_第7页
第7页 / 共32页
面向对象程序设计模拟题.docx_第8页
第8页 / 共32页
面向对象程序设计模拟题.docx_第9页
第9页 / 共32页
面向对象程序设计模拟题.docx_第10页
第10页 / 共32页
面向对象程序设计模拟题.docx_第11页
第11页 / 共32页
面向对象程序设计模拟题.docx_第12页
第12页 / 共32页
面向对象程序设计模拟题.docx_第13页
第13页 / 共32页
面向对象程序设计模拟题.docx_第14页
第14页 / 共32页
面向对象程序设计模拟题.docx_第15页
第15页 / 共32页
面向对象程序设计模拟题.docx_第16页
第16页 / 共32页
面向对象程序设计模拟题.docx_第17页
第17页 / 共32页
面向对象程序设计模拟题.docx_第18页
第18页 / 共32页
面向对象程序设计模拟题.docx_第19页
第19页 / 共32页
面向对象程序设计模拟题.docx_第20页
第20页 / 共32页
亲,该文档总共32页,到这儿已超出免费预览范围,如果喜欢就下载吧!
下载资源
资源描述

面向对象程序设计模拟题.docx

《面向对象程序设计模拟题.docx》由会员分享,可在线阅读,更多相关《面向对象程序设计模拟题.docx(32页珍藏版)》请在冰点文库上搜索。

面向对象程序设计模拟题.docx

面向对象程序设计模拟题

《面向对象程序设计》模拟题

一.单选题

1.如果一个类中包含纯虚函数,则该类称为().

A.抽象类

B.虚基类

C.派生类

D.子类

[答案]:

A

2.在类中将show声明为不带返回值的纯虚函数,则正确的写法是().

A.virtualvoidshow()=0;

B.virtualshow()=0;

C.virtualvoidshow();

D.voidshow()=0virtual;

[答案]:

A

3.虚函数必须是类的().

A.构造函数

B.友元函数

C.成员函数

D.私有成员函数

[答案]:

C

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

A.虚函数一定不能有函数体

B.含有虚函数的类,不能定义该类对象

C.虚函数只能被重载,不能被继承

D.基类中声明虚函数后,派生类中可以不重载该虚函数

[答案]:

D

5.在C++中要实现动态联编,可以使用()调用虚函数.

A.类名

B.派生类指针

C.对象名

D.基类指针

[答案]:

D

6.下列函数中,不能说明为虚函数的是().

A.私有成员函数

B.公有成员函数

C.构造函数

D.析构函数

[答案]:

C

7.一个类中的某个函数被声明为virtual,则该函数在该类的所有派生类中().

A.都是虚函数

B.重载后才是虚函数

C.被重新说明为virtual时才是虚函数

D.不是虚函数

[答案]:

A

8.类B是类A的公有派生类,类A和类B中都定义了虚函数func(),p是一个指向类A的指针,则p->func()将().

A.调用类A中的函数func()

B.调用类B中的函数func()

C.根据p实际所指对象类型确定调用A或B类中的函数func()

D.同时调用A类和B类中的函数func()

[答案]:

C

9.下列关于虚函数的说明中,正确的是().

A.从虚基类继承的函数都是虚函数

B.虚函数不能是静态成员函数

C.通过对象不能调用虚函数

D.抽象类中的函数都是虚函数

[答案]:

B

10.有一个重载运算符的函数参数表中,没有任何参数,则可以断定被重载的运算符函数是().

A.单目友元函数

B.单目成员函数

C.双目友元函数

D.双目成员函数

[答案]:

B

11.下列关于运算符函数返回值类型的描述中,错误的是().

A.可以是类类型

B.可以是int类型

C.可以是void类型

D.可以是float类型

[答案]:

C

12.友元运算符obj1>obj2被C++编译器解释为().

A.operator>(obj1,obj2)

B.>(obj1,obj2)

C.obj1.operator>(obj2)

D.obj2.operator>(obj1)

[答案]:

C

13.在表达式x+y*z中,+作为成员函数重载的运算符,*作为友元函数重载的运算符,以下叙述中正确的是().

A.operator+有2个参数,operator*有2个参数

B.operator+有2个参数,operator*有1个参数

C.operator+有1个参数,operator*有2个参数

D.operator+有1个参数,operator*有1个参数

[答案]:

C

14.重载赋值运算符时,应声明为()函数.

A.友元

B.虚

C.成员

D.多态

[答案]:

C

15.在成员函数中进行双目运算符重载时,参数表中应有()个参数.

A.0

B.1

C.2

D.3

[答案]:

B

16.双目运算符重载为友元函数时,参数表中应有()个参数.

A.0

B.1

C.2

D.抽象类中的函数都是虚函数

[答案]:

C

17.若表达式a+b中的”+”是作为成员函数重载的运算符,若采用运算符函数调用格式,则可表示为().

A.a.operator+(b)

B.b.operator+(a)

C.operator+(a,b)

D.双目成员函数

[答案]:

A

18.假定M是一个类名,且M中重载了操作符=,可以实现M对象间的连续赋值,如”m1=m2=m3;”.重载操作符=的函数原型最好是().

A.intoperaotor=(constM);

B.intoperator=(constM&);

C.Moperator=(constM&);

D.可以是float类型

[答案]:

D

19.下面是重载双目运算符+的普通函数原形,其中最符合+原来含义的是().

A.Valueoperator+(Value,Value);

B.Valueoperator+(Value,int);

C.Value&operator+(Value,Value);

D.obj2.operator>(obj1)

[答案]:

A

20.类模板允许我们创建一系列相关的().

A.类

B.变量

C.数组

D.operator+有1个参数,operator*有1个参数

[答案]:

A

21.关于异常,以下叙述中正确的是().

A.友元

B.当异常被一个catch块处理后,执行流程进入下一个catch块

C.当一个异常被抛出后,其后的第一个catch块执行

D.多态

[答案]:

A

22.以下关于函数模板叙述正确的是().

A.函数模板也是一个具体类型的函数

B.函数模板的类型参数与函数的参数是同一个概念

C.通过使用不同的类型参数,函数模板可以生成不同类型的函数

D.用函数模板定义的函数没有类型

[答案]:

C

23.有如下函数模板定义,则下列函数调用中错误的是().templateTfunc(Tx,Ty){returnx*x+y*y;}

A.func(3,5);

B.func(3,3.5)

C.func(3,5.5);

D.func(3,3.5);

[答案]:

B

24.下列关于函数模板的描述中,错误的是().

A.函数模板必须由程序员实例化为可执行的模板函数

B.函数模板的实例化由编译器完成

C.一个类定义中,只要有一个函数模板,则这个类是类模板

D.类模板的成员函数都是函数模板

[答案]:

A

25.下列模板声明中,正确的是().

A.template

B.template

C.template

D.template

[答案]:

D

26.类模板的使用实际上是将类模板实例化为一个().

A.函数

B.对象

C.类

D.抽象类

[答案]:

C

27.下列关于异常的叙述中,错误的是().

A.编译错属于异常,可以抛出

B.运行错属于异常

C.抛出异常后,将跳过函数中的其它代码

D.抛出的异常可以不被捕获

[答案]:

A

28.在C++程序中使用的cin标识符是系统类库中定义的()类中的一个对象.

A.istream

B.ostream

C.iostream

D.fstream

[答案]:

A

29.要进行文件的输入输出,除了包含头文件iostream外,还需要包含头文件().

A.ifstream

B.fstream

C.ostream

D.cstdio

[答案]:

B

30.定义char*p=“abcd”,能输出p的值(字符串地址)的语句为().

A.cout<<&p;

B.cout<

C.cout<<(char*)p;

D.cout<(p);

[答案]:

D

31.用于打开二进制文件的标志是().

A.ios:

:

binary

B.ios:

:

in

C.ios:

:

out

D.ios:

:

trunc

[答案]:

A

32.下列输出字符’B’的方法中,错误的是().

A.cout.put(‘B’);

B.chara=’B’;cout<

C.cout<

D.cout<<’B’;

[答案]:

C

33.使用setw()等操作函数设置数据输出格式时,应包含头文件().

A.

B.

C.

D.

[答案]:

A

34.可设置输出宽度的方法是().

A.setfill()

B.setw()

C.setprecision()

D.oct

[答案]:

B

35.面向对象程序设计思想的主要特征不包括().

A.继承性

B.功能分解,逐步求精

C.封装性和信息隐藏

D.多态性

[答案]:

B

36.下列能用作C++标识符的是().

A._123

B.for

C.case

D.virtual

[答案]:

A

37.以下工具中,()将C++源代码转换为目标文件.

A.编译器

B.链接器

C.编辑器

D.集成开发环境

[答案]:

A

38.C++程序主函数名称是().

A.Main

B.main

C.MAIN

D.用户自定义函数

[答案]:

B

39.main函数的返回值类型是().

A.char

B.double

C.int

D.无返回类型

[答案]:

C

40.下列关于相同类型指针的运算中,()是非法的.

A.两个指针进行相等或不等的运算

B.将NULL赋值给某个指针变量

C.一个指针加上一个整数

D.两个指针相加

[答案]:

D

41.下列关于动态联编的叙述中,()是错误的.

A.动态联编是以虚函数为基础的

B.动态联编在程序运行时确定所调用的函数代码块

C.动态联编调用多态函数时,传递的是基类对象的指针或基类对象引用

D.动态联编是在编译时确定调用某个函数的

[答案]:

D

42.下列描述中,()是抽象类的特征.

A.可以声明虚函数

B.不能说明其对象

C.可以定义友元函数

D.可以进行构造函数重载

[答案]:

B

43.在派生类中重载一个虚函数时,要求函数名.参数个数.参数类型和函数返回值().

A.相同

B.不同

C.相容

D.部分相同

[答案]:

A

44.下列关于抽象类的说明中,不正确的是().

A.含有纯虚函数的类称为抽象类

B.抽象类不能被实例化

C.抽象类的派生类一定可以实例化

D.可以声明抽象类的指针

[答案]:

C

45.下列运算符中,不能使用友元函数实现的是().

A.+

B.=

C.*

D.<<

[答案]:

B

46.若表达式a==b中的”==”是作为普通函数重载的运算符,若采用运算符函数调用格式,则可表示为().

A.a.operator==(b)

B.b.operator==(a)

C.operator==(a,b)

D.operator==(b,a)

[答案]:

C

47.对于int*p[5],以下叙述正确的是().

A.p是一个指向数组的指针,所指向的数组是5个int型元素

B.p是一个指向某数组中下标为5的元素的指针,该元素为int型

C.p[5]表示某个数组的第5个元素的值

D.p是一个具有5个元素的指针数组,每个元素是一个int型指针

[答案]:

D

48.若一个函数无返回值,则定义它时函数的类型应该为().

A.void

B.任意

C.int

D.无

[答案]:

A

49.在VC环境下,int型占用的字节数为().

A.1

B.2

C.4

D.8

[答案]:

C

50.类型修饰符unsigned修饰()类型是错误的.

A.char

B.int

C.longint

D.float

[答案]:

D

51.已有intm=10;则属于合法引用定义的是().

A.int&rm=m;

B.int&rm=10;

C.int&rm;rm=m;

D.int&rm=&m;

[答案]:

A

52.在C++中,下列关于设置参数默认值的叙述中,正确的是().

A.不允许设置参数的默认值

B.设置参数默认值时,应先设置右边的再设置左边的

C.设置参数默认值时,要么全部设置,要么一个也不设置

D.设置参数默认值时,应先设置左边的再设置右边的

[答案]:

B

53.下列对重载函数的描述中,()是错误的.

A.重载函数中不允许使用缺省参数

B.重载函数不能通过返回值类型区分不同的版本

C.编译系统根据参数表确定函数版本

D.类的析构函数不能重载

[答案]:

A

54.下面动态分配内存的代码执行后,正确的描述是().Int*p;p=newint[5];

A.动态开辟5个int元素,初值不确定

B.动态开辟初值为5的一个int元素

C.动态开辟5个int元素,初值为0

D.释放p所指向内存的代码为:

deletep;

[答案]:

A

55.重载函数在调用时选择的依据中,()是错误的.

A.参数个数

B.参数类型

C.函数名字

D.函数的类型

[答案]:

D

56.已知数组定义,intarray[10];则最小数组下标为().

A.0

B.1

C.9

D.10

[答案]:

A

57.字符串”ab”在内存中占用的字节数为().

A.1

B.2

C.3

D.4

[答案]:

C

58.1条return语句,可以返回()值.

A.1个

B.多个

C.1个或多个

D.任意

[答案]:

A

59.以下表达式中,结果为false的是().

A.3.15

B.-0.5

C.0

D.‘0’

[答案]:

C

60.已知数组定义,intarray[10];()是非法的数组元素访问.

A.array[10]

B.array[1]

C.array[0]

D.array[9]

[答案]:

A

61.下列的符号常量定义中,错误的定义是().

A.intconstM=10;

B.constintM=20;

C.constcharch;

D.constboolmark=true;

[答案]:

C

62.设array为一个数组,则表达式sizeof(array)/sizeof(array[0])的结果为().

A.array数组首地址

B.array数组中元素个数

C.array数组中每个元素所占的字节数

D.array数组占的总字节数

[答案]:

B

63.用new运算符创建一个含10个元素的一维整型数组的正确语句是().

A.int*p=newa[10];

B.int*p=newfloat[10];

C.int*p=newint[10];

D.int*p=newint[10]={1,2,3,4,5}

[答案]:

C

64.假定指针变量p定义为”int*p=newint[30];”,要释放p所指向的动态内存,应使用语句().

A.deletep;

B.delete*p;

C.delete&p;

D.delete[]p;

[答案]:

D

65.采用重载函数的目的是().

A.实现共享

B.减少空间

C.提高速度

D.使用方便,提高可读性

[答案]:

D

66.关于封装,下列说法中不正确的是().

A.通过封装,对象的全部属性和操作结合在一起,形成一个整体

B.通过封装,一个对象的实现细节被尽可能地隐藏起来(不可见)

C.通过封装,每个对象都成为相对独立的实体

D.通过封装,对象的属性都是不可见的

[答案]:

D

67.面向对象方法的多态性是指().

A.一个类可以派生出多个特殊类

B.一个对象在不同的运行环境中可以有不同的变体

C.针对一消息,不同的对象可以以适合自身的方式加以响应

D.一个对象可以是由多个其他对象组合而成的

[答案]:

C

68.在类作用域中能够通过直接使用该类的()成员名进行访问.

A.私有

B.公有

C.保护

D.任何

[答案]:

D

69.假定AA为一个类,a为该类公有的数据成员,px为指向该类对象的一个指针,则访问px所指对象中数据成员a的格式为().

A.px(a)

B.px[a]

C.px->a

D.px.a

[答案]:

C

70.类的析构函数是一个对象被()时自动调用的.

A.建立

B.销毁

C.赋值

D.引用

[答案]:

B

71.设px是指向一个类对象的指针变量,则执行”deletepx;”语句时,将自动调用该类的().

A.无参构造函数

B.带参构造函数

C.析构函数

D.拷贝构造函数

[答案]:

C

72.类的析构函数可以带有()个参数.

A.0

B.1

C.2

D.任意

[答案]:

A

73.静态成员函数对类的数据成员访问().

A.是不允许的

B.只允许是静态数据成员

C.只允许是非静态数据成员

D.可允许是静态数据成员或非静态数据成员

[答案]:

B

74.假定AB为一个类,则执行”ABa

(2),b[3],*p[4];”语句时共调用该类构造函数的次数为().

A.3

B.4

C.5

D.9

[答案]:

B

75.假定AA为一个类,inta()为该类的一个成员函数,若该成员函数在类定义体外定义,则函数头为().

A.intAA:

:

a()

B.intAA:

a()

C.AA:

:

a()

D.AA:

:

inta()

[答案]:

A

76.类中具有数据操作功能的是().

A.常数据成员

B.函数成员

C.数据成员

D.静态成员

[答案]:

B

77.关键字()定义允许在类外部使用的成员数据和成员函数.

A.virtual

B.class

C.public

D.private

[答案]:

C

78.下列对构造函数的描述中,()是错误的.

A.函数名与类名完全相同

B.构造函数允许重载

C.返回类型应该为void

D.构造函数允许使用缺省参数

[答案]:

C

79.已知print是某个类的常成员函数,返回值类型为void,正确的定义形式是().

A.voidconstprint();

B.constvoidprint();

C.voidprint()const;

D.voidprint(const);

[答案]:

C

80.假定MyClass为一个类,执行”MyClassa[3],*p;”语句时会自动调用该类型构造函数()次.

A.2

B.3

C.4

D.5

[答案]:

B

81.下列运算符中,必须使用友元函数实现的是().

A.+

B.++

C.*

D.<<

[答案]:

D

82.如果表达式a++中的”++”是作为普通函数重载的运算符,若采用运算符函数调用格式,则可表示为().

A.a.operator++()

B.operator++(a)

C.operator++(a,1)

D.operator++(1,a)

[答案]:

C

83.在C++程序中使用的cout标识符是系统类库中定义的()类中的一个对象.

A.istream

B.ostream

C.iostream

D.fstream

[答案]:

B

84.假定AB为一个类,则执行”ABx;”语句时将自动调用该类的().

A.带参构造函数

B.无参构造函数

C.拷贝构造函数

D.赋值重载运算符

[答案]:

B

85.类的构造函数可以带有()个参数.

A.0

B.1

C.2

D.任意

[答案]:

D

86.对类对象成员的初始化是通过构造函数中给出的()实现的.

A.函数体

B.初始化列表

C.参数表

D.初始化列表或函数体

[答案]:

B

87.假定一个类AB只含有一个整型数据成员a,当用户不定义任何构造函数时,系统为该类定义的无参构造函数为().

A.AB(){a=0;}

B.AB(intaa=0):

a(aa){}

C.AB(intaa):

a(aa){}

D.AB(){}

[答案]:

D

88.假定AA是一个类,abc是该类的一个成员函数,则参数表中隐含的第一个参数为().

A.abc

B.*this

C.this

D.this&

[答案]:

C

89.下列关于析构函数的描述中,()是正确的.

A.一个类中可以重载多个版本析构函数

B.析构函数名与类名完全相同

C.析构函数可以有1个或多个参数

D.析构函数不能指定返回值类型

[答案]:

D

90.假定AB为一个类,x是AB类的一个对象,则执行”ABy=x;”语句时将自动调用该类的().

A.复制构造函数

B.析构函数

C.缺省构造函数

D.赋值运算符函数

[答案]:

A

91.若有类Test,该类的复制构造函数声明为().

A.Test();

B.Test(constCTest&);

C.voidTest(constCTest&t);

D.Test(constCTest*t);

[答案]:

B

92.以下选项中,()不是类的成员函数.

A.构造函数

B.析构函数

C.友元函数

D.复制构造函数

[答案]:

C

93.构造函数在()时被调用.

A.程序编译

B.程序装入内存

C.创建类

D.创建对象

[答案]:

D

94.用户能够为类定义()个析构函数.

A.1

B.0

C.2

D.多个

[答案]:

A

95.下列函数原型中,可以作为类AA构造函数的是().

A.voidAA(int);

B.intAA();

C.AA(int)const;

D.AA(int);

[答案]:

D

96.友元的作用是().

A.提高程序的运行效率

B.加强类的封装性

C.实现数据的隐藏

D.增加成员函数的种类

[答案]:

A

97.被非静态成员函数访问的类的数据成员().

A.可以是非静态数据成员或静态数据成员

B.不可能是类的静态数据成员

C.只能是类的非静态数据成员

D.只能是类的静态数据成员

[答案]:

A

98.使用关键字()修饰的数据成员,允许当前类及其派生类访问,而不允许在类的外部访问.

A.public

B.protected

C.private

D.不指定

[答案]:

B

99.派生类的成员函数可以直接访问基类的()成员.

A.公有

B.保护

C.公有和保护

D.私有

[答案]:

C

100.下列叙述中,()不符合赋值兼容性规则.

A.基类的对象可以赋值给派生类对象

B.派生类对象可以赋值给基类的对象

C.派生类对象可以初始化基类对象的引用

D.派生类对象的地址可以赋值给基类的对象指针

[答案]:

A

101.如果采用公有继承,通过派生类对象,可以访问基类的().

A.私有成员

B.所有成员

C.保护成员

D.公有成员

[答案]:

D

102.派生类构造函数的成员初始化列表中不能包含().

A.基类的构造函数

B.派生类中成员对象的初始化

C.基类成员对象的初始化

D.派生类中一般数据成员的初始化

[答案]:

D

103.当保护继承时,基类的()在派生类中成为保护成员,不能通过派生类对象来直接访问.

A.任何成员

B.公有成员和保护成员

C.公有成员和私有成员

D.私有成员

[答案]:

B

104.设置虚基类的目的是().

A.简化程序

B.消除二义性

C.提高运行效率

D.减少目标代码

[答案]:

B

105.下列虚基类的声明中,()是正确的.

A.classvirtualB:

publicA

B.classB:

virtualpublicA

C.virtualclassB:

publicA

D.classB:

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

当前位置:首页 > 自然科学 > 物理

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

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