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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C++练习题.docx

1、C+练习题C+自测练习1. 参考教材312请问以下程序为什么只输出了一组:,而没有输出两组?#include#includeclass Apublic: A()coutCAendl; A()coutDAendl;private: int x;int main() A *pa = (A *)malloc(sizeof(A); free(pa); pa = NULL; A *pb = new A; delete pb;2. 参考教材314、315页。请问以下程序调用的是哪个构造函数,程序输出什么?#includeclass Apublic: A()coutCA0endl; A(int i)cout

2、CA1endl; A()coutDAendl;private: int x;int main() A *pb = new A(9); delete pb;3. 参考教材314、315页。请问以下程序输出什么?delete pb是否可以写成这样:delete pb#includeclass Apublic: A()coutCA0endl; A(int i)coutCA1endl; A()coutDAendl;private: int x;int main() A *pb = new A10; delete pb;4. 参考教材316、317页。请问以下程序输出什么?当程序执行到A b(a)时输出

3、什么?当程序执行到f1(a)时输出什么?当程序执行到f2(a)时输出什么?#includeclass Apublic: A()x=0; coutCA0endl; A(int i)x=i; coutCA1endl; A(A &r)x=r.x; coutCA2endl; A()coutDAendl;private: int x;void f1(A m)void f2(A &m)int main() A a; A b(a); f1(a); f2(a);5. 参考教材320、321图14-2,322图14-3 ,浅拷贝和深拷贝的概念。请问下面哪个程序段使用的是深拷贝,哪个是浅拷贝?程序1还是程序2,C

4、+提供的默认拷贝构造函数是深拷贝还是浅拷贝?/程序1#include#includeclass Apublic: A(char *s)p=new charstrlen(s)+1;strcpy(p,s); A(A &r)p=r.p;private: char *p;int main() A a(nihao); A b(a);/程序2#include#includeclass Apublic: A(char *s)p=new charstrlen(s)+1;strcpy(p,s); A(A &r)p=new charstrlen(r.p)+1;strcpy(p,r.p);private: char

5、 *p;int main() A a(nihao); A b(a);6. 继承的工作方式,参考教材350、352图16-2。参考课件继承与派生22-25页。完成以下代码。要求:(1)处继承方式为共有继承,(2)处填写基类的ai,(3)处填写派生类的bi,(4)对象b的数据成员有哪些?#include#includeclass Apublic: A()ai=1;protected: int ai;class B: _(1)_ Apublic: B()bi=2; void display()cout_(2)_ _(3)_endl;private: int bi;int main() B b; b.

6、display();7. #include#includeclass Apublic: A()coutCAendl;int main()#include#includeclass Apublic: A()coutCAendl;A me;int main()为何左侧程序有输出,而右侧程序没有输出?8. 派生类的构造,参考教材352页、353。派生类的构造总是由基类的初始化开始的。填写代码,完成基类的初始化。并且要求屏幕输出效果是:#includeclass Apublic: A(int i)x=i; coutCA:xendl; A()coutDAendl;private: int x;class

7、 B:public Apublic: B():_(1)_y=0;coutCBendl; B()coutDBendl;private: int y;int main() B b;9. 参考教材353。填写初始化列表,完成以下程序,使得屏幕输出:#includeclass Apublic: A(int i)x=i; coutxendl;private: int x;class Dpublic: D(int i)m=i;coutmendl;private: int m;class B:public Apublic: B():_(1)_y=0;private: int y; D d;int main(

8、) B b;10. 以下代码有什么错误,如何解决这个错误。#includeclass Apublic: A(int i)x=i; coutxendl;private: int x;class Bpublic: B()private: A a(12); const int y=13;int main() B b;11. 参考教材352页、图16-2。请问以下程序输出什么?#includeclass Apublic: A(int i)x=i; int x;class B:public Apublic: B(int i):A(i+1)y=i; int y;int main() B b(3); A &

