C++考试题库及答案Word格式.docx

上传人:b****6 文档编号:20201737 上传时间:2023-01-18 格式:DOCX 页数:30 大小:26.01KB
下载 相关 举报
C++考试题库及答案Word格式.docx_第1页
第1页 / 共30页
C++考试题库及答案Word格式.docx_第2页
第2页 / 共30页
C++考试题库及答案Word格式.docx_第3页
第3页 / 共30页
C++考试题库及答案Word格式.docx_第4页
第4页 / 共30页
C++考试题库及答案Word格式.docx_第5页
第5页 / 共30页
点击查看更多>>
下载资源
资源描述

C++考试题库及答案Word格式.docx

《C++考试题库及答案Word格式.docx》由会员分享,可在线阅读,更多相关《C++考试题库及答案Word格式.docx(30页珍藏版)》请在冰豆网上搜索。

C++考试题库及答案Word格式.docx

(2.0分)A、B、()C、=D、在下列运算符中,不能重载的是_。

(2.0分)A、deleteB、sizeofC、!

D、new下列运算符中,_运算符在C+语言中不能重载。

(2.0分)A、newB、C、+=D、:

可以通过友元函数重载的运算符为_。

(2.0分)A、()B、C、=D、不能被重载的运算符1、.(成员访问运算符)2、.*(成员指针访问运算符)3、:

(域运算符)4、sizeof(长度运算符)5、?

:

(条件运算符)下列运算符中,只能作为类成员函数重载的是_。

(2.0分)A、=B、b?

a:

cd?

c:

d后的结果是_。

(2.0分)A、4B、3C、2D、1若i为整型变量,则以下循环执行次数是_。

for(i=2;

i=0;

)couti-;

(2.0分)A、2次B、无限次C、1次D、0次设char*s;

以下正确的表达式是_。

(2.0分)A、*s=s;

B、*s=software;

C、s=software;

D、*s=software;

下列程序段的输出结果为_。

#includevoidmain()chars=123,*p;

p=s;

cout*p+str;

coutstr;

执行时输入的是“thisisatestline!

”,则输出的内容是_。

(2.0分)A、thisB、thisisatestline!

C、thisisatestlineD、thisisatestcin流遇空白符号结束,因而只会读入第一个单词this,输出this关于析构函数的特征,正确的是_。

(2.0分)A、析构函数和构造函数都可重载B、析构函数必须将指针类型的数据成员的值置未NULLC、析构函数不能有参数D、析构函数的返回值必须为void析构函数没有数据类型,也没有参数,没有返回值,一个类只能有一个析构函数。

下列关于虚函数的说明中,正确的是_。

(2.0分)A、抽象类中的成员函数都是虚函数B、虚函数不得是静态成员函数C、只能通过指针或引用调用虚函数D、从虚基类继承的函数都是虚函数下列关于成员函数的描述中,正确的是_。

(2.0分)A、成员函数可以有默认参数B、成员函数一定是内联函数C、成员函数没有返回值D、成员函数可以通过类名直接调用函数的形参是_。

(2.0分)A、外部变量B、局部变量C、全局变量D、静态变量在那种情况下不需要使用初始化列表_。

(2.0分)A、类数据成员B、初始化常量数据成员C、普通的数据成员D、调用基类的构造函数在C+语言中,char型数据在内存中的存储形式是_。

(2.0分)A、反码B、补码C、原码D、ASCII码_不是构造函数的特征。

(2.0分)A、构造函数可以重载B、构造函数必须指定类型说明C、构造函数可以设置缺省参数D、构造函数的函数名与类名相同关于纯虚函数和抽象类的描述,错误的是_(2.0分)A、抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出B、纯虚函数是一种特殊的函数,它没有具体实现代码C、一个基类中声明有纯虚函数,该基类的派生类一定不再是抽象类D、抽象类是指具有纯虚函数的类如果在派生类中没有对纯虚函数进行了定义,那这个派生类也是抽象类.不能用来定义对象下列对派生类的描述中,_是错误的。

