




版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
第六章习题答案一、选择填空1、A2、C3、D4、B5、D6、A7、C8、A9、D10、AIKC12.A13、B14、C15、C16、D17.B18、C19、A20、D21、C22、B二、判断下列描述的对的性,对者划J,错者划X。1、J2、义3、X4、X5、J6、J7、义8、J9、X10、V11、J12、J13、J14、J15、X16、J17、J18、J19、V20、X21、X22、X三、分析下列程序的输出结果。1、运营该程序输出结果如下所示。Defau1tconstructorca11edConstructorca1leda=0,b=0a=4,b=82、运营该程序输出结果如下所示。a=7,b=93、运营该程序输出结果如下所示。1044、运营该程序输出结果如下所示。1035,789.5045、运营该程序输出结果如下所示。CDate::CDate()CDate::CDate(intday,intmonthjntyear)(m_nDay=day;m_nMonth=month;m_nYear=year;)voidCDate::Display()(charday[5];charmonlh[5];charyear[5];_itoa(m_nDay,day,10);_itoa(m_nMonIh,nionth,10);_itoa(m_nYear,year,10);cout<<day«'7"<<month«'7"«year<<end1;}voidCDate::AddDay()(m_nDay++;if(IsLeapYear())if((m_nMonth==2)&&(m_nDay==30))m_nMonlh++;m_nDay=l;rcturn;)}else{if((m_nMonth==2)&&(m_nDay==29))(m_nMonth++;m_nDay=1;return;})if(m_nDay>31){if(m_nMonth==12)(m_nYear+4-;m_nMonth=l;m_nDay=1;)eIse(m_nMonth++:m_nDay=1;}))voidCDate::SetDate(intday,intmonth,intyear)(m_nDay=day;m_nMonth=month;m_nYear=year;)CDate::~CDate()()boolCDate::IsLeapYear()|boo1bLeap;if(m_nYcar%4!=0)bLeap=false;elseif(m_nYear%100!=0)bLeap=true;elseif(m_nYear%400!=0)bLeap=fa1se;elsebLcap=truc;returnbLeap;voidmain()CDated;d.SetDatc(2023,2,28);coutvV"当前日期=>'d.Disp1ay();d.AddDay();coutvv”当前日期加1=>:";d.Disp1ay();)4、程序内容如下所示。#include<iostream,h>classTc(private:doubleunlead,lead,total;intunpricc,price;pub1ic:Tc(){unprice=l7;price=16;}voidgetdata(){coutVV"无铅汽油总量「;cin>>un1ead;coutv<”有铅汽油总量;”;cin»lead;totai=unpricc*unlead+pricc*lcad;voiddisp()cout«"总收入:"<<total«cndl;));voidmain(){TcA;A.getdata();A.disp();}5、程序内容如下所示。#inc1ude<iostream.h>c1assCFactorial(intvaluc;in(fact;pub1ic:CFactorial(intva1);voidCa1culateFactorial();voidDisp1ay(););CFactoria1::CFactorial(intva1)(vahic=val;fact=I;voidCFactorial::Ca1culateFactorial(){inii=value;while(i>1)facl*=i—;IvoidCFactoria1::Display()(cout<<value<<"!="«fact«end1;}voidmain()(CFactoriaIA(5);A.CaIculateFactorial();A.Disp1ay();)6、程序内容如下所示。#include<iostream.h>#include<iomanip.h>classrectangle(private:floatledge,sedge;public:rectangle(){};reclangle(floala,floatb)Icdge=a;sedge=b;);floatarea(){returnledgersedge;);voidaddarea(rectang1er1,rectangler2)(coul<〈”总面积:w<<rl.1edge*rl.sedge+r2.1edge*r2.sedge«endl;)};voidmain()(rectangleA(3.5,2.5),B(4.2,3.8),C;C.addarea(A,B);}7、程序内容如下所示。inc1ude<iostream.h>inc1ude<iomanip.h>classrectangle(private:f1oatledge»sedge;pub1ic:rectang1e(){};rcctanglc(f1oata,floath)(ledge=a;sedge=b;I;floatarea()(return1edge*sedge;};voidshow1ength()(coutvv"周长:"VV(ledge+sedge)*2«endl;)rectang1ct1cngth(rcctangler2){rectangletemp;temp.ledge=ledge+r2.ledge;temp,sedge=sedge+r2.sedge;retumtemp;});voidmain()rectangleA(3.5,2.5),B(4.2,3.8);cout«"A,';A.showlength();cout«"B°;B.showlength();rcctanglcC=A.tlcngth(B);cout«"C";C.showlength();}8、程序内容如下所示。#inelude<iostream.h>#include<iomanip.h>c1assLine(private:doubIexl,x2,yl,y2;public:Line(){};Line(doublea.doubleb,doublec,doubled)(x1=a;yl=b;x2=c;y2=d;cout«"线段端点"VVxl<<"JVVylvv")-("«x2«,,,"«y2«")"«endl;)friendtwoline(Line1I,Line12)(doublerl=12.y1*(12.x2-11.x1)-1I.y1*(12.x2-12.x1)+(11.x1—12.x1)*(12.y2-12.yl);doubler2=(1l.y2-ll.y1)*(12.x2~12.x1)-(11.x2-11.x1)*(12.y2-l2.yl);doubler=rl/r2;doub1et=((ll.xl—I2.xl)+r*(11.x2-11.x1))/(12.x2-12.X1);if(r>0&&r<l&&t>0&&t<l)coutVV""<<end1;e1seif(r>O&&r<l&&t>=l)cout<<""<<end1;elseif((r>=1||r<=0)&&t>0&&t<1)coutvV""<<endl;e1secout«"',<<endl;)};voidmain()(LincA(2,2,18,18),B(1,12,19,5);twoline(A,B);)9、本题涉及两个类siudent和cdegree,前者为学生类,包含学生的学号(no),姓名(name)和成绩(degree),而成绩degree是类cdegree的对象。cdegrec类有3个数据成员,分别为数学(math),英语(english)和物理(phy)分数。程序内容如下所示。#include<iostream.h>c1assstudentintno;(}{0,1,2,3,4,5,6,7,8)1!11,12,13,14,15,16,17,18,19){19,18,17,16,15,14,13,12,11}6、运营该程序输出结果如下所示。Starting1:Defau1tconsiructorcalled.Defau1tconstruetorcalled.Defaultconslructorcalled.Edingl:Starting2:Constructor:a=5,b=6Constructor:a=7,b=8Constructor:a=9,b=10Ending2:Destructorca11cd.a=9,b=10Des(ruclorca11ed.a=7,b=8Destructorcailed,a=5,b=6Destruetorcalled.a=5,b=6Destmetorcallcd.a=3,b=4Destructorcalled.a=Lb=27、运营该程序输出结果如下所示。Defaultconstructorcalled.DefauItconstruetorcalled.Defaultconstructorca11ed.DefauItconstructorcal1ed.charnamef10];c1asscdegree(publie:intmath;intenglish;intphy:}degree;pub1ic:voidgelda(a()(coutvv”学号:”;cin»no;coutvv"姓名:";cin»name;coutVV”数学分数:cin»degree.math;cout«"英语分数:";cin>>degree.english;cout<<”物理分数:cin»degree.phy;)voiddisp(){cout<<"学号:"<<no<<cndl;cout<<"姓名:"«name«endl:cout«"数学分数:"<<degree.math«endl;cout<<"英语分数:'*<<degree.english<<end1;cout<V”物理分数:"<<degrec.phy<<endI:));voidmain()(studentstud;stud.getdata();stud.disp();)10、程序内容如下所示。#include<iostream.h>classStudcnt(inteng1ish,computcr,total;pub1ic:voidgetscore();voidclisplay();voidsort(Student火);-Student();};voidStudent::getscore()(cout<<"输入英语成绩";cin»english;coutVV"输入计算机成绩”;cin»computer;totai=english+computcr;)voidStudent::sort(Studcnt*p)(inttmp,i,j:for(j=0:j<2;j++)for(i=0;i<2;i++)if(total<p->tota1)(tmp=total;total=p—>tota1;p->tota1=tmp;(mp=english;cnglish=p->cnglish;p->english=tmp;tmp=computer;computer=p->computer;p->computer=tnip;))voidStudent::display()cout<V"英语="<<cng1ish<<"计算机="«computcr<V"总分="<Vtotal«cndl:voidmain()Studcnt*A[3];for(intj=O;jv3;j++)(A|j]=newStudent;coutvv"学生"V<j+lvvend1;Afj]->getscore();}inti;for(j=O;j<2;j++)for(i=0;i<2;i++)A[i]->sort(A[i+l]);cout<<end1V<"排序结果如下:"<<endl;for(i=0;i<3;i++)A[i]->display();)1、程序内容如下所示。#include<iostream,h>struct1ist〃定义栈(intdata;list*nexI;};classStack〃定义一个栈操作类list*ptr;public:Stack(){ptr=NULL;}voidpush(inti);intpop();I;voidStack::push(intx)//入栈成员函数(list*newnode=new1ist;newnode->data=x;newnode->next=ptr;ptr=newnode;)intStack::pop()//出栈成员函数(1ist*top;intvalue;value=ptr—>data;top=ptr;ptr=ptr->next;deletetop;returnvalue;)voidmain()StackA;iniarr[]={5,2,8,1,4,3,9,7,6};cout<<"入枝顺序:";for(inti=0;i<9;i+4-){cout«arr[i]«"A.push(arr[i]);)coutvvendlvv”出栈顺序:";for(i=0:iV9;i++)cout«A.pop()<<"";cout«end);)12、程序内容如下所示。#include<iostream.h>struct1ist(intdata;list*next;c1assQucue(Iist*ptrf,*ptrb;〃队首和队尾指针public:Queue()ptrf=ptrb=NULL;voidenqueue(int);intdcqucuc();):voidQueue::enqueuc(intx)〃入队成员函数(list*newnode=new1ist;newnode->data=x;newnode->next=NULL;if(ptrb==NULL)ptrf=ptrb=newnode:else(ptrb->ncxt=newnode;ptrb=newnode;});intQueue::dequeue()//出队成员函数(1ist*tmp;intva1ue;va1ue=ptrf->data;tmp=ptrf;ptr^ptrf->next;de1ctetmp;returnvalue;voidmain()QueueA;intarr[]={3,12,8,9,11};COUlVV"入队顺序;";for(inti=0;i<5;i++)(cout<<arr[i]«"";A.enqueue(arr[i]);}cout<<endl«"出队顺序;for(i=0;i<5;i++)cout«A.dequcue()«"”;cout<<end1;}13、程序内容如下所示。#include<iostream.h>#include<std1ib.h>typcdefstructtree(intdata;tree*1eft,*right-father;}*bstree;classBtrcestaticintn;staticintm;publie:tree*root;Btree()(root=NULL;)voidcreate_Btree(int);voidinorder(bstree);//中序遍历voiddisplayO{cout«endl<<"中序遍历序列:"«endl;inorder(root);cout<Vendl;}intcount(bstree);//计算二叉树的个数intprint(bstrce,int);//输出要查找的值相应的双亲结点的内容):intBtrce::n=0:in(Btree::m=0;intBtree::print(bstreep,intk)(if(p==NULL)rcturn0;else(if(p->data!=k){print(p—>1cft,k);print(p->right,k);eIsecoutvvkvv"的双亲结点的内容为:"vvp—>father—>data«end)return0;})voidBtree::ereate_Btree(inix)(bslreenewnode=newtree;newnode—>data=x;ncwnodc->right=ncwnode->lcft=NULL;if(root==NULL)root=ncwnode;else(bstreeback;bstreecurrent=root;whiIe(current!=NULL)(back=current;if(current—>data>x)
currcnt=currcnt->lcft;Destructorcalied.Constructorlcal1ed.Destructorcal1cd.Constructor2ca11ed.Destructorcalled.x=0,y=0x=5,y=0x=2,y=3Destructorca1led.Destruc(orca1led.Destructorcalled.8、运营该程序输出结果如下所示。Constructorcalied.0Construetorcal1cd.5Destructorcalled.55Destructorcalied.59、运营该程序输出结果如下所示。Constructorcalied.55Destructorca11ed.510、运营该程序输出结果如下所示。DefaultConstructorcalled.Construetor:rea1=6.8,imag=0Constructor:rea1=5.6,imag=7.90+0Icurrent=current->right;if(back->data>x){back—>left=newnode;newnode->father=back;}else{back->right=newnode;newnode->father=back;}))intBtree::count(bstreep)(if(p==NULL)return0;e1sereturncount(p->1eft)+count(p—>right)+l;〃这是运用了函数嵌套即递归的方法。)voidBtree::inorder(bstreetemp)//这是中序遍历二叉树,采用了递归I的方法。(if(temp!=NULL)(inorder(temp->left);cout<<temp—>data«"inorder(temp—>right);voidmain()(BtreeA;intarray[]={7,4,1,5,12,8,13,11};intk;k=sizeof(array)/sizeof(array[0]);coul«"建立排序二又树顺序:H«end1;for(inti=0;i<k;i++)(cout<<array[i]<<"";A.create_Btree(array[i]);}cout«endl;coutvv"二叉树节点个数:”<vA.count(A.root)«endl;A.disp1ay();)14、程序内容如下所示。#inelude<iostream.h>#inckide<stdio.h>structlist1ist*next;};classStack(ist*ptr;pub1ic:Stack(){ptr=NULL;}voidpush(inti);intpop();intempty()(if(ptr==NULL)relurn1;elsereturn0;)I;voidStack::push(intx)(ist*newnode=newlist;newnode->data=x;newnode->next=ptr;ptr=newnode;)intStack::pop()(list*top:value=ptr->data;top=ptr;ptr=ptr->next;deletetop;returnva1uc:)c1assQueue(list*ptrf,*ptrb;public:Queue(){ptrf=ptrb=NULL;)voidenqueue(int);intdcqucue(););voidQueue::enqueue(intx)(list火newnodc=newlist;newnode->data=x;newnode—>next=NULL;if(ptrb==NULL)ptrf=ptrb=newnode;pirb->next=newnode;ptrb=newnode;)};intQueue::dcqucue()(list*imp;intvalue;value=ptrf—>data;tmp=plrf;ptrf=ptrf—>next;de1etetmp;returnvalue;)voidmain()(StackS;QueueQ;charch;cout«"输入数据:";while((ch=getchar())!='.'){S.push(ch);Q.enqueue(ch);while(!S.emp(y()&&S.pop()==Q.dequeue());if(S.empty())cout<<”输入的是回文数据。”《endl;elsecout<<"输入的不是回文数据。"«end1;}15、程序内容如下所示。#include<iostream.h>#include<iomanip.h>classmagic(intm[4][4];intsiep;intfirst;intsum:public:voidgctdata();voidsetfirstmagic();voidgeneratemagic():voidprintmagic();};voidmagic::getdata()(cOUIV〈”输入魔方起始值:”;cin»first;cout«"输入相邻元素差值:";cin»step;voidmagic::setfirstmagic()inti,j;inttmp;tmp=first;for(i=0;i<4;i++)for(j=0;j<4;j++){m[i][j]=tmp;tmp+=step;))voidmagic::gcncratemagic()(sum=m[0][0]+m[3][3];for(in(i=0,j=0;i<4;i++,j++)m[i][j]=sum-m[i][j];for(i=0,j=3;i<4;i++,j--)m[i][J]=sum-m[i][j];)voidmagic::printmagic()(inti,j;for(i=0;iV4;i++)for(j=0;j<4;j++)cout<<setw(5)<<m[i][j];cout«endl;))voidmain()(magicA;A.getdata();A.setfirstmagic();coutv<”本来的魔方如下:"cvendl;A.printmagic();A.generatemagic();coutVV"最终的魔方如下:"《endl;A.printmagic():6.8+015.6+7.9IConstructor:rcal=1.2,imag=3.4Constructor:real=5,imag=0DefaultConstructorcailed.1.2+3.415+010+011、答:⑴该程序中用string.h中所包含的函数有3种,它们是strcpy()、strcat()和strlen().⑵该程序中使用了函数重载。它们是下述两个构造函数重载:String()和Siring(constchar*str)o(3)类中成员函数Sctc()的功能是用来设立字符数组中某位置的一个指定字符。⑷类中成员函数Getc()的功能是用来从某个字符数组中获取指定位置的字符。⑸类中成员函数Appcnd()的功能是在一个字符数组中追加一个指定的字符串,即将指定的字符串添加到已知串的后边。⑹不行。⑺该程序中有两处使用了new运算符。⑻运营该程序输出结果如下所示。empty.astring.9astring.thisastring.四、改正以下程序中的错误。1、该程序中point类的构造函数定义不对的,在main()中队数据成员的访问不对的,修改如下:#inc1ude<iostream.h>c1asspoint(ntxl,x2;public:point(intx,inty){point::x=x;point::y=y;}voiddisp(){cout«xl<<endl;cout«x2«endl;)//);voidmain(){pointda(a(5,5);data.dispO;)2、在main。函数中的p.x+=5和p.y+=6两个语句是错误的,由于保护数据仅能被类的成员函数访问。五、按下列规定编写程序。1、程序内容如下所示。#inc
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 办公项目总结与未来展望报告
- 地坪浇筑劳务分包合同
- 独院买卖合同协议书
- 砖砌体工程施工合同协议书
- 高效办公流程优化解决方案
- 媒体资源共享合作框架协议
- 制作细胞的结构模型(第1课时)教学设计-2024-2025学年苏科版生物七年级上册
- 写字楼照明设计施工方案
- 阿拉善工地降水井施工方案
- 第10课 保持身心健康2024-2025学年新教材七年级道德与法治上册同步教学设计(统编版2024)
- 《动物病原微生物菌(毒)种保藏管理实施细则》等4个技术规范性文件
- 2024至2030年中国壁球行业调查及市场前景咨询报告
- GB/T 44464-2024汽车数据通用要求
- 危重患者的体位管理
- 西南师大版小学数学三年级下册教材分析
- 人教版(新起点)小学英语二年级下册教案(全册)
- GB 1002-2024家用和类似用途单相插头插座型式、基本参数和尺寸
- 中医备案诊所污水、污物、粪便处理方案及周边环境情况说明
- 人教版五年级上册小数乘除法竖式计算题200道及答案
- 《房地产开发与经营》全套教学课件
- DL∕T 838-2017 燃煤火力发电企业设备检修导则
评论
0/150
提交评论