作业5 第08章习题辩析_第1页
作业5 第08章习题辩析_第2页
作业5 第08章习题辩析_第3页
作业5 第08章习题辩析_第4页
作业5 第08章习题辩析_第5页
已阅读5页,还剩8页未读 继续免费阅读

下载本文档

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

文档简介

1、第 3 页 共 10 页)B. 数据经过加密处理D.对象内部数据结构的不可访问性2. 在C+中,编写一个内联函数Fun,int 类型,下列定义正确的是 (A. int Fun(int x)return x*x;C. int inline Fun(int x)return x*x;使用 int 类型的参数,求其平方并返回,返回值也为)B. inline int Fun(int x)return x*x; D.int Fun(int x)inline return x*x;3下面关于重载函数的叙述中正确的是A.重载函数必须具有不同的返回值类型C .重载函数必须有不同的形参列表)B.重载函数的形参个

2、数必须不同D.重载函数的函数名可以不同4.若有定义“ intx=17;,则语句coutoctx; ”的输出结果是(A.11B.0x11C.21)D.0215下列关于析构函数的描述中正确的是(A. 析构函数可以重载C.析构函数名与类名相同)B.析构函数可以是虚函数D.析构函数的返回类型为void6下列关于纯虚函数的描述中,正确的是A. 纯虚函数是一种特殊的虚函数,它是个空函数B. 具有纯虚函数的类称为虚基类C. 一个基类中说明有纯虚函数,其派生类一定要实现该纯虚函数D. 具有纯虚函数的类不能创建类对象7下列关于运算符重载的描述中,正确的是A.可以改变运算符的目数C.可以改变运算符的结合性()B.

