收藏 分销(赏)

10月全国高等教育自学考试面向对象程序设计试题.doc

上传人:胜**** 文档编号:843518 上传时间:2024-03-28 格式:DOC 页数:19 大小:69.50KB
下载 相关 举报
10月全国高等教育自学考试面向对象程序设计试题.doc_第1页
第1页 / 共19页
10月全国高等教育自学考试面向对象程序设计试题.doc_第2页
第2页 / 共19页
10月全国高等教育自学考试面向对象程序设计试题.doc_第3页
第3页 / 共19页
10月全国高等教育自学考试面向对象程序设计试题.doc_第4页
第4页 / 共19页
10月全国高等教育自学考试面向对象程序设计试题.doc_第5页
第5页 / 共19页
点击查看更多>>
资源描述

1、一、单项选择题 ( 在每小题的四个备选答案中选出一个正确答案,并将其号码填在题干的括号内。每小题 2 分,共 20 分 ) 1. 所谓数据封装就是将一组数据和与这组数据有关操作组装在一起,形成一个实体,这实体也就是 ( ) A. 类 B. 对象 C. 函数体 D. 数据块 2. 面向对象的程序设计语言必须具备的关键要素是 ( ) A. 抽象和封装 B. 抽象和多态性 C. 抽象、封装、继承和多态性 D. 抽象、封装和继承性 3. 类的构造函数被自动调用执行的情况是在定义该类的 ( ) A. 成员函数时 B. 数据成员时 C. 对象时 D. 友元函数时 4. 设有函数模板 template Q

2、Sum(Qx,Qy) return(x)+(y); 则下列语句中对该函数模板 错误 的使用是 ( ) A.Sum(10,2); B.Sum(5.0,6.7) ; C.Sum(15.2f,16.0f); D.Sum( AB , CD ); 5. 已知类 A 是类 B 的友元,类 B 是类 C 的友元,则 ( ) A. 类 A 一定是类 C 的友元 B. 类 C 一定是类 A 的友元 C. 类 C 的成员函数可以访问类 B 的对象的任何成员 D. 类 A 的成员函数可以访问类 B 的对象的任何成员 6. 如果表达式 +i*k 中的“ + ”和“ * ”都是重载的友元运算符,则采用运算符函数调用格式

