C++ 复习题最终整合.doc_第1页
C++ 复习题最终整合.doc_第2页
C++ 复习题最终整合.doc_第3页
C++ 复习题最终整合.doc_第4页
C++ 复习题最终整合.doc_第5页
已阅读5页,还剩1页未读 继续免费阅读

下载本文档

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

文档简介

一、填空题1.在说明引用时用const修饰的引用为 常引用,它所引用的对象不允许更改。2.信息隐藏是指将对象的 数据和操作 隐藏起来的技术。3.运行时多态性主要是通过 虚函数 来实现的。4.类的对象成员的构造函数的调用次序取决于这些对象成员 在类中声明 的次序,与它们在初始化列表中出现的次序无关。7构造函数 是一种特殊的成员函数,它主要用来为对象分配内存空间,对类的数据成员进行初始化并执行对象的其他内部管理操作。 10.一个非成员函数必须声明为一个类的 friend 才有可能存取该类的私有数据成员。 二、填空题17、面向对象程序设计有四个主要特点,即抽象、封装、_继承、_和_多态性_。18、非成员函数应声明为类的_友元_函数才能访问这个类的private成员。19、派生类中的成员不能直接访问基类中的_私有_成员。20、在用class定义一个类时,数据成员和成员函数的默认访问权限是 private或私有_。21、运算符重载函数可能是类的_成员_函数,也可以是类的_友元_,还可以是普通函数。22、用流对象的成员函数控制输出格式时,用于设置字段宽度的流成员函数的名称是_ width/ _,与之作用相同的控制符名称是_ setw _。23、含有纯虚函数的类称为_抽象类三、填空题1、类和对象的关系可表述为:类是对象的 抽象 ,而对象则是类的 实例 。2、静态成员函数没有隐含的 this指针 ,所以,在C+程序中,静态成员函数主要用来访问静态数据成员,而不访问非静态成员。3、在图1中,A,B,C,D,E,F均是类,其中属于单继承的派生类有 E ,属于多继承的派生类有 D、F ,类F的基类有 ,类A的派生类有 。ABCDEF图1 类的继承层次图4、如果只想保留公共基类的一个复制,就必须使用关键字 virtual 把这个公共基类声明为虚基类。5、从实现的角度来讲,多态性可以划分为两类: 静态多态性 和 动态多态性 。6、如果一个类包含一个或多个纯虚函数,则该类称为 抽象类 。9、析构函数的作用是在对象被系统释放之前做一些内存清理工作 。11、后置自增运算符“+”重载为类的成员函数(设类名为A)的形式为 A operator+(int) 。四、填空题2、在C+中,三种继承方式的说明符号为 public 、 private 和 protected ,如果不加说明,则默认的继承方式为 private 。7、通过关键字 可以声明模板,通过关键字 指定函数模板的类型参数,有几个类型参数就有几个类型关键字。8、列出C+中两种用户自定义的数据类型: 类类型 、 结构体类型 。9、构造函数的作用是 对对象的初始化 。一、判断题:1如果类中含有指针类型的数据,深拷贝就会产生错误。()2. 类模板不是代表一个具体的、实际的类, 而是代表着一类类。()3. 常常用将类的下标运算符 重载为友元函数。()6. 编译时多态性主要是通过函数重载和运算符重载实现的。 ()7. C+中的类属关系运算符“.”也可以重载。 ()8. 构造函数的名字必须与类名相同,其返回类型缺省为void类型。 ()9. 允许将一个声明为指向派生类对象的指针指向其基类的一个对象。()二、判断题:1使用关键字class定义的类中缺省的访问权限是私有(private)的。()2作用域运算符( :)只能用来限定成员函数所属的类。(数据成员所属的类)()4析构函数和构造函数都不能重载。()7所谓私有成员是指只有类中所提供的成员函数才能直接使用它们,任何类以外的函数对它们的访问都是非法的。 ()9 可以在类的构造函数中对静态数据成员进行初始化。(类体外)()三、判断题:1指向对象的指针和指向类的成员的指针在表示形式上是不相同的。()4对象引用作函数参数比用对象之中更方便些。()5对象数组的元素可以是不同类的对象。()6对象数组既可以赋初值又可以被赋值。()7指向数组的指针不一定必须指向数组的首元素。()一、选择题:1.有关运算符重载正确的是( D )A) C+语言允许在重载运算符时改变运算符的操作个数B) C+语言允许在重载运算符时改变运算符的优先级C) C+语言允许在重载运算符时改变运算符的结合性D) C+语言允许在重载运算符时改变运算符的原来的功能2. 类的析构函数的作用是(D)A)一般成员函数B)类的初始化C)对象的初始化D)删除类创建的所有对象3. 什么样的成员函数不能修改数据成员?(C ) A) 私有成员函数B)公有成员函数C)常量成员函数 D)所有成员函数4. 可以被对象之外访问的成员是(B) A) 私有成员函数B) 公有成员函数C) 常量成员函数 D) 所有成员函数5. 类的实例化是指(A)A) 创建类对象 B) 定义类 C)调用类的成员 D)指明具体的类7. 类的构造函数是在什么时间被自动调用的?(B)A)类创建时 B)创建对象时 C)删除对象时 D)不自动调用8. 多重继承是( B )。A) 多个单一继承的叠加B) 导出类有多个直接基类C) 多个导出类有唯一的基类D) 每个导出类最多只有一个直接基类,但它可以有多个间接基类9、C+对C语言作了很多改进,下列描述中( D )使得C语言发生了质变,即从面向过程变成了面向对象。 A) 增加了一些新的运算符 B) 允许函数重载,并允许设置默认参数 C) 规定函数说明必须用原型 D) 引进了类和对象的概念10. 关于虚函数,正确的描述是( A )A) 构造函数不能是虚函数B) 析构函数不能是虚函数C) 虚函数可以是友元函数D) 虚函数可以是静态成员函数二、选择题:01、下列关于C+函数的叙述中,正确的是( C )。 A)每个函数至少要具有一个参数 B)每个函数都必须返回一个值 C)函数在被调用之前必须先声明 D)函数不能自己调用自己02、下列关于类和对象的叙述中,错误的是( A )。 A)一个类只能有一个对象 B)对象是类的具体实例 C)类是对某一类对象的抽象 D)类和对象的关系是一种数据类型与变量的关系03、在C+中,用于实现运行时多态性的是( D )。 A)内联函数 B)重载函数 C)模板函数 D)虚函数04、下列关于运算符重载的叙述中,正确的是( B )。 A)通过运算符重载,可以定义新的运算符 B)有的运算符只能作为成员函数重载 C)若重载运算符+,则相应的运算符函数名是+ D)重载二元运算符时,必须声明两个形参05、对于语句 coutxendl;错误的是描述是( D )。 A)“cout”是一个输出流对象 B)“endl”的作用是输出回车换行 C)“x”是一个变量 D)“”称作提取运算符06、有如下类声明,则类MyDERIVED中保护的数据成员和成员函数的个数是( B )。 class MyBASE private: int k; public: void set(int n) k=n; int get( )const return k; ; class MyDERIVED: protected MyBASE protected: int j; public: void set(int m, int n) MyBASE:set(m); j=n; int get( ) const return MyBASE:get( )+j; ;A)4 B)3 C)2 D)110、下面四个选项中,( A )是用来声明虚函数的。 A)virtual B)public C)include D)using namespace11、实现运行时的多态性要使用( D )。 A)重载函数 B)构造函数 C)析构函数 D)虚函数13、以下( C )成员函数表示纯虚函数。 A)virtual int vf(int); B)void vf(int)=0; C)virtual void vf()=0; D)virtual void vf(int)15、在表达式 x+y*z中, + 是作为成员函数重载的运算符,* 是作为非成员函数重载的运算符。则 operator+ 有 个参数,operator* 有 参数。(C ) A)2、2 B)2、1 C)1、2 D)1、116、应在下列程序划线处填入的正确语句是( C )。 class Base public: void fun()coutBase:funendl; ;class Derived:public Base void fun() /显示调用基类的函数fun() coutDerived:funfun();三、选择题:1、C+是( C )。 A. 面向对象的程序设计语言 B. 面向过程的程序设计语言 C. 既支持面向对象的程序设计又支持面向过程的程序设计的混合型语言 D. 非结构化的程序设计语言2、面向对象程序设计思想的主要特征中不包括( D )。A. 封装性 B. 多态性 C. 继承性 D. 功能分解,逐步求精4、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z=*);下面函数调用中,不合法的是( C )。A. testDefaulParam(5); B. testDefaulParam(5,8);C. testDefaulParam(5,#); D. testDefaulParam(0,0,*);5、下列语句中,将函数int sum(int x, int y)正确重载的是( C )。A. float sum(int x, int y); B. int sum(int a, int b);C. float sum(float x, float y); D. double sum(int y, int x);8、下列有关C+类的说法中,不正确的是( D )。A. 类是一种用户自定义的数据类型B. 只有类中的成员函数或类的友元函数才能存取类中的私有成员C. 在类中,如果不做特别说明,所有成员的访问权限均为私有的D. 在类中,如果不做特别说明,所有成员的访问权限均为公用的9、已知X类,则当程序执行到语句:X array3;时,调用了( D )次构造函数。A. 0 B. 1 C. 2 D. 310、下面说法中,正确的是( B )A. 一个类只能定义一个构造函数,但可以定义多个析构函数B. 一个类只能定义一个析构函数,但可以定义多个构造函数C. 构造函数与析构函数同名,只要名字前加了一个求反符号()D. 构造函数可以指定返回类型,而析构函数不能指定任何返回类型,即使是void类型也不可以12、下面描述中,表达错误的是( B ) A. 公用继承时基类中的public成员在派生类中仍是public的B. 公用继承时基类中的private成员在派生类中仍是private的C. 公用继承时基类中的protected成员在派生类中仍是protected的D. 私有继承时基类中的public成员在派生类中是private的13、设置虚基类的目的是( B )。A. 简化程序 B. 消除二义性 C. 提高运行效率 D. 减少目标代码16、下面关于友元的描述中,错误的是(D )。A. 友元函数可以访问该类的私有数据成员B. 一个类的友元类中的成员函数都是这个类的友元函数C. 友元可以提高程序的运行效率D. 类与类之间的友元关系可以继承19、下面对模板的声明,正确的是( C )。A. template B. templateC. template D. template20、下列的各类函数中,( C )不是类的成员函数A. 构造函数 B. 析构函数 C. 友元函数 D. 复制构造函数四、选择题:1、关于C+与C语言关系的描述中,( )是错误的。 AC语言是C+语言的一个子集 BC语言与C+语言是兼容的 CC+语言对C语言进行了一些改进 DC+语言和C语言都是面向对象的3、考虑下面的函数原型声明:void testDefaulParam(int a,int b=7,char z=*);下面函数调用中,不合法的是( )。AtestDefaulParam(5); BtestDefaulParam(5,8);CtestDefaulParam(5,#); DtestDefaulParam(0,0,*);5、下列有关C+类的说法中,不正确的是( )。A类是一种用户自定义的数据类型B只有类中的成员函数或类的友元函数才能存取类中的私有成员C在类中,如果不做特别说明,所有成员的访问权限均为私有的D在类中,如果不做特别说明,所有成员的访问权限均为公用的6、已知X类,则当程序执行到语句X array3;时,调用了( )次构造函数。A0 B1 C2 D37、有关析构函数的说法,不正确的是( )。A析构函数有且仅有一个B析构函数和构造函数一样可以有形参C析构函数的功能是在系统释放对象之前作一些内存清理工作D析构函数无任何函数类型11、可以在类外用p.a的形式访问派生类对象p的基类成员a,其中a是( )。A私有继承的公用成员 B公用继承的私有成员C公用继承的保护成员 D公用继承的公用成员13、设置虚基类的目的是( )。A简化程序 B消除二义性 C提高运行效率 D减少目标代码14、在C+中,用于实现动态多态性的是( )。A内联函数 B重载函数 C模板函数 D虚函数15、不能说明为虚函数的是( )。A析构函数 B构造函数 C类的成员函数 D以上都不对16、如果一个类至少有一个纯虚函数,那么就称该类为( )。A抽象类 B派生类 C纯基类 D以上都不对17、下面关于友元的描述中,错误的是( )。A友元函数可以访问该类的私有数据成员B一个类的友元类中的成员函数都是这个类的友元函数C友元可以提高程序的运行效率D类与类之间的友元关系可以继承18、下列运算符中,( )运算符在C+中不能被重载。A&

温馨提示

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

评论

0/150

提交评论