ImageVerifierCode 换一换
格式:DOC , 页数:18 ,大小:125.50KB ,
资源ID:3519867      下载积分:20 文钱
快捷下载
登录下载
邮箱/手机:
温馨提示:
快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。 如填写123,账号就是123,密码也是123。
特别说明:
请自助下载,系统不会自动发送文件的哦; 如果您已付费,想二次下载,请登录后访问:我的下载记录
支付方式: 支付宝    微信支付   
验证码:   换一换

加入VIP,省得不是一点点
 

温馨提示:由于个人手机设置不同,如果发现不能下载,请复制以下地址【https://www.wenke99.com/d-3519867.html】到电脑端继续下载(重复下载不扣费)。

已注册用户请登录:
账号:
密码:
验证码:   换一换
  忘记密码?
三方登录: QQ登录   微博登录 

下载须知

1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。
2: 试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。
3: 文件的所有权益归上传用户所有。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 本站仅提供交流平台,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

版权提示 | 免责声明

本文(C++综合练习题_蓝集明.doc)为本站会员(sk****8)主动上传,文客久久仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知文客久久(发送邮件至hr@wenke99.com或直接QQ联系客服),我们立即给予删除!

C++综合练习题_蓝集明.doc

1、判断题:110 分1. 面向对象的程序设计具有如下的几大基本特征,它们是抽象、 封装 、继承 、多态 。2. 抽象是指从众多的事物中抽取出共同的、本质性的特征,而舍弃其非本质的特征。3. 类的封装性是指数据(数据成员)与操作(成员函数)紧密结合,构成一个不可分割的整体(对象) ,并且以不同的访问控制方式(private ,protected,public )对这些成员作出限定。4. 由同一个类可以定义出不同的对象,不同对象的数据成员是不同的,所以各对象的数据成员在内存中占据不同的内存空间(静态数据成员例外,它存放在类的公用区;但同一个类的不同对象的成员函数的代码都是相同的,所以各对象的成员函数

2、只需要在内存中(类的公用区)存放一份代码,供大家共用。5. 同一个类的不同对象共用同一份成员函数的代码,是 C+为了节省内存而采用的对象存储方式,在逻辑上我们仍然应该将每一个对象看作是独立的、不同的个体,每个对象都有自己的数据成员和成员函数。6. 构造函数也是一种成员函数;构造函数的函数名必须和它所在类的类名相同;构造函数没有返回值,当然也就没有返回类型,即使是 void 类型也不允许使用;一个类可以有多个构造函数,即构造函数可以被重载;构造函数是在创建对象时被系统自动调用的,而不是通过“.”显示调用的,这也是和一般成员函数在使用上非常明显的区别。7. 析构函数也是一种成员函数;析构函数的函数

3、名必须使用它所在类的类名,且前面加上一个波浪号;析构函数没有返回值和返回类型,且没有任何参数;一个类只能有一个析构函数,即析构函数不能被重载;析构函数多数情况是在对象生存期结束时由系统自动调用的,少数情况下也可以在用户代码中通过“.”显示调用。8. 一个类的友元函数并不是该类的成员,所以不能通过该类的对象来访问,也不能被该类的子类所继承。9. 对于从父类继承来的成员,它们在派生类中的访问控制方式要由父类成员的访问控制方式和派生类定义时的访问说明来共同决定。10. 在公有派生的情况下,基类成员在派生类中的访问权限保持不变。11. 在 C+中,函数的参数有两种传递方式,一种是值传递方式,另一种是指

4、针(地址)或 引用 传递方式。12. 当一个成员函数被调用时,该成员函数的 this 指针指向调用它的对象。13. 异常处理是指程序设计语言提供的一种用于管理程序运行期间出现异常的机制。异常处理可以提高程序的健壮性。C+语言将程序中的异常处理设计为两个过程:异常的检测和异常的处理。14. 异常检测部分在检测到某个异常后可以使用 throw 语句抛出该异常。异常被抛出以后,需要有相关的异常处理代码对其进行捕获和处理,如果程序代码中没有给出相应的异常处理代码,系统将自动调用标准库函数 terminate,terminate 默认调用标准库函数abort,导致程序终止。15. 动态联编要满足两个条件

5、,一个是被调用的成员函数必须是虚函数,另一个是必须用指针或引用调用该虚函数。16. 从系统实现角度来看,多态性包括静态多态性(编译时多态性)和动态多态性(运行时多态性)两大类。17. 静态多态性是指通过函数重载和类属机制来实现的。在程序编译时系统就能确定调用哪个函数,因此静态函数又称编译时的多态性。例如:函数重载和运算符重载就属于这种情况。18. 动态多态性是指通过虚函数、继承机制,以及动态绑定机制来实现的。在程序运行过程中才动态地确定操作指针所指的对象,主要通过虚函数和重写来实现。19. 引用在创建的同时必须进行初始化,即引用到一个有效的对象;而指针在定义的时候不必立即初始化,可以在定义之后

6、的任何地方给它赋值。引用一旦被初始化为指向一个对象以后,它就不能被改变为另一个对象的引用;而指针在任何时候都可以被改变为指向另一个对象。不存在指向空值的引用,但是存在指向空值的指针。20. 在 C+中有一种不能定义对象的类,它只能被继承,这种类称为抽象类,抽象类在定义时至少要有一个纯虚函数。21. 在 C+类中,const 关键字可以修饰对象和成员函数,const 对象不能被修改,const 成员函数不能修改其所在类中的数据成员。22. 没有定义在类中的函数,都称为全局函数。23. 定义在类中的函数,称为成员函数,其作用域在该类的内部,它可以访问该类中的所有成员(包括公有的、保护的、私有的所有

7、数据成员和成员函数) 。24. 如果要把一个函数 fun(可以是全局函数或类的成员函数)定义为类 A 的一个友元函数,则需要在类 A 中用保留字 friend 来说明,但该友元函数 fun 并不是类 A 的成员,所以对 fun 的定义自然应该在类 A 的外面。函数 fun 被定义为类 A 的友元函数以后,fun 就可以像是类 A 的成员函数那样访问类 A 的成员了。25. 运行时多态性的基础是共有派生类对基类类型的兼容性,即指向基类对象的指针可以指向该基类的公有派生类对象,类似地,基类对象的引用也可以关联到该基类的公有派生类对象。找错题:1、以下程序中哪些语句是错误的?请用双斜线将它们注解掉。

8、#include “iostream.h“void main()const int a1=7; int const a2=8; int c1=9;int c2=10;const int *d1= const int *d2= int const* e1= int const* e2= e2=e1;/ *e2=33;int * const f1= int * const f2= / int * const f3= / f2=f1;*f2=33;const int * const g1 =const int * const g2 =/ g2=g1;/ *g2=33;*f1=*g1;cout#inc

9、lude class stud / 定义基类 private: / 基类私有成员int num; char name30; char sex;protected: / 基类保护成员char major15;public: / 基类公有成员stud( int n, char nam, char s, char maj ) num=n; strcpy( name, nam); sex=s; strcpy(major, maj);void display( ) cout= C): D)/13. 以下关于基类指针和派生类指针的叙述中不正确的是()A) 基类指针可以指向它的公有派生类的对象B) 基类指针

