2022年c程序设计期末考试样卷及答案.docx
《2022年c程序设计期末考试样卷及答案.docx》由会员分享,可在线阅读,更多相关《2022年c程序设计期末考试样卷及答案.docx(17页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2022 程序设计 期末 试样 答案
限制150内