3、,该表达式还可表示为 ( ) A.operator*(i.operator+(),k) B.operator*(operator+(i),k) C.i.operator+().operator*(k) D.k.operator*(operator+(i) 7. 下列说法中正确的是 ( ) A. 类定义中只能说明函数成员的函数头,不能定义函数体 B. 类中的函数成员可以在类体中定义,也可以在类体之外定义 C. 类中的函数成员在类体之外定义时必须要与类声明在同一文件中 D. 在类体之外定义的函数成员不能操作该类的私有数据成员 8. 若派生类的成员函数不能直接访问基类中继承来的某个成员,则该成员一定

4、是基类中的 ( ) A. 私有成员 B. 公有成员 C. 保护成员 D. 保护成员或私有成员 9. 对基类和派生类的关系描述中, 错误 的是 ( ) A. 派生类是基类的具体化 B. 基类继承了派生类的属性 C. 派生类是基类定义的延续 D. 派生类是基类的特殊化 10. 类 B 是类 A 的公有派生类,类 A 和类 B 中都定义了虚函数 func(),p 是一个指向类 A 对象的指针,则 p-A:func() 将 ( ) A. 调用类 A 中的函数 func() B. 调用类 B 中的函数 func() C. 根据 p 所指的对象类型而确定调用类 A 中或类 B 中的函数 func() D.

5、 既调用类 A 中函数,也调用类 B 中的函数 二、填空题 ( 每小题 2 分,共 20 分 ) 11. 假定用户没有给一个名为 AB 的类定义析构函数,则系统自动给出的缺省析构函数定义为 _ 。 12. 模板定义中标识类型的参数必须用关键字 _ 修饰。 13. 表达式 counthex 还可表示为 _ 。 14. 通过 C+ 语言中的 _ 机制,可以从现存类中构建其子类。 15. 要在调用虚函数的时候强制进行静态联编,可以通过在调用中对虚函数加 _ 实现。 16. 封装要求一个对象应具备明确的功能,并具有 _ 以便和其它对象相互作用。 17. 在删除一个动态对象时,将自动调用该动态对象所属类

6、的 _ 函数。 18. 静态成员函数、友元函数、构造函数和析构函数中,不属于成员函数的是 _ 。 19. 在下面的类定义中,私有成员有 _ 。 class Location int X,Y; protected: int zeroX,zerxY; int SetZero(intzeroX, intzeroY); private: int length,height; public: void init(int initX,int initY); int GetX(); int GetY(); ; 20. 类的私有成员只能被它的成员函数和 _ 访问。 三、改错题 ( 每小题 2 分,共 10 分

7、 ) 21. 此类定义有一处错误,请指出错误并改正。 class ABC int a; public: ABC(int aa)a(aa) ; 22. 下面程序通过调用函数模板实现计算两个正整数的最大公约数,把 main 函数中错误找出并改正过来。 #include template T gcd(Tx,Ty) while(x! =y) if(xy)x-=y; else y-=x; return x; void main() int a; double d; cinad; coutgcd(a,d)endl; 23. 指出下面程序中的错误,并说明出错原因。 #include class ConstF

8、un public: void ConstFun() const int f5()constreturn 5; int Obj() return 45; int val; int f8(); ; int ConstFun:f8()return val; void main() const ConstFun s; int i=s.f5(); cout Value= iendl; 24. 指出下面程序中的错误,并说明错误原因。 #include class A public:void fun()cout a.fun endl; ; class B public:void fun()cout b.f

9、un endl; void gun()cout b.gun endl; ; class C:public A,public B private:int b; public:void gun()cout c.gun endl; ; void main() c obj; obj.fun(); obj.gun(); 25. 指出下面程序段中的错误,并说明出错原因。 class Location int X,Y; protected: int zeroX,zeroY; int SetZero(int zeroX,int zeroY)X=zeroX;Y=zeroY; private: int lengt

10、h,height; public: float radius; void init(int initX,int initY)length=initX;height=initY; int GetX()return X; int GetY()return Y; ; int main() Location retangleA=25,20,3,5,6,7,3; return 0; 四、完成程序题 ( 每小题 4 分,共 20 分 ) 根据题目要求填空,完成程序。 26. 在下面程序段横线处填上适当的内容。 class A _ int n; public: A(int nn=0):n(nn) if(n=

11、0)a=0; else a=new int n ; _/ 定义析构函数,释放动态数组空间 ; 27. 在下面程序横线处填上适当内容,使程序执行结果为: 200_ _ 100 程序如下: #include template _ Tf(Tx,Ty) if(sizeof(T)=_) return x+y; else return x*y; void main() cout f(10,20) - f(45.5,54.5)endl; 28. 下面程序三次调用同一函数 sum ,在横线处填上适当内容,使输出结果为: S=2 S=5 S=9 程序如下: #include void sum(int i) st

12、atic int s; _; cout S= sendl; void main (void) int i; for (i=0;_) sum(i); 29. 请在下面横线处填上适当的内容,使程序的输出为: 7.00000 7 程序如下: #include viod main() double x=7; cout_x; coutendl_x; 30. 在下面程序横线处填上适当的内容,使该程序输出结果为: Creating B end of B end of A 程序如下: #include class A public: A() _cout end of A endl; ; calss B:pub

13、lic A public: B()_ B()cout end of B endl; ; void main() A*pa=new B; delete pa 五、程序分析题 ( 每小题 5 分,共 30 分 ) 给出下面各程序的输出结果。 31. 当从键盘上输入 1.5 10 时,写出下面程序的执行结果。 #include void mian() int a,b,c; char ch; cinachbc;/ 从键盘上输入 1.5 10 coutaendlchendlbendlc; 输出为: 32. 写出下面程序输出结果。 #include template void f(T a 3 3 ,Tb

14、3 3 ,Tc 3 3 ) for(int i=0;i3;i+) for(int j=0;j3;j+) c i j =(T)0 for(int k=0;k3;k+) c i j +=a i k *b j k ; void main() int a 3 3 =1,2,3,4,5,6,7,b 3 3 , c 3 3 =2,0,2,0,0,2; f(a,c,b); for(int i=0;i3;i+) for(int j=0,j3;j+) coutb i j ; coutendl; 输出为: 33. 写出下面程序的输出结果。 #include class FUN friend ostream& op

