学生c++复习题

上传人:20****03 文档编号:152673239 上传时间:2020-11-24 格式:DOC 页数:16 大小:57.50KB
返回 下载 相关 举报
学生c++复习题_第1页
第1页 / 共16页
学生c++复习题_第2页
第2页 / 共16页
学生c++复习题_第3页
第3页 / 共16页
学生c++复习题_第4页
第4页 / 共16页
学生c++复习题_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《学生c++复习题》由会员分享,可在线阅读,更多相关《学生c++复习题(16页珍藏版)》请在金锄头文库上搜索。

1、一、 简述1类与对象的关系 答:对象是类的实例,类是对象的抽象。2面向对象程序设计的主要特征答:抽象性、封装性、继承性、多态性。3为什么函数重载和运算符重载属于静态多态性答:因为函数重载和运算符重载在编译的时候就确定了它对应的类。4派生类的成员函数在什么情况下采用覆盖答:如果派生类的函数与基类函数在函数名,参数类型和个数都相同时,则派生类的成员函数就会覆盖基类的成员函数。5什么是多态性答:多态性是指具有不同功能的函数可以用同一个函数名,用一个函数名可以调用不同内容的函数。6友元函数的作用答:声明函数为一个类的友元函数,则该友元函数可以访问这个类的私有成员。7复制构造函数需要用户自己设计吗?在什

2、么情况下要调用复制构造函数答:不需要自己设计,当通过复制一个对象而建立一个新的对象的时候系统会自动调用复制构造函数,把每个数据成员对应的复制过去。8基类与派生类对象之间的赋值兼容关系,具体表现在哪些方面答:(1)派生类对象可以向基类对象赋值;(2)派生类对象可以代替基类对象向基类对象的引用进行赋值或者初始化。(3)如果函数的参数是基类对象或基类对象的引用,相应的实参可以用子类对象。(4)指向基类对象的指针也可以指向派生类对象。9c+提供虚函数是要解决什么问题答:在类的继承中,不同层次中有可能有同名函数,但其功能不同。调用的时候要声明其作用域,比较麻烦。虚函数就是允许在派生类中重新定义与基类同名

3、的函数并且可以通过基类指针或引用来访问基类和派生类中的同名函数。10c+提供虚基类解决什么问题答:当一个派生类有多个直接基类,而这些基类又有一个共同的基类时,最终的派生类中会保留该间接共同基类的多份同名成员,不仅占用了大量储存空间,还增加了访问这些成员时的困难,容易出错。虚基类就使得在继承间接共同基类时只保留一份成员。二、 判断题1声明为公有的数据成员可以被派生类和外部程序访问。2构造函数的调用顺序和析构函数的调用顺序相同。3派生类的数据成员所占的内存空间为基类的保护和公有数据成员和派生类数据成员所占的内存空间之和。4在创建对象时,系统自动地隐式调用析构函数撤销对象所占得内存空间。5继承能传递

4、。6重载是面向对象程序设计多态性的一种形式。7父类公有数据成员被派生类继承后,派生类的成员函数可见该公有数据成员。8静态数据成员必须在类外初始化,而且能被所有成员函数访问。9类存在嵌套时,构造函数的构造顺序是:先内层类,后外层类。10虚函数采用动态联编。11. 在C+中这样来声明一个类:class cla private: int x; cla( ); public:cla( int a); cla( ); ; 构造函数可以作为私有成员。12. 在C+中这样来声明一个类:class cla private: int x=10; public:cla( ); cla( int a); cla(

5、); ;类是抽象的,无实值。三、 单项选择1、下面有关类与对象的说法中不正确的是( C )A)对象是类的实例 B)任何一个对象只能属于一个具体的类C)一个类只能有一个对象D)类与对象得关系和数据类型与变量得关系类似;2.下列关于虚函数的描述中,正确的是(A )A)重定义函数使用virtual,则该重定义函数仍然是虚函数; 当一个成员函数被声明为虚函数后,其派生类中的同名函数都自动成为虚函数。B)虚函数不得声明为静态函数 虚函数是非静态的、非内联的成员函数,而不能是友元函数, 但虚函数可以在另一个类中被声明为友元函数。一个虚函数无论被公有继承多少次, 它仍然保持其虚函数的特性 C)派生类中必须重

6、新定义基类的虚函数;有修改必要,将其声明为虚函数D)虚函数不得声明为另一个类的友元函数3、 下面关于成员函数描述中,错误的是( A )A)成员函数一定是内联函数可以设置为内联,也可以不设置。 B)成员函数可以重载C)成员函数参数可以设定默认值 D)成员函数可以是静态的4、下面关于派生类描述中,错误的是( D )A) 一个派生类可以作为另一个派生类的基类 B) 派生类至少有一个基类C) 派生类的成员除了它自己的成员外,还包含它的基类成员D) 派生类中继承的基类成员的访问权限在派生类中保持不变 派生方式:Private protected public5、下面描述中,正确的是( A )A) vir

7、tual可以用来声明虚函数 B) 含有纯虚函数的类是不能创建对象的,因为它是虚基类C) 即使基类的构造函数没有参数,派生类也必须建立构造函数 D) 静态数据成员可以在定义时初始化只能在类外初始化 静态成员函数没有this指针,6、对于const成员函数下面描述中,正确的是( C )A)const成员函数只能修改const数据成员 B)const成员函数只能修改一般数据成员C)const成员函数不能修改任何数据成员D)const成员函数只能通过const对象调用只有普通成员函数能对普通数据成员修改和改变值。7、下列虚基类的声明中,正确的是( D )A)class virtual B:public