9、ra = b; A *pa = &b; coutra.xendl; coutxendl;12. 参考教材352页、图16-2。请问以下程序输出什么? #includeclass Apublic: A(int i)x=i; int x;class B:public Apublic: B(int i):A(i+1)y=i; int y;void f1(A & ra) coutra.xendl;void f2(A * pa) coutxendl;int main() B b(3); f1(b); f2(&b);13. 参考教材352页、图16-2。请问以下程序输出什么?#includeclass A

10、public: A(int i)x=i; int x;class B:public Apublic: B(int i):A(i)y=i; int y;class C:public Apublic: C(int i):A(i)m=i;n=i;j=i;k=i; int m,n,j,k;int main() A * pa10; int i=0; for(i=0;i3;+i) pai = new B(1); for(i=3;i10;+i) pai = new C(2); for(i=0;i10;+i) coutx ;14. 请问以下程序输出什么?#includeclass Apublic: void

11、display()coutAendl;class B:public Apublic: void display()coutBdisplay(); pa-display();15. 请问以下程序输出什么?#includeclass Apublic: void display()coutAendl;class B:public Apublic: void display()coutBendl;void f(A &r) r.display();int main() B b; f(b); A a; f(a);16. 多态性,虚函数,参考教材358.多态性分为两种:一种是编译时的多态性,另一种是运行时的

12、多态性。编译时的多态性是通过函数的重载来实现的,函数的重载是根据函数调用时给出的不同类型的实参或不同的实参个数,在程序执行前就可以确定应该调用哪一个函数。运行时的多态性是指在执行之前,根据函数名和参数无法确定应该调用哪一个函数,必须在程序的执行过程中,根据具体的执行情况来动态地确定。这种多态性是通过类的继承关系和虚函数来实现的。实现运行时的多态性,必须使用基类类型的指针变量,使该指针指向不同派生类的对象,并通过调用指针所指向的虚函数才能实现运行的多态性。虚函数与一般的成员函数相比较,调用时的执行速度要慢一些。请问以下程序输出什么?#includeclass Apublic: virtual v

13、oid display()coutAendl;class B:public Apublic: virtual void display()coutBendl;void f(A &r) r.display();int main() B b; f(b); A a; f(a);17. 请问以下程序输出什么?#includeclass Apublic: virtual void display()coutAendl;class B:public Apublic: virtual void display()coutBendl;class C:public Apublic: virtual void d

14、isplay()coutCendl;int main() A a,aa; B b; C c,cc,ccc; A *pa6=&a,&aa,&b,&c,&cc,&ccc; int i=0; for(i=0;idisplay();18. 以下程序的屏幕输出是:。为何以下程序的屏幕输出中会输出DA呢?请说明。#includeclass Apublic: A()coutDA ;class B:public Apublic: B()coutDB ;int main() B b;19. 请问以下程序输出什么?为何没有输出DB?#includeclass Apublic: A()coutDA ;class B

15、:public Apublic: B()coutDB ;int main() A *pa; pa = new A; delete pa; pa = new B; delete pa;20. 请问以下程序输出什么?是在编译时就确定了调用哪个析构函数,还是在运行时才确定了调用哪个析构函数?#includeclass Apublic: virtual A()coutDA ;class B:public Apublic: virtual B()coutDB ;int main() A *pa; pa = new B; delete pa;21. 以下程序的屏幕输出是:请解释为何第一行输出:请解释为何第

16、二行输出:请解释为何第三行输出:请解释为何第四行输出:#includeclass Apublic: A()coutCA ; virtual A()coutDA ; virtual void display()coutdisplayA ; void print()coutprintA ;class B:public Apublic: B()coutCB ; virtual B()coutDB ; virtual void display()coutdisplayB ; void print()coutprintB ;class C:public Apublic: C()coutCC ; virtual C()coutDC ; virtual void display()coutdisplayC ; void print()coutprintC ;int main() int i; A *pa6; for(i=0;i3;+i) pai = new A; for(i=3;i4;+i) pai = new B; for(i=4;i6;+i) pai = new C; coutendl; for(i=0;idisplay(); coutendl; for(i=0;iprint(); coutendl; for(i=0;i6;+i) delete pai; coutendl;

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1