考试中经典的c++选择题库.doc

上传人:b**** 文档编号:14744292 上传时间:2023-06-26 格式:DOC 页数:13 大小:92KB
下载 相关 举报
考试中经典的c++选择题库.doc_第1页
第1页 / 共13页
考试中经典的c++选择题库.doc_第2页
第2页 / 共13页
考试中经典的c++选择题库.doc_第3页
第3页 / 共13页
考试中经典的c++选择题库.doc_第4页
第4页 / 共13页
考试中经典的c++选择题库.doc_第5页
第5页 / 共13页
考试中经典的c++选择题库.doc_第6页
第6页 / 共13页
考试中经典的c++选择题库.doc_第7页
第7页 / 共13页
考试中经典的c++选择题库.doc_第8页
第8页 / 共13页
考试中经典的c++选择题库.doc_第9页
第9页 / 共13页
考试中经典的c++选择题库.doc_第10页
第10页 / 共13页
考试中经典的c++选择题库.doc_第11页
第11页 / 共13页
考试中经典的c++选择题库.doc_第12页
第12页 / 共13页
考试中经典的c++选择题库.doc_第13页
第13页 / 共13页
亲,该文档总共13页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

考试中经典的c++选择题库.doc

《考试中经典的c++选择题库.doc》由会员分享,可在线阅读,更多相关《考试中经典的c++选择题库.doc(13页珍藏版)》请在冰点文库上搜索。

考试中经典的c++选择题库.doc

精品文档

C++选择题集

1.下列的各类函数中,不是类的成员函数。

(C)

A)构造函数B)析构函数C)友元函数D)拷贝初始化构造函数

2.作用域运算符“:

”的功能是:

(B)

A)标识作用域的级别的B)指出作用域的范围的

C)给定作用域的大小的D)标识成员是属于哪个类的

3.下列说明中constchar*ptr;其中ptr应该是:

(C)

A)指向字符常量的指针B)指向字符的常量指针

C)指向字符串常量的指针D)指向字符串的常量指针

4.已知:

print()函数是一个类的常成员函数,它无返回值,下列表示中,是正确的。

(A)

A)voidprint()const;B)constvoidprint();

C)voidconstprint():

D)voidprint(const);

5.在类定义的外部,可以被访问的成员有(C)

A)所有类成员B)private的类成员

C)public的类成员D)public或private的类成员

6.要求打开文件"d:

\file.dat",可写入数据,正确的语句是:

(B)

ifstreaminfile("d:

\file.dat",ios:

:

in);

ifstreaminfile("d:

\\file.dat",ios:

:

in);

ofstreaminfile("d:

\file.dat",ios:

:

out);

fstreaminfile("d:

\\file.dat",ios:

:

in|ios:

:

out);

7.关于类和对象不正确的说法是:

(C)

A)类是一种类型,它封装了数据和操作B)对象是类的实例

C)一个类的对象只有一个D)一个对象必属于某个类

8.在C++中,类与类之间的继承关系具有(C)

A)自反性B)对称性C)传递性D)反对称性

9.结构化程序设计所规定的三种基本控制结构是:

(C)

A)输入、处理、输出B)树形、网形、环形

C)顺序、选择、循环D)主程序、子程序、函数

10.C++语言是从早期的C语言逐渐发展演变而来的.与C语言相比,它在求解问题方法上进行的最大改进是:

(B)

A)面向过程B)面向对象C)安全性D)复用性

11.在C++中实现封装是借助于(B)

A)枚举B)类C)数组D)函数

12.C++语言是从早期的C语言逐渐发展演变而来的与C语言相比,它在求解问题方法上进行的最大改进是:

(B)

A)面向过程B)面向对象C)安全性D)复用性

13.在C++中用(D)能够实现将参数值带回。

a)数组b)指针c)引用d)上述ABC都可

14.考虑函数原型voidtest(inta,intb=7,charch="*"),下面的函数调用中,属于不合法调用的是:

(C)

A)test(5)B)test(5,8)C)test(6,"#")D)test(0,0,"*");

15.下列关于类和对象的叙述中,错误的是:

(A)

A)一个类只能有一个对象;B)对象是类的具体实例;

C)类是对某一类对象的抽象;D)类和对象的关系是一种数据类型与变量的关系。

16.已知:

intm=10;下列表示引用的方法中,正确的是:

(C)

A)int&Z;B)int&t=10;C)int&X=m;D)float&f=&m;

17.对于int*pa[5];的描述中,正确的是:

(D)

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

B)pa是一个指向某数组中第5个元素的指针,该元素是int型变量