(2.0分)A、派生类中继承的基类成员的访问权限到派生类保持不变B、一个派生类可以作为另一个派生类的基类C、派生类至少有一个基类D、派生类的成员除了它自己的成员外,还包含了它的基类成员关于关键字class和typename,下列表述正确的是_。

(2.0分)A、程序中所有的typename都可以替换为classB、程序中所有的class都可以替换为typenameC、A)和B)都可以D、A)和B)都不可以已知:

类A中一个成员函数说明如下:

voidSet(A&

a);

其中,A&

的含义是_。

(2.0分)A、将a的地址值赋给变量SetB、a是类A对象的引用,用来作函数Set()的参数C、变量A与a按位与作为函数Set()的参数D、指向类A的指针为a在公有派生情况下,有关派生类对象和基类对象的关系,不正确的叙述是_。

(2.0分)A、派生类的对象的地址可以赋给指向基类的指针B、派生类的对象可以直接访问基类中的成员C、派生类的对象可以初始化基类的引用D、派生类的对象可以赋给基类的对象关于this指针使用说法正确的是_。

(2.0分)A、保证基类私有成员在子类可以被访问B、保证基类共有成员在子类可以被访问C、保证每个对象都拥有自己的数据成员,但共享处理这些数据的代码D、保证基类保护成员在子类可以被访问下列函数中,不能重载运算符的函数是_。

(2.0分)A、友元函数B、成员函数C、普通函数D、构造函数下列关于运算符重载的叙述中,正确的是_。

(2.0分)A、重载一个二元运算符时,必须声明两个形参B、有的运算符只能作为成员函数重载C、通过运算符重载,可以定义新的运算符D、若重载运算符+,则相应的运算符函数名是+当一个类的某个函数被说明为virtual时,该函数在该类的所有派生类中_。

(2.0分)A、都不是虚函数B、只有被重新说明时才是虚函数C、只有被重新说明为virtual时才是虚函数D、都是虚函数拷贝构造函数的参数是_。

(2.0分)A、某个对象的指针名B、某个对象名C、某个对象的成员名D、某个对象的引用名下列不是描述类的成员函数的是_。

(2.0分)A、拷贝构造函数B、析构函数C、友元函数D、构造函数拷贝构造函数的参数是_。

(2.0分)A、某个对象的指针名B、某个对象名C、某个对象的成员名D、某个对象的引用名设intx=1,y=1;

表达式(!

x|y-)的值是_1_。

执行语句inti=10;

couti+i+;

输出结果是_。

(2.0分)A、不确定B、22C、20D、21拷贝构造函数的参数通常是_。

(2.0分)A、无特殊要求B、对象C、指向对象的指针D、自身类对象的常引用以下叙述中不正确的是_。

(2.0分)A、以下是正确的宏定义#defineIBM_PCA选项,这样的宏定义运行时未报错,在使用时,就将其看做什么也没有,例如,intx=5;

printf(numberis%d,BM_DEFx);

B、预处理命令行都必须以#号开始C、C+程序在执行过程中对预处理命令行进行处理D、在程序中凡是以#号开始的语句行都是预处理命令行关于在调用模板函数时模板实参的使用,下列表述中正确的是_。

(2.0分)A、对于常规参数所对应的模板实参,任何情况下都不能省略B、对于虚拟类型参数所对应的模板实参,若能够省略则必须省略C、对于虚拟类型参数所对应的模板实参,如果能从模板函数的实参中获得相同的信息,则都可以省略D、对于虚拟类型参数所对应的模板实参,如果它是参数表中的最后的若干个参数,则都可以省略在调用一个模板函数时,编译系统需要足够的信息来判别每个虚拟类型参数所对应的实际类型,可以从两个不同的渠道获得这样的信息:

