C++复习题有答案.doc

上传人:土8路 文档编号:10094427 上传时间:2021-04-18 格式:DOC 页数:9 大小:30.50KB
返回 下载 相关 举报
C++复习题有答案.doc_第1页
第1页 / 共9页
C++复习题有答案.doc_第2页
第2页 / 共9页
C++复习题有答案.doc_第3页
第3页 / 共9页
C++复习题有答案.doc_第4页
第4页 / 共9页
C++复习题有答案.doc_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《C++复习题有答案.doc》由会员分享,可在线阅读,更多相关《C++复习题有答案.doc(9页珍藏版)》请在三一文库上搜索。

1、一、 分析下列程序的输出结果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

2、()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;cou

3、tb.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)+

4、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()

5、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

6、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()

7、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

8、&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、虚函数的。9. C+语言既支持单继承,又支持多继承。10. put()函数只能从标准流对象cin中提取字符。11单继承中,一个派生类只有一个基类,而一个基类可以生成多个派生类。12派生类对基类成员的可访问性与派生类对象对基类成员的可访问性是相同的。13保护继承方式下,基类中公有成员和保护成员在派生类中都是保护成员。14在公有继承和保护继承方式下,基类中的公有成员在直接派生类和间接派生类中都是可访问的,而直接派生类和间接派生类的对象也可访问。15静态数据成员应该在构造函数的成员初始化列表中进行初始化。16友元函数是说明在类体内的成员函数,它的定义应在类体外。17用new创建的堆对象,在使用del

10、ete释放时必须是先创建的后释放,后创建的先释放。18在C+程序中,创建一个对象时系统自动调用构造函数进行初始化,如果一个类中没有定义构造函数,则无法创建对象。19友元类中的所有成员函数只能访问友元类所在类中的私有成员。20所有的成员函数都可以重载。三、 填空题 1 C+语言中,类的继承方式有三种,分别是_私有继承_、公有继承_、_保护继承_。2 定义静态成员使用_static_关键字,静态成员是属于_类_的。3 堆对象的创建使用_new_运算符,删除使用_delete_运算符。4 运算符重载的两种方式是_成员函数_ 和_友员函数_。5 含有_一个或多个纯虚函数_的类称为抽象类。四、 单选填空

11、题1. 关于new运算符的下列描述中,_A_是错误的。A. 创建对象时必须指定初始值 B. 用它创建的对象应用delete来删除C. 可用它来创建动态对象 D. 创建对象时要调用构造函数2. 派生类的对它基类中_B_成员不可以访问。A. 公有继承的公有 B. 公有继承的私有C. 公有继承的保护 D. 私有继承的公有3. 关于派生类的下列描述中_A_是错误的。A. 派生类中继承基类成员的访问权限不变 B. 派生类至少有一个基类C. 派生类还可作另一个派生类的基类 D. 派生类中包含它基类中的成员4. 下列对重载函数的描述中_D_是正确的。A. 运算符重载可以改变结合性 B. 运算符重载可以改变优

12、先级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. 动态联编是在运行中确定所选函数代码的C. 动态联编是在编译时确定所选函数代码的D. 动态联编要有虚函数9. 下列输出字符串”MN”的方法中,_C_是正确的。A. coutput(“MN”); B. cout”MN”;C. cout.put(“MN”); D. coutwrite(“MN”);10. 下列打开磁盘文件的访问方式常量中,_B_是以读方式打开文件的。A. out B. in C. ate D. app

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 社会民生


经营许可证编号:宁ICP备18001539号-1