深圳大学2014-2015学年《面向对象程序设计》C期末考试试卷及答案

上传人:宝路 文档编号:12657019 上传时间:2017-10-20 格式:DOC 页数:14 大小:74KB
返回 下载 相关 举报
深圳大学2014-2015学年《面向对象程序设计》C期末考试试卷及答案_第1页
第1页 / 共14页
深圳大学2014-2015学年《面向对象程序设计》C期末考试试卷及答案_第2页
第2页 / 共14页
深圳大学2014-2015学年《面向对象程序设计》C期末考试试卷及答案_第3页
第3页 / 共14页
深圳大学2014-2015学年《面向对象程序设计》C期末考试试卷及答案_第4页
第4页 / 共14页
深圳大学2014-2015学年《面向对象程序设计》C期末考试试卷及答案_第5页
第5页 / 共14页
点击查看更多>>
资源描述

《深圳大学2014-2015学年《面向对象程序设计》C期末考试试卷及答案》由会员分享,可在线阅读,更多相关《深圳大学2014-2015学年《面向对象程序设计》C期末考试试卷及答案(14页珍藏版)》请在金锄头文库上搜索。

1、深圳大学 面向对象程序设计试卷 A 卷 第 1 页 共 14 页深圳大学 2014-2015 学年期末考试试卷一、单项选择题(每题 2 分,共 40 分)1. _不是属于面向对象程序设计的特性A. 抽象性 B. 数据相关性 C. 多态性 D. 继承性2. 将对某一类数据的处理算法应用到另一类数据的处理中,要用到 C+的_A. 类 B. 虚函数 C. 运算符重载 D. 模板3. C+与 C 语言最根本的不同之处在于_A. 使用了类 B. 能够实现变量自动初始化 C. 支持软件重用 D. 支持接口重用4. 动态内存分配的主要目的是_A. 使程序按动态联编方式运行 B. 正确合理的使用内存C. 提高

2、程序的运行速度 D. 提高程序的可维护性5. 在 C+函数的形参前加 const 关键字,是为了提高函数的_A. 数据封装性 B. 可理解性 C. 可维护性 D. 可重用性6. 函数重载的目的是_A. 实现共享 B. 使用方便,提高可读性 C. 提高速度 D. 减少空间7. 从程序片断:char name = C+; course(name);可判断函数 course 的调用采用的是_A. 传值调用 B. 带缺省参数值的函数调用 C. 引用调用 D. 传址调用8. 用来说明类中公有成员的关键字是_A. public B. private C. protected D. friend9. 如果一

3、个类的成员函数 print()不修改类的数据成员值,则应将其声明为A. void print() const; B. const void print();C. void const print(); D. void print(const);10. 下列关于构造函数的论述中,不正确的是_A. 构造函数的函数名与类名相同 B. 构造函数可以设置默认参数C. 构造函数的返回类型缺省为 int 型 D. 构造函数可以重载11. 在程序代码:A:A(int a, int *b) this-x = a; this-y = b; 中,this 的类型是_A. int B. int * C. A D. A

4、 *12. 内存泄漏是指_A. 内存中的数据出现丢失 B.试图释放一个已经释放了的动态分配的堆内存C. 函数中局部变量所占的栈内存没有及时回收 D. 动态分配的堆内存在程序退出后始终被占用13. 从程序片断:student zhangsan(张三,M,22); zhangsan.id(2005131000);可判断 id 是一个_A. 私有成员数据 B. 私有成员函数 C. 公有成员数据 D. 公有成员函数_学院 专业 姓名学号 ( 密 封 线 内 不 答 题 )密封线线深圳大学 面向对象程序设计试卷 A 卷 第 2 页 共 14 页14. 友元函数_A. 可以被声明为 const B. 没有

5、 this 指针C. 可以用类名或对象名来调用 D. 只能用对象名来调用15. 若一个类的成员函数前用 static 关键字修饰,则该成员函数_A. 可以被声明为 const B. 没有 this 指针C. 可以访问该类的所有成员 D. 只能用对象名来调用16. C+是用_实现接口重用的A. 内联函数 B. 虚函数 C. 重载函数 D. 模板函数17. 公有继承的派生类对象可以访问其基类的_A. 公有成员 B. 公有成员及受保护成员 C. 受保护成员 D. 私有成员18. 设置虚基类的目的是_A. 简化程序 B. 使程序按动态联编方式运行 C. 提高程序运行效率 D. 消除二义性19. 下列关

