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

加入VIP,免费下载
 

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

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

下载须知

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

版权提示 | 免责声明

本文(全国自考面向对象程序设计试题及答案解析.docx)为本站会员(b****8)主动上传,冰点文库仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知冰点文库(发送邮件至service@bingdoc.com或直接QQ联系客服),我们立即给予删除!

全国自考面向对象程序设计试题及答案解析.docx

1、全国自考面向对象程序设计试题及答案解析全国2018年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. NUL

2、L3.类MyA的拷贝初始化构造函数是 ( )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. 使用作用域分辨操作

3、符或虚基类 D. 使用虚基类或赋值兼容规则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.以下关于抽象类的描述正确的

4、是 ( )A. 不能说明指向抽象类对象的指针或引用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. 基类的公有成员在私有派生类中是_成员,基类的保护成员在公有派生类中

6、是_成员。17. 对虚函数使用对象指针或引用,系统使用_联编,对虚函数使用对象调用时,系统使用_联编。18. 静态成员定义的关键字为_,一般通过_来访问静态成员。19. 类在面向对象程序设计中非常重要,在设计类时可以参考一些原则,如充分利用_增加类的自身可靠性,通过继承建立_等等。20. 将关键字_写在函数体之前函数头之后,说明该函数是一个_,可以防止函数改变数据成员的值。三、改错题(本大题共5小题,每小题2分,共10分)21.指出下面引用性说明类MyClass的用法的错误之处,并说明出错原因。class MyClass;void main() MyClass obj1;MyClass *p;

7、void func( MyClass 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

8、() OT p;p.base: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分)2

9、6.为使下面程序输出结果为: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. 在下面横线处填上适当字句,完成

10、类中成员函数的定义。#include 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.请在横线处填上适当

11、的字句,以使程序完整。#include #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.

12、Y;return sqrt(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)

13、const return size;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

14、Complexprivate: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: oper

15、ator = (Complex 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()

16、n; void print() 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

17、class A public: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.写出下面程序的输出结果。#includ

18、e 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 ;print(a,sizeof(a)/sizeof(int);print(b,4);36.写出下面程序的输出结果。#include class Aprivate:static int n;int X;public:A(int x=0) X=x; n+; A() n- ; static int GetNum() return n; void print();void Aprint() cout n= n , X= Xprint(); A a(34); a.print(); delete p; cout n= A:GetNum() endl;

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2