3、可以改变运算符的优先级D.可以改变运算符的功能作业5第08章课后习题要求:(第17周周五前上传至FTP作业区)1. 阅读教材,完成简答题; (做在书上)2. 第08习题:8-6 , 8-8,8-9完成程序编写和程序调试,上传至 FTP作业区。3. 完成下列题目:全国高等教育自学考试面向对象程序设计试题课程代码: 02328一、单项选择题 (本大题共 10小题,每小题 2 分,共 20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号 内。错选、多选或未选均无分。1. 面向对象程序设计中的数据隐藏指的是A. 输入数据必须输入保密口令C.对象内部数据和代码合并在一

4、起()B.ciass B:virtuai pubiic AD.ciass B:pubiic A virtuai&要将类A说明是类B的虚基类,正确的描述是A.class virtual B:public AC.virtual class B:public A9下面关于静态成员的描述中,正确的是A. 静态数据成员是类的所有对象共享的数据B. 类的每个对象都有自己的静态数据成员C. 类的不同对象有不同的静态数据成员值D. 静态数据成员不能通过类的对象访问10. 假设Sam pie是个类,则语句“ Sam pie a 2 :,* p 3:; ”调用构造函数的次数为(A.0B.2C.3D.5二、填空题

5、(本大题共 10小题,每小题 2分,共 20分) 请在每小题的空格中填上正确答案。错填、不填均无分。11. 在面向对象的程序设计中,将一组对象的共同特性抽象出来形成。12. 在C+中要创建一个文件输入流对象fin ,同时该对象打开文件“ Test.txt ”用于输入,则正确的声明语句是 。13. 如果要把类 B的成员函数void fun() 说明为类A的友元函数,则应在类A中加入语句O14. A是一个类,已有语句“ A* p;p=new A 10:;。要释放由p指向的动态空间,正确的 语句应该是 。15. 如果一个引用不是用作函数参数或返回值,则在说明该引用时必须对它进行O16.如果要把 PI

6、 声明为值为 3.14159 类型为双精度实数的符号常量,该声明语句是。17.在C+中函数原型不但要标识一个函数的返回类型,同时还要标识该函数的。18.类A的后置自增运算符+以成员函数的形式进行重载,其在类内的函数声明是函数来完成。O19. 动态联编是通过基类类型的指针或引用调用 20. 基类的保护成员通过私有派生其在派生类中的访问权限是 三、改错题(本大题共 5小题,每小题 2分,共 10分)21. 下面的类定义中有一处错误,请用下横线标出错误所在行并给出修改意见。ciass Sampieprivate:int data;Sampie( )data=10;pubiic:Sample(int

7、d)data=d; int operator int( )return data; ;22. 下面的类定义中有一处错误,请用下横线标出错误所在行并给出修改意见。 #include class Point int X,Y;public:Point( )X=0;Y=0;Point(int x=0,int y=0)X=x;Y=y;void display( )coutX,Yendl;23下面的程序有一处错误,请用下横线标出错误所在行并说明错误原因。 #include template void Swap(T& a,T& b)T t; t=a,a=b,b=t; void main( )int a=3,

8、b=4;char str1 5=”abcd”,str2 5=”hijk ”; Swap(a,b);Swap(str1,str2);cout”a=”a”,b= ”bendl;cout ”str1= ”str1 ”,str2= ”str2endl;面的程序有一处错误,请用下横线标出错误所在行并说明错误原因。24#include class Base public:virtual void fun( )coutBase functionendl; ;class Derived:public Base public:void fun( )coutDerived functionendl; ;void

9、main( )void dis play( )couta.Geta(), bfu n();25.下面的程序有一处错误,请用下横线标出错误所在行并说明错误原因。#in cludeclass Aint x;p rotected:int y;public:A(i nt xx,i nt yy)x=xx; y=yy;class B:p ublic Apublic:B(i nt a,i nt b):A(a,b), yendl;void dis play( )coutx;void mai n()B b(5,10);b.dis play();四、完成程序题(本大题共 5小题,每小题4分,共20分) 根据题目要

10、求,完成程序填空。,并使程序的输出为:26.请在下面程序的横线处填上适当内容,以使程序完整2,14,3#in cludeclass A int a;public:A(int i=0)a=i; int Geta( )return a;class B A a; int b;public:B(i nt i=0,i nt j=0):第7页共10页;void mai n()B b : 2: =B(1,2),B(3,4); for(i nt i=0;i2;i+) ;27.下面程序中A是抽象类。请在下面程序的横线处填上适当内容,以使程序完整,并使程序的输出为:B1 calledB2 called#in cl

11、udeclass Apublic:;class B1: public Apublic:void dis play( )cout” B1 callede ndl;class B2:p ublic Apublic:void dis play( )cout” B2 calleddis play();void mai n()B1 b1;B2 b2;A* p 2: =&b1,&b2; for(i nt i=0;i2;i+) show(p : i:);28.请在下面程序的横线处填上适当内容,以使程序完整Name王小明Grade:90,并使程序的输出为:#in clude#in clude class Pe

12、rsonchar name 20;public:Person( char* s)strc py(n ame,s); void dis play( )cout;class Stude nt: public Personint grade;public:Stude nt(char* s, int g):void dis pl ay() Name” nameendl;grade=g;cout ” Grade: ” gradeendl;void mai n()Student s( “王小明”,90);s.dis play();29.请在下面程序的横线处填上适当内容,以使程序完整#in clude cl

13、ass In teger int x;public:In teger(i nt a=0)x=a;void dis play( )coutxe ndl;In teger Max(I nteger a,I nteger b) if()return a;return b;void mai n(),并使程序的输出为 5。In teger a( 3),b(5),c;c=Max(a,b);c.dis play();30.请在下面的横线处填上适当内容,class Arrayint* ptr;int size;public:Array( )size=0; p tr=0;Array(i nt n) size=n

14、;ptr=new intArray()size=a.size;ptr=new int size :;for(i nt i=0;isize;i+);以使类的定义完整。/:size : ;/复制初始化构造函数将源对象的动态数组内容复制到目标对象;第7页共10页五、程序分析题(本大题共6小题,每小题5分,共30 分)阅读下面的程序,写出程序运行的结果。31. #includeclass Testp rivate:int num;public:Test(i nt n=0) num=n;nu m+;Test( )cout ” Destructor is active,number=” numendl;v

15、oid mai n()Test x : 2:;cout ” Exiting main ” endl;#in elude 32.class Apublic:virtual void fun (int data)cout” class A: ” dataendl;void fun(char *str)cout ” class A: ” strendl; class B: public A public:void fun( ) coutvoid fun(int data) coutvoid fun(char *str) cout ;void main( )” class B ” endl;” cla

16、ss B: ”dataendl; ” class B: ”strfun(1);pA- fun( “Hello ”);#include void main( )cout.fill(*);cout.width(10);cout123.45endl;cout.width(8);cout123.45endl;cout.width(4);cout123.45endl; 34.#includeclass Numint X,Y;public:Num(int x,int y=0)X=x;Y=y;void value(int x,int y=0)X=x;Y=y; void value( )coutX;if(Y!

17、=0) cout0?+ coutendl;void main( ) Num n(1);n.value( );- )0?Y: - Y)i ;第 13 页 共 10 页n.value(2,3); n.value( );Num m(3,-4); m.value( );35.#includeclass Sampleprivate:int i;static int count;public:Sample( );void display( );Sample:Sample( ) i=0;count+;void Sample:display( ) couti=i+,count=countendl; int Sample:count=0;void main( ) Sample a,b;a.display( );b.d

温馨提示

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

评论

0/150

提交评论