2022年c程序设计期末考试样卷及答案.docx

上传人:C****o 文档编号:12786269 上传时间:2022-04-26 格式:DOCX 页数:17 大小:55.62KB
返回 下载 相关 举报
2022年c程序设计期末考试样卷及答案.docx_第1页
第1页 / 共17页
2022年c程序设计期末考试样卷及答案.docx_第2页
第2页 / 共17页
点击查看更多>>
资源描述

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

1、精品学习资源封面欢迎下载精品学习资源作者: PanHongliang仅供个人学习样卷及答案C+语言程序设计期末考试日期: XXXX.XX.XX欢迎下载精品学习资源开卷笔试考试时间: 120分钟欢迎下载精品学习资源姓名 学号 班号 欢迎下载精品学习资源题 号一二( 1 )二( 2 )三总 分成 绩一、填空2 假如需要在被调函数运行期间,转变主调函数中实参变量的值,就函数的形参应当是引用类型或指针类型 .3 抽象类只能作为基类使用,而不能声明它的对象.4 进行函数重载时,被重载的同名函数假如都没有用const修饰,就它们的形参个数或类型必需不同 .5 通过一个常 对象只能调用它的常成员函数,不能调

2、用其他成员函数.6 函数的递归调用是指函数直接或间接地调用自身.7 拷贝构造函数的形参必需是本类对象的引用.1 在类中必需声明成员函数的原型,成员函数的实现部分可以写在类外.二、阅读以下程序,写出其运行时的输出结果假如程序运行时会显现错误,请简要描述错误缘由 .1 请在以下两题中任选一题,该题得分即为本小题得分.如两题都答,就取两题得分之平均值为本小题得分 .(1 )程序: #include #include class Base private:char msg30;protected:int n;public:Basechar s,int m=0:nm strcpymsg,s;void o

3、utputvoid欢迎下载精品学习资源 coutnendlmsgendl; ;class Derived1:public Baseprivate:int n;public:Derived1int m=1:BaseBase,m-1 n=m; void outputvoid coutnendl;Base:output; ;class Derived2:public Derived1private:int n;public:Derived2int m=2:Derived1m-1 n=m; void outputvoid coutnendl;Derived1:output; ;void mainvoi

4、d欢迎下载精品学习资源Base BBase Class,1;Derived2 D;B.output;D.output;运行结果:1Base Class 210Base(2 )程序: #include class Samppublic:void Setijint a,int bi=a,j=b;Samp coutDestroying.iendl;int GetMutireturn i*j; protected:int i;int j; ;int mainSamp *p;p=new Samp5;欢迎下载精品学习资源if.p coutAllocation errorn;return 1;forint

5、j=0;j5;j+ pj.Setijj,j;forint k=0;k5 ;k+ coutMutik is:pk.GetMutiendl;deletep;return 0;运行结果: Muti0 is:0 Muti1 is:1 Muti2 is:4 Muti3 is:9 Muti4 is:16 Destroying.4 Destroying.3 Destroying.2 Destroying.1 Destroying.02 请在以下两题中任选一题,该题得分即为本小题得分.如两题都答,就取两题得分之平均值为本小题得分 .(1 )程序: #include #include class Vector欢

6、迎下载精品学习资源public:Vectorint s=100int& Elemint ndx;void Displayvoid;void SetvoidVectorvoid;protected:int size;int *buffer; ;Vector:Vectorint sbuffer=new intsize=s;int& Vector:Elemint ndxifndx=sizecouterror in indexendl;exit1;return bufferndx;void Vector:Displayvoidforint j=0; jsize; j+ coutElemjendl;vo

7、id Vector:Setvoid欢迎下载精品学习资源forint j=0; jsize; j+ Elemj=j+1;Vector:Vectorvoiddelete buffer;void mainVector a10;Vector ba;a.Set;b.Display;运行结果:12345678910最终显现错误信息,缘由是:声明对象b 是进行的是浅拷贝, b 与 a 共用同一个 buffer, 程序终止前调用析构函数时对同一内存区进行了两次释放.(2 )程序: #include class CAT欢迎下载精品学习资源public:CAT;CATconst &CAT;CAT;int GetA

8、ge return *itsAge; void SetAge int age *itsAge=age; protected:int * itsAge; ;CAT:CATitsAge=new int;*itsAge=5; CAT:CATdelete itsAge;itsAge=NULL;void mainCAT a ;coutas age:a.GetAgeendl;a.SetAge6;CAT ba;coutas age:a.GetAgeendl;coutbs age:b.GetAgeendl;a.SetAge7;欢迎下载精品学习资源coutas age:a.GetAgeendl;coutbs a

9、ge:b.GetAgeendl;运行结果: as age:5 as age:6 bs age:6 as age:7 bs age:7最终显现错误信息,缘由是:声明对象 b 是进行的是浅拷贝, b 与 a 共用同一个 buffer ,程序终止前调用析构函数时对同一内存区进行了两次释放 .三、阅读以下程序及说明和注释信息,在方框中填写适当的程序段,使程序完成指定的功能程序功能说明:从键盘读入两个分别按由小到大次序排列的整数序列,每个序列 10 个整数,整数间以空白符分隔 . 用这两个序列分别构造两个单链表,每个链表有 10 个结点, 结点的数据分别按由小到大次序排列 . 然后将两个链表合成为一个新

