大学C期末考试试卷(含答案).pdf

上传人:文*** 文档编号:88938647 上传时间:2023-05-04 格式:PDF 页数:13 大小:1.23MB
返回 下载 相关 举报
大学C期末考试试卷(含答案).pdf_第1页
第1页 / 共13页
大学C期末考试试卷(含答案).pdf_第2页
第2页 / 共13页
点击查看更多>>
资源描述

《大学C期末考试试卷(含答案).pdf》由会员分享,可在线阅读,更多相关《大学C期末考试试卷(含答案).pdf(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。

1、分)#include#include#inlcude class CBookprivate:char*p_book;public:p_book=new charstrlen(p_val)+lCBook(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/Enter book title:;cin p;

2、CBook abook(p);p_book_obj=&abook;p_book_obj-print();三、根据如下所示程序,回答下列问题(共10分)#include class CJournalpublic: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 CJournalpu

3、blic:CComputerDesign()cout Computer Designdefault constructor endl;Jvirtual void subscribe()cout /Subscribing Computer Design endl;void read()cout /Reading Computer Design endl;CComputerDesign()cout Computer Designdefault destructor”endl;void main()CComputerDesign journall;CJournal*pjournal;journall

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

5、ss CCourseprivate:long no;char*p_name;float credit;public:CCourse(long no_valzchar 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)+l;strcpy(p_name7 p_va I)

6、;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()constcoutCourse numbernoendl;coutCourse namep_nameendl;coutCourse creditcreditendl;2.为CGoods类增加一个商品总数(int coun

7、t)数据成员,并增加一个成员函数getCount。获取count的值,编写一个友元函数getName()获取商品名称p_name0做如上修改后,重新实现CGoods类(与第1 问相同的不用再重复)。(10分)3.为CGoods类定义小于运算符(N)和不小于运算符(,=,)两个运算符重载函数。CGoods类对象大小的比较是根据其商品价格(price)的值的大小来实现的。(与第2 问相同的不用再重复)(10分)五、附加题(共30分。注意:确保基本题成绩能达到75分以上,再尝试做附加题!)1.在基本题第四题的基础上,在 CGoods类增力口总商品数(longtotal_goods)和商品总价格(do

8、ubletotal_price)两个数据成员,以及相应的获取这两个数据成员值的成员函数getTotalGoods。和 getTotalPrice()o(注意说明数据成员和成员函数的存储类型,以便能够用类名来调用getTotalGoods()和 getTotalPrice()这两个函数)。为了能够采用动态联编的方式调用派生类的usedFor()成员函数,应该在CGoods类及其派生类CCIothes和 CFood类中作何改动?(15分)2.编写一个实现两个数交换的函数模板sw ap,然后使用该函数模板再编写一个对具有n 个数组元素(通用类型)的数组采用冒泡排序算法进行排序的函数模板。(15分)答

9、案、#include 改为#include p_book=new charstrlen(p_val)改为 p_book=new charstrlen(p_val)+lCBookabook;改为 CBook abook(p);p_book_obj=abook 改为 p_book_obj=&abook;p_book_obj.print。改为 p_book_obj-print();(该对得2 分,未改或改错得。分,正确之处该成错误倒扣1 分)1.Journal default constructorComputer Design default constructorSubscribing Comp

10、uter DesignReading Computer Design(全部答对得3 分,答错或漏答一条输出扣1 分)2.Subscribing Computer DesignReading paperComputer Design default destructorJournal default destructor(全部答对得4 分,答错或漏答一条输出扣1 分)3.会出错,因为Qournal中包含有纯虚函数,故Qournal是抽象类,不能定义抽象类对象。(答对编译会出错得1 分,答对原因得2 分。)四、1.#include#include using namespace std;class