从模板实参表(用“”括起来的参数表)或从模板函数实参表(用“()”括起来的参数表)。

如果从后者获得的信息已经能够判定其中部分或全部虚拟类型参数所对应的实际参数,而且它们又正好是参数表中最后的若干参数,则模板实参表中的那几个参数可以省略。

如果模板实参表中的实参都被省略了,则空表“”也可以不要,因此选项D错误。

反之,对于某个模板实参,如果从模板函数的实参表中无法获得同样的信息,就不能省略;

或者虽然能够获得同样的信息,但在它后面还有其他不能省略的实参,则其自身还是不能省略。

在派生类中,重载一个虚函数时,要求函数名、参数的个数、参数的类型、参数的顺序和函数的返回值_。

(2.0分)A、部分相同B、不同C、相同D、相容一个C+程序的执行是从_.(2.0分)A、本程序文件的第一个函数开始,到本程序main函数结束B、本程序文件的第一个函数开始,到本程序文件的最后一个函数结束C、本程序的main函数开始,到本程序文件的最后一个函数结束D、本程序的main函数开始,到main函数结束以下对C+语言函数的描述中,正确的是_。

(2.0分)A、C+程序必须由一个或一个以上的函数组成B、函数既可以嵌套定义又可以递归调用C、函数必须有返回值,否则不能使用函数D、C+程序中有调用关系的所有函数必须放在同一个程序文件中下列关于友元函数描述,正确的是_。

(2.0分)A、在类的外部定义友元函数时必须加上friend关键字B、一个友元函数不能同时定义为两个类的友元函数C、友元函数是独立于当前类的外部函数D、友元函数必须在类的外部进行定义友元函数_。

(2.0分)A、不能修改数据成员的值B、只能用对象名来调用C、没有this指针D、可以用类名或对象名来调用已知类A是类B的友元,类B是类C的友元,则_。

(2.0分)A、类C的成员可以访问类B对象的任意成员B、类A的成员函数可以访问类B对象的任意成员C、类C一定是类A的友元D、类A一定是类C的友元关于类模板,下列描述错误的是_。

(2.0分)A、函数的类模板参数须通过构造函数实例化B、根据建立对象时的实际数据类型,编译器把类模板实例化为模板类C、类模板从普通类派生,也可以从类模板派生D、一个普通基类不能派生类模板在重载一个运算符时,如果其参数表中有一个参数,则该运算符是_。

(2.0分)A、选项B和C都有可能B、二元成员运算符C、一元友元运算符D、一元成员运算符重载一目运算符没有参数,重载二目运算符要有一个参数关于纯虚函数和抽象类的描述,错误的是_(2.0分)A、抽象类只能作为基类来使用,其纯虚函数的实现由派生类给出B、一个基类中声明有纯虚函数,该基类的派生类一定不再是抽象类C、纯虚函数是一种特殊的函数,它没有具体实现代码D、抽象类是指具有纯虚函数的类已知在一个类体中包含如下函数原型:

VOLUMEoperator-(VOLUME)const;

下列关于这个函数的叙述中,错误的是_。

(2.0分)A、这是运算符-的重载运算符函数B、这个函数所重载的运算符是一个一元运算符C、这是一个成员函数D、这个函数不改变数据成员的值下列定义数组的语句中正确的是_。

(2.0分)A、#definesize10charstr1size,str2size+2;

B、charstr;

C、intnum10;

D、intn=5;

intann+2;

所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是_。

(2.0分)A、数据块B、类C、函数体D、对象下列函数模板的定义中,合法的是_。

(2.0分)A、templateTabs(Tx)returnxo?

-x:

x;

B、templateTabs(Tx)returnx0?

C、templateclassTabs(Tx)returnx0?

D、templateTabs(Tx)returnx0?

C+对C语言做了很多改进,即从面向过程变成为面向对象的主要原因是_。

(2.0分)A、允许函数重载,并允许函数设置缺省参数B、规定函数说明符必须用原型C、增加了一些新的运算符D、引进了类与对象的概念C+语言中函数调用的方式有_。

