计算机级面向对象程序设计考试试卷A卷和参考答卷_第1页
计算机级面向对象程序设计考试试卷A卷和参考答卷_第2页
计算机级面向对象程序设计考试试卷A卷和参考答卷_第3页
全文预览已结束

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、课程名称:面向对象程序设计(A 卷闭卷 )适用专业年级:计算机14 级考试时间 : 100 分钟题号一二三四五六七八九十总分统分人签 名题分1020242620100得分考生注意事项:1、本试卷共3 页,试卷如有缺页或破损,请立即举手报告以便更换。2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。(答案请写在密封线内和答卷正面,否则不记分)一、判断题,正确的打,错误的打(每小题1 分,共 10 分)(答案填在下表中)123456789101在 C+中,标识符 Student和_student 都是正确的。()在编程中,有了面向对象的程序设计方法后, 就不要用面向过程的程序设计方法了。()

2、3.语句“int(*p)(intx, inty); ”说明了 p 是一个指向整数的指针。 ()?4能访问一个类 CMyClass中的 private成员的可以是类 CMyClass的成员函数、友元函数或友元类中的函数。 ()5类的构造函数和析构函数一般都声明为虚函数。()6设函数 fun( )是一个不属于任何类的普通函数,则在调用该函数时可以使用 fun();方式,或者使用 :fun();方式来调用。()7抽象类不会产生实例,所以不需要有构造函数。()8引用实际上是隐式的指针,和指针是同一种数据类型。()9在 MFC编程中,视图 / 文档类程序是通过OnDraw()函数进行进行输出的。()10

3、使用 MFC编程时,可以用Invalidate(TRUE);语句来实现把控件中数据放入对应的变量中。()二、单项选择题(每小题2 分,共 20 分)(答案填在下表中)12345678910CCBDADC或DDAB1下列关于 iostream的描述中,错误的是()。1 页共 3页A它是标准的C+头文件B它与 iostream.h 是两个不同文件C iostream与 iostream.h文件形式不同,但其内容实现是一样的D C+标准不再支持 iostream.h文件号 2如果 Student是学生类,则语句“ Student*p,s1,学s22; ”会执行 Stuent的构造函数次数是()。A

4、1B2C 3D 43在重载一个运算符时,其参数表中没有任何参数,则下列描述中正确的是()。A作为友元函数重载的一元运算符B作为成员函数重载的一元运算符C作为普通函数重载的一元运算符D 上述三种说法都是错误的4下列关于 C+异常处理的流程的描述中,错误的是()。A对某段可能产生异常的代码或函数使用try结构进行检测名 B如果在执行trytry纸姓结构期间没有引起异常,则跟在结构不会执行后面的 catch卷C如果在执行 try 结构期间发生异常,则在异常发生的位置使用throw 抛出异常,一个异常对象将被创建本层理Dtry语句抛出了异常,只能由本层的catch语句处试级5一个类的静态数据成员所表示

5、属性( )。试班A.是类或对象的属性B.只是对象的属性考线C.只是类的属性D.封是类和友元的属性6 C+中虚基类机制可以保证,()。学计 密A限定基类只通过一条路径派生出派生类大设 序B允许基类通过多条路径派生出派生类,派生类也就能多次继承该基类程 业C当一个类多次间接从基类派生后,派生类对象能保留多份间接基类的成员象 D当一个类多次间接从基类派生后,其基类只被一次继承工对 7如果 c 是一个复数类对象,为了能使语句“南向double d = 5.5 + c;”正确执行,只采用下列()方法就可以。面 定义一个重载运算符的复数类成员函数B定义一个复数类转换构造函数A+湖称C定义一个重载 +运算符

