欢迎来到冰豆网! | 帮助中心 分享价值,成长自我!
冰豆网
全部分类
  • IT计算机>
  • 经管营销>
  • 医药卫生>
  • 自然科学>
  • 农林牧渔>
  • 人文社科>
  • 工程科技>
  • PPT模板>
  • 求职职场>
  • 解决方案>
  • 总结汇报>
  • 党团工作>
  • ImageVerifierCode 换一换
    首页 冰豆网 > 资源分类 > DOCX文档下载
    分享到微信 分享到微博 分享到QQ空间

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

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

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

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

    1、面向对象程序设计 C 山师 第六章习题答案第六章习题答案一、选择填空 1、A 2、C 3、D 4、B 5、D 6、A 7、C 8、A 9、D 10、A 11、C 12、A 13、B 14、C 15、C 16、D 17、B 18、C 19、A 20、D 21、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 calledConstruct

    2、or calleda=0,b=0a=4,b=82、运行该程序输出结果如下所示。a=7,b=93、运行该程序输出结果如下所示。1044、运行该程序输出结果如下所示。1035,789.5045、运行该程序输出结果如下所示。10,1,2,3,4,5,6,7,8111,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:Starti

    3、ng2:Constructor: a=5,b=6Constructor: a=7,b=8Constructor: a=9,b=10Ending2:Destructor called.a=9,b=10Destructor called.a=7,b=8Destructor called.a=5,b=6Destructor called.a=5,b=6 Destructor called.a=3,b=4Destructor called.a=1,b=27、运行该程序输出结果如下所示。Default constructor called.Defaultconstructor called.Defaul

    4、t constructor called.Default constructor called.Destructor called.Constructor1 called.Destructor called.Constructor2 called.Destructor called.x=0,y=0x=5,y=0x=2,y=3Destructor called.Destructor called.Destructor called.8、运行该程序输出结果如下所示。Constructor called.0Constructor called.5Destructor called.55Destruc

    5、tor called.59、运行该程序输出结果如下所示。Constructor called.55Destructor called.510、运行该程序输出结果如下所示。Default Constructor called.Constructor:real=6.8,imag=0Constructor:real=5.6,imag=7.90+0I6.8+0I5.6+7.9IConstructor:real=1.2,imag=3.4Constructor:real=5,imag=0Default Constructor called.1.2+3.4I5+0I0+0I11、答:该程序中用string.

    6、h中所包含的函数有3种,它们是strcpy( )、strcat( )和strlen( ).该程序中使用了函数重载。它们是下述两个构造函数重载:String( )和String(const char * str)。类中成员函数Setc( )的功能是用来设置字符数组中某位置的一个指定字符。类中成员函数Getc( )的功能是用来从某个字符数组中获取指定位置的字符。类中成员函数Append( )的功能是在一个字符数组中追加一个指定的字符串,即将指定的字符串添加到已知串的后边。不行。该程序中有两处使用了new运算符。运行该程序输出结果如下所示。empty.a string.9a string.ithis

    7、 a string.四、改正以下程序中的错误。1、该程序中point类的构造函数定义不正确,在main()中队数据成员的访问不正确,修改如下:#include class pointint x1,x2。public: point(int x,int y)point:x=x。point:y=y。 void disp() coutx1endl。 coutx2endl。/。void main()point data(5,5)。data.disp()。2、在main()函数中的p.x+=5和p.y+=6两个语句是错误的,因为保护数据仅能被类的成员函数访问。五、按下列要求编写程序。1、程序内容如下所示。

    8、#include class Testpublic:Test()Test(int i,int j=20)t1=i。t2=j。t+=j-i。static int fun(Test&T)。friend int add(Test&T)。private:int t1,t2。static int t。int Test:fun(Test&T)t+=T.t。return t。int add(Test&T)int n=T.t1+T.t2。return n。int Test:t=5。void main()Test a1,a2(10),a3(15,25)。coutadd(a2)endl。coutTest:fun(

    9、a2)endl。2、程序内容如下所示。#include #include class Product char *name。 int price。 int quantity。public: Product(char *n,int p,int q) name =new charstrlen(n)+1。 strcpy(name,n)。price=p。quantity=q。Product() if(name) delete name。 name=0。void buy(int money) int n,r。 n=money/price。 if(nquantity) cout数量不够endl。 else

    10、 quantity-=n。 r=money%price。 cout产品:name单价:price元 顾客。 coutmoney元,买了n台,剩余r元endl。void get() const cout产品:name单价:price元 剩余quantity台endl。void main() Product p1(电视机,2000,15)。 p1.buy(7000)。 p1.get()。 p1.buy(4500)。 p1.get()。3、程序内容如下所示。#include #include class CDate private: int m_nDay。 int m_nMonth。 int m_n

    11、Year。 public: CDate()。 CDate(int day,int month,int year)。 void Display()。 void AddDay()。 void SetDate(int day,int month,int year)。 CDate()。 private: bool IsLeapYear()。 /判断该年是否为闰年。CDate:CDate()CDate:CDate(int day,int month,int year) m_nDay=day。 m_nMonth=month。 m_nYear=year。void CDate:Display() char d

    12、ay5。 char month5。 char year5。 _itoa(m_nDay,day,10)。 _itoa(m_nMonth,month,10)。 _itoa(m_nYear,year,10)。 coutday/month/year31) if(m_nMonth=12) m_nYear+。 m_nMonth=1。 m_nDay=1。else m_nMonth+。 m_nDay=1。void CDate:SetDate(int day,int month,int year) m_nDay=day。 m_nMonth=month。 m_nYear=year。CDate:CDate()boo

    13、l CDate:IsLeapYear() bool bLeap。 if (m_nYear%4!=0)bLeap=false。 else if(m_nYear%100!=0)bLeap=true。else if(m_nYear%400!=0) bLeap=false。 else bLeap=true。 return bLeap。void main() CDate d。 d.SetDate(2001,2,28)。 cout:。 d.Display()。 d.AddDay()。 cout:。 d.Display()。4、程序内容如下所示。#include class Tc private:doubl

    14、e unlead,lead,total。int unprice,price。 public:Tc()unprice=17。price=16。void getdata() coutunlead。 coutlead。 total=unprice*unlead+price*lead。void disp() cout总收入:totalendl。void main() Tc A。 A.getdata()。 A.disp()。5、程序内容如下所示。#include class CFactorialint value。int fact。 public:CFactorial(int val)。void Cal

    15、culateFactorial()。void Display()。CFactorial:CFactorial(int val) value=val。 fact=1。void CFactorial:CalculateFactorial() int i=value。 while(i1) fact*=i-。void CFactorial:Display() coutvalue!=factendl。void main() CFactorial A(5)。 A.CalculateFactorial()。 A.Display()。6、程序内容如下所示。#include #include class rec

    16、tangle private:float ledge,sedge。 public:rectangle()。rectangle(float a,float b) ledge=a。sedge=b。float area() return ledge*sedge。void addarea(rectangle r1,rectangle r2) cout总面积:r1.ledge*r1.sedge+ r2.ledge*r2.sedgeendl。void main() rectangle A(3.5,2.5),B(4.2,3.8),C。 C.addarea(A,B)。7、程序内容如下所示。#include #

    17、include class rectangle private:float ledge,sedge。 public:rectangle()。rectangle(float a,float b) ledge=a。sedge=b。float area() return ledge*sedge。void showlength() cout周长:(ledge+sedge)*2endl。rectangle tlength(rectangle r2) rectangle temp。 temp.ledge=ledge+r2.ledge。 temp.sedge=sedge+r2.sedge。 return t

    18、emp。void main() rectangle A(3.5,2.5),B(4.2,3.8)。 coutA。 A.showlength()。 coutB。 B.showlength()。 rectangle C=A.tlength(B)。 coutC。 C.showlength()。8、程序内容如下所示。#include #include class Line private:double x1,x2,y1,y2。 public:Line()。Line(double a,double b,double c,double d) x1=a。y1=b。x2=c。y2=d。 cout线段端点x1,y

    19、1)-(x2,y2)0&r0&t1) cout0&r=1) cout=1 | r0&t1) coutendl。 else coutendl。void main() Line A(2,2,18,18),B(1,12,19,5)。 twoline(A,B)。9、本题涉及两个类student和cdegree,前者为学生类,包含学生的学号(no),姓名(name)和成绩(degree),而成绩degree是类cdegree的对象。cdegree类有3个数据成员,分别为数学(math),英语(english)和物理(phy)分数。程序内容如下所示。#include class student int n

    20、o。 char name10。 class cdegree public: int math。 int english。 int phy。degree。public: void getdata() coutno。 coutname。 coutdegree.math。 coutdegree.english。 coutdegree.phy。 void disp() cout学号:noendl。 cout姓名:nameendl。 cout数学分数:degree.mathendl。 cout英语分数:degree.englishendl。 cout物理分数:degree.phyendl。void ma

    21、in() student stud。 stud.getdata()。 stud.disp()。10、程序内容如下所示。#include class Studentint english,computer,total。 public:void getscore()。void display()。void sort(Student *)。Student()。void Student:getscore() coutenglish。 coutcomputer。 total=english+computer。void Student:sort(Student *p) int tmp,i,j。 for(j

    22、=0。j2。j+)for(i=0。i2。i+) if (totaltotal) tmp=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:display() cout英语=english计算机=computer总分=totalendl。void main() Student *A3。 for (int j=0。j3。j+) Aj=new Student。 c

    23、out学生j+1getscore()。int i。for (j=0。j2。j+) for(i=0。isort(Ai+1)。coutendl排序结果如下:endl。for (i=0。idisplay()。11、程序内容如下所示。#include struct list /定义栈 int data。 list *next。class Stack /定义一个栈操作类list *ptr。 public:Stack()ptr=NULL。void push(int i)。int pop()。void Stack:push(int x) /入栈成员函数 list *newnode=new list。 new

    24、node-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 main() Stack A。 int arr=5,2,8,1,4,3,9,7,6。 cout入栈顺序:。 for (int i=0。i9。i+) coutarri 。A.push(arri)。coutendl出栈顺序:。for (i=0。i9。i+) coutA.pop() 。coutendl。12、程序内容如下所


    注意事项

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

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




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2022 冰点文档网站版权所有

    经营许可证编号:鄂ICP备2022015515号-1

    收起
    展开