(完整word版)C++期末考试试卷及答案

上传人:桔**** 文档编号:458943241 上传时间:2023-04-25 格式:DOC 页数:16 大小:113KB
返回 下载 相关 举报
(完整word版)C++期末考试试卷及答案_第1页
第1页 / 共16页
(完整word版)C++期末考试试卷及答案_第2页
第2页 / 共16页
(完整word版)C++期末考试试卷及答案_第3页
第3页 / 共16页
(完整word版)C++期末考试试卷及答案_第4页
第4页 / 共16页
(完整word版)C++期末考试试卷及答案_第5页
第5页 / 共16页
点击查看更多>>
资源描述

《(完整word版)C++期末考试试卷及答案》由会员分享,可在线阅读,更多相关《(完整word版)C++期末考试试卷及答案(16页珍藏版)》请在金锄头文库上搜索。

1、A. 抽象性B.数据相关性C.多态性D.继承2将对某一类数据的处理算法应用到另一类数据的处理中,要用到C+的A. 类B.虚函数C.运算符重载D.模板C+期末考试试卷及答案1、单项选择题(每题2分,共40分)1.不是属于面向对象程序设计的特性3. C+与C语言最根本的不同之处在于A. 使用了类 B.能够实现变量自动初始化C.支持软件重用D.支持接口重用4. 动态内存分配的主要目的是A.使程序按动态联编方式运行B.正确合理的使用内存C.提高程序的运行速度D.提高程序的可维护性5. 在C+函数的形参前加const关键字,是为了提高函数的A. 数据封装性 B.可理解性C.可维护性D.可重用性6.函数重

2、载的目的是A. 实现共享 B.使用方便,提高可读性C.提高速度D.减少空7.从程序片断: char n ame=C+; course( name);可判断函数course的调用采用的A. 传值调用 B.带缺省参数值的函数调用C.引用调用D.传址调用8. 用来说明类中公有成员的关键字是9. 如果一个类的成员函数 print() 不修改类的数据成员值,则应将其声明为A. void print() const; B. const void print();C. void const print(); D. void print(const);10. 下列关于构造函数的论述中 , 不正确的是 A. 构

3、造函数的函数名与类名相同 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 *试图释放一个已经释放了的动态分D. 动态分配的堆内存在程序退出后C. 公有成员数据 D. 公有没有 this 指针只能用对象名来调用则该成员函数 没有 this 指针只能用对象名来调用重载函数 D. 模板函12. 内存泄漏是指 A. 内存中的数据出现丢失 B. 配的堆内存C. 函数中局部变量

4、所占的栈内存没有及时回收 始终被占用A. 私有成员数据 B. 私有成员函数 成员函数14. 友元函数 A. 可以被声明为 const B.C. 可以用类名或对象名来调用 D.15. 若一个类的成员函数前用 static 关键字修饰,A. 可以被声明为 const B.C. 可以访问该类的所有成员 D.16. C+ 是用 实现接口重用的A. 内联函数 B. 虚函数 C.17. 公有继承的派生类对象可以访问其基类的 A. 公有成员 B. 公有成员及受保护成员 C. 受保护成员 D. 私有成 员18. 设置虚基类的目的是 A. 简化程序 B. 使程序按动态联编方式运行 C. 提高程序运行效率 D.

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

6、n(p_val)+1CBook(const char *p_val) p_book = new charstrlen(p_val); strcpy(p_book, p_val); void print() const cout p_book endl; CBook() delete p_book; ;void main()char book_title60;CBook *p_book_obj;cout p;CBook abook(p);p_book_obj = &abook; p_book_obj-print();三、根据如下所示程序,回答下列问题(共 10分) #include class

7、CJournal public:CJournal () cout “ Journal default constructor ” endl; virtual void subscribe() = 0;void read () cout “ Read paper ” endl; CJournal () cout “ Journal default destructor” endl; ;class CComputerDesign : public CJournal public:CComputerDesign () cout “Computer Design default constructor

8、 ” endl; virtual void subscribe () cout “Subscribing Computer Design ” endl; void read () cout “ Reading Computer Design ” endl; CComputerDesign() cout “Computer Design default destructor ” subscribe(); p_journal-read();1. 当程序运行到处时,写出程序运行的输出结果(3分)2. 当程序结束时,程序会在第 1问的基础上增加哪些输出。 (4 分)3. 若在主函数中定义一个对象 CJ

9、ournal journal; 程序编译时会否出错?为什么? (3 分)四、编程题 (共 40分)1. 定义一个商品类 CGoods其中包含商品号(Iong no)、商品名(char *p_name)、商品价格 (double price) 三个数据成员,以及相应的构造函数、拷贝构造函数、析构函数、打印数据成员的 成员函数。 (10 分)#incIude #incIude using namespace std; cIass CCourseprivate:Iong no;char *p_name;fIoat credit;pubIic:CCourse(Iong no_vaI,char p_va

10、I,fIoat credit_vaI);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)+1;strcpy(p_name,p_val); credit=credit_val;CCourse:CCourse(const CCourse &r_course)no=r_course.no; p_name=new c

11、harstrlen(r_course.p_name)+1; strcpy(p_name,r_course.p_name);credit=r_course.credit;void CCourse:print() constcoutCourse numbernoendl;coutCourse namep_nameendl; coutCourse creditcreditendl;2. 为CGoods类增加一个商品总数(int count)数据成员,并增加一个成员函数 getCount()获取 count的值,编写一个友元函数getName()获取商品名称p_name做如上修改后,重新实现CGood

12、s 类(与第 1问相同的不用再重复 )。(10 分)3. 为CGoods类定义小于运算符(=)两个运算符重载函数。CGoods 类对象大小的比较是根据其商品价格 (price) 的值的大小来实现的。 (与第 2 问相同的不用再重 复)(10 分 )4. 以CGoods类为基类,派生出服装类 CClothes和食品类CFood两个派生类,并在这两个类中 分别增加一个表示品牌的指针数据成员 (char *p_brand) 和表示用途的成员函数 (void usedFor() 可分别输出一条表示服装和食品用途的信息 )。写出CClothes类和CFood类的完整定义(包括 构造、析构和 usedFo

13、r() 成员函数的实现 )。 (10 分)五、附加题(共 30分。注意:确保基本题成绩能达到 75分以上,再尝试做附加题! )1. 在基本题第四题的基础上,在CGoodi类增加总商品数(long total_goods)和商品总价格(double total_price) 两个数据成员,以及相应的获取这两个数据成员值的成员函数 getTotalGoods() 和 getTotalPrice() 。(注意说明数据成员和成员函数的存储类型, 以便能够用类名来调用 getTotalGoods() 和 getTotalPrice() 这两个函数)。为了能够采用动态联编的方式调用派生类的 usedFor()成员函数,应该在 CGoods类及其派生类 CClothes和CFood类中作何改动? (15分)2. 编写一个实现两个数交换的函数模板 swap,然后使用该函数模板再编写一个对具有 n个数组元素(通用类型)的数组采用冒泡排序算法进行排序的函数模板。(15 分)试卷参考答案一、单项选择题1-5. BDABC 6-10. BDAAC11-15. CADBB 16-20. CADDA( 每小题答对 2 分,不答 0 分,答错 0 分 )#include 改为

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

当前位置:首页 > 商业/管理/HR > 商业计划书

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