6、的复数类友元函数D 定义一个复数类类型转换函数8一个类的析构函数通常被定义为该类的()成员。名程 A私有B保护C友元D公有课 9以下哪个基类中的成员函数表示纯虚函数?()A virtual void fun()=0B. void fun(int) = 0院 C virtual void fun(int)D. virtual void fun(int)学 10关于 const型数据的描述,正确的是()。信通A常对象中不能定义常数据成员B常成员函数只能引用本类的数据成员C指向对象的常指针的值可以重新赋值与D 常对象的数据成员不一定是常数据成员机算 计 )院(系三、简答题(每小题8 分,共 24 分

7、)1什么是类?什么是对象?什么是面向对象的程序设计?答:(评分标准:前2 个知识点每个2 分,后一个知识点4 分。不完全正确,适当扣分,等价写法给满分)类:是指具有相同的属性和操作方法,并遵守相同规则的对象的集合。对象:是包含现实世界物体特征的抽象实体,每个对象有内部的属性和操作方法。面向对象的程序设计:它的整个程序由一系列相互作用的对象构成,对象之间的交互通过发送消息来实现,对象通过响应消息来实现程序的功能。2在 VC+6.0 中,模态对话框和非模态对话框的主要区别是什么?答:(评分标准:每个知识点4 分,不完全正确,适当扣分,等价写法给满分)主要区别:模态对话框使用DoModal ()来启

8、动,它垄断了消息循环,它只有在关闭后,才能返回应用程序。非模态对话框使用Create()函数来产生,用DestroyWindow ()函数来关闭。它与应用程序共用一个消息循环,它产生后,应用程序一样可以接收消息循环。构造函数和析构函数的作用是什么?什么时候需要自己定义构造函数和析构函数?答:(评分标准:每个知识点各 2 分,不完全正确,适当扣分,等价写法给满分)构造函数的作用:用于新建对象的初始化工作。析构函数的作用:用于在撤销对象前,完成一些清理工作,比如:释放内存等。每当创建对象时,需要添加初始化代码时,则需要定义自己的构造函数;对象撤销时,需要自己添加清理工作的代码时,则需要定义自己的析

9、构函数。四、阅读下面程序,写出程序运行的结果。(共26 分)1程序 1( 6 分)#include #include using namespace std;class Studentpublic:string name;static int Sum;Student(string n) name = n; Sum+=FindSum(name); coutcon:1.endl;Student(Student &s) name = ; Sum+=FindSum(name);coutcon:2.=a)&(*p=z) i+; return i;int Student:Sum = 0;int

10、 main() Student s1(XiaoWang);Student s2=s1;号 couts1.Sum endl;学 return 0;( 评分标准: 6 分,每对一个得2 分 )答:程序运行结果为:con:1.con:2.122. 程序 2( 10 分)#include 纸名 using namespace std;姓 class Point卷public:virtual void Draw() cout Draw Point. endl;virtual Point() ;试;试级 class Circle: public Point 考班 线public:封void Draw()

11、cout Draw Circle. endl; 学计 密Circle() cout Del Circle. endl; 大设 ;序 class Rectangle : public Point 业程 public:工象 对void Draw() cout Draw Rectangle. endl; Rectangle() cout Del Rectangle. Draw();名 pt = &vp;pt-Draw();程 pt = new Rectangle; pt-Draw(); delete pt;课 return 0;院 答:程序运行结果为:(评分标准:共 10 分,每对一个得 2 分)

12、学 Draw Circle.信 Draw Point.通 Draw Rectangle.与 Del Rectangle.机 Del Circle.算 计 )院(系页共3页程序 3( 10 分)#include using namespace std;class Bookpublic:Book( )coutcreate Book. endl;Book(int size) coutcreate Book:sizeendl;Book( )coutdelete Book.endl;class Notepublic:Note(int color=255) coutcreate Note:colorend

13、l;Note( )coutdelete Note.endl;class Notebook:public Book,public Note五、编程题( 20 分)3 页共 3页设计一个基本账户类Account 。公用的成员变量有:Num(账号, int(余额,型), Balancefloat 型),私有的成员变量有:Name(储户姓名, string型),公用的成员函数存款,函数原型:SaveBal ( float B )。 Account类的构造函数原型为:号 Account(int N=123,string Nam=,floatB=0.0 ) 。要求:学 ( 1)编写类 Account及其成

14、员函数。( 2)从 Account 类中派生出子账户类SubAccount ,新增公有数据成员:SubName(子账户姓名, string型), pSub (指向子账户的指针变量,子账户类型也是 int型,在构造函数中,判断子账户姓名不为空,则动态生成一个用该指针指向的子账户)。在该类的虚析构函数中要对 pSub 进行清理。 SubAccount 类的构造函数原型为:SubAccount(int N,stringNam,string SNam,float B)( 3)编写一个主程序,定义一个SubAccount 类对象。其中:SubAccount类对象的参数依次为: (234,Zhang,Xi

15、aoZhang,100.0),并且对该对象存款 100 。名 ( 4)定义一个输出文件纸OutF.dat ,把该对象的账号、子账户名和余额输出到这个文件中。姓编程解答: (请注意,程序代码分 2栏写在下面空白处 )参考代码:class SubAccount:public Account卷public:Notebook(int p ):member( ), Note( ),Book(p)coutcreate Notebook.endl;Notebook( )coutdelete Notebook.endl; private:Book member;int main( ) Note n(2); N

16、otebook nb(4);return 0;答:程序运行结果为:(评分标准:共10 分,每对一个得1 分)create Note:2create Book:4create Note:255create Book.create Notebook.delete Notebook.delete Book.delete Note.delete Book.delete Note.评分标准:写出 2 个类分别得 7 分,编出 main()函数得 6 分。注意:程序的所有等价写法同样给分,不完全正确酌情扣分。#include #include #include using namespace std;cl

17、ass Account private:string Name;public:int Num;float Balance;Account(int N=123,string Nam=,float B=0.0 )Num=N;Name = Nam;Balance = B;void SaveBal(float B) Balance += B;public:试string SubName;int *pSub; 试级 班线SubAccount(int N,string Nam,string考封SNam,float B):Account(N,Nam,B)学计 密设SubName = SNam; pSub =NULL;大序 业程 ifp

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论