版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
Fourshortwordssumupwhathasliftedmostsuccessfulindividualsabovethecrowd:alittlebitmore.
author
dateFourshortwordssumupwhathasliftedmostsuccessfulindividualsabovethecrowd:alittlebitmore.
author
date电大面向对象程序设计作业答案参考资料参考答案55精品电年夜复习资料PAGE精品电年夜复习资料PAGE105精品电年夜复习资料PAGE一、编程题。依据轨范要求,写出函数的完整界说。(40分)1.写一个函数,找出给定字符串中年夜写字母字符(即’A’-‘Z’这26个字母)的个数(如字符串”ChinaComputerWrold”中年夜写字母字符的个数为3个)。函数的原型:intCalcCapital(char*str);函数参数:str为所要措置的字符串;函数返回值:所给字符串中数字字符的个数答:intCalcCapital(char*str){if(str==NULL)return0;//判定字符指针是否为空intnum_of_Capital=0;//记实年夜写字母字符个数的变量,初值为0for(inti=0;str[i]!=0x0;i++)if(str[i]<='A'&&str[i]>='Z')num_of_Capital++;//若是年夜写字母,则总数加1
returnnum_of_Capital;//返回年夜写字母字符数}2.写一个函数,用递归函数完成以下运算:sum(n)=1–1/2+1/3–1/4+…-(1/n)*(-1)n(其中n>0)函数原型:floatsum(intn);函数参数:n为正整数。函数返回值:响应于给定的n,右边表达式运算功效。提示:你可以使用递归表达式:sum(n)=sum(n-1)-(1/n)*(-1)n答:floatsum(intn){ if(n==1)return1; elsereturnsum(n-1)-(1.0/n)*(-1)n;}3.给定新数值,在一个按节点所存放数值从年夜到小排序的链表中,找恰当位置插一个新节点,仍连结有序的链表,写一个函数,完成此操作。函数的原型:Node*InsNode(Node*head,intnewValue);其中,链表节点的界说如下:structNodee{intValue;//存放数值Node*next;//指向链表中的下一个节点};函数参数:函数的第一个参数head指向链表头一节点的指针,若是链表为空,则head的值为NULL。其次个参数newValue为所给定的插入新节点的新数值。函数返回值:当成功地插入新的节点时,函数返回指向新链表头一节点的指针,否则,若不能申请到内存空间,则返回NULL。答:Node*insNode(Node*head,intnewValue){ Node*newNode=newNode;//申请新的节点空间 if(newNode==NULL) returnNULL;// newNode->data=newValue;//填充新节点的内容 newNode->next=NULL; Node*pre,*cur;Pre=head;if(head==NULL)head=newNode;//插入到空链表的表头 elseif(newValue>=head->Value){newNode->next=head;head=newNode;//插入到链表的表头}else{//在链表查找插入点Node*cur,*pre=head;while(pre->next!=NULL){cur=pre->next; if(newValue>=cur->Value)break;elsepre=cur;} if(pre->next!=NULL)newNode->next=cur;//若非末尾,则有下一节点 pre->next=newNode;//将新节点插入} } returnhead;}4.写一个函数,找出给定数组中具有最小值的元素。函数的原型:charMinCode(charcharAry[]);函数参数:charAry所要措置的字符数组名;函数返回值:返回具有最小ASCII码的字符。答:charMinCode(charcharAry[],intlen=10){ charmixCode=0x0; for(inti=0;i<len;i++) { if(charAry[i]<mixCode) mixCode=str[i]; } returnmixCode;}二、理解问答题:(20分)下面的文件stack.h是一个仓库类模板Stack的完整实现。在这个文件中,首先界说了一个仓库元素类模板StackItem,然后,在这个类的基本上界说了仓库类模板Stack。在Stack中使用链表存放仓库的各个元素,top指针指向链表的第一个节点元素,bottom指针指向链表的最终一个节点元素,成员函数push()将一个新节点元素插手(压进)到仓库顶部,pop()从仓库顶部删除(弹出)一个节点元素。为便利起见,轨范中加上了行号。阅读轨范,依据轨范后面的问题作出响应解答。1./**/2./*********************文件stack.h************************/3./**/4.template<CLASS&NBSP;TYPE>5.classStack;6./*****************界说模板类StackItem******************/7.template<CLASS&NBSP;TYPE>8.classStackItem9.{10.public:11.StackItem(constType&elem):item(elem){}12.~StackItem(){}13.private:14.Typeitem;15.StackItem*nextItem;16.friendclassStack;17.};18./*****************界说模板类Stack*********************/19.template<CLASS&NBSP;TYPE>20.classStack21.{22.public:23.Stack():top(NULL),____(A)_____{}24.~Stack();25.Typepop();26.voidpush(constType&);27.boolis_empty()const{return____(B)______;}28.private:29.StackItem*top;30.StackItem*bottom;31.};32.//模板类Stack的函数成员pop()的实现。33.//从仓库顶弹出一个节点,并返回该节点的值34.template<CLASS&NBSP;TYPE>35.TypeStack::pop()36.{37.StackItem*ptop;//指向顶部节点的姑且指针38.TyperetVal;//返回值39.______(C)________;40.retVal=top->item;41.top=top->nextItem;42.deleteptop;43.returnretVal;44.}45.//模板类Stack的函数成员push()的实现46.template<CLASS&NBSP;TYPE>47.voidStack::push(constType&newItem)48.{49.StackItem*pNew=newStackItem(newItem);50.______(D)___________;51.if(bottom==NULL)bottom=top=pNew;52.else_____(E)_________;53.}54.//模板类Stack的析构函数~Stack()的实现55.template<CLASS&NBSP;TYPE>56.Stack::~Stack()57.{58.StackItem*p=top,*q;59.while(p!=NULL){60.q=p->nextItem;61.deletep;62.p=q;63.}64.}问题1:轨范中有几处填空,将它们完成。(A)bottom(NULL)(B)top==NULL;(C)ptop=top;(D)pNew->nextItem=top;(E)top=pNew;问题2:轨范第4,5行有什么浸染?若是没有这两行语句,轨范还正确吗?答:不正确。由于类StackItem模板类的界说顶用到了模板类Stack,Stack还没有界说,所以,必需先声明Stack是一个模板类,否则,编译轨范就不知道标识符Stack代表什么样的寄义,无法进行编译。问题3:轨范中多处呈现const,请分袂声名它们各自示意什么寄义。答:第11、26和47行的const润色的都是函数的参数,示意在这个函数体中不能改它所润色的参数的值。第27行的const润色的是模板类Stack的成员函数is_empty(),它示意在函数is_empty()的函数体中不能转变任何数据成员的值。问题4:轨范中模板类Stack的析构函数首要做了什么工作?为什么要这么做?答:析构函数中主若是释放存放的各个节点所占涌空间。由于Stack对象在其保留时代可能插手了良多节点,从堆中申请了一些内存空间。这些空间应跟着对象的消亡而释放失踪,所以,需要在析构函数中释放这些空间。问题5:下面的轨范使用了stack.h文件中界说的类模板,请声名下列轨范中界说仓库对象的语句(1-5)是否正确。#include“stack.h”voidmain(){Stackq1;//1Stackq2;//2Stackq3(10);//3Stackq4[10];//4Stack*q5=newStack;//5//deleteq5;}答:语句号12345对/错错对错错对三、填空题(20分)下面是一个求数组元素之和的轨范。主轨范中界说了并初始化了一个数组,然后计较该数组各元素的和,并输出功效。函数sum计较数组元素之和。填充轨范中不完整的部门。________a__________.intsum(int[],int);voidmain(){intia[5]={2,3,6,8,10};b;sumofarray=sum(ia,5);cout<<"sumofarray:"<<sumofarray<<endl;}intsum(intarray[],intlen){intisum=0;for(inti=0;c;d)e;returnisum;}A:#include<iostream.h>B:intsumofarray=0;C:i<lenD:i++E:iSum+=array[i]四、综合编程题(20分)界说一个日期类date,该类对象存放一个日期,可以供应的操作有:intgetyear();//取年份intgetmonth();//取月份intgetday();//取日子值voidsetdate(intyear,intmonth,intday);//设置日期值下面是测试你所界说的日期类轨范:#include<iostream.h>#include“date.h”voidmain(){dated1(1999,1,14);//用所给日期定一个日期变量dated2;//界说一个具出缺省值为1980年1月1日的日期,dated3(d1);//用已有日期x机关一个新对象d2.setdate(1999,3,13);cout<<"date:";cout<<d1.getyear()<<"."<<d1.getmonth()<<"."<<d1.getday()<<endl;cout<<"date:";cout<<d2.getyear()<<"."<<d2.getmonth()<<"."<<d2.getday()<<endl;cout<<"date:";cout<<d3.getyear()<<"."<<d3.getmonth()<<"."<<d3.getday()<<endl;}写出日期类的完整界说,其,三个get函数写成内联函数形式,setdate写成非内联函数形式。所稀有据成员都界说为私有成员。留意机关函数的三种形式。写出轨范的运行功效。改削轨范,在日期类中界说日期的输出函数,这样,主轨范就可以简化。输出名目和上面一样。只需要写出类date的
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2026届河南省信阳市二中重点名校中考语文模拟预测题含解析
- 机械设备安全操作知识竞赛题(附答案)
- 2026年检验科医师(技师)晋升高级职称病例分析专题报告汇编三篇
- 人造板生产甲醛中毒应急演练脚本
- 河北省唐山市丰润区重点达标名校2026届中考历史押题试卷含解析
- 山东省莱芜莱城区五校联考2026届中考考前最后一卷英语试卷含答案
- 安徽省宿州市泗县2026届毕业升学考试模拟卷历史卷含解析
- 2026届山东省临沂市平邑县中考英语押题卷含答案
- 癌症免疫治疗法
- 产后康复项目情况
- 高速铁路轨道施工与维护课件 2.无缝线路养护维修
- 中职学校新校区搬迁舆情预案背景
- 钢筋加强施工方案
- 上海软课题申报书示范
- 2025年入党积极分子培训考试试题库及答案
- 聊城市协管员招聘面试题及答案
- 2025海南海口市总工会招聘下属事业单位人员2人(第1号)考试参考试题及答案解析
- 2025年GMAT逻辑推理能力提高模拟试题及答案
- 江苏入团考试试题及答案
- 2025年四川省中医规培考试试题
- JG/T 236-2008电采暖散热器
评论
0/150
提交评论