大学C++期末考试试卷(含答案)
C++突击题 2012-06-08
二、下面的程序是关于CBook类的一个定义,试改正程序中的错误。(共10分)
#include
#include
char *p_book; public:
p_book=new char[strlen(p_val)+1]
CBook(const char *p_val) {
p_book = new char[strlen(p_val)]; strcpy(p_book, p_val); }
void print() const { cout << p_book << endl; } ~CBook() {
delete [] p_book; } };
void main(){
char book_title[60]; CBook *p_book_obj;
cout << “Enter book title: ”; cin >> p; CBook abook(p);
p_book_obj = &abook; p_book_obj->print(); }
三、根据如下所示程序,回答下列问题(共10分)
#include
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” << endl; }virtual void subscribe() { cout << “Subscribing 《Computer Design》” << endl; }void read() {cout << “Reading 《Computer Design》” << endl; }
~CComputerDesign() { cout << “《Computer Design》default destructor” << endl; }};
void main(){
CComputerDesign journal1; CJournal *p_journal;
journal1.subscribe(); journal1.read(); // ①
p_journal = &journal1;
-1-
C++突击题 2012-06-08
p_journal->subscribe(); p_journal->read(); }
1.当程序运行到①处时,写出程序运行的输出结果 (3分)
2. 当程序结束时,程序会在第1问的基础上增加哪些输出。 (4分) 3. 若在主函数中定义一个对象CJournal journal;程序编译时会否出错?为什么?(3分)
四、编程题(共40分)
1. 定义一个商品类CGoods,其中包含商品号(long no)、商品名(char *p_name)、商品价格(double price)三个数据成员,以及相应的构造函数、拷贝构造函数、析构函数、打印数据成员的成员函数。(10分) #include
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 char[strlen(p_val)+1]; strcpy(p_name,p_val); credit=credit_val; }
CCourse:CCourse(const CCourse &r_course){ no=r_course.no;
p_name=new char[strlen(r_course.p_name)+1]; strcpy(p_name,r_course.p_name); credit=r_course.credit; }
void CCourse:print() const{
cout<<\ cout<<\ cout<<\ }
2. 为CGoods类增加一个商品总数(int count)数据成员,并增加一个成员函数getCount()获取count的值,编写一个友元函数getName()获取商品名称p_name。做如上修改后,重新实现CGoods类(与第1问相同的不用再重复)。(10分)
3. 为CGoods类定义小于运算符(‘<’)和不小于运算符(‘>=’)两个运算符重载函数。CGoods类对象大小的比较是根据其商品价格(price)的值的大小来实现的。(与第2
-2-
C++突击题 2012-06-08
问相同的不用再重复)(10分)
4. 以CGoods类为基类,派生出服装类CClothes和食品类CFood两个派生类,并在这两个类中分别增加一个表示品牌的指针数据成员(char *p_brand)和表示用途的成员函数(void usedFor()——可分别输出一条表示服装和食品用途的信息)。写出CClothes类和CFood类的完整定义(包括构造、析构和usedFor()成员函数的实现)。(10分)
五、附加题(共30分。注意:确保基本题成绩能达到75分以上,再尝试做附加题!)
1. 在基本题第四题的基础上,在CGoods类增加总商品数(long total_goods)和商品总价格(double total_price)两个数据成员,以及相应的获取这两个数据成员值的成员函数getTotalGoods()和getTotalPrice()。(注意说明数据成员和成员函数的存储类型,以便能够用类名来调用getTotalGoods()和getTotalPrice()这两个函数)。为了能够采用动态联编的方式调用派生类的usedFor()成员函数,应该在CGoods类及其派生类CClothes和CFood类中作何改动? (15分)
2. 编写一个实现两个数交换的函数模板swap,然后使用该函数模板再编写一个对具有n个数组元素(通用类型)的数组采用冒泡排序算法进行排序的函数模板。(15分)
答案 二、
#include
p_book = new char[strlen(p_val)]改为p_book = new char[strlen(p_val)+1] CBook 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
<
(全部答对得3分,答错或漏答一条输出扣1分) 2. Subscribing <
<
(全部答对得4分,答错或漏答一条输出扣1分)
3. 会出错,因为CJournal中包含有纯虚函数,故CJournal是抽象类,不能定义抽象类对象。 (答对编译会出错得1分,答对原因得2分。) 四、
1. #include
char *p_name; float credit; public:
-3-
C++突击题 2012-06-08
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 char[strlen(p_val)+1]; strcpy(p_name, p_val); credit = credit_val; }
CCourse::CCourse(const CCourse &r_course){ no = r_course.no;
p_name = new char[strlen(r_course.p_name)+1]; strcpy(p_name, r_course.p_name); credit = r_course.credit; } …… 此处隐藏:3216字,全部文档内容请下载后查看。喜欢就下载吧 ……
相关推荐:
- [建筑文档]2018年公需课:专业技术人员创新能力与
- [建筑文档]2013年福建教师招考小学数学历年真题
- [建筑文档]高中信息技术课flash知识点总结 - 图文
- [建筑文档]电工实训 - 图文
- [建筑文档]最高院公告案例分析100篇(民商篇)
- [建筑文档]南开中学高2017级14-15学年(上)期末
- [建筑文档]五粮液集团战略分析
- [建筑文档]鲁教版(2012秋季版)九年级化学 酸碱
- [建筑文档]超星尔雅2017中国哲学概论自整理题库答
- [建筑文档]关于成为海口金盘饮料公司材料独家供货
- [建筑文档]LNG学习资料第一册 基础知识 - 图文
- [建筑文档]四年级品社下册《好大一个家》复习资料
- [建筑文档]现阶段领导权力腐败的特点及发展趋势
- [建筑文档]魏晋南北朝诗歌鉴赏—嵇康
- [建筑文档]坚持追求真爱是理智的行为 正方一辩稿
- [建筑文档]湘西州刑释解教人员帮教安置工作存在的
- [建筑文档]园林工程试题库及答案
- [建筑文档]计算机长期没有向WSUS报告状态
- [建筑文档]日语最新流行语
- [建筑文档]B62-016 景观进场交底专题会议
- 2018年中考语文课内外古诗词鉴赏专题复
- 高考试题研究心得体会
- C语言基础题及答案
- 电气控制及PLC习题及答案
- 都昌小学家长学校汇报材料
- GMAT作文模板正确使用方法
- 俄军办坦克大赛:中国99式有望与豹2A6
- 成本会计练习题
- 酒店餐饮业最流行的5S管理方法
- 2014-2015学年山东省菏泽市高二(下)
- 《黄鹤楼送孟浩然之广陵》教案、说课、
- 2013年结构化学自测题 有答案版
- 2011西安世界园艺博览会游览解说词(附
- 窗口文明单位示范单位创建活动总结
- 2018满分超星尔雅就业课后练习期末答案
- 韶山市城市总体规划-基础资料
- 苏教版第三单元知识点归纳
- 第4章 曲轴模态分析
- 加大查办案件力度的思考
- 武汉CPC导轨介绍