(2.0分)A、函数调用作为语句、函数表达式或函数参数三种B、函数调用作为语句一种C、函数调用作为语句或函数表达式两种D、函数调用作为函数表达式一种设intx=1,y=1;

x|y-)的值是_。

(2.0分)A、-1B、2C、1D、0下面判断是否构成重载函数的条件中,错误的判断条件是_。

(2.0分)A、函数返回值不同B、参数顺序不同C、参数类型不同D、参数个数不同以下对C+语言函数的描述中,正确的是_。

(2.0分)A、C+程序中有调用关系的所有函数必须放在同一个程序文件中B、函数必须有返回值,否则不能使用函数C、C+程序必须由一个或一个以上的函数组成D、函数既可以嵌套定义又可以递归调用有如下类定义:

classXAintx;

public:

XA(intn)x=n;

classXB:

publicXAinty;

XB(inta,intb);

在构造函数XB的下列定义中,正确的是_。

(2.0分)A、XB:

XB(inta,intb):

XA(a),XB(b)B、XB:

XA(a),y(b)C、XB:

x(a),XB(b)D、XB:

x(a),y(b)假设ClassY:

publicX,即类Y是类X的派生类,则说明一个Y类的对象时和删除Y类对象时,调用构造函数和析构函数的次序分别为_。

(2.0分)A、Y,X;

Y,XB、Y,X;

X,YC、X,Y;

Y,X(构造从内到外,析构从外到内)D、X,Y;

X,Y解决定义二义性问题的方法有_。

(2.0分)A、使用成员名限定或赋值兼容原则B、使用作用域分辨运算符或虚基类C、使用作用域分辨运算符或成员名限定D、只能使用作用域分辨运算符关于多继承二义性的描述,_是错误的。

(2.0分)A、一个派生类是从具有共同的间接基类的两个基类派生来的,派生类对该公共基类的访问可能出现二义性B、派生类的多个基类中存在同名成员时,派生类对这个成员访问可能出现二义性C、解决二义性最常用的方法是作用域运算符对成员进行限定D、派生类和它的基类中出现同名函数时,将可能出现二义性设置虚函数的主要目的是_。

(2.0分)A、减少目标代码B、提高运行效率C、消除二义性D、简化程序有如下函数模板定义:

templateTfunc(Tx,Ty)returnx*x+y*y;

在下列对func的调用中不正确的是_。

(2.0分)A、funcint(3,5.5)B、func(3,5)C、func(3,5.5)D、func3,5)定义对象数组时必须有不需要参数的构造函数(2.0分)T若有#defineS(a,b)a*b则语句area=S(3,2);

area的值为6.(2.0分)Tcharch1=student,ch210;

ch2=ch1;

是错误的(2.0分)T数组名是个名字,不可被赋值。

要想实现数组拷贝可以用memcpy字符串拷贝还可以用strcpy赋值兼容规则也适用于多继承的组合。

(2.0分)T在建立派生类时,并不是简单地把基类的私有成员直接作为派生类的私有成员,把基类的公用成员直接作为派生类的公用成员。

涉及如何确定基类的成员在派生类中的访问属性问题,不仅要考虑对类成员所声明的访问属性,还要考虑派生类所声明的对基类的继承方式.定义类的非成员函数运算符重载,必须将它声明为友元函数。

(2.0分)F构造函数和析构函数的返回类型为void(2.0分)F(构造函数的名字与类的名字相同,并且不能指定返回类型)构造函数实现类的类型转换,不适合将其它类型转换成类类型。

F在说明一个结构变量后,不能整体引用结构体变量,需要逐一引用。

T所谓私有成员是指只有类中所提供的成员函数才能直接使用它们,任何类外的函数对它们的访问都是非法的。

(2.0分)F(私有成员还可以被友元函数访问)基类中说明了虚函数后,派生类中与其对应的函数可不必说明为虚函数。