6、于纯虚函数和抽象类的描述中,不正确的是_A. 纯虚函数是一个没有具体实现的虚函数B. 抽象类是包括纯虚函数的类C. 抽象类只能作为基类,其纯虚函数的实现在派生类中给出D. 可以定义一个抽象类的对象20. 关于运算符重载的不正确的描述是_A. 运算符重载函数是友元函数 B. 体现了程序设计的多态性C. 增加新的运算符 D. 使运算符能对对象操作二、下面的程序是关于 CBook 类的一个定义,试改正程序中的错误。 (共 10分)#include #include #inlcude class CBookprivate:char *p_book;public: p_book=new charstrl

7、en(p_val)+1CBook(const char *p_val) p_book = new charstrlen(p_val); strcpy(p_book, p_val); void print() const cout p;CBook abook(p);深圳大学 面向对象程序设计试卷 A 卷 第 3 页 共 14 页p_book_obj = &abook;p_book_obj-print();三、根据如下所示程序,回答下列问题(共 10 分)#include class CJournalpublic:CJournal() cout subscribe();p_journal-read

8、();1.当程序运行到处时,写出程序运行的输出结果 (3 分)2. 当程序结束时,程序会在第 1 问的基础上增加哪些输出。 (4 分)3. 若在主函数中定义一个对象 CJournal journal;程序编译时会否出错?为什么?(3 分)深圳大学 面向对象程序设计试卷 A 卷 第 4 页 共 14 页四、编程题(共 40 分)1. 定义一个商品类 CGoods,其中包含商品号(long no)、商品名(char *p_name)、商品价格(double price)三个数据成员,以及相应的构造函数、拷贝构造函数、析构函数、打印数据成员的成员函数。(10 分)#include #include

9、using namespace std;class CCourseprivate: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:CCourse(long no_val,char p_val,float credit_val)no=no_val;p_name=new charstrlen(p_val)

10、+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)+1;strcpy(p_name,r_course.p_name);credit=r_course.credit;void CCourse:print() constcout=)两个运算符重载函数。CGoods 类对象大小的比较是根据其商品价格(price)的值的大小来实现的。(与第 2 问相同的不用再重复)(10 分)深圳大学

11、 面向对象程序设计试卷 A 卷 第 6 页 共 14 页4. 以 CGoods 类为基类,派生出服装类 CClothes 和食品类 CFood 两个派生类,并在这两个类中分别增加一个表示品牌的指针数据成员(char *p_brand)和表示用途的成员函数(void usedFor()可分别输出一条表示服装和食品用途的信息)。写出 CClothes 类和CFood 类的完整定义(包括构造、析构和 usedFor()成员函数的实现)。(10 分)五、附加题(共 30 分。注意:确保基本题成绩能达到 75 分以上,再尝试做附加题!)1. 在基本题第四题的基础上,在 CGoods 类增加总商品数(lo

12、ng total_goods)和商品总价格(double total_price)两个数据成员,以及相应的获取这两个数据成员值的成员函数 getTotalGoods()和 getTotalPrice()。 (注意说明数据成员和成员函数的存储类型,以便能够用类名来调用 getTotalGoods()和 getTotalPrice()这两个函数) 。为了能够采用动态联编的方式调用派生类的 usedFor()成员函数,应该在 CGoods 类及其派生类CClothes 和 CFood 类中作何改动? (15 分)深圳大学 面向对象程序设计试卷 A 卷 第 7 页 共 14 页2. 编写一个实现两个数

13、交换的函数模板 swap,然后使用该函数模板再编写一个对具有n 个数组元素(通用类型)的数组采用冒泡排序算法进行排序的函数模板。(15 分)试卷参考答案一、单项选择题1-5. BDABC 6-10. BDAAC11-15. CADBB 16-20. CADDA深圳大学 面向对象程序设计试卷 A 卷 第 8 页 共 14 页(每小题答对 2 分,不答 0 分,答错 0 分)二、#include 改为#include p_book = new charstrlen(p_val)改为 p_book = new charstrlen(p_val)+1CBook abook;改为 CBook abook(p);p_book_obj = abook 改为 p_book_obj = &abook;p_book_obj.print()改为 p_book_obj-print();(该对得 2 分,未改或改错得 0 分,正确之处该成错误倒扣 1 分)三、1. Journal default constructor default constructorSubscribing Reading (全部答对得 3

展开阅读全文
相关资源
正为您匹配相似的精品文档
相关搜索

最新文档


当前位置:首页 > 中学教育 > 试题/考题

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