版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有各类专业好文档,值得你下载,教育,管理,论文,制度,方案手册,应有尽有课程名称:面向对象程序设计(A卷闭卷)适用专业年级:计算机科学与技术09级考试时间:100分钟(参考解答)题号一二三四五六七八九十总分统分人签名题分102410261020100得分考生注意事项:1、本试卷共3页,试卷如有缺页或破损,请立即举手报告以便更换。2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。(答案请写在密封线内和答卷正面,否则不记分)一、判断题,正确的在下列表格中打√,错误的打×(每小题1分,共10分)12345678910√×√√√√××××1.在C++中,标识符Student和student是不一样的。()2.设函数fun()是一个不属于任何类的普通函数,则在调用该函数时只能用fun()方式,而不能用::fun()方式来调用。()3.类的构造函数不能声明为虚构造函数。()4.使用MFC编程时,如果要执行窗体重绘函数OnDraw,可以通过Invalidate或者InvalidateRect函数来实现。()5.char*constp表明p是一个指针,它只能指向一个字符串常量。()6.在定义二维数组时,语句“intSum[][2]={{1,2},{3},{}};”是正确的。()7.在C语言中,不使用命名空间,但在C++程序中,一定要使用命名空间。()8.在C++中,文件的输入输出可以通过iostream类对象来完成。()9.在编程中,有了面向对象的程序设计方法后,就不要用面向过程的程序设计方法了。()10.类中的静态成员数据为该类的所有成员所共享,在初始化后,它的值不能被修改。()二、简答题(每小题8分,共24分)1.什么是类?什么是对象?什么是面向对象程序设计?答:类:是指具有相同的属性和操作方法,并遵守相同规则的对象的集合。(2分)对象:是包含现实世界物体特征的抽象实体,每个对象有内部的属性和操作方法。(2分)面向对象的程序设计:它吸取了面向过程的程序设计的优点,同时又考虑了现实世界和计算机处理的关系,它的整个程序由一系列相互作用的对象构成,对象之间的交互通过发送消息来实现,对象通过响应消息来实现程序的功能。(4分)2.多态性是指什么?编译时的多态性和运行时的多态性在实现方法上有何不同?多态性是指:向不同的对象发送同一个消息,不同的对象在接收时会产生不同的行为(即方法)。(4分)编译多态性也称静态多态性,它是通过函数重载和运算符重载实现的。(2分)运行多态性也称动态多态性,它是通过继承和虚函数来实现的。(2分)3.什么是简单继承?什么是多重继承?如果不想再往下继承的类的功能可以采用什么样的继承方式?简单继承:派生类的基类只有一个的继承方法。(3分)多重继承:派生类的基类同时有多个时的继承方法。(3分)可以采用私有继承方式来隐藏基类的属性。(2分)三、填空题(每空2分,共10分)1.下面递归函数NTimes(n,m)求nm。填充程序中不完整的部分(假设m>=0,否则返回值为0)。intNTimes(intn,intm)//递归函数NTimes(n,m)求nm。解答(1)return1解答(1)return1(2)n*Ntimes(n,m-1)(评分标准:每空2分等价写法给满分)if(m==0)(1);elsereturn(2);}湖南工业大学考试试卷纸系(院)计算机与通信学院课程名称湖南工业大学考试试卷纸系(院)计算机与通信学院课程名称面向对象程序设计班级姓名学号————————————————————————密封线——————————————————————2.下面的函数是判断由pHead所指向的链表是否是循环链表,如果是循环链表,则函数返回1,否则返回0。链表的结构为:structMyLink{intdata;MyLink*Next;};补充程序中不完整的地方。intCheckLink(MyLink*pHead){MyLink*p;解答(3)解答(3)pHead->Next(4)return1(5)p->Next(评分标准:每空2分等价写法给满分) p=____(3)____;while(p!=NULL){if(p==pHead)____(4)____;elsep=____(5)____;}return0;}四、阅读下面的程序,写出程序运行的结果。(共26分)1.程序1(6分)#include<iostream>解答:(评分标准:每对一个得1分解答:(评分标准:每对一个得1分,全对得6分。)程序1的运行结果如下:56961216intmyfun(int&x,int*p){ inti=0; i=x++; i+=(*p)++; return(i);}intmain(){ inta=4,b=5,c; while(b) { c=myfun(a,&b);cout<<a<<""<<b<<""<<c<<endl; if(c>10)b=0; elseb=b+5; } return0;}2.程序2(10分)#include<iostream.h>//Toy-carclassCToy{public: CToy(){cout<<"CreateCToy."<<endl;}CToy(charcolor){cout<<"CreateCToy:"<<color<<endl;} ~CToy(){cout<<"deleteCToy."<<endl; }};classCCar{public: CCar(intTire=4) {cout<<"createCCar:"<<Tire<<endl;} ~CCar(){cout<<"deleteCCar."<<endl; }};classCToy_Car:publicCToy,publicCCar{public: CToy_Car(intp):member(),CCar(p),CToy() {cout<<"createCToy_Car."<<endl;} ~CToy_Car(){cout<<"deleteCToy_Car."<<endl; }private: CToymember;};voidmain(){CToy_Cartoyc(4);2.2.程序2(评分标准:每对一行给1分,全部正确给10分)答:程序运行结果为:CreateCToy.createCCar:4CreateCToy.createCToy_Car.deleteCToy_Car.deleteCToy.deleteCCar.deleteCToy.湖南工业大学考试试卷纸系(院)计算机与通信学院课程名称湖南工业大学考试试卷纸系(院)计算机与通信学院课程名称面向对象程序设计班级姓名学号————————————————————————密封线——————————————————————3.程序3(10分)#include<iostream.h>classPen{public: charcolor; Pen(){cout<<"PenBegin."<<endl;} virtualvoidwrite(){cout<<"Penwrite."<<endl;} voidRewrite(){write();}};classPencil:publicPen{public:virtualvoidwrite(){cout<<"Pencilwrite."<<endl;} };3.3.程序3(评分标准:每对一行给2分)答:程序运行结果为:PenBegin.PenBegin.Penwrite.Pencilwrite.Pencilwrite.{ Pen*pt1,pen1; Pencilpencil1; pt1=&pen1; pt1->write(); pt1=&pencil1; pt1->write(); pt1->Rewrite();}五、理解问答题(10分)说明:读懂如下程序,回答题后的问题。#include<iostream.h>classComplex{private:floatreal,imag;public:Complex(floatr=0,floati=0){real=r;imag=i;}voidDisplay(){cout<<real;if(imag>0)cout<<"+"<<imag<<"i";elseif(imag<0)cout<<imag<<"i";cout<<endl;}Complexoperator+(Complex&b);friendComplexoperator-(Complex&a,Complex&b);};ComplexComplex::operator+(Complex&b){Complex*t=newComplex(___(1)____);//标记行1return*t;//标记行2}Complexoperator-(Complex&a,Complex&b){Complex*t=newComplex(a.real–b.real,a.imag–b.imag);return*t;}voidmain(){Complexc1(4.0,5.0),c2(2.0,-7.0),c3;c3=c1+c2;c3.Display();c3=c1-c2;c3.Display();}请回答的问题:(1)补充程序中标记行1所在的(1)空,使程序完整。(2分)(2)标记行1使用new来创建一个对象,但程序中没有用到delete来销毁对象,程序执行会存在潜在问题。如果不用new语句,改用其他语句来替代标记行1和标记行2所在的语句,使程序功能一致。写出修改后的语句(语句条数不限)。(3分)(3)简述运算符重载函数作为类成员函数和友元函数时的主要区别。(2分)(4)写出程序运行的结果。(3分)湖南工业大学考试试卷纸系(院)计算机与通信学院课程名称湖南工业大学考试试卷纸系(院)计算机与通信学院课程名称面向对象程序设计班级姓名学号————————————————————————密封线——————————————————————解答:解答:(1):(评分标准:程序功能上等价全对得2分)real+b.real,imag+b.imag(2):(评分标准:程序功能上等价得全分3分,如有错,酌情扣分)Complext;t.real=real+b.real;t.image=image+b.image;returnt;(3)(评分标准:每对一个得1分,全对得2分)作为类的成员函数时:第一个参数是类对象本身,要省略。作为友员函数时:参数都要写出来,没有省略的。(4)程序运行的结果为:(评分标准:错一行扣1分,全对得3分)6-2i2+12i六、编程题(20分)定义一辆自行车类Bike,它的公有数据成员有Mode(型号,为string型),Color(颜色,为char型),Price(价格,为float型)。私有的数据成员有Ower(拥有者,为string型)。公用成员函数有:GetOwer(),它返回该车的拥着者Ower;SetOwer(stringOwerValue),它设置该车的拥着者Ower。Bike类的构造函数原型为:Bike(stringBMode="飞鹤2011",charBColor='R',floatBPrice=200.00),初始化Ower为空。要求:(1)编写类Bike,并编写一个主程序,主程序中定义2个自行车对象(其中有一辆车的参数为默认参数,另一辆车参数可以是任意有效值)。(2)重载输出流<<,使它能输出自行车类的对象(即输出Bike类对象的所有数据成员,然后使用该输出流输出前2辆车的基本信息。(3)定义一个输出文件BikeFile.txt,把上述两辆车对象的Ower输出到这个文件中。解答:(全部正确得满分,部分错误,酌情扣分。等价写法给全分)#include<iostream>#include<fstream>#include<string>usingnamespacestd;classBike{ public: stringMode;charColor; floatPrice; private: stringOwer; public: stringGetOwer(){returnOwer;}; voidSetOwer(stringOwerValue){Ower=OwerValue}; Bike(stringBMode="飞鹤2011",c
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年工业元宇宙虚拟会展设计
- 2025年工业余热回收与碳减排应用
- 教学楼施工组织设计方案
- 城市轨道交通运营管理电子教案 8-1 城市轨道交通运营指标体系
- PL技术基础应用 1
- 古诗词诵读 客至(教学课件)-高中语文人教统编版选择性必修下册
- CNG加气机设备维护保养检查表
- 纹唇前的准备工作详解
- 护理专业内科护理学
- 颅内动静脉畸形患者的护理
- 《蒙古国乌兰巴托市空气污染防治问题研究》
- 2024年高考真题-化学(广东卷) 含答案
- 巨人通力电梯-GFS25培训资料-电气部分 -V3.1
- 五年级语文下册总复习:修改病段练习题及参考答案(人教版)
- DZ∕T 0213-2020 矿产地质勘查规范 石灰岩、水泥配料类(正式版)
- 《欣赏建筑之美》参考课件
- 围术期喉痉挛处理
- TN-HDB-0006-HANA中SDA的配置与应用-v0.8
- 龙湖集团工程管理手册
- 榆阳区可可盖煤矿矿山地质环境保护与土地复垦方案
- 部编版四年级道德与法治下册第7课《我们的衣食之源》优质课件(第2课时)
评论
0/150
提交评论