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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

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

C++程序设计练习题与答案1文档格式.docx

1、由于抽象类的特殊性,我们可以说明抽象类的( ),但不能说明抽象类的( )。29. 说明函数类型为“ double”、函数名为“ virfun ”且无参数的纯虚函数的表达形式为 ( )。30. 说明静态成员要使用关键字 ( )。31. 当函数调用在前定义在后时,必须先对函数进行 ( )说明。32. 类名为“ ClassN”的类的拷贝构造函数的函数原型说明为 ( )。33. 抽象类是包含( )的类,必须注意:不能说明抽象类的 ( ),但可说明抽象类的( )。34. 流插入运算符 只能重载为友元函数,重载流插入运算符 的函数名为( )。35 .要防止在该成员函数中改变数据成员的值,就要在类的成员函数

2、名之后、函数体之前加上关键字( )。36.类和对象的关系可表述为:类是对象的 ( ),而对象则是类的( )。37在C+中,三种继承方式的说明符号为 ( )、( )和( ),如果不加说明,则默认的继承方式为( )。38 如果只想保留公共基类的一个复制,就必须使用关键字 ( )把这个公共基类声明为虚基类。39. 若要把void myfun()定义为类A的友元函数,则应在类 A的声明中加入语句( )。40. 类的静态成员分为( )和( )。41 运算符重载要求保持其原来的操作数个数、42. 通过关键字( )可以声明模板,通过关键字43. 请列出C+中两种用户自定义的数据类型:44. 构造函数的作用是

3、( )。45. 后置自增运算符“ + ”重载为类的成员函数( )、( )和语法结构。( )指定函数模板的类型参数。( )、( )。(设类名为ClassName)的形式为( )。二、单选题1.继承机制的作用是()A)信息隐藏B)数据封装C)定义新类D)数据抽象2 .类的析构函数的作用H. 是()A) 一般成员函数类的初始化C)对象的初始化D)删除对象创建的所有对象3 .类的析构函数是在()调用的。A)类创建时创建对象时C)删除对象时D)不自动调用4 .在()情况下适宜采用inline定义内联函数。A)函数体含有循环语句C)函数代码少、频繁调用5 .如果类A被说明成类B的友元,则(A) obj.o

4、perator - ( ) B) operator - (obj) C) obj:operator - ( ) D) obj:operator -()12. 以下有四种关于类的说法,其中不正确的是 ()。A)构造函数可以指定参数,但不能指定函数类型 B) 一个类可以有多个构造函数C)析构函数不可以指定参数,但可以指定函数类型 D) 一个类只能有一个析构函数13. 面向对象程序设计讲求封装性,在 C+中封装是借助于()实现的。A)结构 B)数组 C)类 D)函数14. 下面有四种关于类的说法,其中不正确的是 ()。A) 一个类可以有多个构造函数 B)析构函数不可以指定函数类型,但可以指定函数参数

5、C) 一个类只能有一个析构函数 D)在一个类中可以说明其它类的对象15. 下列有关基类的叙述中不正确的是 (),前提为公有派生”。A)基类的公有成员在派生类中仍然是公有的 B)基类的保护成员在派生类中仍然是保护的C)基类的私有成员在派生类中仍然是私有的 D)基类的私有成员在派生类中是不可访问的16以下有四种关于友元的描述,其中错误的是 ()。A)类A的友元类B的成员函数都是类 A的友元函数 B)友元函数可以访问该类的私有数据成员 C)类与类之间的友元关系可以继承 D)友元可以提高程序的运行效率17. C+的封装性是借助于()实现的。A)函数 B)数组 C)结构 D)类18要将-重载为类Clas

6、sN的后置友元运算符,那么,要在类中添加的原型说明为 ()。A) frie nd ClassN operator - (ClassN & in t); B) frie nd ClassN operator - (ClassN &)D)当基类的指针指向派生类对象时,通过该指针可以直接访问派生类中的成员 20以下关于继承成员的访问属性的叙述中,不正确的是 ()。A)基类的保护成员在私有派生类中是私有的 B)对基类成员的访问必须没有二义性C)基类的保护成员在保护派生类中是保护的 D)基类的保护成员在派生类中是保护的三、程序改错题(改正下列类中的错误)1 .class ClassNprivate:in

7、t nm ember; ClassN pmember;public:ClassN(); int ClassN(i nt x);2.void mai n()char c = new char 20; delete c;3.class MyClass int n=1;MyClass pO;MyClass(i nt a = 0); void MyClass(int a);#i nclude using n amespace std; void mai n()int & par = new in t 6; delete par;cout 主函数 End! endl;5.using n amespace

8、 std;long & par = new long 9;delete par;cout Endl;6.CLass CNlong n; CN pobj;CN(); void CN(i nt X);四、分析程序输出题1.class AA() coutc on struct ing A e ndl; A() coutdestructi ng A class B: public AB() coutco nstructi ng B B() coutdestructi ng B class C : public BC() coutco nstructi ng C C() coutdestructi ng