8、 A B)virtual class B:public AC)class B:public A virtual D)class B: virtual public A8、下面描述中,正确的是( D )A) 当通过引用传递参数时,函数创建一个变量以存储参数的值B) 当通过引用传递参数时,函数无法访问参数的值 C) 当通过引用传递参数时,调用程序创建一个临时变量以容纳参数的值D) 当通过引用传递参数时,函数访问调用程序中参数的原始值9、关于静态数据成员,下列描述正确的是( D )A) 静态数据成员可以在类体内进行初始化B) 静态数据成员不可以通过类的对象调用C) 静态数据成员不能接受private

9、控制符作用E) 静态数据成员可以直接通过类名/对象名调用,只能在类外初始化.10、对于const数据成员下面描述中,错误的是( C )A) const数据成员必须初始化,并且不能更新 B) const数据成员称为常数据成员C) 可以在类体外定义const数据成员 D) const数据成员的初始化只能通过构造函数的初始化列表进行11、编写c+程序一般需要哪些步骤( B )A 编辑、调试、连接、运行B 编辑、编译(翻译为机器可识别的语言)、连接、运行C 编译、调试、编辑、连接D 编辑、调试、编译、运行12、决定C+语言中函数的返回值类型的是( D )A return语句中表达式的类型B 调用该函数

10、时系统随机产生的类型C 调用该函数时的主调函数的类型D 在定义该函数时所指定的数据类型13、下面叙述不正确的是( D )A 派生类一般都用公用派生B 对基类成员的访问必须是无二义性的C 复制兼容规则也适用于多重继承的组合D 基类的公用成员在派生类中仍然是公用的14、据封装就是将一组数据和与这组数据有关的操作组装在一起而形成的实体,称为( A )A 类 B 对象C 函数 D 数据库15、在公用派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定是基类中的( A )A 私有成员 B 公用成员C 保护成员 D 私有成员或保护成员16、对基类和派生类的关系描述中,错误的是( B )A 派生

11、类是基类的具体化B 基类继承了派生类的属性C 派生类是基类定义的延续D 基类是派生类的抽象17、关于this指针使用说法正确的是( A )A 保证每个对象成员函数能够处理各自的数据B 保证基类的私有成员在子类中可以被访问C 保证基类的保护成员在子类中可以被访问D 保证基类的公用成员在子类中可以被访问18、所谓多态性是指( B )A 不同的对象调用不同名称的函数B 不同的对象调用相同名称的函数C 一个对象调用不同名称的函数D 一个对象调用不同名称的对象19、一个函数功能不太复杂,但频繁被调用,则应把它定义为( C )A 重载函数B 递归函数C 内联/置/嵌函数 inlineD 嵌套函数20、地址

12、作为实参传递给形参,下面说法正确的是( D )A 实参是形参的备份B 实参与形参无关C 形参是实参的备份D 实参与形参是同一对象22、C+设置虚基类的目的是( C )A 提高运行效率B 实现代码重用C 消除二义性D 简化程序 23、指出下列各类函数中,不是类的成员函数(C )A 构造函数B 析构函数C 友元函数:可以是非成员函数或另一类的成员函数D 拷贝构造函数24、在公用继承的情况下,基类的成员(私有的除外)在派生类中的访问权限(B )A 受限制B 保持不变C 受保护D 不受保护25、关于友元非成员函数的继承性错误的描述是(D )A 友元函数可以直接访问该类的私有成员B 友元类中的所有成员函

13、数都是这个类的友元函数C 通过友元可以提高程序的运行效率,但却破坏了封装性D 派生类可以被继承基类中的友元关系26、C+设置虚函数的目的是(D )A 实现代码重用B 实现静态联编C 消除二义性虚基类D 实现动态联编27、假定要对类AB定义+运算符重载成员函数,实现两个AB类对象的加法,并返回AB对象,则该成员函数的声明语句为(C )A AB operator+(AB &a,AB &b);B AB & operator+(AB a);C AB operator+(AB &a);eg:Complex operrator +(Complex &c2)D AB * operator+(AB b);28

14、、在类定义的外部,可以访问的成员是(C )A 所有类成员B private的类成员C public的类成员D private或public的类成员29、在C+中,类与类之间的继承关系具有(A )A 传递性 B 自反性 C 对称性 D 反对成性30、关于构造函数的描述中,错误的是(D )A 没有返回值B 其名与类名完全相同C 在创建对象时系统自动调用它D 在没有定义构造函数的情况下,系统不会调用它31、通常拷贝构造函数的参数是(B )A 对象名 B 对象的引用名 C 对象的成员名 D 对象的指针名32、下面的描述中,正确的是(D )A 所有运算符都可以重载 不可以重载的运算符eg: 成员访问运算符.成员指针访问运算符. 域运算符: 长度sizeof 条件?:B 基类类型的指针可以指向子类,子类类型的指针也可以指向其基类C 可以在构造函数中对静态数据成员初始化D 动态

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 办公文档 > 教学/培训

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号