T子类可以新添自己的数据成员,但成员函数只能从父类继承。

F子类可以新添自己的成员函数,但数据成员只能从父类继承。

FC+中有五种作用域分别为文件作用域、块作用域、函数作用域、函数原型作用域和类作用域。

T基类构造函数的调用顺序是由它们在派生类的构造函数实现中初始化表中出现的顺序决定的。

F常量对象只能调用常量成员函数和静态成员函数,无法调用普通成员函数。

T赋值运算符只能作为成员函数进行重载。

T(因为编译器会提供一个默认的赋值运算符,你如果把自己定义赋值运算符的写成友元的话,函数的参数列表不一样,不会发生重载)作为虚函数隐含参数的this指针,决定了虚函数调用时执行的代码。

T对于函数原型:

intfun(inta,intb=300,intc=200,intd=100);

可以使用如下方式调用:

fun();

F常对象只能调用常成员函数。

T包含空格的字符数组输入时,常常使用C+的cin.outline()函数实现。

F派生类的虚函数与基类的虚函数需要有不同的形式参数。

F派生类能过通过继承关键字改变对基类的函数成员的访问权限。

T根据数据的组织形式,可以分为ASCII文件和文本文件两种。

F(应为ASCII文件和二进制文件)对于内联函数,c+编译器执行内联扩展,将函数代码直接插入每一处调用处.由此可以减少函数调用的开销。

T如果函数值的类型和return语句中表达式的值不一致,则以函数类型为准。

T容器(container)是用来存储其他对象的对象,它是用模板技术实现的。

T类的友元函数可以访问该类对象的所有成员。

T类的构造函数可以有默认参数,但类内的普通成员函数不能有默认参数。

F可以显式调用对象的构造函数。

F在运算符重载中,operator是保留关键字,表示运算符函数T友元函数访问对象中的成员可以不通过对象名。

F友元函数是在类声明中由关键字friend修饰说明的类的成员函数。

F进行宏定义时,宏名必须使用大写字母表示。

FC+语言把文件看作是字符(字节)的序列,即由一个一个字符(字节)的数据按照随机顺序组成。

F静态数据成员必须在类外定义和初始化。

T重载流操作符时,如果第一个参数的类型为ostream和istream,那么这个重载函数既可以用于标准输入输出流,也可以用于文件流上。

T纯虚函数与函数体为空的虚函数等价。

F作为虚函数隐含参数的this指针,决定了虚函数调用时执行的代码。

T运算符的重载形式有两种,重载为类的成员函数和重载为类的友元函数。

(2.0分)T在同一个类中,可以定义重载的成员函数voidf(int);

和virtualvoidf(int);

F类内的常量数据成员必须用初始化列表来初始化数据成员。

T多重继承往往产生二义性问题,可用成员名限定法来消除,这对成员变量、成员函数都适用。

T基类成员的访问能力在派生类中维持不变。

FC+语言中只能逐个引用数组元素而不能一次引用整个数组。

(2.0分)T运行时的多态性可通过模板和虚函数实现。

F静态通过重载,动态通过虚函数和基类指针(引用)来实现。

静态成员函数不能访问非静态的类成员(2.0分)T虚函数可以是static类型的函数。

F设有函数说明voidf(constint&

);

则在调用该函数时,提供的参数既可以是变量,又可以是常量。

F类内的public的成员函数能被外部访问,不能被类内部函数调用(2.0分)F抽象类不能用于创建对象。

T抽象类可以用来直接创建对象。

F类内的public成员函数不能访问类里的private数据成员(2.0分)F抽象类可以用来直接创建对象。

(2.0分)F实参与形参值传递是双向的传递.(2.0分)FC+提供的顺序类型容器有向量(vector)、链表(list)、双端队列(deque)、集合(set)。

F

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

当前位置:首页 > 小学教育 > 语文

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1