




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、精选优质文档-倾情为你奉上全国2005年10月面向对象程序设计试题课程代码:02328一、单项选择题(本大题共12小题,每小题2分,共24分)在每小题列出的四个备选项中只有一个是符合题目要求的,请将其代码填写在题后的括号内。错选、多选或未选均无分。1. 所谓多态性是指 ( )A. 不同的对象调用不同名称的函数 B. 不同的对象调用相同名称的函数 C. 一个对象调用不同名称的函数 D. 一个对象调用不同名称的对象2. 有如下程序段:int *p,a6=-1,0,1,2,3,4; p=a+3; 执行该程序段后,*p的值为 ( )A. 4 B. 2 C. 1 D. NULL3.类MyA的拷贝初始化构
2、造函数是 ( )A. MyA() B. MyA(MyA*) C. MyA(MyA&) D. MyA(MyA)4.一个函数功能不太复杂,但要求被频繁调用,则应把它定义为 ( )A. 内联函数 B. 重载函数 C. 递归函数 D. 嵌套函数5.以下有关继承的叙述正确的是 ( )A. 构造函数和析构函数都能被继承B. 派生类是基类的组合C. 派生类对象除了能访问自己的成员以外,不能访问基类中的所有成员D. 基类的公有成员一定能被派生类的对象访问6. 解决二义性问题的方法有( )A. 只能使用作用域分辨操作符 B. 使用作用域分辨操作符或赋值兼容规则C. 使用作用域分辨操作符或虚基类 D. 使用虚基类
3、或赋值兼容规则7. 假设类X以类Y作为它的一个基类,并且X类的名字func()支配Y类的名字func(),obj为类X的对象,则obj.func()语句实现的功能为 ( )A. 先执行类X的func(),再执行访问类Y的func()B. 先执行类Y的func(),再执行访问类X的func() C. 执行类X的func()D. 执行类Y的func()8.以下叙述正确的是( )A. 构造函数调用虚函数采用动态联编B. 构造函数可以说明为虚函数C. 当基类的析构函数是虚函数时,它的派生类的析构函数也是虚函数D. 析构函数调用虚函数采用动态联编9.以下关于抽象类的描述正确的是 ( )A. 不能说明指向
4、抽象类对象的指针或引用B. 可以说明抽象类对象C. 抽象类的纯虚函数的实现可以由自身给出,也可以由派生类给出D. 抽象类的纯虚函数的实现由派生类给出10.在下面格式化命令的解释中,错误的是 ( )A. ios:skipws 跳过输入中的空白字符B. ios:fill() 获得当前的填充字符C. ios:hex 转换基数为八进制形式D. ios:precision 返回当前的精度11.下面运算符中,不能被重载的运算符是( )A. = B. C. ?: D. 12.下列有关模板和继承的叙述正确的是 ( )A. 模板和继承都可以派生出一个类系B. 从类系的成员看,模板类系的成员比继承类系的成员较为稳
5、定C. 从动态性能看, 继承类系比模板类系具有更多的动态特性D. 相同类模板的不同实例一般没有联系,而派生类各种类之间有兄弟父子等关系二、填空题(本大题共8小题,每小题2分,共16分)请在每小题的空格中填上正确答案。错填、不填均无分。13. 在C+中函数原型不但能标识函数的_,而且能标识函数参数的_。14. 如果类的名称是MyClass则析构函数名为_,一个类最多能有_个析构函数。15. 假设类X的对象x是类Y的成员对象,则“Y Obj”语句执行时,先调用类_的构造函数,再调用类_的构造函数。16. 基类的公有成员在私有派生类中是_成员,基类的保护成员在公有派生类中是_成员。17. 对虚函数使
6、用对象指针或引用,系统使用_联编,对虚函数使用对象调用时,系统使用_联编。18. 静态成员定义的关键字为_,一般通过_来访问静态成员。19. 类在面向对象程序设计中非常重要,在设计类时可以参考一些原则,如充分利用_增加类的自身可靠性,通过继承建立_等等。20. 将关键字_写在函数体之前函数头之后,说明该函数是一个_,可以防止函数改变数据成员的值。三、改错题(本大题共5小题,每小题2分,共10分)21.指出下面引用性说明类MyClass的用法的错误之处,并说明出错原因。class MyClass;void main() MyClass obj1;MyClass *p;void func( MyC
7、lass obj);22.下面程序中有一处错误,请用下横线标出错误所在行并说明出错原因。class baseprotected:int p;public:Base(int m)p=m;void f() Base a(10); couta.pendl;23.下面程序中有一处错误,请用下横线标出错误所在行并说明出错原因。class base public: int x;class One:public base;class Two:public base;class OT:public One,public Twopublic: int func();void main() OT p;p.base
8、:x;24.下面程序中有一处错误,请用下横线标出错误所在行并说明出错原因。class Basepublic: virtual void fun()=0;class Test: public Basepublic: virtual void fun()coutTest.fun=endl;void main() Base a;Test*p; p=&a;25.下面程序中有一处错误,请用下横线标出错误所在行并提出修改意见。class Aprivate: static int x;void func(int a)x=a;四、完成程序题(本大题共5小题,每小题4分,共20分)26.为使下面程序输出结果为:
9、1*23+4 请在横线处填上适当的字句,以使程序完整。#include class A private: int R1, R2;public:A(int r1, int r2) R1=r1; R2=r2; void print(); void print() const; void A:print() coutR1 _R2endl; void A:print() const coutR1 _R2endl; void main() A a(1, 2); const A b(3, 4); a.print(); b.print(); 27. 在下面横线处填上适当字句,完成类中成员函数的定义。#inc
10、lude class A private: int X,Y;public: A() X=Y=0; A(int xx,int yy) :X(xx),Y(yy) A(A &a) _ int GetX() return X; int GetY() return Y; void SetXY(int x,int y) X=x; Y=y; ;int main() A * Ptr=new A2; Ptr0.SetXY(5,10); Ptr1.SetXY(15,20); coutRelease Ptr endl; _; /释放动态分配内存 return 0;28.请在横线处填上适当的字句,以使程序完整。#in
11、clude #include math.hclass Point private:double X,Y;_Line;public:Point(double x=0, double y=0) X=x; Y=y;Point(Point &p) X=p.X; Y=p.Y;class Lineprivate: Point p1,p2;public: Line(Point &xp1, Point &xp2): _ double GetLength();double Line:GetLength() double dx=p2.X-p1.X; double dy=p2.Y-p1.Y;return sqrt(
12、dx*dx + dy*dy);void main() Point p1,p2(3,4); Line L1(p1,p2); coutL1.GetLength()endl;29.下面程序横线处填上适当的字句,使类定义完整。#include#include class ArrayFloat protected:float *pA; int size; /数组大小(元素个数)public:ArrayFloat(int sz=10) size=sz;pA=new floatsize; ArrayFloat(void) _; /释放动态内存 int GetSize(void) const return s
13、ize;float& operator(int i) /重载数组元素操作符 return pAi;void Print(); ;void ArrayFloat:Print() int i;for(i=0; i _; i+) if (i%10=0) cout endl;coutsetw(6)pAi; coutendl;void main() ArrayFloat a(20);for (int i=0; ia.GetSize(); i+) ai=(float)i* 2;a.Print(); 30.在横线处填上适当字句,完成下面复数类的定义。#include class Complexprivate
14、:double real, image;public:Complex(double r=0,double i=0) real=r; image=i; friend Complex operator+(Complex &a,const Complex &c); /复数加法运算符Complex operator=(Complex c2); /复数赋值运算符 ;Complex operator+(Complex &a,const Complex &b) Complex *t = new Complex (_);return *t;Complex Complex: operator = (Comple
15、x c2) real= c2.real;image = c2.image;return ( _);五、程序分析题(本大题共6小题,每小题5分,共30分)31.写出下面程序的输出结果。#include class B private: int Y;public: B(int y=0) Y=y; coutB(y)n; B() coutB()n; void print() cout Y ; ; class D: public Bprivate: int Z;public: D (int y, int z):B(y) Z=z;coutD(y,z)n; D() coutD()n; void print(
16、) Bprint();cout Zendl; ; void main() D d(11,22);d.print(); 32.写出下面程序的输出结果。#include class Aprivate: double X,Y;public: A(double xx=0, double yy=0) X=xx; Y=yy;cout构造函数被调用(X,Y)endl;A(A &p) X=p.X; Y=p.Y; ;A f() A a(1,2);return a;void main() A a(4,5); A b(a);b = f();33.写出下面程序的输出结果。#include class A public
17、:virtual void f() coutA:f()n; ; class B:public Aprivate: char *buf;public:B(int i) buf=new chari; void f() coutf(); delete a;a=new B(15); a-f();34.写出下面程序的输出结果。#include void main() int a9=1,2,3,4,5,6,7,8,9; for(int i=0; i9; i+) cout setw(4) ai; if(i%3=2) coutendl; 35.写出下面程序的输出结果。#include template void print(T a,int n ) for(int i=0; in; i+) coutai ;if (i%5=4) coutendl;coutendl;void main() int a=1, 2, 3, 4, 5, 6, 7;double b4=8, 9, 10, 11 ;prin
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 建筑施工-安全培训课件-BIM与安全
- DB5404-T 0016-2024 林芝乌龙茶加工技术规范
- 社会科学研究方法 课件 第七章 调查研究
- 醉鹅娘红酒知识培训课件
- 老年人护理教学课件
- 企业数字化升级方法论谢陵春
- 老年人培训养生知识课件
- 老年人合理用药课件
- 老年人再婚教学课件
- 老年人中医健康知识培训课件
- 《MATLAB基础及应用》全套教学课件
- 2025年山西航空产业集团有限公司招聘笔试参考题库含答案解析
- 口腔科突然停电应急预案
- 幼儿园教师事业编招聘考试真题及答案(共15套)
- 2025年临床医师定期考核必考复习题库及答案(900题)
- 桥梁检测评定与加固技术(第2版) 课件 第6章 桥梁检查与评定
- 兼职健身教练合作协议3篇
- UL2034标准中文版-2017一氧化碳报警器UL中文版标准
- 【MOOC】认识飞行-上海工程技术大学 中国大学慕课MOOC答案
- 国际商务谈判 习题答案、练习题及答案(白远)
- 关节活动维持与改善技术
评论
0/150
提交评论