C)pa[5]表示数组的第5个元素的值,是int型的值

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

18.定义析构函数时,应该注意:

(C)

A)其名与类名完全相同B)返回类型是void类型

C)无形参,也不可重载D)函数体中必须有delete语句

19.在公有继承的情况下,基类的成员(私有的除外)在派生类中的访问权限(B)

A)受限制B)保持不变C)受保护D)不受保护

20.下列不是函数重载所要求的条件是:

(D)

A)函数名相同B)参数个数不同

C)参数类型不同D)函数返回值类型不同

21.在C++中执行以下4条语句后输出rad值为:

(C)

staticinthot=200;

int&rad=hot;

hot=hot+100;

cout<

A)0B)100C)300D)200

22.类claseCC1的说明如下,错误的语句是:

(A)

claseCC1{

inta=2;//(A)

CC1();//(B)

public:

CC1(intval);//(C)

~CC1();//(D)

};

23.下列各类函数中,不是类的成员函数是:

(C)

A)构造函数B)析构函数

C)友元函数D)拷贝构造函数

24.类的指针成员的初始化是通过函数完成的,这个函数通常是:

(C)

A)析构函数B)构造函数C)其它成员函数D)友元函数

25.关于构造函数的说法,不正确的是:

(A)

A)没有定义构造函数时,系统将不会调用它B)其名与类名完全相同

C)它在对象被创建时由系统自动调用D)没有返回值

26.按解释中的要求在下列程序划线处填入的正确语句是:

(C)

#include

classBase{

public:

voidfun(){cout<<"Base:

:

fun"<

};

classDerived:

publicBase{

public:

voidfun()

{//在此空格处调用基类的函数fun()

cout<<"Derived:

:

fun"<

};

A)fun();B)Base.fun();C)Base:

:

fun();D)Base->fun();

27.在C++中编译器所生成的文件的扩展名为(B)

A).cppB).objC).libD).exe

28.在保护继承的情况下,基类的成员(私有的除外)在派生类中的访问权限(C)

A)受限制B)保持不变C)受保护D)不受保护

29.有如下一段程序:

intf1(float);

intf2(char);

intf3(float);

intf4(float);

int(*pf)(float);

则以下不合法的是:

(C)

A)int(*p)(float)=&f1;B)pf=&f4;C)pf=&f2;D)pf=&f3;

30.通常拷贝构造函数的参数是:

(C)

A)对象名B)对象的成员名C)对象的引用名D)对象的指针名

31.系统在调用重载函数时,不能作为确定哪个重载函数被调用的依据是:

(D)

A)参数个数B)参数类型C)函数名称D)函数的返回值类型

32.下列描述中,正确的是:

(D)

A)所有的运算符号都可以重载。

B)基类类型的指针可以指向子类,子类类型的指针也可以指向基类。

C)可以在类的构造函数中对静态数据成员进行初始化。

D)动态联编要满足两个条件:

被调用的成员函数是虚函数;用指针或引用调用虚函数。

33.关于成员函数特征的描述中,错误的是:

(A)

A)成员函数一定是内联函数B)成员函数可以重载

C)成员函数可以设置参数的默认值D)成员函数可以是静态的

34.下列关于构造函数的描述中,错误的是:

(D)

A)构造函数可以设置默认参数;B)构造函数在定义类对象时自动执行

C)构造函数可以是内联函数;D)构造函数不可以重载

35.下面描述中,表达错误的是:

(B)

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

B)公有继承时,基类中的private成员在派生类中仍是private的

C)公有继承时,基类中的protected成员在派生类中仍是protected的

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

36.C++语言是从早期的C语言逐渐发展演变而来的,与C语言相比,C++在求解问题方法上进行的最大改进是:

(B)

A)面向过程B)面向对象C)安全性D)复用性

37.有如下类声明“classA{intx;……};”,则A类的成员x是:

(B)

A)公有数据成员B)私有数据成员C)公有成员函数D)私有成员函数

38.有如下程序:

执行后的输出结果应该是:

(A)

#include

classcla{

staticintn;

public:

cla(){n++;}

~cla(){n--;}

staticintget_n(){returnn;}

};

intcla:

:

n=0;

intmain()

{

cla*p=newcla;

deletep;

cout<<"n="<

:

get_n()<

return0;

}

A)n=0B)n=1C)n=3D)n=4

39.有如下程序:

执行后的输出结果应该是:

(A)

#include

classA{

public:

A(){cout<<"A";}

};

classC:

publicA{

public:

C(){cout<<"C";}

};

voidmain(){Ccobj;}

A)ACB)CAC)AD)C

40.有如下程序:

