




已阅读5页,还剩6页未读, 继续免费阅读
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
全国2003年10月高等教育自学考试面向对象程序设计试题课程代码:02328一、单项选择题(本大题共10小题,每小题2分,共20分) 在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。1.下列特性中,C与C+共有的是( ) A.继承 B.封装 C.多态性 D.函数定义不能嵌套2.通常情况下,函数模板中的类型参数个数不能是( ) A.0 B.2 C.4 D.33.在下列成对的表达式中,运算符“+”的意义不相同的一对是( ) A.5.0+2.0和5.0+2 B.5.0+2.0和5+2.0 C.5.0+2.0和5+2 D.5+2.0和5.0+24.类的指针成员的初始化是通过函数完成的,这个函数通常是( ) A.析构函数 B.构造函数 C.其它成员函数 D.友元函数5.要禁止修改指针p本身,又要禁止修改p所指向的数据,这样的指针应定义为( ) A.const char *p=“ABCD”; B.char const *p=“ABCD”; C.char *const p=“ABCD”; D.const char * const p=“ABCD”;6.静态成员函数没有( ) A.返回值 B.this指针 C.指针参数 D.返回类型7.当一个类的某个函数被说明为virtual时,该函数在该类的所有派生类中( ) A.都是虚函数 B.只有被重新说明时才是虚函数 C.只有被重新说明为virtual时才是虚函数 D.都不是虚函数8.下面叙述不正确的是( ) A.派生类一般都用公有派生 B.对基类成员的访问必须是无二义性的 C.赋值兼容规则也适用于多重继承的组合 D.基类的公有成员在派生类中仍然是公有的9.在C+中实现封装是借助于( ) A.枚举 B.类 C.数组 D.函数10.所有在函数中定义的变量,都是( ) A.全局变量 B.局部变量 C.静态变量 D.寄存器变量二、填空题(本大题共10小题,每小题2分,共20分)不写解答过程,将正确的答案写在每小题的空格内。错填或不填均无分。11.设函数max是由函数模板实现的,并且max(3.5,5)和max(10,5)都是正确的函数调用,则该模板具有_个类型参数。12.在单继承和多继承方式中,面向对象的程序设计应尽量使用_继承。13.语句序列 ifstream datafile; datafile.open(“data.dat”); 的功能可用一个语句实现,这个语句是_。14.将关键字const写在函数头之后,函数体之前,说明该函数是一个const成员函数。此时const不是指定函数的返回值,而是修饰_指针。15.一个抽象类的派生类可以实例化的必要条件是实现了所有的_。16.在C+中,虚函数帮助实现了类的_性。17.通过C+语言中类的_,可以扩充和完善已有类以适应新的需求。18.为了在对象生存期结束时释放其指针成员所指向的动态存储空间,通常需要为该类定义_。19.在联合中,所有数据成员具有_的地址,任一时刻只有_个数据成员有效。20.在已经定义了整型指针ip后,为了得到一个包括10个整数的数组并由ip所指向,应使用语句_。三、改错题(本大题共5小题,每小题2分,共10分)21.下面的类定义有一处错误,请用下横线标出错误所在行并改正错误。 class A int a; public; A(int aa):a=aa ;22.下面的程序先把字符串“Look out!”输出到一个文件中,然后再从该文件输入,并显示在屏幕上,显示效果为Look out!。程序中有一处错误,请用下横线标出错误所在行,并给出更改意见。 # include void main() ofstream outf(“D:tem.dat”,ios:trunc); outfk; countk; inf.close( ); 23.下面的程序有一处错误,请用下横线标出错误所在行并改正错误。 # include class Test public; static int x; ; int x=20;/对类成员初始化 void main ( ) coutTest:x; 24.下面的程序类B的定义中有一处错误,请用下横线标出错误所在行并说明错误原因。 # include # include class A public:A(const char *nm)strcpy(name,nm); private:char name80; ; class B:public A public:B(const char *nm):A(nm) void PrintName( )const; ; void B:PrintName( )const cout“name:”nameendl; void main( ) B b1(“wang li”); b1.PrintName( ); 25.用下横线标出下面程序main函数中的错误所在行,并说明错误原因。 # include class Location private: int X,Y; public; void init(int initX,int initY); int sumXY( ); ; void Location:init(int initX,int initY) X=initX; Y=initY; int Location:sumXY( ) return X+Y; void main( ) Location A1; int x,y; A1.init(5,3); x=A1.X;y=A1.Y; coutx+y” ”A1.sumXY( )endl; 四、完成程序题(本大题共5小题,每小题4分,共20分)。根据题目要求,完成程序填空。26.在下面程序横线处填上适当内容,以使该程序执行结果为: 12 88 # include template class Tany public: ; void pr() if(sizeof(int)= ) county? x:y)endl; else couty? y:x)endl; ; void main( ) Tanydobj=12.0,88.0; dobj.pr( ); Tany iobj=12,88; iobj.pr( ); 27.在下面的横线处填上适当内容,使程序完整。 # include # include class loc private: float x,y; public; loc( ) x=x1; y=y1; float getx( )return x; float gety( )return y; float dis(loc&,loc&); ; float loc:dis(loc&a,loc&b) flost dx=a.x-b.x; flost dy=a.y-b.y; return sqrt(dx*dx+dy*dy); void main( ) loc pl(3.5,4.5),p2(5.5,6.5); float d=loc:dis(p1,p2); cout“The distance is”d; 28.在下面程序中的横线处填上适当内容,使程序完整。 # include class vehicle protected: int size; int speed; public; void setSpeed(int s)speed=s; getSpeedLevel( )return speed/10; ; class car:public vehicle public: int getSpeedLeve( )return speed/5; ; class truck:public vehicle public: int getspeedLevel( )return speed/15; ; int maxSpeedLevel(vehicle ,vehicle ) if(v1.getSpeedLevel( )v2.getSpeedLevel( ) return 1; else reutrn 2; void main() turck t; car c; t.setSpeed(130); c.setSpeed(60); coutmaxSpeedLevel(t,c)endl;/此结果输出为2 29.在下面横线处填上合适内容,完成类B的定义。 # include class A public:A( )a=0; A(int i)a=i; void print( )couta”,”; private:int a; ; class B:public A public:B( )b1=b2=0 B( )b1=i;b2=0; B(int i,int j,int k): b1=j;b2=k;/使a的值为i void print( )A:print( );coutb1”,”b2endl; private:int b1,b2; 30.根据注释在空白处填写适当内容。 class Location private: int X,Y; public: void init(int initX,int initY); int GetX( ); int GetY( ); ; void Location:init(int initX,int initY) X=initX; Y=initY; int Location:GetX( ) reutrn X; int Location:GetY( ) reutrn Y; # include void main( ) Location A1;A1.init(20,90); /定义一个指向A1的引用rA1 /用rA1在屏幕上输出对象A1的数据成员X和Y的值 五、程序分析题(本大题共6小题,每小题5分,共30分)给出下面各程序的输出结果。31.写出下面程序的输出结果: # include class FunArray int *pa; /指向一个数组空间 int size; /数组元素个数 public: FunArray(int a ,int thesize):pa(a),size(thesize) int Size( )return size; int& operator (int index)return paindex-1; ; void main( ) int s =3,7,2,1,5,4; FunArray ma(s,sizeof(s)/sizeof(int); ma3=9; for(int i=1;i=ma.Size( );i+) coutmai,; 32.写出下面程序的输出结果: # include template class Tclass T x,y; public: Tclass(T a,T b):x(a)y=b; Tclass(T a)y=(T)0,x=a; void pr( ) char c; c=(y=(T)0?+:-); coutxc(T)0? y:-y)iendl; ; void main( ) Tclassa(10.5,-5.8); a.pr( ); Tclassb(10); b.pr( ); 33.写出下面程序的输出结果: # include class Test private: static int val; int a; public; static int func( ); void sfunc(Test &r); ; int Test:val=200; int Test:func( ) return val+; void Test:sfunc(Test &r) r.a=125; cout Result3=r.a; void main( ) cout”Result1=”Test:func( )endl; Test a; cout”Result2=”a.func( ); a.sfunc(a); 34.写出下面程序的输出结果: # include class A public; virtual void print( )cout”This is class A printing.”endl; ; class B:public A public: void print( ) ; class C:public B public: void print( )cout“This is class C printing.”endl; ; void show(A&a) a.print( ); void main( ) A a; B b; C c; show(a); show(b); show(c); 35.写出下面程序的输出结果: # include class A public: A( )a=0; A(int i)a=i; void Print( )couta”,”; int Geta( )return a; private:int a; ; class B:public A public:B( )b=0; B(int i,int j,int k); void Print( ); private:int b; A aa; ; B:B(int i,int j,int k):A(i),aa(j)b=k; void B:Print( ) A:Print( ); coutb”,”aa.Geta( )endl; void main( ) B bb2; bb0=B(1,2,5); bb1=B(3,4,7); for(int i=0;i2;i+) bbi.Print( ); 36.写出下面程序的输出结果: # include class Location int X,Y; public: void init(int=0,int=0); void valueX(int val)X=val; int valueX( )return X; void valueY(int val)Y=val; int valueY( )return Y; ; void Location:init(int initX,int initY) X=initX; Y=initY; void main( ) Location A,B; A.init( ); coutA.valueX( )endl; A.valueX(5); coutA.valueX( )endlA.valueY( )endl; B.init(6,2); B.valueY(4); coutB.valueX( )endlB.valueY( )endl; 全国2003年10月高等教育自学考试面向对象程序设计参考答案一、单项选择题(本大题共l0小题,每小题2分:共20分)1.D 2.A 3.C 4.B 5.D 6.B 7.A 8.D 9.B 10.B二、填空题(本大题共10小题,每小题2分,共20分)11. 212. 单一(或单)13ifstream datafile(“data.dat”)14. this15纯虚函数16. 多态17.继承机制18. 析构函数19. 相同 一 (说明:答对一个给1分)20. ip = new int10;三、改错题(本大题共5小题:每小题2分,共l0分)说明:各小题中,指出错误得l分,说明出错原因或改正正确得l分。21第4行有错“:a=aa”有错,应改为“:a(aa)”或等价的写法22第7行错,应改为:char k;while(inf.get(k) coutk;注:还可改为char k;while(k=inf.get()!=EOF) coutk;char k20;inf.get(k,20); coutk;或char k20;inf.getline(k,20); coutk;或其中的变量k也可以是其他变量名。/改法之一 /*# include void main() ofstream outf(D:tem.dat,ios:trunc); outfLook out!; outf.close( ); ifstream inf(D:tem.dat); char k20; inf.getline(k,sizeof(k); coutk; inf.close( ); */改法之二# include void main() ofstream outf(D:tem.dat,i
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 一年级写景作文月夜300字(14篇)
- 消防课件培训封面图片
- 企业品牌形象推广方案生成器
- 临时教师聘用协议书
- 少儿艺术培训课件
- 剖宫产的中医护理
- 农民合作采购协议
- 球肘护理常规
- 冷热疗护理技术
- 科学养牛知识培训课件
- 2025年新委托施工简单协议书
- 2025年残联招聘笔试大纲解读与备考指南
- 2025版厂房装修施工安全责任合同模板
- 《中国人首次进入自己的空间站》课件 八年级语文人教版
- GB 16808-2025可燃气体报警控制器
- 医疗机构重点部门感染预防与控制标准WST860-2025解读宣贯
- 一年级开学第一课(一周常规训练)【课件】
- 气体灭火系统日常维护管理手册
- 2025年汽车后市场行业当前市场规模及未来五到十年发展趋势报告
- 退伍留疆考试题库及答案
- 2025年辅警面试考试试题库目(答案+解析)
评论
0/150
提交评论