11、 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;strcpy(p_name,p_val);credit=credit_val;CCourse:CCourse(const CCourse&r_course)no=r_course.no;p_name=new charstrlen(r_cours

12、e.p_name)+l;strcpy(p_name,r_course.p_name);credit=r_course.credit;void CCourse:print()constcout Course number:no endl;cout Course name:p_name endl;cout Course credit:credit endl;(数据成员定义正确得2分,部分正确得1分,不正确得0分每个成员函数定义正确得2分,每个成员函数有小错误扣1分,完全不正确不得分)2.在class CCourse定义中增加一条:private:static int total_course;(答

13、对得1 分,未加static得 0 分)在类外部增加一条:int CCourse:total_course=0;(答对得1 分,答错或漏答得0 分)在 CCourse类的构造函数中增加一条:total_course+;(答对得 1 分)在 CCourse类的拷贝构造函数中增加一条:total_course+;(答对得 1 分)在 CCourse类的析构函数中增加一条:total_course-;(答对得 1 分)在 class CCourse定义中增加一条:public:static getTotalCourse()return total_course;(答对得2 分,未 加 static得

14、 1 分)在 class CCourse定义中增加一条:friend char*getCourseName(const CCourse&r_course);(答对得1 分,未加friend得。分)在类外部定义:char*getCourseName(const CCourse&r_course)return r_course.p_name;(答对得 2 分)3.在class CCourse定义中增加一条:public:bool operator(const CCourse&r_course);(答对得2 分)在类外部定义:bool CCourse:operator(const CCourse&r

15、_course)if(credit=(const CCourse&r_course);(答对得 2 分)在类外部定义:bool CCourse:operator=(const CCourse&r_course)if(credit=r_course.credit)return true;elsereturn false;)(答对得3 分)4.class CHLP:public CCourseprivate:char*p_openby;public:CHLP(long no_val,char*p_val,float credit_val,char*p_open):CCourse(no_val,p_

16、val,credit_val)p_openby=new charstrlen(p_open)+l;strcpy(p_openby,p_open);CHLP()delete p_openby;void studyFor()cout Study for structured programming endl;(答对得5 分,其中构造函数3 分,析构函数1 分,studyFor()函数1 分)class COOP:public CCourseprivate:char*p_openby;public:COOP(long no_val,char*p_val,float credit_val,char*p

17、_open):CCourse(no_val/p_val/credit_val)p_openby=new charstrlen(p_open)+l;strcpy(p_openby,p_open);)COOP()delete p_openby;void studyFor()cout Study for object oriented programming endl;(答对得5 分,其中构造函数3 分,析构函数1 分,studyFor()函数1 分)五、1.在class CCourse定义中增加一条:public:virtual void studyFor()cout study for degr

18、een;(答对得2 分)增加:#include 主函数可定义为:void main()cout Select course:n;cout 1.for High Level Language Programmingn;cout 2.for Object Oriented Programmingn;cin choice;cout Enter course number:cin id;cout Enter credit:cin credit;cout Enter instructor name:cin instructor;switch(choice)case I1:p_course=new CHL

19、P(id,高级语言程序设计,credit,instructor);break;case 2:p_course=new COOP(id,面向对象程序设计,credit,instructor);break;default:exit(O);p_course-studyFor();delete p_course;)(答对得13分)2.#include using namespace std;template void swap(T&a,T&b)T temp;temp=a;a=b;b=temp;)template void bubbleSort(T a,int n)int i,j;for(i=l;i n;i+)for(j=0;j aj+l)swap(aj,ab+1);template void print(Tl a,int n)for(int i=0;i n;i+)cout ai double b=2.3,3.2,1.6,-6.0,4.3,2.2;printfa,6);bubbleSort(a7 6);print(a,6);print(b,6);bubbleSort(b,6);print(b,6);

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

当前位置:首页 > 教育专区 > 教案示例

本站为文档C TO C交易模式,本站只提供存储空间、用户上传的文档直接被用户下载,本站只是中间服务平台,本站所有文档下载所得的收益归上传人(含作者)所有。本站仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。若文档所含内容侵犯了您的版权或隐私,请立即通知淘文阁网,我们立即给予删除!客服QQ:136780468 微信:18945177775 电话:18904686070

工信部备案号:黑ICP备15003705号© 2020-2023 www.taowenge.com 淘文阁