C++复习题有答案.doc_第1页
C++复习题有答案.doc_第2页
C++复习题有答案.doc_第3页
C++复习题有答案.doc_第4页
C++复习题有答案.doc_第5页
已阅读5页,还剩4页未读 继续免费阅读

下载本文档

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

文档简介

一、 分析下列程序的输出结果1.#include class m int a; public: m(int i=15) a=i; coutin mn; int geta() return a;void main() m r1,r2(18); coutoctr1.geta()endl; coutdecr2.geta()endl;int mint m1718 2. #include class a double x; public:a(double i) x=i; a operator +(a c) return a(x*c.x); double getx() return x;void main()a a(0); a=a(3)+a(4);couta.getx()+8endl;203.#include class p1 public:p1(int i) p1=i; virtual int fun() return p1; private:int p1;class p2:public p1 public:p2(int i,int j):p1(i),p2(j) int fun() return p2; private: int p2;void main()p1 *pf=new p1(10); p2 *pd=new p2(8,18); p1 &b=*pd; coutfun()endl;coutb.fun()endl;cout(*pd).fun()endl; delete pf; delete pd;1018184.#include class a tatic int n;int *a; public: a(int k) a=new intn; for(int j=0;jn;j+)aj=j+k; int geta(int i) return *(a+i); static int getn() return n; a() coutdn; delete a;void main() a x(6),y(9); for(int i=0;ia:getn();i+) coutx.geta(i)+y.geta(i)endl;int a:n=3;151719dd5.#include void main()int a=40;while(-a)if(a=20)break;if(a%2=0|a%3=0|a%5)continue;couta-1endl; 34246#include void main()int x(5);int & fun(int &);int y=fun(x)-;coutyendl;int w;int & fun(int &i)w=i*i;return w;257#include int y=3;int fun(int,int =2,int &c=y);void main()int a(2),b(3),c(4);int x=fun(a);int y=fun(a,b);int z=fun(a,b,c);coutx+y+zendl;int fun(int a,int b,int &c)a=b; b=c; c=a;couta+b+cendl;return a+b+c;7810258#include class ab public:ab(int i,int j):b(j) ab=i+2; coutabn; ab() coutabendl; friend int fun(ab &a); private:static int a;int ab;const int b;int fun(ab &a) return ab:a+a.b+a.ab; int ab:a(0);void main()ab a(2,3),b(4,5);coutfun(a),fun(b)endl;abab7,11649#include class m public:m(int i) a=i; void f1() coutamendl; m() coutmendl; protected:int a;class n:public m public:n(int i,int j,int k):m(i),aa(j) b=k; void f1()coutaendl;aa.f1();coutbnendl;n() coutnendl; private:m aa;int b;void fun(m a)a.f1();void main()m a1(15);n b1(13,15,17);a1.f1();b1.f1();fun(b1);15m1315m17n13mmmnmmm10.#include class r public: r() coutin rn; virtual void fun(int i) coutr:iendl; char *gun() return hellon;class t:public r public: void fun(int i) coutt:iendl; ;void f1(r &a) a.fun(88); couta.gun();void f2(r a) a.fun(99); couta.gun();void main() t b1,b2; f1(b1); f2(b2);in rin rt:88hellor:99hello二、 判断题(对者在题号前划 ,错者在题号前划)()1. 构造函数可以重载。2. 类的数据成员不一定都是私有的。3. 对象数组的元素应是同类的对象。4. 任意一种构造函数都具有转换类型功能。5. 在私有继承中,基类中只有公有成员对派生类是可见的。6. 引用可以作函数参数,不能作函数的返回值。7. 抽象类是不能创建对象的。8. 析构函数是不能被定义为虚函数的。9. c+语言既支持单继承,又支持多继承。10. put()函数只能从标准流对象cin中提取字符。11单继承中,一个派生类只有一个基类,而一个基类可以生成多个派生类。12派生类对基类成员的可访问性与派生类对象对基类成员的可访问性是相同的。13保护继承方式下,基类中公有成员和保护成员在派生类中都是保护成员。14在公有继承和保护继承方式下,基类中的公有成员在直接派生类和间接派生类中都是可访问的,而直接派生类和间接派生类的对象也可访问。15静态数据成员应该在构造函数的成员初始化列表中进行初始化。16友元函数是说明在类体内的成员函数,它的定义应在类体外。17用new创建的堆对象,在使用delete释放时必须是先创建的后释放,后创建的先释放。18在c+程序中,创建一个对象时系统自动调用构造函数进行初始化,如果一个类中没有定义构造函数,则无法创建对象。19友元类中的所有成员函数只能访问友元类所在类中的私有成员。20所有的成员函数都可以重载。三、 填空题 1 c+语言中,类的继承方式有三种,分别是_私有继承_、公有继承_、_保护继承_。2 定义静态成员使用_static_关键字,静态成员是属于_类_的。3 堆对象的创建使用_new_运算符,删除使用_delete_运算符。4 运算符重载的两种方式是_成员函数_ 和_友员函数_。5 含有_一个或多个纯虚函数_的类称为抽象类。四、 单选填空题1. 关于new运算符的下列描述中,_a_是错误的。a. 创建对象时必须指定初始值 b. 用它创建的对象应用delete来删除c. 可用它来创建动态对象 d. 创建对象时要调用构造函数2. 派生类的对它基类中_b_成员不可以访问。a. 公有继承的公有 b. 公有继承的私有c. 公有继承的保护 d. 私有继承的公有3. 关于派生类的下列描述中_a_是错误的。a. 派生类中继承基类成员的访问权限不变 b. 派生类至少有一个基类c. 派生类还可作另一个派生类的基类 d. 派生类中包含它基类中的成员4. 下列对重载函数的描述中_d_是正确的。a. 运算符重载可以改变结合性 b. 运算符重载可以改变优先级c. 运算符重载可以改变操作数的个数 d. 运算符重载不可以改变语法结构5. 在类体内说明虚函数使用的关键字是_a_。a. virtual b. friend c. inline d. static6. 下列关于构造函数的特征中,_d_是正确的。a. 不可以重载 b. 不可以设置缺省参数 c. 与类名不同 d. 不说明其类型7. 己知:类point中有一个成员函数说明如下 point & set(point a);下面对返回值的描述由_是正确的。a. 该函数无返回值 b. 该函数返回值是类point对象c. 该函数返回值是类point的对象的引用 d. 该函数返回值是指向类point的对象的地址8. 关于动态联编的下列描述中_a_是错误的。a. 动态联编是以公有继承为基础的b. 动态联编是在运行中确定所选函数

温馨提示

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

评论

0/150

提交评论