9、 C ; C c1;void fun(int & a, i nt &b)int p; p=a; a=b; b=p;void excha nge(i nt &a,i nt &b,i nt &c)if(ab) fun( a,b);c) fun (a,c);if(bc) fun (b,c);int a=12,b=89,c=56;excha nge(a,b,c); couta=a,b=b,c=cclass TC int num;TC();int TEST() return num;TC();TC:TC() num=0;TC() coutDestructor is activeTC tarr5;cout

10、Exiting mainendl;4.class CBase int n; CBase(i nt m = 0) n = m;virtual void print( ) cout In side CBase n en dl;class CDrive: public CBase CDrive( ) n = 0;CDrive(i nt a, i nt b) : CBase (a) , n(b) void print( ) cout pri nt();b2;dd; pb-CBase:class CTestlong num;CTest();CTest();CTest:CTest( ) num = 0;C

11、Test( ) cout 调用析构函数CTest cobj;退出主函数class CN CN(i nt i) n=i;operator in t() return n;CN cobj(123);cobj7.int num = 100; ref = num; ref ref = ref + 100; num num = num + 100;8.class CName long num; CName();CName();CName:CName( ) num = 0;CName( ) cout CName carr2;退出 main9 分析下列程序并写出程序的运行结果。CBase ba, bb(10

12、0), *pb;CDrive dd(123, 456);ba; bb;10.class CT CT(i nt i) n=i;CT cObj(1234);cObj五、编程题1.下列类成员函数的定义不完整,请在 填代码以使其完整。float x;TC(int, float);TC(TC&TC(i nt n, float f)num = n;TC(TC & t)x = t. x;2 .根据下面的主程序,完成类说明的最小形式 (不要求实现成员函数的定义 )。class Base ; Base bo( 6);3. 一个类的头文件如下所示,程序产生对象 tco,且tco.num=10,并使用Show()函

13、数输出这个对象的值。/tcn.hclass TCN int num; TCN(i nt n) num=n;void Show () coutnum #in clude mn = mn; = mf;CN( rObj )mn = ;mf = .f;6 填上合适的字句,使程序的最终结果为 200。class CNumber int val; CNumber(i nt i) val=i; int();CNumber:operator in t() class num : public CNumber num(int i) : CNumber(i) num n(100);int i=n;i+nen dl

14、;7 下面是一个类的测试程序,设计出能使用如下测试程序的类:Test to;to.Init(300, 200);to.Pri nt();输出结果:300-200=1008. 已知复数类 Complex的声明如下:class ComplexComplex();Complex(double);Complex(double, double);friend Complex operator + (Complex &, Complex &friend ostream & operator (istream &double real, imag;要求:(1)写出该类的所有构造函数的类外定义代码。写出对运算

15、符“ + ”、“”进行重载的运算符重载函数的定义。9. 个通用的用 下列AbstractC类是一个表示形状的抽象类, area()为求图形面积的函数,total()则是 以求不同形状的图形面积总和的函数。class AbstractCvirtual double area()=0;;double total(AbstractC *sa , int n)double s=0.0;for(i nt i=0; iarea();return s;(1)从AbstractC类派生圆类(Circle)、正方形类(Square),圆类新增数据成员半径(r),正方形类新增数据 成员边长(a),圆类和正方形类都

16、有构造函数,修改、显示数据成员值的函数,求面积函数。写出main()函数,计算半径为 3.5的圆和边长为7.9的正方形的面积和(必须通过调用total函数计 算)。10. 一个类的头文件 cn.h的内容如下所示:/cn.h CN(i nt);void Prin t();CN(i nt N) n = N;void CN:Pri nt() cout * (1) 编写一个主程序,产生对象 Obj,且使Obj对象中的n成员的值为100,并使用Print()函数输出这 个对象中私有成员 n的值。(2) 在主程序中,创建一动态对象,使该动态对象的数据成员值为 2015,并使用指针pObj指向该动态对象,然

17、后输出该动态对象的数据成员的值。11. 一个类的头文件 CT.h的内容如下所示:/CT.h int m; CT(i nt);void ShowM();CT:CT(i nt n) m = n;void CT:ShowM() coutm(1)编写一个主程序,产生对象 mObj,且使mObj对象中的m成员的值为11,并使用ShowM()函数输出这个对象中私有成员 m的值。(2)在主程序中,创建一动态对象,使该动态对象的数据成员值为 126,并使用指针pObj指向该动态对象,然后输出该动态对象的数据成员的值。12使用运行时多态性编程实现三角形、矩形和圆的总面积的统计并输出结果。三角形、矩形和圆类 的类名分别为 T、R和C。T类必须以S类作基类,R类必须从T类派生,C类必须以S作基类。Shape 类的定义如下:class S int x, y; S(int a=0, int b=0) : x(a) , y(b) virtual int Area() = 0;不必建立工程,将所有代码都放在一个源文件中。 在主函数中,必须调用下列Sum函数来统计各类图形面积的总和。int Sum( S * s, int n

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

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