版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、专业好文档c+语言程序设计 期末考试试题及答案姓名 _ 学号 _ 班号 _ 题 号一二(1)二(2)三总 分成 绩一、填空1在类中必须声明成员函数的 原型 ,成员函数的 实现 部分可以写在类外。2如果需要在被调函数运行期间,改变主调函数中实参变量的值,则函数的形参应该是 引用 类型或 指针 类型。3 抽象 类只能作为基类使用,而不能声明它的对象。4进行函数重载时,被重载的同名函数如果都没有用const修饰,则它们的形参 个数 或 类型 必须不同。5通过一个 常 对象只能调用它的常成员函数,不能调用其他成员函数。6函数的递归调用是指函数直接或间接地调用 自身 。7拷贝构造函数的形参必须是 本类对
2、象的引用 。二、阅读下列程序,写出其运行时的输出结果 如果程序运行时会出现错误,请简要描述错误原因。1请在以下两题中任选一题,该题得分即为本小题得分。如两题都答,则取两题得分之平均值为本小题得分。(1)程序:- 12 -#include #include class base private: char msg30; protected: int n; public: base(char s,int m=0):n(m) strcpy(msg,s); void output(void) coutnendlmsgendl; ;class derived1:public baseprivate:in
3、t n;public:derived1(int m=1):base(base,m-1) n=m; void output(void) coutnendl; base:output();class derived2:public derived1private:int n;public:derived2(int m=2):derived1(m-1) n=m; void output(void) coutnendl; derived1:output();int main()base b(base class,1);derived2 d;b.output();d.output();运行结果:1bas
4、e class210base(2)程序:#include class samppublic:void setij(int a,int b)i=a,j=b;samp()coutdestroying.iendl;int getmuti()return i*j; protected:int i;int j;int main()samp *p;p=new samp5;if(!p)coutallocation errorn;return 1;for(int j=0;j5;j+)pj.setij(j,j);for(int k=0;k5;k+)coutmutik is: pk.getmuti()endl;d
5、eletep;return 0;运行结果:muti0 is:0muti1 is:1muti2 is:4muti3 is:9muti4 is:16destroying.4destroying.3destroying.2destroying.1destroying.02请在以下两题中任选一题,该题得分即为本小题得分。如两题都答,则取两题得分之平均值为本小题得分。(1)程序:#include #include class vector public: vector(int s=100); int& elem(int ndx); void display(void); void set(void);
6、vector(void); protected: int size; int *buffer;vector:vector(int s)buffer=new intsize=s;int& vector:elem(int ndx)if(ndx=size)couterror in indexendl;exit(1);return bufferndx;void vector:display(void)for(int j=0; jsize; j+)coutelem(j)endl;void vector:set(void)for(int j=0; jsize; j+)elem(j)=j+1;vector:
7、vector(void)delete buffer;int main()vector a(10);vector b(a);a.set();b.display();运行结果:12345678910最后出现错误信息,原因是:声明对象b是进行的是浅拷贝,b与a共用同一个buffer,程序结束前调用析构函数时对同一内存区进行了两次释放。(2)程序:#includeclass cat public: cat(); cat(const &cat); cat(); int getage() return *itsage; void setage( int age ) *itsage=age; protect
8、ed: int * itsage;cat:cat()itsage=new int;*itsage=5;cat:cat()delete itsage;itsage=null;int main()cat a;coutas age:a.getage()endl;a.setage(6);cat b(a);coutas age:a.getage()endl;coutbs age:b.getage()endl;a.setage(7);coutas age:a.getage()endl;coutbs age:b.getage()endl;运行结果:as age:5as age:6bs age:6as age
9、:7bs age:7最后出现错误信息,原因是:声明对象b是进行的是浅拷贝,b与a共用同一个buffer,程序结束前调用析构函数时对同一内存区进行了两次释放。三、阅读下列程序及说明和注释信息,在方框中填写适当的程序段,使程序完成指定的功能 程序功能说明:从键盘读入两个分别按由小到大次序排列的整数序列,每个序列10个整数,整数间以空白符分隔。用这两个序列分别构造两个单链表,每个链表有10个结点,结点的数据分别按由小到大次序排列。然后将两个链表合成为一个新的链表,新链表的结点数据仍然按由小到大次序排列。最后按次序输出合并后新链表各结点的数据。 程序运行结果如下,带下划线部分表示输入内容,其余是输出内
10、容:1 3 5 7 9 11 13 15 17 192 4 6 8 10 12 14 16 18 201 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20#include #include /类定义部分template class node private: node *next; /指向后继节点的指针 public: t data; /数据域 node (const t& item, node* ptrnext = null); / 构造函数 void insertafter(node *p); /在本节点之后插入一个同类节点p node *d
11、eleteafter(void); /删除本节点的后继节点,返回其地址 node *nextnode(void) const; / 获取后继节点的地址;template class linkedlist private: node *front, *rear; / 表头和表尾指针 node *prevptr, *currptr; /记录表当前遍历位置的指针,由插入和删除操作更新 int size; / 表中的元素个数 int position; / 当前元素在表中的位置序号。由函数reset使用 node *getnode(const t& item,node *ptrnext=null);
12、/ 生成新节点,数据域为item,指针域为ptrnext void freenode(node *p); /释放节点 void copylist(const linkedlist& l); / 将链表l 拷贝到当前表 /(假设当前表为空)。被拷贝构造函数、operator=调用 public: linkedlist(void); / 构造函数 linkedlist(const linkedlist& l); /拷贝构造函数 linkedlist(void); / 析构函数 linkedlist& operator= (const linkedlist& l);/重载赋值运算符 int list
13、size(void) const; /返回链表中元素个数(size) int listempty(void) const; /size为0时返回true,否则返回false void reset(int pos = 0); /将指针currptr移动到序号为pos的节点, /prevptr相应移动,position记录当前节点的序号 void next(void); /使prevptr和currptr移动到下一个节点 int endoflist(void) const; / currptr等于null时返回true, 否则返回false int currentposition(void) co
14、nst; /返回数据成员position void insertfront(const t& item); /在表头插入一个数据域为item的节点 void insertrear(const t& item); /在表尾添加一个数据域为item的节点 void insertat(const t& item); /在当前节点之前插入一个数据域为item的节点 void insertafter(const t& item); /在当前节点之后插入一个数据域为item的节点 t deletefront(void); /删除头节点,释放节点空间,更新prevptr、currptr和size void
15、deleteat(void); /删除当前节点,释放节点空间,更新prevptr、currptr和size t& data(void); / 返回对当前节点成员data的引用 void clearlist(void); / 清空链表:释放所有节点的内存空间。;/类实现部分略.template void mergelist(linkedlist* la, linkedlist* lb,linkedlist* lc)/合并链表la和lb,构成新链表lc。/函数结束后,程序的数据所占内存空间总数不因此函数的运行而增加。 while ( !la-listempty() &!lb-listempty()
16、 if (la-data()data() lc-insertrear(la-data(); la-deleteat(); else lc-insertrear(lb-data(); lb-deleteat(); while ( !la-listempty() ) lc-insertrear(la-data(); la-deleteat(); while ( !lb-listempty() ) lc-insertrear(lb-data(); lb-deleteat();int main() linkedlist la, lb, lc; int item, i;/读如数据建立链表la for (
17、i=0;i item; la.insertrear(item); la.reset();/读如数据建立链表lb for (i=0;i item; lb.insertrear(item); lb.reset();mergelist(&la, &lb, &lc);/合并链表 lc.reset();/ 输出各节点数据,直到链表尾 while(!lc.endoflist() cout lc.data() ; lc.next(); / 使currptr指向下一个节点 cout endl;if we dont do that it will go on and go on. we have to stop
18、 it; we need the courage to do it.his comments came hours after fifa vice-president jeffrey webb - also in london for the fas celebrations - said he wanted to meet ivory coast international toure to discuss his complaint.cska general director roman babaev says the matter has been exaggerated by the
19、ivorian and the british media.blatter, 77, said: it has been decided by the fifa congress that it is a nonsense for racism to be dealt with with fines. you can always find money from somebody to pay them.it is a nonsense to have matches played without spectators because it is against the spirit of f
20、ootball and against the visiting team. it is all nonsense.we can do something better to fight racism and discrimination.this is one of the villains we have today in our game. but it is only with harsh sanctions that racism and discrimination can be washed out of football.the (lack of) air up there w
21、atch mcayman islands-based webb, the head of fifas anti-racism taskforce, is in london for the football associations 150th anniversary celebrations and will attend citys premier league match at chelsea on sunday.i am going to be at the match tomorrow and i have asked to meet yaya toure, he told bbc
22、sport.for me its about how he felt and i would like to speak to him first to find out what his experience was.uefa hasopened disciplinary proceedings against cskafor the racist behaviour of their fans duringcitys 2-1 win.michel platini, president of european footballs governing body, has also ordere
23、d an immediate investigation into the referees actions.cska said they were surprised and disappointed by toures complaint. in a statement the russian side added: we found no racist insults from fans of cska.baumgartner the disappointing news: mission aborted.the supersonic descent could happen as ea
24、rly as sunda.the weather plays an important role in this mission. starting at the ground, conditions have to be very calm - winds less than 2 mph, with no precipitation or humidity and limited cloud cover. the balloon, with capsule attached, will move through the lower level of the atmosphere (the t
25、roposphere) where our day-to-day weather lives. it will climb higher than the tip of mount everest (5.5 miles/8.85 kilometers), drifting even higher than the cruising altitude of commercial airliners (5.6 miles/9.17 kilometers) and into the stratosphere. as he crosses the boundary layer (called the
26、tropopause),e can expect a lot of turbulence.the balloon will slowly drift to the edge of space at 120,000 feet ( then, i would assume, he will slowly step out onto something resembling an olympic diving platform.below, the earth becomes the concrete bottom of a swimming pool that he wants to land on, but not too hard. still, hell be traveling fast, so despite the distance, it will not be like diving into the deep end of a pool. it will be like he is diving into the shallow end.skydiver preps for the big jumpwhen he jumps, he is expected to reach the speed of sound
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 工程项目投标管理制度
- 荷叶母亲获奖
- 人教部编版四年级语文上册第15课《女娲补天》精美课件
- 2024年福建客运资格证节能驾驶题库50
- 算法设计与分析 课件 5.2-动态规划引例2-数字三角形问题
- 2024年盐城道路旅客运输从业资格证模拟考试
- 2024年白城道路旅客运输从业资格证模拟考试
- 2024年西宁客运从业资格证考什么题目
- 2024年内蒙古客运从业资格证考试考什么科目
- 吉首大学《基础英汉互译》2021-2022学年第一学期期末试卷
- 宠物比赛活动策划方案
- 玻璃制造中的能源消耗与节能技术研究
- 岗台总校后勤管理参观考察心得体会
- 物业管理职业生涯规划书
- 第6课+三国两晋南北朝政权更迭与民族交融(教学设计)【中职专用】《中国历史》(高教版2023基础模块)
- 化工行业仓库管理与供应链优化方案
- 慢性伤口护理健康宣教课件
- 中国居民膳食指南(全)
- 建筑施工电动运输车辆进场验收表
- 《团队管理课件:如何建立高绩效团队》
- 数字化药房系统新趋势及优势
评论
0/150
提交评论