欢迎来到淘文阁 - 分享文档赚钱的网站! | 帮助中心 好文档才是您的得力助手!
淘文阁 - 分享文档赚钱的网站
全部分类
  • 研究报告>
  • 管理文献>
  • 标准材料>
  • 技术资料>
  • 教育专区>
  • 应用文书>
  • 生活休闲>
  • 考试试题>
  • pptx模板>
  • 工商注册>
  • 期刊短文>
  • 图片设计>
  • ImageVerifierCode 换一换

    2022年面向对象程序设计山师第六章习题答案 .docx

    • 资源ID:37755762       资源大小:58.26KB        全文页数:36页
    • 资源格式: DOCX        下载积分:4.3金币
    快捷下载 游客一键下载
    会员登录下载
    微信登录下载
    三方登录下载: 微信开放平台登录   QQ登录  
    二维码
    微信扫一扫登录
    下载资源需要4.3金币
    邮箱/手机:
    温馨提示:
    快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如填写123,账号就是123,密码也是123。
    支付方式: 支付宝    微信支付   
    验证码:   换一换

     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    2022年面向对象程序设计山师第六章习题答案 .docx

    精品_精品资料_一、挑选填空第六章习题答案可编辑资料 - - - 欢迎下载精品_精品资料_1、A 2 、C 3 、D 4 、 B 5 、D6 、A 7 、C 8 、A 9 、D 10 、A11 、C 12 、A13、B 14、 C 15、C16 、D 17、 B 18、C 19、A 20、D21、C 22、B二、判定以下描述的正确性,对者划,错者划×.1、 2、× 3、× 4、× 5、 6、 7、× 8、 9、× 10、11、12、13、14、15、×16、17、18、19、20、×21、×22、×三、分析以下程序的输出结果.1、运行该程序输出结果如下所示.Default constructor called Constructor calleda=0,b=0 a=4,b=82、运行该程序输出结果如下所示.a=7,b=93、运行该程序输出结果如下所示.1044、运行该程序输出结果如下所示.1035,789.5045、运行该程序输出结果如下所示.10 ,1, 2, 3, 4, 5,6, 7, 8 111 , 12, 13, 14, 15, 16, 17, 18, 1919 , 18, 17, 16, 15, 14, 13,12, 116、运行该程序输出结果如下所示.Starting1:Default constructor called. Default constructor called. Default constructor called.Eding1: Starting2:Constructor: a=5,b=6Constructor: a=7,b=8 Constructor: a=9,b=10 Ending2:Destructor called.a=9,b=10 Destructor called.a=7,b=8 Destructor called.a=5,b=6 Destructor called.a=5,b=6 Destructor called.a=3,b=4可编辑资料 - - - 欢迎下载精品_精品资料_Destructor called.a=1,b=27、运行该程序输出结果如下所示.Default constructor called.Defaultconstructor called. Default constructor called. Default constructor called. Destructor called.Constructor1 called.Destructor called.Constructor2 called. Destructor called. x=0,y=0x=5,y=0 x=2,y=3Destructor called. Destructor called. Destructor called.8、运行该程序输出结果如下所示.Constructor called.0 Constructor called.5 Destructor called.5 5Destructor called.59、运行该程序输出结果如下所示.Constructor called.55Destructor called.510、运行该程序输出结果如下所示.Default Constructor called.Constructor:real=6.8,imag=0 Constructor:real=5.6,imag=7.9 0+0I6.8+0I5.6+7.9IConstructor:real=1.2,imag=3.4 Constructor:real=5,imag=0 Default Constructor called.1.2+3.4I5+0I0+0I11、答:该程序中用string.h 中所包含的函数有3 种,它们是 strcpy 、strcat 和 strlen .该程序中使用了函数重载.它们是下述两个构造函数重载:String 和 Stringconst char * str .可编辑资料 - - - 欢迎下载精品_精品资料_类中成员函数 Setc 的功能是用来设置字符数组中某位置的一个指定字符.类中成员函数 Getc 的功能是用来从某个字符数组中猎取指定位置的字符.类中成员函数 Append 的功能是在一个字符数组中追加一个指定的字符串,即将指定的字符串添加到已知串的后边.不行.该程序中有两处使用了new 运算符.运行该程序输出结果如下所示.empty. a string. 9a string. ithis a string.四、改正以下程序中的错误.1、该程序中 point 类的构造函数定义不正确,在main 中队数据成员的拜访不正确, 修改如下:#include <iostream.h> class pointint x1,x2 .public:pointint x,int ypoint:x=x.point:y=y . void dispcout<<x1<<endl .cout<<x2<<endl ./ .void mainpoint data5,5 .data.disp.2、在 main 函数中的 p.x+=5 和 p.y+=6 两个语句是错误的,由于爱护数据仅能被类的成员函数拜访.五、按以下要求编写程序.1、程序内容如下所示.#include <iostream.h>class Testpublic:TestTestint i,int j=20可编辑资料 - - - 欢迎下载精品_精品资料_t1=i .t2=j .t+=j-i .static int funTest&T .friend int addTest&T .private:int t1,t2 .static int t . .int Test:funTest&Tt+=T.t .return t .int addTest&Tint n=T.t1+T.t2 .return n .int Test:t=5 .void mainTest a1,a210,a315,25.cout<<adda2<<endl .cout<<Test:funa2<<endl .2、程序内容如下所示.#include <iostream.h> #include <string.h> class Productchar *name .int price .int quantity .public:Productchar *n,int p,int qname =new charstrlenn+1 .strcpyname,n.price=p .quantity=q .可编辑资料 - - - 欢迎下载精品_精品资料_Productifnamedelete name .name=0.void buyint moneyint n,r .n=money/price .ifn>quantitycout<<" 数量不够 "<<endl .elsequantity-=n .r=money%price .cout<<" 产品: "<<name<<" 单价: "<<price<<" 元 顾客" .cout<<money<<" 元,买了 "<<n<<" 台,剩余 "<<r<<" 元"<<endl .void get constcout<<" 产品: "<<name<<" 单价: "<<price<<" 元 剩余"<<quantity<<" 台"<<endl . .void mainProduct p1" 电视机 ",2022,15 .p1.buy7000 .p1.get.p1.buy4500 .p1.get.3、程序内容如下所示.#include <iostream.h> #include <stdlib.h> class CDateprivate:int m_nDay . int m_nMonth .int m_nYear .可编辑资料 - - - 欢迎下载精品_精品资料_public:CDate .CDateint day,int month,int year .void Display .void AddDay .void SetDateint day,int month,int year .CDate .private:bool IsLeapYear . /判定该年是否为闰年 .CDate:CDateCDate:CDateint day,int month,int yearm_nDay=day .m_nMonth=month .m_nYear=year.void CDate:Displaychar day5 .char month5 .char year5 ._itoam_nDay,day,10 ._itoam_nMonth,month,10 ._itoam_nYear,year,10.cout<<day<<"/"<<month<<"/"<<year<<endl.void CDate:AddDaym_nDay+ .if IsLeapYearifm_nMonth=2&&m_nDay=30m_nMonth+ .m_nDay=1 .return.elseifm_nMonth=2&&m_nDay=29可编辑资料 - - - 欢迎下载精品_精品资料_m_nMonth+ .m_nDay=1 .return.ifm_nDay>31ifm_nMonth=12m_nYear+ .m_nMonth=1 .m_nDay=1 .elsem_nMonth+ .m_nDay=1 .void CDate:SetDateint day,int month,int yearm_nDay=day .m_nMonth=month .m_nYear=year.CDate:CDatebool CDate:IsLeapYearbool bLeap .if m_nYear%4.=0 bLeap=false.else ifm_nYear%100.=0bLeap=true .else ifm_nYear%400.=0 bLeap=false.elsebLeap=true .return bLeap .void main可编辑资料 - - - 欢迎下载精品_精品资料_CDate d.d.SetDate2022,2,28.cout<<" 当前日期 => : ".d.Display .d.AddDay .cout<<" 当前日期加 1=> :".d.Display .4、程序内容如下所示.#include <iostream.h> class Tcprivate:double unlead,lead,total .int unprice,price .public:Tcunprice=17 .price=16 . void getdatacout<<" 无铅汽油总量. ".cin>>unlead .cout<<" 有铅汽油总量. ".cin>>lead .total=unprice*unlead+price*lead .void dispcout<<" 总收入: "<<total<<endl . .void mainTc A.A.getdata.A.disp .5、程序内容如下所示.#include <iostream.h> class CFactorialint value .int fact .public:可编辑资料 - - - 欢迎下载精品_精品资料_CFactorialint val .void CalculateFactorial .void Display . . CFactorial:CFactorialint valvalue=val .fact=1 .void CFactorial:CalculateFactorialint i=value .whilei>1 fact*=i- .void CFactorial:Displaycout<<value<<".="<<fact<<endl.void mainCFactorial A5 .A.CalculateFactorial .A.Display .6、程序内容如下所示.#include <iostream.h> #include <iomanip.h> class rectangleprivate:float ledge,sedge.public: rectangle .rectanglefloat a,float bledge=a.sedge=b. .float areareturn ledge*sedge. .void addarearectangle r1,rectangle r2可编辑资料 - - - 欢迎下载精品_精品资料_cout<<" 总面积: "<<r1.ledge*r1.sedge+ r2.ledge*r2.sedge<<endl. .void mainrectangle A3.5,2.5,B4.2,3.8,C .C.addareaA,B .7、程序内容如下所示.#include <iostream.h> #include <iomanip.h> class rectangleprivate:float ledge,sedge.public: rectangle .rectanglefloat a,float bledge=a.sedge=b. .float areareturn ledge*sedge. .void showlengthcout<<" 周长: "<<ledge+sedge*2<<endl .rectangle tlengthrectangle r2rectangle temp.temp.ledge=ledge+r2.ledge .temp.sedge=sedge+r2.sedge.return temp. .void mainrectangle A3.5,2.5,B4.2,3.8 .cout<<"A" .A.showlength .可编辑资料 - - - 欢迎下载精品_精品资料_cout<<"B" .B.showlength .rectangle C=A.tlengthB .cout<<"C" .C.showlength .8、程序内容如下所示.#include <iostream.h> #include <iomanip.h>class Lineprivate:double x1,x2,y1,y2 .public:Line .Linedouble a,double b,double c,double dx1=a.y1=b .x2=c .y2=d .cout<<" 线段端点 "<<x1<<","<<y1<<"-"<<x2<<","<<y2<<""<<endl.friend twolineLine l1,Line l2double r1=l2.y1*l2.x2-l1.x1-l1.y1*l2.x2-l2.x1+l1.x1-l2.x1*l2.y2-l2.y1.double r2=l1.y2-l1.y1*l2.x2-l2.x1-l1.x2-l1.x1*l2.y2-l2.y1.double r=r1/r2 .double t=l1.x1-l2.x1+r*l1.x2-l1.x1/l2.x2-l2.x1.if r>0&&r<1&&t>0&&t<1 cout<<""<<endl .else if r>0&&r<1&&t>=1cout<<""<<endl .else ifr>=1 | r<=0&& t>0&&t<1 cout<<""<<endl .elsecout<<""<<endl . .void mainLine A2,2,18,18,B1,12,19,5 .twolineA,B .9、此题涉及两个类student 和 cdegree,前者为同学类,包含同学的学号no,姓名(name)和成果 degree,而成果 degree 是类 cdegree的对象. cdegree类有 3 个数据成员, 分别为数学 math,英语 english 和物理 phy 分数.可编辑资料 - - - 欢迎下载精品_精品资料_程序内容如下所示.#include <iostream.h> class studentint no .char name10 .class cdegreepublic:int math .int english .int phy .degree.public:void getdatacout<<" 学号: ".cin>>no .cout<<" 姓名: ".cin>>name .cout<<" 数学分数: ".cin>>degree.math.cout<<" 英语分数: ".cin>>degree.english .cout<<" 物理分数: ".cin>>degree.phy .void dispcout<<" 学号: "<<no<<endl .cout<<" 姓名: "<<name<<endl .cout<<" 数学分数: "<<degree.math<<endl .cout<<" 英语分数: "<<degree.english<<endl .cout<<" 物理分数: "<<degree.phy<<endl . .void mainstudent stud.stud.getdata.stud.disp.10、程序内容如下所示.#include <iostream.h>可编辑资料 - - - 欢迎下载精品_精品资料_class Studentint english,computer,total .public:void getscore .void display .void sortStudent * .Student. .void Student:getscorecout<<" 输入英语成果 " .cin>>english .cout<<" 输入运算机成果 ".cin>>computer .total=english+computer .void Student:sortStudent *pint tmp,i,j .forj=0 .j<2 .j+ fori=0 .i<2 .i+ if total<p->totaltmp=total .total=p->total .p->total=tmp .tmp=english .english=p->english .p->english=tmp .tmp=computer .computer=p->computer .p->computer=tmp .void Student:displaycout<<" 英语="<<english<<" 运算机 ="<<computer<<" 总分 ="<<total<<endl .void mainStudent *A3 .for int j=0 .j<3 .j+可编辑资料 - - - 欢迎下载精品_精品资料_Aj=new Student .cout<<" 同学"<<j+1<<endl .Aj->getscore .int i .for j=0 .j<2 .j+ fori=0 .i<2 .i+Ai->sortAi+1.cout<<endl<<" 排序结果如下: "<<endl .for i=0 .i<3 .i+ Ai->display.11、程序内容如下所示.#include <iostream.h> struct list / 定义栈int data.list *next . .class Stack/定义一个栈操作类list *ptr .public:Stackptr=NULL. void pushint i .int pop . .void Stack:pushint x / 入栈成员函数list *newnode=new list .newnode->data=x .newnode->next=ptr .ptr=newnode .int Stack:pop/ 出栈成员函数list *top .int value .value=ptr->data .top=ptr .ptr=ptr->next .delete top.return value.可编辑资料 - - - 欢迎下载精品_精品资料_void mainStack A.int arr=5,2,8,1,4,3,9,7,6.cout<<" 入栈次序: ".for int i=0 .i<9 .i+cout<<arri<<" ".A.pusharri .cout<<endl<<" 出栈次序: ".for i=0 .i<9 .i+ cout<<A.pop<<" ".cout<<endl .12、程序内容如下所示.#include <iostream.h>struct listint data.list *next . .class Queuelist *ptrf,*ptrb. /队首和队尾指针public:Queueptrf=ptrb=NULL.void enqueueint .int dequeue. .void Queue:enqueueint x / 入队成员函数list *newnode=new list .newnode->data=x .newnode->next=NULL .if ptrb=NULL ptrf=ptrb=newnode .elseptrb->next=newnode .ptrb=newnode .可编辑资料 - - - 欢迎下载精品_精品资料_ .int Queue:dequeue/ 出队成员函数list *tmp .int value .value=ptrf->data .tmp=ptrf .ptrf=ptrf->next .delete tmp.return value.void mainQueue A.int arr=3,12,8,9,11.cout<<" 入队次序. ".for int i=0 .i<5 .i+cout<<arri<<" ".A.enqueuearri .cout<<endl<<" 出队次序: ".fori=0 .i<5 .i+ cout<<A.dequeue<<" " .cout<<endl .13、程序内容如下所示.#include<iostream.h>#include<stdlib.h> typedef struct treeint data.tree *left,*right,*father.*bstree .class Btreestatic int n.static int m .public:tree *root .Btreeroot=NULL .可编辑资料 - - - 欢迎下载精品_精品资料_void create_Btreeint .void inorderbstree ./ 中序遍历void display cout<<endl<<"中序遍历序列 : "<<endl .inorderroot .cout<<endl . int countbstree ./ 运算二叉树的个数int printbstree,int ./输出要查找的值对应的双亲结点的内容 .int Btree:n=0 .int Btree:m=0 .int Btree:printbstree p,int kifp=NULLreturn 0.elseifp->data.=kprintp->left,k .printp->right,k .elsecout<<k<<" 的双亲结点的内容为:"<<p->father->data<<endl .return 0.void Btree:create_Btreeint xbstree newnode=new tree.newnode->data=x .newnode->right=newnode->left=NULL.ifroot=NULL root=newnode .elsebstree back. bstree current=root .whilecurrent.=NULLback=current .ifcurrent->data>xcurrent=current->left .elsecurrent=current->right .可编辑资料 - - - 欢迎下载精品_精品资料_ifback->data>xback->left=newnode .newnode->father=back . elseback->right=newnode .newnode->father=back .int Btree:countbstree pifp=NULLreturn 0.elsereturn countp->left+countp->right+1./ 这是运用了函数嵌套即递归的方法.void Btree:inorderbstree temp/ 这是中序遍历二叉树,采纳了递归的方法.iftemp.=NULLinordertemp->left .cout<<temp->data<<" " .inordertemp->right .void mainBtree A.int array=7,4,1,5,12,8,13,11.int k .k=sizeofarray/sizeofarray0.cout<<" 建立排序二叉树次序 : "<<endl .forint i=0 . i<k .i+cout<<arrayi<<" ".A.create_Btreearrayi .cout<<endl .cout<<" 二叉树节点个数:"<<A.countA.root<<endl.A.display .可编辑资料 - - - 欢迎下载精品_精品资料_14、程序内容如下所示.#include <iostream.h> #include <stdio.h>struct listint data.list *next . .class Stacklist *ptr .public: Stackptr=NULL. void pushint i .int pop .int emptyif ptr=NULL return 1.else return 0. .void Stack:pushint xlist *newnode=new list .newnode->data=x .newnode->next=ptr .ptr=newnode .int Stack:poplist *top .int value .value=ptr->data .top=ptr .ptr=ptr->next .delete top.return value.class Queuelist *ptrf,*ptrb.public:Queue可编辑资料 - - - 欢迎下载精品_精品资料_ptrf=ptrb=NULL.void enqueueint .int dequeue. .void Queue:enqueueint xlist *newnode=new list .newnode->data=x .newnode->next=NULL .if ptrb=NULL ptrf=ptrb=newnode .elseptrb->next=newnode .ptrb=newnode . .int Queue:dequeuelist *tmp .int value .value=ptrf->data .tmp=ptrf .ptrf=ptrf->next .delete tmp.return value.void mainStack S.Queue Q.char ch.cout<<" 输入数据: ".whilech=getchar.='.'S.pushch.Q.enqueuech.while.S.empty && S.pop=Q.dequeue.if S.emptycout<<" 输入的是回文数据. "<<endl .elsecout<<" 输入的不是回文数据. "<<endl .可编辑资料 - - - 欢迎下载精品_精品资料_15、程序内容如下所示.#include <iostream.h> #include <iomanip.h> class magicint m44 .int step.int first .int sum.public:void getdata .void setfirstmagic .void generatemagic .void printmagic . .void magic:getdatacout<<" 输入魔方起始值:".cin>>first .cout<<" 输入相邻元素差值: ".cin>>step.void magic:setfirstmagicint i,j . int tmp .tmp=first .fori=0 .i<4 .i+forj=0 . j<4 .j+mij=tmp.tmp+=step.void magic:generatemagicsum=m00+m33.for int i=0,j=0 .i<4 . i+,j+ mij=sum-mij.for i=0,j=3 .i<4 .i+,j- mij=sum-mij.void magic:printmagic可编辑资料 - - - 欢迎下载精品_精品资料_int i,j .fori=0 .i<4 .i+for

    注意事项

    本文(2022年面向对象程序设计山师第六章习题答案 .docx)为本站会员(Q****o)主动上传,淘文阁 - 分享文档赚钱的网站仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知淘文阁 - 分享文档赚钱的网站(点击联系客服),我们立即给予删除!

    温馨提示:如果因为网速或其他原因下载失败请重新下载,重复下载不扣分。




    关于淘文阁 - 版权申诉 - 用户使用规则 - 积分规则 - 联系我们

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

    工信部备案号:黑ICP备15003705号 © 2020-2023 www.taowenge.com 淘文阁 

    收起
    展开