执行后的输出结果应该是:

(D)

#include

classBASE{

public:

~BASE(){cout<<"BASE";}

};

classDERIVED:

publicBASE{

public:

~DERIVED(){cout<<"DERIVED";}

};

voidmain(){DERIVEDx;}

A)BASEB)DERIVEDC)BASEDERIVEDD)DERIVEDBASE

41.类TM和类TN是两个独立的类,那么类TM中哪种形式的数据成员一定是不允许的:

(C)

A)TM*aB)TN&aC)TMaD)TNa;

42.通过下述哪一项调用虚函数时,采用动态联编。

(A)

A)对象指针B)对象名C)成员名限定D)派生类名

43.在下述哪种情况下适宜采用inline定义内联函数。

(C)

A)函数体含有循环语句B)函数体含有递归语句

C)函数代码少、频繁调用D)函数体含有switch语句

44.创建动态对象,需要使用操作符(A)

A)newB)deleteC).D)*

45.删除动态对象,需要使用操作符(B)

A)newB)deleteC).D)*

46.在C++中不能被重载的一组运算符是:

(A)

A):

:

?

:

.sizeofB)?

:

.sizeof++->

C):

:

?

:

newdeleteD)++--?

:

sizeof

47.如果类A被说明成类B的友元,则(C)

A)类A的成员即是类B的成员

B)类B的成员即是类A的成员

C)类A的成员函数可以访问类B的所有成员

D)类B的成员函数可以访问类A的所有成员

48.下面关于友元的描述中,错误的是:

(D)

A)友元函数可以直接访问该类的私有成员。

B)一个类的友元类中的所有成员函数都是这个类的友元函数。

C)利用友元可以提高程序的运行效率,但却破坏了封装性。

D)友元关系不能被继承,是双向可交换的。

49.下列虚基类的声明中,正确的是:

(B)

A)classvirtualB:

publicAB)classB:

virtualpublicA

C)classB:

publicAvirtualD)virtualclassB:

publicA

50.C++设置虚基类的目的是(A)

A)消除二义性B)简化程序C)提高运行效率D)减少目标代码

51.有如下模板定义:

templateTfun(Tx,Ty){returnx*x+y*y;}

在下列对fun的调用中,错误的是:

(C)

A)fun(2,8)B)fun(2.0,8.2)C)fun(2.3,8)D)fun(2,8.3)

52.通常情况下,函数模板中的类型参数个数不能是(A)

A)0个B)1个C)2个D)3个

53.以下关于this指针的叙述中正确的是:

(D)

A)任何与类相关的函数都有this指针;B)类的成员函数都有this指针;

C)类的友员函数都有this指针;D)类的非静态成员函数才有this指针;

54.当一个类的某个函数被说明为virtual时,在该类的所有派生类中的同原型函数(A)

A)都是虚函数B)只有被重新说明时才是虚函数

C)都不是虚函数D)只有被重新说明为virtual时才是虚函数

55.在派生类中重新定义虚函数时,必须在下列哪方面与基类保持一致。

(A)

A)参数类型B)参数名字C)操作内容D)赋值

56.关于const关键字说法错误的是(D)

A)const关键字可以修饰对象和成员函数B)const对象不能被修改

C)const成员函数不能修改类数据成员D)const可以用于说明类

57.执行如下程序后的输出结果是:

(B)

#include

classtest{

staticintcount;

public:

test(){count++;}

~test(){count--;}

staticintgetCount(){returncount;}

};

inttest:

:

count=0;

intmain()

{

test*p=newtest;

test*q=newtest;

deletep;

cout<<"count="<

:

getCount()<

return0;

}

A)count=0B)count=1C)count=2D)count=3

58.关于类模板的说法正确的是:

(B)

A)类模板的主要作用是生成抽象类

B)类模板实例化时,编译器将根据给出的模板实参生成一个类

C)在类模板中的数据成员具有同样类型

D)类模板中的成员函数没有返回值

59.有如下说明语句inta[10]={1,2,3,4,5,6,7,8,9,10};int*p=a;则数值为9的表达式是:

(B)。

A)*p+9B)*(p+8)C)*p+=9D)p+7

60.以下关键字不能用来声明类的访问权限的是:

(C)

A)publicB)privateC)staticD)protected

61.实现运行时的多态性采用(D)

A)重载函数B)构造函数C)析构函数D)虚函数

62.下列说明语句中正确的是:

(D)

A)inta,&ra=a,&&ref=ra;B)int&refa[10];

C)inta,&ra=a,&*refp=&ra;D)int*pi,*&pref=pi;

63.进行文件操作时需要包含头文件(C)

