电大C++语言程序设计期末考试试题及答案小抄参考

上传人:仙*** 文档编号:28130657 上传时间:2021-08-23 格式:DOC 页数:12 大小:152.54KB
收藏 版权申诉 举报 下载
电大C++语言程序设计期末考试试题及答案小抄参考_第1页
第1页 / 共12页
电大C++语言程序设计期末考试试题及答案小抄参考_第2页
第2页 / 共12页
电大C++语言程序设计期末考试试题及答案小抄参考_第3页
第3页 / 共12页
资源描述:

《电大C++语言程序设计期末考试试题及答案小抄参考》由会员分享,可在线阅读,更多相关《电大C++语言程序设计期末考试试题及答案小抄参考(12页珍藏版)》请在装配图网上搜索。

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 o

27、n, 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 - 690 mph (1,110 kph) - in l

28、ess than 40 seconds. Like hitting the top of the water, he will begin to slow as he approaches the more dense air closer to Earth. But this will not be enough to stop him completely.If he goes too fast or spins out of control, he has a stabilization parachute that can be deployed to slow him down. H

29、is team hopes its not needed. Instead, he plans to deploy his 270-square-foot (25-square-meter) main chute at an altitude of around 5,000 feet (1,524 meters).In order to deploy this chute successfully, he will have to slow to 172 mph (277 kph). He will have a reserve parachute that will open automatically if he loses consciousness at mach speeds.Even if everything goes as planned, it wont. Baumgartner still will free fall at a speed that would cause you and me to pass out, and no parachute is guaranteed to work higher than 25,000 feet (7,620 meters).cause there

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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