15、erator (ostream&,FUN); fun; ostream& operator(ostream& os,FUN f) os.setf(ios:left); return os; void main() coutsetfill( * )setw(10)12345endl; coutfunsetw(10)54321endl; 输出为: 34. 写出下面程序的输出结果。 #include class Test private: static int val; int a; public: static int func(); static void sfunc(Test &r); ; i

16、nt Test:val=20; int Test:func() val-; return val; void Test:sfunc(Test &r) r.a=25; cout Result3 =r.a; void main() cout Resultl= Test:func()endl; Test a; cout Result2= a.func(); Test:sfunc(a); 输出为: 35. 写出下面程序输出结果。 # include class A public: virtual void func()cout func in class A endl; ; class B publi

17、c: virtual void func()cout func in class B endl; ; class C:public A, public B public: void func()cout func in class C endl; ; void main() C c; A& pa=c; B& pb=c; C& pc=c; pa.func(); pb.func(); pv.func(); 输出为: 36. 写出下面程序的输出结果。 # include class Location public: int X,Y; void init(int initX,int initY); i

18、nt GetX(); int GetY(); ; void Location:init (int initX,int initY) X=initX; Y=initY; int Location:GetX() return X; int Location:GetY() return Y; void display(Location& rL) coutrL. GetX() rL.GetY()init(7,8); for (int i=0;i5;i+) display(*(rA+); 输出为: 全国2002年10月高等教育自学考试面向对象程序设计参考答案参考答案一、单项选择题(本大题共lO小题,每小

19、题2分:共20分)1.B 2.C 3.C 4.D 5.D 6.B 7.B 8.A 9.B 10.A二、填空题(本大题共10小题,每小题2分,共20分)11. AB()12. class(或typcname)13cout,sctf(ios:hex,ios:basefield)(或coutsetf(ios:hex),或cout(a,d)或把gcd(a,b)改为gcd(a,int (d))23程序中第4行“void ConstFun()”错误,因为声明构造函数时不能指定返回类型。24.第15行 obj.fun();语句错误,因为用C类的对象obj对函数fun()的访问是两义的,应使用成员名限定来消除

20、两义性。25location retangleA25,20,3,5,6,7,3;语句错误,因为数据成员不都是公有成员,不能用初始化列表初始化。四、完成程序题(本大题共5小题,每小题4分,共20分)26,int *a; (2分)A()deletea; (2分)27class I (2分)sizeof(double)(或8或其他等价形式)28s2i(或其他等价形式) (2分)i3;i+(或其他等形式) (2分)29setiosflage (ios:showpoint) (2分)resetiosflags(ios:showpoint) (2分)说明:其中ios: 可写成ios_basc:30. vi

21、rtual A() (2分)cout”creating B”end; (2分)五、程序分析题(本大题共6小题i每小题5分,共30分)3l1(1分).(2 分)5(1分)10(1分)32. 2 4 68 lO 1214 0 0说明:每答对一行得2分,全部答对得5分。33 * * * * * 12345 (2分) 54321 * * * * * (3分)34Result119Result218 Result3d0说明:(1)写对第一行结果得2分,只写出“Result1”,而未写出结果“l9”,得l分。(2)写对第二行结果得3分,只写出“Rcstilt218”或“ Rcsidt325”,得2分。(3)第一衍与第二行全写正确,但写在同一行上扣1分。35func in class Cfunc in class Cfund in class C说明:每答对一行得2分,全部答对得5分。367 81 12 25 34 4说明:每答对一行得1分。

展开阅读全文
相似文档                                   自信AI助手自信AI助手
猜你喜欢                                   自信AI导航自信AI导航
搜索标签

当前位置:首页 > 考试专区 > 自考

移动网页_全站_页脚广告1

关于我们      联系我们       自信AI       AI导航        获赠5币

©2010-2024 宁波自信网络信息技术有限公司  版权所有

客服电话:4008-655-100  投诉/维权电话:4009-655-100

gongan.png浙公网安备33021202000488号  |  icp.png浙ICP备2021020529号-1 浙B2-2024(办理中)  

关注我们 :gzh.png    weibo.png    LOFTER.png 

客服