A)iostream.hB)stdio.hC)fstream.hD)stdlib.h

64.使用如setw()的格式操纵符时需要包含头文件(C)

A)iostream.hB)fstream.hC)iomanip.hD)stdlib.h

65.对C++语言和C语言的兼容性,描述正确的是:

(A)

A)C++兼容CB)C++部分兼容CC)C++不兼容CD)C兼容C++

66.在C++中使用流进行输入输出,其中用于屏幕输出的对象是:

(C)

A)cerrB)cinC)coutD)cfile

67.对使用关键字new所开辟的动态存储空间,释放时必须使用(C)

A)freeB)createC)deleteD)realse

68.如没有使用private关键字定义类的数据成员,则默认为(A)

A)privateB)publicC)protectedD)friend

69.使用值传递方式将实参传给形参,下列说法正确的是:

(A)

A)形参是实参的备份B)实参是形参的备份

C)形参和实参是同一对象D)形参和实参无联系

70.在函数调用时,如某一默认参数要指明一个特定值,则有(A)

A)其之前所有参数都必须赋值B)其之后所有参数都必须赋值

C)其前、后所有参数都必须赋值D)其前、后所有参数都不必赋值

71.设存在函数intmax(int,int)返回两参数中较大值,若求22,59,70三者中最大值,下列表达式不正确的是:

(C)

A)intm=max(22,max(59,70));B)intm=max(max(22,59),70);

C)intm=max(22,59,70);D)intm=max(59,max(22,70));

72.下列哪个类型函数不适合声明为内联函数(A)

A)函数体语句较多B)函数体语句较少C)函数执行时间较短D)函数执行时间过长

73.intFunc(int,int);不可与下列哪个函数构成重载(B)

A)intFunc(int,int,int);B)doubleFunc(int,int);

C)doubleFunc(double,double);D)doubleFunc(int,double);

74.类的私有成员可在何处访问(D)

A)通过子类的对象访问B)本类及子类的成员函数中

C)通过该类对象访问D)本类的成员函数中

75.如果没有为一个类定义任何构造函数的情况下,下列描述正确的是:

(A)

A)编译器总是自动创建一个不带参数的构造函数B)这个类没有构造函数

C)这个类不需要构造函数D)该类不能通过编译

76.一个类可包含析构函数的个数是:

(B)

A)0个B)1个C)0个或1个D)0个或多个

77.一个类可包含构造函数的个数是:

(D)

A)0个B)0个或1个C)0个或多个D)1个或多个

78.this指针存在的目的是:

(B)

A)保证基类公有成员在子类中可以被访问

B)保证每个对象拥有自己的数据成员,但共享处理这些数据成员的代码

C)保证基类保护成员在子类中可以被访问

D)保证基类私有成员在子类中可以被访问

79.下列关于类的权限的描述错误的是:

(A)

A)类本身的成员函数只能访问自身的私有成员

B)类的对象只能访问该类的公有成员

C)普通函数不能直接访问类的公有成员,必须通过对象访问

D)一个类可以将另一个类的对象作为成员

80.在编译指令中,宏定义使用哪个指令(B)

A)#includeB)#defineC)#ifD)#else

81.设类A将其它类对象作为成员,则建立A类对象时,下列描述正确的是:

(B)

A)A类构造函数先执行B)成员构造函数先执行

C)两者并行执行D)不能确定

82.下列描述错误的是:

(A)

A)在创建对象前,静态成员不存在B)静态成员是类的成员

C)静态成员不能是虚函数D)静态成员函数不能直接访问非静态成员

83.对于友元描述正确的是:

(B)

A)友元是本类的成员函数B)友元不是本类的成员函数

C)友元不是函数D)友元不能访问本类私有成员

84.在哪种派生方式中,派生类可以访问基类中的protected成员(B)

A)public和privateB)public和protected

C)protected和privateD)仅protected

85.在每个C++程序中都必须包含的一个函数是(B)

A)main()B)MAIN()C)name()D)function()

86.设x和y均为bool量,则x&&y为真的条件是(A)

A)它们均为真B)其中一个为真C)它们均为假D)其中一个为假

87.下面的哪个保留字不能作为函数的返回类型(C)

A)voidB)intC)newD)long

88.假定a为一个整型数组名,则元素a[4]的字节地址为(C)

A)a+4B)a+8C)a+16D)a+32

89.假定有类AB,有相应的构造函数定义,能正确执行“ABa(4),b(5),c[3],*p[2]={&a,&b};”语句,请问执行完此语句后共调用该类

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

当前位置:首页 > 求职职场 > 简历

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

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