《c++面向对象程序设计课后习题答案(谭浩强版).doc》由会员分享,可在线阅读,更多相关《c++面向对象程序设计课后习题答案(谭浩强版).doc(47页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、如有侵权,请联系网站删除,仅供学习与交流c+面向对象程序设计课后习题答案(谭浩强版)【精品文档】第 47 页第一章5:#include using namespace std;int main() coutThisis; coutaC+; coutprogram.endl; return 0;6:#include using namespace std;int main() int a,b,c; a=10; b=23; c=a+b; couta+b=; coutc; coutendl; return 0;7:#include using namespace std;int main() int
2、 a,b,c; int f(int x,int y,int z); cinabc; c=f(a,b,c); coutcendl; return 0;int f(int x,int y,int z) int m;if (xy) m=x; else m=y; if (zm) m=z; return(m); 8: #include using namespace std;int main() int a,b,c; cinab; c=a+b; couta+b=a+bendl; return 0;9: #include using namespace std;int main()int add(int
3、x,int y); int a,b,c; cinab; c=add(a,b); couta+b=cendl; return 0;int add(int x,int y)int c; c=x+y; return(c);10:#include using namespace std;int main()void sort(int x,int y,int z);int x,y,z; cinxyz; sort(x,y,z); return 0;void sort(int x, int y, int z) int temp; if (xy) temp=x;x=y;y=temp; / 内3个语句的作用是将
4、x和y的值互换) if (zx) coutz,x,yendl; else if (zy) coutx,z,yendl; else coutx,y,zendl;11:#include using namespace std;int main()int max(int a,int b,int c=0); int a,b,c; cinabc; coutmax(a,b,c)=max(a,b,c)endl; coutmax(a,b)=max(a,b)a) a=b; if(ca) a=c; return a;12:#include using namespace std;int main() void c
5、hange(int ,int ); int a,b; cinab; if(ab) change(a,b); coutmax=a min=bendl; return 0;void change(int ,int ) int r1,r2,temp; temp=r1; r1=r2; r2=temp; 13:#include using namespace std;int main()void sort(int &,int &,int &); int a,b,c,a1,b1,c1; coutabc; a1=a;b1=b;c1=c; sort(a1,b1,c1); couta b c in sorted
6、 order is ; couta1 b1 c1j) change(i,j); if (ik) change(i,k); if (jk) change(j,k);void change(int &x,int &y) int temp; temp=x; x=y; y=temp;14:#include #include using namespace std;int main() string s1=week,s2=end; couts1=s1endl; couts2=s2endl; s1=s1+s2; coutThe new string is:s1endl; return 0; 15:#inc
7、lude #include using namespace std;int main() string str; int i,n; char temp; coutstr; n=str.size(); for(i=0;in/2;i+)temp=stri;stri=strn-i-1;strn-i-1=temp; coutstrendl;return 0; 16:#include #include using namespace std;int main() int i; string str5=BASIC,C,FORTRAN,C+,PASCAL; void sort(string ); sort(
8、str); coutthe sorted strings :endl; for(i=0;i5;i+) coutstri ; coutendl; return 0;void sort(string s)int i,j; string t; for (j=0;j5;j+) for(i=0;isi+1) t=si;si=si+1;si+1=t; 17: #include #include using namespace std;int main() long c5=10100,-123567, 1198783,-165654, 3456; int a5=1,9,0,23,-45; float b5=
9、2.4, 7.6, 5.5, 6.6, -2.3 ; void sort(int );void sort(float ); void sort(long ); sort(a); sort(b); sort(c); return 0;void sort(int a)int i,j,t; for (j=0;j5;j+) for(i=0;iai+1) t=ai;ai=ai+1;ai+1=t; coutthe sorted numbers :endl; for(i=0;i5;i+) coutai ; coutendlendl;void sort(long a)int i,j; long t; for
10、(j=0;j5;j+) for(i=0;iai+1) t=ai;ai=ai+1;ai+1=t; coutthe sorted numbers :endl; for(i=0;i5;i+) coutai ; coutendlendl;void sort(float a)int i,j; float t; for (j=0;j5;j+) for(i=0;iai+1) t=ai;ai=ai+1;ai+1=t; coutthe sorted numbers :endl; for(i=0;i5;i+) coutai ; coutendlendl;18: #include #include using na
11、mespace std;template void sort(T a) int i,j,min; T t; for(i=0;i5;i+)min=i; for (j=i+1;jaj) min=j; t=ai; ai=amin; amin=t; coutthe sorted numbers :endl; for(i=0;i5;i+) coutai ; coutendlendl;int main() int a5=1,9,0,23,-45; float b5=2.4, 7.6, 5.5, 6.6, -2.3 ; long c5=10100,-123567, 1198783,-165654, 3456
12、; sort(a); sort(b); sort(c); return 0;第二章1#include using namespace std;class Timepublic:void set_time();void show_time();private: /成员改为公用的 int hour; int minute; int sec;void Time:set_time() /在main函数之前定义 cinhour; cinminute; cinsec;void Time:show_time() /在main函数之前定义 couthour:minute:secendl;int main()T
13、ime t1;t1.set_time(); t1.show_time(); return 0; 2:#include using namespace std;class Time public: void set_time(void) cinhour; cinminute; cinsec; void show_time(void) couthour:minute:secendl; private: int hour; int minute; int sec;Time t;int main() t.set_time(); t.show_time(); return 0; 3:#include u
14、sing namespace std;class Time public: void set_time(void); void show_time(void); private: int hour; int minute; int sec;void Time:set_time(void) cinhour; cinminute; cinsec;void Time:show_time(void)couthour:minute:secendl;Time t;int main() t.set_time(); t.show_time(); return 0;4:/xt2-4-1.cpp(main.cpp
15、)#include using namespace std;#include xt2-4.hint main()Student stud; stud.set_value(); stud.display(); return 0;/xt2-4-2.cpp(即student.cpp)#include xt2-4.h /在此文件中进行函数的定义#include using namespace std; /不要漏写此行void Student:display( ) coutnum:numendl; coutname:nameendl; coutsex:sexnum;cinname; cinsex;5:/
16、xt2-5-1.cpp(file1.cpp)#include #include xt2-5.hint main() Array_max arrmax; arrmax.set_value(); arrmax.max_value(); arrmax.show_value(); return 0;/xt2-5-2.cpp(arraymax.cpp)#include using namespace std;#include xt2-5.hvoid Array_max:set_value() int i; for (i=0;iarrayi;void Array_max:max_value() int i
17、; max=array0; for (i=1;imax) max=arrayi;void Array_max:show_value() coutmax=maxendl;6:解法一#include using namespace std;class Boxpublic: void get_value(); float volume(); void display(); public: float lengh; float width; float height;void Box:get_value() coutlengh; cinwidth; cinheight;float Box:volume
18、() return(lengh*width*height);void Box:display() coutvolume()endl;int main()Box box1,box2,box3; box1.get_value(); coutvolmue of bax1 is ; box1.display(); box2.get_value(); coutvolmue of bax2 is ; box2.display(); box3.get_value(); coutvolmue of bax3 is ; box3.display(); return 0;解法二:#include using na
19、mespace std;class Boxpublic: void get_value(); void volume(); void display(); public: float lengh; float width; float height; float vol;void Box:get_value() coutlengh; cinwidth; cinheight;void Box:volume() vol=lengh*width*height;void Box:display() coutvolendl;int main()Box box1,box2,box3; box1.get_v
20、alue(); box1.volume(); coutvolmue of bax1 is ; box1.display(); box2.get_value(); box2.volume(); coutvolmue of bax2 is ; box2.display(); box3.get_value(); box3.volume();coutvolmue of bax3 is ; box3.display(); return 0;第三章2:#include using namespace std;class Date public: Date(int,int,int); Date(int,in
21、t); Date(int); Date(); void display(); private: int month; int day; int year;Date:Date(int m,int d,int y):month(m),day(d),year(y)Date:Date(int m,int d):month(m),day(d) year=2005;Date:Date(int m):month(m) day=1; year=2005;Date:Date() month=1; day=1; year=2005;void Date:display() coutmonth/day/yearend
22、l;int main() Date d1(10,13,2005); Date d2(12,30); Date d3(10); Date d4; d1.display(); d2.display(); d3.display(); d4.display(); return 0;3:#include using namespace std;class Date public: Date(int=1,int=1,int=2005); void display(); private: int month; int day; int year;Date:Date(int m,int d,int y):mo
23、nth(m),day(d),year(y)void Date:display() coutmonth/day/yearendl;int main() Date d1(10,13,2005); Date d2(12,30); Date d3(10); Date d4; d1.display(); d2.display(); d3.display(); d4.display(); return 0;4: #include using namespace std;class Student public: Student(int n,float s):num(n),score(s) void dis
24、play(); private: int num; float score;void Student:display() coutnum scoreendl;int main()Student stud5= Student(101,78.5),Student(102,85.5),Student(103,98.5), Student(104,100.0),Student(105,95.5); Student *p=stud; for(int i=0;idisplay(); return 0;5:#include using namespace std;class Student public:
25、Student(int n,float s):num(n),score(s) int num; float score;void main()Student stud5= Student(101,78.5),Student(102,85.5),Student(103,98.5), Student(104,100.0),Student(105,95.5); void max(Student* ); Student *p=&stud0; max(p);void max(Student *arr)float max_score=arr0.score; int k=0; for(int i=1;ima
26、x_score) max_score=arri.score;k=i; coutarrk.num max_scoreendl;6:#include using namespace std;class Studentpublic: Student(int n,float s):num(n),score(s) void change(int n,float s) num=n;score=s; void display()coutnum scoreendl; private: int num; float score;int main()Student stud(101,78.5); stud.dis
27、play(); stud.change(101,80.5); stud.display(); return 0;7: 解法一#include using namespace std;class Student public: Student(int n,float s):num(n),score(s) void change(int n,float s) num=n;score=s; void display() coutnum scoreendl; /可改为:void display() const coutnum scoreendl; private: int num; float sco
28、re;int main()const Studentstud(101,78.5); stud.display(); /stud.change(101,80.5); stud.display(); return 0;解法二:#include using namespace std;class Student public: Student(int n,float s):num(n),score(s) void change(int n,float s) const num=n;score=s; void display() const coutnum scoreendl; private: mu
29、table int num; mutable float score;int main()const Student stud(101,78.5); stud.display(); stud.change(101,80.5); stud.display(); return 0;解法三:#include using namespace std;class Student public: Student(int n,float s):num(n),score(s) void change(int n,float s) num=n;score=s; void display() coutnum sc
30、oredisplay(); p-change(101,80.5); p-display(); return 0;8:#include using namespace std;class Student public: Student(int n,float s):num(n),score(s) void change(int n,float s) num=n;score=s; void display() coutnum scoreendl; private: int num; float score;int main()Student stud(101,78.5); void fun(Stu
31、dent&); fun(stud); return 0; void fun(Student &stu)stu.display();stu.change(101,80.5); stu.display();9:#include using namespace std;class Product public: Product(int n,int q,float p):num(n),quantity(q),price(p); void total(); static float average(); static void display(); private: int num; int quant
32、ity; float price; static float discount; static float sum; static int n;void Product:total() float rate=1.0; if(quantity10) rate=0.98*rate; sum=sum+quantity*price*rate*(1-discount); n=n+quantity;void Product:display() coutsumendl; coutaverage()endl;float Product:average() return(sum/n);float Product
33、:discount=0.05;float Product:sum=0;int Product:n=0;int main() Product Prod3= Product(101,5,23.5),Product(102,12,24.56),Product(103,100,21.5) for(int i=0;i3;i+) Prodi.total(); Product:display(); return 0; 10:#include using namespace std;class Date;class Time public: Time(int,int,int); friend void dis
34、play(const Date &,const Time &); private: int hour; int minute; int sec; Time:Time(int h,int m,int s) hour=h; minute=m; sec=s;class Date public:Date(int,int,int); friend void display(const Date &,const Time &); private: int month; int day; int year;Date:Date(int m,int d,int y) month=m; day=d; year=y
35、;void display(const Date &d,const Time &t) coutd.month/d.day/d.yearendl; coutt.hour:t.minute:t.secendl;int main() Time t1(10,13,56); Date d1(12,25,2004); display(d1,t1); return 0; 11:#include using namespace std;class Time;class Date public: Date(int,int,int); friend Time;private: int month; int day
36、; int year;Date:Date(int m,int d,int y):month(m),day(d),year(y) class Time public: Time(int,int,int); void display(const Date &); private: int hour; int minute; int sec;Time:Time(int h,int m,int s):hour(h),minute(m),sec(s) void Time:display(const Date &d) coutd.month/d.day/d.yearendl; couthour:minute:secendl;int main() Time t1(10,13,56); Date d1(12,25,2004); t1.display(d1); return 0;12:#include using namespace std;templateclass numty