版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、Object - Oriented Programming,2003年10月全国高等教育自学考试试卷与参考答案,1,一、单项选择题 ( 共 10 小题,每小题 2 分),1. 下列特性中, C 与 C+ 共有的是 ( ) A. 继承B. 封装 C. 多态性 D. 函数定义不能嵌套 2. 通常情况下,函数模板中的类型参数个数 不能 是 ( ) A.0 B.2 C.4 D.3 3. 在下列表达式中,运算符“ + ”的意义不相同的一对是 ( ) 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+2 4. 类的指针成员初
2、始化是通过函数完成,这个函数通常是 ( ) A. 析构函数 B. 构造函数 C. 其它成员函数 D. 友元函数,D,C,B,A,2,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 时
3、,该函数在该类的所有派生类中 ( ) A. 都是虚函数 B. 只有被重新说明时才是虚函数 C. 只有被重新说明为 virtual 时才是虚函数 D. 都不是虚函数,D,B,A,3,8. 下面叙述 不正确 的是 ( ) A. 派生类一般都用公有派生 B. 对基类成员的访问必须是无二义性的 C. 赋值兼容规则也适用于多重继承的组合 D. 基类的公有成员在派生类中仍然是公有的 9. 在 C+ 中实现封装是借助于 ( ) A. 枚举 B. 类 C. 数组 D. 函数 10. 所有在函数中定义的变量,都是 ( ) A. 全局变量 B. 局部变量 C. 静态变量 D. 寄存器变量,D,A,B,4,二、填空
4、题 (每小题 2 分,共 20 分 ),11. 设函数 max 是由函数模板实现的,并且 max(3.5, 5) 和 max(10,5) 都是正确的函数调用,则模板具有 _ 个类型参数。 12. 在单继承和多继承方式中,面向对象的程序设计应尽量使用 _ 继承。 13. 语句 ifstream datafile ; datafile.open( “ data.dat ” ) ; 的功能可用一个语句实现,这个语句是 _ 。 14. 将关键字 const 写在函数头之后,函数体之前,说明该函数是一个 const 成员函数。此时 const 不是指定函数的返回值,而是修饰 _ 指针。,2,单,ifst
5、ream datafile ( “ data.dat ” ),this,5,15. 一个抽象类的派生类可以实例化的必要条件是实现了所有的 _ 。 16. 在 C+ 中,虚函数帮助实现了类的 _ 性。 17. 通过 C+ 语言中类的 _ ,可以扩充和完善已有类以适应新的需求。 18. 为了在对象生存期结束时释放其指针成员所指向的动态存储空间,通常需要为该类定义 _。 19. 在联合中,所有数据成员具有 _ 的地址,任一时刻只有 _ 个数据成员有效。 20. 在已经定义了整型指针 ip 后,为了得到一个包括 10 个整数的数组并由 ip 所指向,应使用语句 _ 。,虚函数,多态,继承,析构函数,相
6、同,1,ip=new int10;,6,21.下面的类定义有一处错误,请用下横线标出错误所在行并改正错误。 class A int a; public: A(int aa):a=aa ;,22.下面的程序有一处错误,请用下横线标出错误所在行并改正错误。 # include class Test public; static int x; ; int x=20;/ 对类成员初始化 void main ( ) coutTest:x; ,三、改错题 (每小题 2 分,共 10 分 ),A(int aa):a=aa 出错 改为: A(int aa):a(aa) ,int x=20;出错 改为: int
7、 Test:x=20;,7,23.下面的程序先把字符串“ Look out! ”输出到一个文件中,然后再从该文件输入,并显示在屏幕上,显示效果为 Look out! 。程序中有一处错误,请用下横线标出错误所在行,并给出更改意见。 # include void main() ofstream outf( c:tem.dat,ios:trunc); outfk; coutk; inf.close( ); ,infk;只能读出Look 改为: inf.getline(k,20);,8,24.下面的程序类 B 的定义中有一处错误,请用下横线标出错误所在行并说明错误原因。 # include # inc
8、lude 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( ); ,cout name: nameendl;出错 原因: 私有成员在子类中不能访问,9,25.用下横线标出下面
9、程序 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( )
10、endl; ,x=A1.X; y=A1.Y;出错 原因: 私有成员不能被main函数访问,10,四、完成程序题 ( 每小题 4 分,共 20 分 ),26.在下面横线处填上适当内容,使该程序结果为: 12 和 88 # include template class Tany public: _; void pr( ) if (sizeof(int)= _ ) couty? x:y)y? y:x) dobj=12.0,88.0; dobj.pr( ); Tany iobj=12,88; iobj.pr( ); ,sizeof( T ),T x,y,11,27. 在下面的横线处填上适当内容,使程序
11、完整。 # 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 ,static,float x1, float y1,12,28. 在下面程序中的横线处填上适当内容,使程序完整。 # include class vehicle protected: int speed; public: void setSpeed(int s)speed=s; _ getSpeedLevel
12、( )return speed/10; ; class car:public vehicle public: int getSpeedLevel( ) return speed/5; ; class truck:public vehicle public: int getSpeedLevel( )return speed/15; ; int maxSpeedLevel(vehicle _,vehicle _) if(v1.getSpeedLevel( )v2.getSpeedLevel( ) return 1; elsereturn 2; void main( ) truck t;car c;
13、 t.setSpeed(130);c.setSpeed(60); coutmaxSpeedLevel(t,c)endl; /此结果输出为 2,virtual int, 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,
14、b2; ;,int i,A(i),14,30.根据注释在空白处填写适当内容。 # include class Location private: int X,Y; public: void init(int initX,int initY) X=initX; Y=initY; int GetX( ) return X ; int GetY( ) return Y ; ; void main( ) Location A1;A1.init(20,90); _ / 定义一个指向 A1 的引用 rA1 _ /用 rA1 在屏幕上输出对象 A1 的数据成员 X 和 Y 的值 ,Location ,cou
15、trA1.GetX(),rA1.GetY()endl;,15,五、程序分析题 (每小题 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 ,执行结果: 3,7,9,1,5,4,,16,32.给出下面程序的输出结果。 # include template class Tclass T x,y;
16、 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 ? + : - ); cout(T)0? y:-y)a(10.5,-5.8); a.pr( ); Tclassb(10); b.pr( ); ,执行结果: 10.5-5.8i 10+0i,17,给出下面程序的输出结果。 # include class Test private: static int val; int a; public: static int func( ) return val+; void sfun
17、c(Test ,执行结果: Result1=200 Result2=201 Result3=125,18,34. 运行下面的程序,写出当输入 25 , 60 时的输出结果。 # include class A public: virtual void print( )cout class A. endl; ; class B:public A public: void print( ) ; class C:public B public: void print( )cout class C. endl; ; void show(A ,执行结果: class A. class C.,19,35.
18、 写出输出结果。 # 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):A(i),aa(j) b=k; void Print( ) A:Print( ); coutb , aa.Geta( )endl; private: int b; A aa; ; void main( ) B bb2; bb0=B(1,2,5); bb1=B(3,4,7); for(int i=0;i2;i+)bbi.Print( ); ,执行结果: 1, 5, 2 3, 7, 4,20,36. 运行下面的程序,写出输出结果。 # include class Location int X,Y; public: void init(int=0,int=0); void valueX (int val) X=val; int valueX( ) return
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年无锡市锡山区卫生健康系统公开招聘事业编制高层次人才15人备考题库(长期)完整答案详解
- 2025年常州工程职业技术学院长期公开招聘高层次人才备考题库有答案详解
- 会议通信应急预案(3篇)
- 2025年杭州仁和实验学校诚聘高中数学教师(非事业)备考题库及完整答案详解一套
- 同仁堂集团2026届高校毕业生招聘备考题库及一套答案详解
- 资料2-4 任务四 六、企业财务管理
- 2025年潮州市潮安区招聘签约兽医备考题库及答案详解1套
- 2025年松江区天马山学校招聘备考题库参考答案详解
- 公司出游-应急预案(3篇)
- 2025年汕头海关技术中心招聘备考题库带答案详解
- 2024-2025学年广东省深圳市福田区七年级(上)期末英语试卷
- 《证券投资学》吴晓求课后习题答案
- 消防员心理测试题目及答案大全2025
- 住院医师规范化培训急诊科模拟试题及答案
- 2025国考国资委申论高分笔记
- 2025年高级经济师《人力资源》考试真题及答案
- 矿山项目经理岗位职责与考核标准
- 2025年乡村旅游民宿业发展现状与前景可行性研究报告
- 国家安全生产公众号
- 2025年中国多深度土壤水分传感器行业市场全景分析及前景机遇研判报告
- 2025档案管理职称考试题库及答案
评论
0/150
提交评论