10、可以指向它的多次派生后的派生类的对象C) 派生类的指针不能指向基类的对象D) 基类指针可以指向它的所有派生类的对象,并通过该基类指针可以访问到派生类对象的所有成员。14. 以下关于友元函数的叙述中,正确的是(B)A) 友元函数不能访问类的私有成员B) 友元函数破坏了类的封装性和隐藏性C) 友元函数的使用与类的成员函数相同D) 友元函数的实现必须在类的说明中定义15. 多态性指的是(C )A.以任何方式调用一个虚函数B.以任何方式调用一个纯虚函数C.借助于指向对象的基类指针或引用调用一个虚函数D.借助于指向对象的基类指针或引用调用一个纯虚函数16. 当使用 ifstream 流类定义一个流对象并

11、打开一个磁盘文件时,文件的隐含打开方式为( A )。A:ios:in B:ios:out C:ios:in | ios:out D:ios:binary17. 语句 ofstream f(SALARY.DAT,ios:app|ios:binary);的功能是建立流对象 f,试图打开文件 SALARY.DAT 并与之连接,并且( A )A.若文件存在,将文件写指针定位于文件尾 ;若文件不存在,建立一个新文件B.若文件存在,将其置为空文件; 若文件不存在,找开失败C.若文件存在,将文件写指针定位于文件首; 若文件不存在,建立一个新文件D.若文件存在,找开失败 ;若文件不存在,建立一个新文件18.

12、在结构体中定义的成员,若不做明确指明,其隐含访问权限为_C _。A. private B. protected C. public D. static19. 下列说法正确的是(B) 。A) 内联函数在运行时是将该函数的目标代码插入每个调用该函数的地方B)内联函数在编译时是将该函数的月标代码插入每个调用该函数的地方C)类的内联函数必须在类体内定义D) 类的内联函数必须在类体外通过加关键字 inline 定义20. 下面对静态数据成员的描述中,正确的是(D ) 。A) 静态数据成员可以在类体内进行初始化B)静态数据成员不可以被类的对象调用C)静态数据成员不能受 private 控制符的作用D)静态

13、数据成员可以直接用类名调用21. 在公有派生情况下,有关派生类对象和基类对象的关系,下列叙述不正确的是(C) 。A) 派生类的对象可以赋给基类的对象 B)派生类的对象可以初始化基类的引用C)派生类的对象可以直接访问基类中的成员 D) 派生类的对象的地址可以赋给指向基类的指针22. 下面程序的运行结果为(C) 。#includeclass Apublic:A()coutclass Aint a;public:A()a=0;A(int as)a=as;coutconst double PI=3.1415;class Shapepublic:Shape(double i) r=i; virtual

14、void Area()=0;virtual void Perimeter()=0;protected:double r;class Circle:public Shapepublic:Circle(double i):Shape(i) void Area() coutArea();ps-Perimeter();delete ps;ps=new In_Square(8);ps-Area();ps-Perimeter(); delete ps;ps=new Ex_Square(8);ps-Area();ps-Perimeter();delete ps;2. 以下程序的功能是:求解一元二次方程的根,

15、其中实现了一个 Complex 复数类和一个Real 实数类,Real 类定义为 Complex 类的子类;另外还实现了一个 Root 类,完成求解一元二次实系数方程的根。请完成程序。#include #include #include class Complexpublic:Complex(double r=0,double i=0)re=r;im=i;virtual void Print();protected:double re,im;private:;class Real:public Complexpublic:Real(double r=0):Complex(r,0)void Print()coutre;protected:private:;class Rootpublic:Root(double m1,double m2,double m3)a=m1;b=m2;c=m3;void Print();void Solve();protected:double a,b,c;private:;void Complex:Print()cout“(“re“,“im“i)“;void Root:Print()cout“方程“;couta;

Copyright © 2018-2021 Wenke99.com All rights reserved

工信部备案号浙ICP备20026746号-2  

公安局备案号:浙公网安备33038302330469号

本站为C2C交文档易平台,即用户上传的文档直接卖给下载用户,本站只是网络服务中间平台,所有原创文档下载所得归上传人所有,若您发现上传作品侵犯了您的权利,请立刻联系网站客服并提供证据,平台将在3个工作日内予以改正。