10、的链表,新链表的结点数据仍然按由小到大次序排列 . 最终按次序输出合并后新链表各结点的数据 .程序运行结果如下,带下划线部分表示输入内容,其余是输出内容:2 4 6 8 10 12 14 16 18 201 3 5 7 9 11 13 15 17 191 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20#include #include / 类定义部分template class Nodeprivate:Node *next; / 指向后继节点的指针public:T data; /数据域Node const T& item, Node* ptrn

11、ext = NULL; /构造函数欢迎下载精品学习资源void InsertAfterNode *p; / 在本节点之后插入一个同类节点p Node *DeleteAftervoid; / 删除本节点的后继节点,返回其地址Node *NextNodevoid const; /猎取后继节点的地址 ;template class LinkedListprivate:Node *front, *rear; /表头和表尾指针Node *prevPtr, *currPtr; / 记录表当前遍历位置的指针, 由插入和删除操作更新int size; /表中的元素个数int position; /当前元素在表

12、中的位置序号.由函数 Reset使用Node *GetNodeconst T& item,Node *ptrNext=NULL;/生成新节点,数据域为item ,指针域为 ptrNext void FreeNodeNode *p; / 释放节点void CopyListconst LinkedList& L; /将链表 L 拷贝到当前表/(假设当前表为空) .被拷贝构造函数、 operator=调用public:LinkedListvoid; /构造函数LinkedListconst LinkedList& L; /拷贝构造函数LinkedListvoid; /析构函数LinkedList&

13、operator= const LinkedList& L;/ 重载赋值运算符int ListSizevoid const; /返回链表中元素个数(size )int ListEmptyvoid const; /size为 0 时返回 TRUE, 否就返回 FALSE void Resetint pos = 0; / 将指针 currPtr移动到序号为pos 的节点,/prevPtr相应移动 ,position记录当前节点的序号void Nextvoid; / 使 prevPtr和 currPtr移动到下一个节点int EndOfListvoid const; / currPtr等于 NULL

14、 时返回 TRUE,否就返回 FALSE int CurrentPositionvoid const; / 返回数据成员positionvoid InsertFrontconst T& item; /在表头插入一个数据域为item的节点欢迎下载精品学习资源void InsertRearconst T& item; / 在表尾添加一个数据域为item的节点void InsertAtconst T& item; / 在当前节点之前插入一个数据域为item的节点void InsertAfterconst T& item; /在当前节点之后插入一个数据域为item的节点T DeleteFrontvoi

15、d; / 删除头节点 , 释放节点空间,更新prevPtr、currPtr和sizevoid DeleteAtvoid; / 删除当前节点 , 释放节点空间,更新prevPtr、 currPtr和sizeT& Datavoid; /返回对当前节点成员data的引用void ClearListvoid; /清空链表:释放全部节点的内存空间. ;/ 类实现部分略 .template void MergeListLinkedList* la, LinkedList* lb,LinkedList* lc/ 合并链表 la 和 lb, 构成新链表 lc./ 函数终止后,程序的数据所占内存空间总数不因此函

16、数的运行而增加. while .la-ListEmpty &.lb-ListEmptyif la-DataDatalc-InsertRearla-Data;la-DeleteAt;elselc-InsertRearlb-Data;lb-DeleteAt;while .la-ListEmpty lc-InsertRearla-Data;欢迎下载精品学习资源la-DeleteAt;while .lb-ListEmpty lc-InsertRearlb-Data;lb-DeleteAt;void mainvoidLinkedList la, lb, lc;int item, i;/ 读如数据建立链表

17、lafor i=0;i item;la.InsertRearitem;la.Reset;/ 读如数据建立链表lbfor i=0;i item;lb.InsertRearitem;lb.Reset;MergeList&la, &lb, &lc;/ 合并链表lc.Reset;/输出各节点数据,直到链表尾while.lc.EndOfList欢迎下载精品学习资源cout lc.Data ;lc.Next; /使 currPtr指向下一个节点cout endl;版权申明本文部分内容,包括文字、图片、以及设计等在网上搜集整理;版权为潘宏亮个人全部This article includes some par

18、ts, including text, pictures, and design. Copyright is Pan Hongliangs personal ownership.用户可将本文的内容或服务用于个人学习、争论或观看,以及其他非商业性或非盈利性用途,但同时应遵守著作权法及其他相关法律的规定,不得侵害本网站及相关权益人的合法权益;除此以 外,将本文任何内容或服务用于其他用途时,须征得本人及相关权益人的书面许可,并支付酬劳;Users may use the contents or services of this article for personal study, research

19、 or appreciation, and other non-commercial or non-profit purposes, but at the same time, they shall abide by the provisions of copyright law and other relevant laws, and shall not infringe upon the legitimate rights of this website and its relevant obligees. In addition, when any content or service

20、of this欢迎下载精品学习资源article is used for other purposes, written permission and remuneration shall be obtained from the person concerned and the relevant obligee.转载或引用本文内容必需是以新闻性或资料性公共免费信息为使用目的的合理、善意引用,不得对本文内容原意进行曲解、修 改,并自负版权等法律责任;Reproduction or quotation of the content of this article must be reasonable and good-faith citation for the use of news or informative public free information. It shall not misinterpret or modify the original intention of the content of this article, and shall bear legal liability such as copyright.欢迎下载

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

当前位置:首页 > 教育专区 > 高考资料

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

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