计09面向对象程序设计 考试试卷(A卷).doc

上传人:人*** 文档编号:563304810 上传时间:2022-12-29 格式:DOC 页数:4 大小:82.01KB
返回 下载 相关 举报
计09面向对象程序设计 考试试卷(A卷).doc_第1页
第1页 / 共4页
计09面向对象程序设计 考试试卷(A卷).doc_第2页
第2页 / 共4页
计09面向对象程序设计 考试试卷(A卷).doc_第3页
第3页 / 共4页
计09面向对象程序设计 考试试卷(A卷).doc_第4页
第4页 / 共4页
亲,该文档总共4页,全部预览完了,如果喜欢就下载吧!
资源描述

《计09面向对象程序设计 考试试卷(A卷).doc》由会员分享,可在线阅读,更多相关《计09面向对象程序设计 考试试卷(A卷).doc(4页珍藏版)》请在金锄头文库上搜索。

1、课程名称: 面向对象程序设计 ( A卷 闭卷)适用专业年级:计算机科学与技术09级 考试时间: 100分钟题号一二三四五六七八九十总分统分人 签名题分102410261020100得分考生注意事项:1、本试卷共 4 页,试卷如有缺页或破损,请立即举手报告以便更换。 2、考试结束后,考生不得将试卷、答题纸和草稿纸带出考场。(答案请写在密封线内和答卷正面,否则不记分)一、判断题,正确的在下列表格中打,错误的打(每小题1分,共10分)123456789101在C+中,标识符Student和student是不一样的。( ) 2设函数fun( )是一个不属于任何类的普通函数,则在调用该函数时只能用fun

2、()方式,而不能用:fun()方式来调用。( )3类的构造函数不能声明为虚构造函数。( )4使用MFC编程时,如果要执行窗体重绘函数OnDraw,可以通过Invalidate或者InvalidateRect函数来实现。( )5char *const p 表明p是一个指针,它只能指向一个字符串常量。( )6在定义二维数组时,语句“int Sum2=1,2,3,;”是正确的。( )7在C语言中,不使用命名空间,但在C+程序中,一定要使用命名空间。( )8在C+中,文件的输入输出可以通过iostream类对象来完成。( )9. 在编程中,有了面向对象的程序设计方法后,就不要用面向过程的程序设计方法了

3、。( )10. 类中的静态成员数据为该类的所有成员所共享,在初始化后,它的值不能被修改。( )二、简答题(每小题8分,共24分)1什么是类?什么是对象?什么是面向对象程序设计?答:2多态性是指什么?编译时的多态性和运行时的多态性在实现方法上有何不同?答:3什么是简单继承?什么是多重继承? 如果不想再往下继承的类的功能可以采用什么样的继承方式?答:三、填空题(每空2分,共10分) 1下面递归函数NTimes (n,m)求nm 。填充程序中不完整的部分(假设m=0,否则返回值为0)。int NTimes (int n,int m) /递归函数NTimes (n,m)求nm。解答(1) (2) if

4、 (m0) return 0; if (m=0) (1) ; else return (2) ; 湖南工业大学考试试卷纸系(院) 计算机与通信学院 课程名称 面向对象程序设计 班级 姓名 学号 密封线第 1 页 共 4 页 2.下面的函数是判断由pHead所指向的链表是否是循环链表,如果是循环链表,则函数返回1,否则返回0。链表的结构为:struct MyLinkint data;MyLink *Next;解答(3) (4) (5) 补充程序中不完整的地方。int CheckLink(MyLink *pHead) MyLink *p; if (pHead=NULL) return 0; p =

5、 _(3)_;while (p!=NULL) if(p=pHead) _(4)_; else p = _(5)_; return 0; 四、阅读下面的程序,写出程序运行的结果。(共26分)1程序1(6分)#include 1. 程序1答:程序1的运行结果为:using namespace std;int myfun(int &x,int *p)int i=0;i = x+;i+=(*p)+;return(i);int main()int a=4,b=5,c;while(b)c=myfun(a,&b); couta b c10) b=0;else b=b+5; return 0;2. 程序2(1

6、0分)#include /Toy-carclass CToypublic:CToy( ) coutCreate CToy.endl; CToy(char color) coutCreate CToy:colorendl;CToy( ) coutdelete CToy.endl;class CCarpublic:CCar(int Tire=4)coutcreate CCar:Tireendl;CCar( )coutdelete CCar.endl;class CToy_Car:public CToy,public CCarpublic:CToy_Car(int p ):member(), CCa

7、r(p ),CToy() coutcreate CToy_Car.endl;CToy_Car( )coutdelete CToy_Car.endl;private:CToy member;void main( ) CToy_Car toyc(4); 2. 程序2答:程序2的运行结果为:湖南工业大学考试试卷纸系(院) 计算机与通信学院 课程名称 面向对象程序设计 班级 姓名 学号 密封线第 2 页 共4 页 3. 程序3(10分)#include class Pen public:char color; Pen() coutPen Begin.endl;virtual void write( )

8、 coutPen write.endl; void Rewrite() write();class Pencil: public Penpublic: virtual void write( ) coutPencil write.write();pt1 = &pencil1;pt1-write();pt1-Rewrite();五、理解问答题(10分)说明:读懂如下程序,回答题后的问题。#include class Complex private: float real, imag;public:Complex(float r=0, float i=0 ) real=r; imag=i;void

9、 Display() cout 0) cout+imagi ;else if (imag0) coutimagi ;cout endl;Complex operator+ (Complex &b );friend Complex operator- ( Complex &a, Complex &b ); ; Complex Complex:operator+ (Complex &b) Complex *t = new Complex (_(1)_); /标记行1return *t; /标记行2 Complex operator- ( Complex &a, Complex &b ) Compl

10、ex *t = new Complex (a.real b.real, a.imag b.imag); return *t; void main()Complex c1(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所在的语句,使程序功能一致。写出修改后的语句(语句条数

11、不限)。(3分)(3)简述运算符重载函数作为类成员函数和友元函数时的主要区别。(2分)(4)写出程序运行的结果。(3分)湖南工业大学考试试卷纸系(院) 计算机与通信学院 课程名称 面向对象程序设计 班级 姓名 学号 密封线第 3 页 共 4 页 五、解答:(1)(2)(3) (4) 程序运行的结果为: 六、编程题(20分)定义一辆自行车类Bike,它的公有数据成员有Mode(型号,为string型),Color(颜色,为char型),Price(价格,为float型)。私有的数据成员有Ower(拥有者,为string型)。公用成员函数有:GetOwer( ),它返回该车的拥着者Ower;SetOwer(string OwerValue ),它设置该车的拥着者Ower。Bike类的构造函数原型为:Bike(string BMode=飞鹤2011,char BColor= R, float BPrice=200.00), 初始化Ower为空。要求:(1) 编写类Bike,并编写一个主程序,主程序中定义2个自行车对象(其中有一辆车的参数为默认参数,

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 科普知识

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号