C++考试题库及答案.doc_第1页
C++考试题库及答案.doc_第2页
C++考试题库及答案.doc_第3页
C++考试题库及答案.doc_第4页
C++考试题库及答案.doc_第5页
已阅读5页,还剩44页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

判断char型变量cl是否为小写字母的正确表达式是_。(2.0分)A、(cl=a)&(cl=cl)|(z=cl)C、a=cl=a)&(cl=z)假定MyClass为一个类,则执行MyClass a(2),b5,*c4后,执行构造函数的次数为_。(2.0分)A、6B、11C、10D、5char *s1=hello,*s2;s2=s1;则_。(2.0分)A、s1不能再指向其它单元B、couts1;与coutp=5;D、A1.p=5;C+异常处理机制中没有_。(2.0分)A、finallyB、tryC、throwD、catch所谓多态性是指_。(2.0分)A、一个对象调用不同名称的对象B、一个对象调用不同名称的函数C、不同的对象调用相同名称的函数D、不同的对象调用不同名称的函数关于new运算符的下列描述中,_是错的。(2.0分)A、使用它创建对象数组时必须指定初始值B、它可以用来动态创建对象和对象数组C、使用它创建对象时要调用构造函数D、使用它创建的对象和对象数组可以使用运算符delete删除以下正确的说法是:在C+语言中进行值传递时_。(2.0分)A、形参是虚拟的,不占用存储单元B、实参和与其对应的形参各占用独立的存储单元C、只有当实参和与其对应的形参同名时才共占用存储单元D、实参和与其对应的形参共占用一个存储单元C+类体系中,能被派生类继承的是_。(2.0分)A、友元函数B、析构函数C、构造函数D、虚函数对于重载的运算符,它是一个_。(2.0分)A、用于输出的成员函数B、用于输入的友元函数C、用于输入的成员函数D、用于输出的友元函数_是一个在基类中说明的虚函数,它在该基类中没有定义,但要求任何派生类都必须定义自己的版本。(2.0分)A、静态成员函数B、纯虚函数C、虚析构函数D、虚构造函数定义重载函数的下列要求中,_是错误的。(2.0分)A、要求函数的返回值不同B、要求参数个数相同时,参数类型不同C、要求参数中至少有一个类型不同D、要求参数的个数不同可以通过友元函数重载的运算符为_。(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;下列程序段的输出结果为_。 #includevoid main() char s=123,*p; p=s; cout*p+ str; cout str; 执行时输入的是“this is a test line!”,则输出的内容是_。(2.0分)A、thisB、this is a test line!C、this is a test lineD、this is a testcin流遇空白符号结束,因而只会读入第一个单词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中一个成员函数说明如下: void Set(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、某个对象的引用名设 int x=1, y=1; 表达式(!x|y-)的值是_1_。执行语句 int i = 10; cout i+ + i+; 输出结果是_。(2.0分)A、不确定B、22C、20D、21拷贝构造函数的参数通常是_。(2.0分)A、无特殊要求B、对象C、指向对象的指针D、自身类对象的常引用以下叙述中不正确的是_。(2.0分)A、以下是正确的宏定义 #define IBM_PCA选项,这样的宏定义运行时未报错,在使用时,就将其看做什么也没有,例如, int x=5; printf(number is %d,BM_DEF x);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、抽象类是指具有纯虚函数的类已知在一个类体中包含如下函数原型:VOLUME operator-(VOLUME)const;下列关于这个函数的叙述中,错误的是_。(2.0分)A、这是运算符-的重载运算符函数B、这个函数所重载的运算符是一个一元运算符C、这是一个成员函数D、这个函数不改变数据成员的值下列定义数组的语句中正确的是_。(2.0分)A、#define size 10 char str1size,str2size+2;B、char str;C、int num10;D、int n=5; int ann+2;所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是_。(2.0分)A、数据块B、类C、函数体D、对象下列函数模板的定义中,合法的是_。(2.0分)A、template T abs(T x)return xo?-x:x;B、template Tabs(T x)return x0?-x:x;C、template classT abs(T x)return x0?-x:x;D、templateT abs(T x)return x0?-x:x;C+对C语言做了很多改进,即从面向过程变成为面向对象的主要原因是_。(2.0分)A、允许函数重载,并允许函数设置缺省参数B、规定函数说明符必须用原型C、增加了一些新的运算符D、引进了类与对象的概念C+语言中函数调用的方式有_。(2.0分)A、函数调用作为语句、函数表达式或函数参数三种B、函数调用作为语句一种C、函数调用作为语句或函数表达式两种D、函数调用作为函数表达式一种设 int x=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、函数既可以嵌套定义又可以递归调用有如下类定义: class XA int x; public: XA(int n) x=n; ; class XB: public XA int y; public: XB(int a,int b); ; 在构造函数XB的下列定义中,正确的是_。(2.0分)A、XB:XB(int a,int b):XA(a),XB(b) B、XB:XB(int a,int b):XA(a),y(b) C、XB:XB(int a,int b):x(a),XB(b) D、XB:XB(inta,intb):x(a),y(b)假设Class Y:public X,即类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、简化程序有如下函数模板定义: templateT func(Tx,Ty)return x*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 若有 #define S(a,b) a*b 则语句 area=S(3,2); area的值为6.(2.0分)Tchar ch1 = 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对于函数原型:int fun(int a, int b=300,int c=200,int d=100);可以使用如下方式调用:fun();F常对象只能调用常成员函数。T包含空格的字符数组输入时,常常使用C+的cin.outline()函数实现。F派生类的虚函数与基类的虚函数需要有不同的形式参数。F派生类能过通过继承关键字改变对基类的函数成员的访问权限。T根据数据的组织形式,可以分为ASCII文件和文本文件两种。F(应为ASCII文件和二进制文件)对于内联函数,c+编译器执行内联扩展,将函数代码直接插入每一处调用处.由此可以减少函数调用的开销。T如果函数值的类型和return语句中表达式的值不一致,则以函数类型为准。T容器(container)是用来存储其他对象的对象,它是用模板技术实现的。T类的友元函数可以访问该类对象的所有成员。T类的构造函数可以有默认参数,但类内的普通成员函数不能有默认参数。F

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论