深圳大学C++期末考试试卷及答案.pdf
《深圳大学C++期末考试试卷及答案.pdf》由会员分享,可在线阅读,更多相关《深圳大学C++期末考试试卷及答案.pdf(14页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、深圳大学期末考试试卷开/闭卷 闭卷 A/B卷A 卷课程编号 课程名称 面向对象程序设计 学分 2.5命题人(签字)张冰 审题人(签字)邹.需.住.(鼠趣EM郝超)聚题号二三四五六七八九十基本题总分附加题得分评卷人-、单项选择题(每 题 2 分,共 4 0 分)1 .不是属于面向对象程序设计的特性A.抽象性 B.数据相关性 C.多态性 D.继承性2 .将对某一类数据的处理算法应用到另一类数据的处理中,要用到C+的A.类 B.虚函数 C.运算符重载 D.模板3 .C+与 C语言最根本的不同之处在于A.使用了类 B.能够实现变量自动初始化C.支持软件重用 D.支持接口重用4 .动态内存分配的主要目的
2、是A.使程序按动态联编方式运行 B.正确合理的使用内存C.提高程序的运行速度 D.提高程序的可维护性5 .在 C+函数的形参前加c o n s t 关键字,是为了提高函数的A.数据封装性 B.可理解性 C.可维护性 D.可重用性6 .函数重载的目的是A.实现共享 B.使用方便,提高可读性 C.提高速度 D,减少空间7 .从程序片断:c ha r n a m e =C+”;c o u r s e (n a m e);可判断函数c o u r s e 的调用采用的是A.传值调用 B.带缺省参数值的函数调用C.引用调用 D.传址调用8 .用来说明类中公有成员的关键字是A.p u b l i c B.
3、p r i v a t eC.p r o t e c t e dD.f r i e n d9 .如果一个类的成员函数p r i n t。不修改类的数据成员值,则应将其声明为A.v o i d p r i n t ()c o n s t;C.v o i d c o n s t p r i n t();B.c o n s t v o i d p r i n t ();D.v o i d p r i n t(c o n s t);1 0 .下列关于构造函数的论述中,不正确的是A.构造函数的函数名与类名相同C.构造函数的返回类型缺省为i n t 型B.构造函数可以设置默认参数D.构造函数可以重载1 1
4、 .在程序代码:A:A(i n t a,i n t *b)t h is-x =a;t h is-y =b;中,t h is 的类型是A.in t B.in t *C.A D.A *1 2 .内存泄漏是指A.内存中的数据出现丢失 B.试图释放一个已经释放了的动态分配的堆内存C.函数中局部变量所占的栈内存没有及时回收I).动态分配的堆内存在程序退出后始终被占用1 3 .从程序片断:s t u de n t z h an g s an(张三,M ,2 2);z h an g s an.id(2 0 0 5 1 3 1 0 0 0”);可判断 id 是一个_A.私有成员数据 B.私有成员函数 C.公有
5、成员数据 D.公有成员函数1 4 .友元函数A.可以被声明为c o n s t B.没有t h is 指针C.可以用类名或对象名来调用 D.只能用对象名来调用1 5 .若一个类的成员函数前用s t at ic 关键字修饰,则该成员函数A.可以被声明为c o n s t B.没有t h is 指针C.可以访问该类的所有成员 D.只能用对象名来调用1 6 .C+是用 实现接口重用的A.内联函数 B.虚函数 C.重载函数 D.模板函数1 7 .公有继承的派生类对象可以访问其基类的A.公有成员 B.公有成员及受保护成员 C.受保护成员 D.私有成员1 8 .设置虚基类的目的是A.简化程序 B.使程序按
6、动态联编方式运行 C.提高程序运行效率 D.消除二义性1 9 .下列关于纯虚函数和抽象类的描述中,不正确的是A.纯虚函数是一个没有具体实现的虚函数B.抽象类是包括纯虚函数的类C.抽象类只能作为基类,其纯虚函数的实现在派生类中给出D.可以定义一个抽象类的对象2 0.关于运算符重载的不正确的描述是A.运算符重载函数是友元函数 B.体现了程序设计的多态性C.增加新的运算符 D.使运算符能对对象操作二、下面的程序是关于CBook类的一个定义,试改正程序中的错误。(共10分)t t in c l u de in c l u de t t in l c u de c l as s C B o o k(pr
7、 iv at e:c h ar *p_b o o k;pu b l ic:p_b o o k=n e w c h ar s t r l e n(p_v al)+1 C B o o k (c o n s t c h ar *p_v al)p_b o o k =n e w c h ar s t r l e n (p_v al);s t r c py (p_b o o k,p_v al);v o id pr in t()c o n s t c o u t pr in t();)三、根据如下所示程序,回答下列问题(共10分)#in c l u de c l as s C J o u r n al(pu
8、 b l ic:C J o u r n al ()c o u t u J o u r n al de f au l t c o n s t r u c t o r e n dl;v ir t u al v o id s u b s c r ib e()=0;v o id r e ad()c o u t R e ad pape r”e n dl;“C J o u r n al()c o u t aJ o u r n al de f au l t de s t r u c t o r e n dl;;c l as s C C o m pu t e r De s ig n :pu b l ic C
9、J o u r n al(pu b l ic:C C o m pu t e r De s ig n ()c o u t “C o m pu t e r De s ig n de f au l t c o n s t r u c t o r e n dl;v ir t u al v o id s u b s c r ib e()c o u t aSu b s c r ib in g C o m pu t e r De s ig n“e n dl;v o id r e ad()c o u t R e adin gC o m pu t e r De s ig n”e n dl;C C o m pu
10、t e r De s ig n()c o u t “C o m pu t e r De s ig n de f au l t de s t r u c t o r s u b s c r ib e();p_j o u r n al-r e ad();)1.当程序运行到处时,写出程序运行的输出结果(3分)2 .当程序结束时,程序会在第1问的基础上增加哪些输出。(4分)3 .若在主函数中定义一个对象C J o u r n al j o u r n al;程序编译时会否出错?为什么?(3分)四、编程题(共40分)1.定义一个商品类CGoods,其中包含商品号(long no)商品名(char*p_n
11、ame)、商品价格(double price)三个数据成员,以及相应的构造函数、拷贝构造函数、析构函数、打印数据成员的成员函数。(10分)Sinclude Sinclude using namespace std;class CCourse(private:long no;char*p_name;float credit;public:CCourse(long no_val,char p_val,float credit_val);CCourse(const CCourse&r_course);CCourse()delete p_name;void print()const;;CCourse:
12、CCourse(long no_val,char p_val,float credit_val)(no=no_val;p_name=new charEstrlen(p_val)+1;strcpy(p_name,p_val);credit=credit_val;)CCourse:CCourse(const CCourse&r_course)(no=r_course.no;p_name=new charstrlen(r_course.p_name)+l;strcpy(p_name,r_course.p_name);credit=r_course.credit;)void CCourse:print
13、()const(cout,zCourse number,noendl;cout,Course namez,p_nameend 1;cout,zCourse creditz,creditendl;2 .为 C G o o ds 类增加一个商品总数(i n t c o u n t)数据成员,并增加一个成员函数g e t C o u n t。获取c o u n t 的值,编写一个友元函数g e t Nam e O获取商品名称p j n am e。做如上修改后,重新实现C G o o ds 类(与第1 问相同的不用再重复)。(10 分)3 .为 C G o o ds 类定义小于运算符(=)两个运算符重
14、载函数。C G o o ds 类对象大小的比较是根据其商品价格(p r i c e)的值的大小来实现的。(与 第 2问相同的不用再重复)(10 分)4.以C G o o ds 类为基类,派生出服装类C C l o t h e s 和食品类C F o o d两个派生类,并在这两个类中分别增加一个表示品牌的指针数据成员(c h ar *p _ br an d)和表示用途的成员函数(v o i d u s e dF o r O可分别输出一条表示服装和食品用函的信息)。写出C C l o t h e s 类和C F o o d类的完整定义(包括构造、析构和u s e dF o r。成员函数的实现)。(
15、10 分)五、附加题(共30分。注意:确保基本题成绩能达到75分以上,再尝试做附加题!)1.在基本题第四题的基础上,在 C G o o ds 类增加总商品数(l o n g t o t al _ g o o ds)和商品总价格(do u bl e t o t al _ p r i c e)两个数据成员,以及相应的获取这两个数据成员值的成员函数g e t To t al G o o ds O和 g e t To t al Pr i.e e()。(注意说明数据成员和成员函数的存储类型,以便能够用类名来调用g e t To t al G o o ds ()和 g e t To t al Pr i c
16、 e ()这两个函数)。为了能够采用动态联编的方式调用派生类的u s e dF o r。成员函数,应该在C G o o ds 类及其派生类C C l o t h e s 和C F o o d类中作何改动?(15 分)2.编写一个实现两个数交换的函数模板s w ap,然后使用该函数模板再编写一个对具有n个数组元素(通用类型)的数组采用冒泡排序算法进行排序的函数模板。(15 分)试卷参考答案一、单项选择题1-5.B D A B C 6-10.B D A A C11-15.C A D B B 16-2 0.C A D D A(每小题答对2分,不答。分,答错0 分)/i n c l u de 改为#i
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 深圳大学 C+ 期末考试 试卷 答案
限制150内