c++面向对象程序设计课后习题答案(谭浩强版).doc
《c++面向对象程序设计课后习题答案(谭浩强版).doc》由会员分享,可在线阅读,更多相关《c++面向对象程序设计课后习题答案(谭浩强版).doc(57页珍藏版)》请在咨信网上搜索。
第一章 5: #include <iostream> using namespace std; int main() { cout<<"This"<<"is"; cout<<"a"<<"C++"; cout<<"program."<<endl; return 0; } 6: #include <iostream> using namespace std; int main() { int a,b,c; a=10; b=23; c=a+b; cout<<"a+b="; cout<<c; cout<<endl; return 0; } 7: #include <iostream> using namespace std; int main() { int a,b,c; int f(int x,int y,int z); cin>>a>>b>>c; c=f(a,b,c); cout<<c<<endl; return 0; } int f(int x,int y,int z) { int m; if (x<y) m=x; else m=y; if (z<m) m=z; return(m); } 8: #include <iostream> using namespace std; int main() { int a,b,c; cin>>a>>b; c=a+b; cout<<"a+b="<<a+b<<endl; return 0; } 9: #include <iostream> using namespace std; int main() {int add(int x,int y); int a,b,c; cin>>a>>b; c=add(a,b); cout<<"a+b="<<c<<endl; return 0; } int add(int x,int y) {int c; c=x+y; return(c); } 10: #include <iostream> using namespace std; int main() {void sort(int x,int y,int z); int x,y,z; cin>>x>>y>>z; sort(x,y,z); return 0; } void sort(int x, int y, int z) { int temp; if (x>y) {temp=x;x=y;y=temp;} //{ }内3个语句的作用是将x和y的值互换) if (z<x) cout<<z<<','<<x<<','<<y<<endl; else if (z<y) cout<<x<<','<<z<<','<<y<<endl; else cout<<x<<','<<y<<','<<z<<endl; } 11: #include <iostream> using namespace std; int main() {int max(int a,int b,int c=0); int a,b,c; cin>>a>>b>>c; cout<<"max(a,b,c)="<<max(a,b,c)<<endl; cout<<"max(a,b)="<<max(a,b)<<endl; return 0; } int max(int a,int b,int c) {if(b>a) a=b; if(c>a) a=c; return a; } 12: #include <iostream> using namespace std; int main() { void change(int ,int ); int a,b; cin>>a>>b; if(a<b) change(a,b); cout<<"max="<<a<<" min="<<b<<endl; return 0; } void change(int ,int ) { int r1,r2,temp; temp=r1; r1=r2; r2=temp; } 13: #include <iostream> using namespace std; int main() {void sort(int &,int &,int &); int a,b,c,a1,b1,c1; cout<<"Please enter 3 integers:"; cin>>a>>b>>c; a1=a;b1=b;c1=c; sort(a1,b1,c1); cout<<a<<" "<<b<<" "<<c<<" in sorted order is "; cout<<a1<<" "<<b1<<" "<<c1<<endl; return 0; } void sort(int &i,int &j,int &k) { void change(int &,int &); if (i>j) change(i,j); if (i>k) change(i,k); if (j>k) change(j,k); } void change(int &x,int &y) { int temp; temp=x; x=y; y=temp; } 14: #include <iostream> #include <string> using namespace std; int main() { string s1="week",s2="end"; cout<<"s1="<<s1<<endl; cout<<"s2="<<s2<<endl; s1=s1+s2; cout<<"The new string is:"<<s1<<endl; return 0; } 15: #include <iostream> #include <string> using namespace std; int main() { string str; int i,n; char temp; cout<<"please input a string:"; cin>>str; n=str.size(); for(i=0;i<n/2;i++) {temp=str[i];str[i]=str[n-i-1];str[n-i-1]=temp;} cout<<str<<endl; return 0; } 16: #include <iostream> #include <string> using namespace std; int main() { int i; string str[5]={"BASIC","C","FORTRAN","C++","PASCAL"}; void sort(string []); sort(str); cout<<"the sorted strings :"<<endl; for(i=0;i<5;i++) cout<<str[i]<<" "; cout<<endl; return 0; } void sort(string s[]) {int i,j; string t; for (j=0;j<5;j++) for(i=0;i<5-j;i++) if (s[i]>s[i+1]) {t=s[i];s[i]=s[i+1];s[i+1]=t;} }17: #include <iostream> #include <string> using namespace std; int main() { long c[5]={10100,-123567, 1198783,-165654, 3456}; int a[5]={1,9,0,23,-45}; float b[5]={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;j<5;j++) for(i=0;i<5-j;i++) if (a[i]>a[i+1]) {t=a[i];a[i]=a[i+1];a[i+1]=t;} cout<<"the sorted numbers :"<<endl; for(i=0;i<5;i++) cout<<a[i]<<" "; cout<<endl<<endl; } void sort(long a[]) {int i,j; long t; for (j=0;j<5;j++) for(i=0;i<5-j;i++) if (a[i]>a[i+1]) {t=a[i];a[i]=a[i+1];a[i+1]=t;} cout<<"the sorted numbers :"<<endl; for(i=0;i<5;i++) cout<<a[i]<<" "; cout<<endl<<endl; } void sort(float a[]) {int i,j; float t; for (j=0;j<5;j++) for(i=0;i<5-j;i++) if (a[i]>a[i+1]) {t=a[i];a[i]=a[i+1];a[i+1]=t;} cout<<"the sorted numbers :"<<endl; for(i=0;i<5;i++) cout<<a[i]<<" "; cout<<endl<<endl; } 18: #include <iostream> #include <string> using namespace std; template <typename T> void sort(T a[]) {int i,j,min; T t; for(i=0;i<5;i++) {min=i; for (j=i+1;j<5;j++) if(a[min]>a[j]) min=j; t=a[i]; a[i]=a[min]; a[min]=t; } cout<<"the sorted numbers :"<<endl; for(i=0;i<5;i++) cout<<a[i]<<" "; cout<<endl<<endl; } int main() { int a[5]={1,9,0,23,-45}; float b[5]={2.4, 7.6, 5.5, 6.6, -2.3 }; long c[5]={10100,-123567, 1198783,-165654, 3456}; sort(a); sort(b); sort(c); return 0; } 第二章 1 #include <iostream> using namespace std; class Time { public: void set_time(); void show_time(); private: //成员改为公用的 int hour; int minute; int sec; }; void Time::set_time() //在main函数之前定义 { cin>>hour; cin>>minute; cin>>sec; } void Time::show_time() //在main函数之前定义 { cout<<hour<<":"<<minute<<":"<<sec<<endl; } int main() {Time t1; t1.set_time(); t1.show_time(); return 0; } 2: #include <iostream> using namespace std; class Time {public: void set_time(void) {cin>>hour; cin>>minute; cin>>sec; } void show_time(void) {cout<<hour<<":"<<minute<<":"<<sec<<endl;} private: int hour; int minute; int sec; }; Time t; int main() { t.set_time(); t.show_time(); return 0; } 3: #include <iostream> using 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) {cin>>hour; cin>>minute; cin>>sec; } void Time::show_time(void) {cout<<hour<<":"<<minute<<":"<<sec<<endl;} Time t; int main() { t.set_time(); t.show_time(); return 0; } 4: //xt2-4-1.cpp(main.cpp) #include <iostream> using namespace std; #include "xt2-4.h" int main() {Student stud; stud.set_value(); stud.display(); return 0; } //xt2-4-2.cpp(即student.cpp) #include "xt2-4.h" //在此文件中进行函数的定义 #include <iostream> using namespace std; //不要漏写此行 void Student::display( ) { cout<<"num:"<<num<<endl; cout<<"name:"<<name<<endl; cout<<"sex:"<<sex<<endl; } void Student::set_value() { cin>>num; cin>>name; cin>>sex; } 5: //xt2-5-1.cpp(file1.cpp) #include <iostream> #include "xt2-5.h" int main() {Array_max arrmax; arrmax.set_value(); arrmax.max_value(); arrmax.show_value(); return 0; } //xt2-5-2.cpp(arraymax.cpp) #include <iostream> using namespace std; #include "xt2-5.h" void Array_max::set_value() { int i; for (i=0;i<10;i++) cin>>array[i]; } void Array_max::max_value() {int i; max=array[0]; for (i=1;i<10;i++) if(array[i]>max) max=array[i]; } void Array_max::show_value() {cout<<"max="<<max<<endl; } 6:解法一 #include <iostream> using namespace std; class Box {public: void get_value(); float volume(); void display(); public: float lengh; float width; float height; }; void Box::get_value() { cout<<"please input lengh, width,height:"; cin>>lengh; cin>>width; cin>>height; } float Box::volume() { return(lengh*width*height);} void Box::display() { cout<<volume()<<endl;} int main() {Box box1,box2,box3; box1.get_value(); cout<<"volmue of bax1 is "; box1.display(); box2.get_value(); cout<<"volmue of bax2 is "; box2.display(); box3.get_value(); cout<<"volmue of bax3 is "; box3.display(); return 0; } 解法二: #include <iostream> using namespace std; class Box {public: void get_value(); void volume(); void display(); public: float lengh; float width; float height; float vol; }; void Box::get_value() { cout<<"please input lengh, width,height:"; cin>>lengh; cin>>width; cin>>height; } void Box::volume() { vol=lengh*width*height;} void Box::display() { cout<<vol<<endl;} int main() {Box box1,box2,box3; box1.get_value(); box1.volume(); cout<<"volmue of bax1 is "; box1.display(); box2.get_value(); box2.volume(); cout<<"volmue of bax2 is "; box2.display(); box3.get_value(); box3.volume(); cout<<"volmue of bax3 is "; box3.display(); return 0; } 第三章 2: #include <iostream> using namespace std; class Date {public: Date(int,int,int); Date(int,int); 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() {cout<<month<<"/"<<day<<"/"<<year<<endl;} 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 <iostream> 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):month(m),day(d),year(y) { } void Date::display() {cout<<month<<"/"<<day<<"/"<<year<<endl;} 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 <iostream> using namespace std; class Student {public: Student(int n,float s):num(n),score(s){} void display(); private: int num; float score; }; void Student::display() {cout<<num<<" "<<score<<endl;} int main() {Student stud[5]={ 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;i<=2;p=p+2,i++) p->display(); return 0; } 5: #include <iostream> using namespace std; class Student {public: Student(int n,float s):num(n),score(s){} int num; float score; }; void main() {Student stud[5]={ 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=&stud[0]; max(p); } void max(Student *arr) {float max_score=arr[0].score; int k=0; for(int i=1;i<5;i++) if(arr[i].score>max_score) {max_score=arr[i].score;k=i;} cout<<arr[k].num<<" "<<max_score<<endl; } 6: #include <iostream> 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(){cout<<num<<" "<<score<<endl;} private: int num; float score; }; int main() {Student stud(101,78.5); stud.display(); stud.change(101,80.5); stud.display(); return 0; } 7: 解法一 #include <iostream> 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() {cout<<num<<" "<<score<<endl;} //可改为:void display() const {cout<<num<<" "<<score<<endl;} private: int num; float score; }; int main() {const Student stud(101,78.5); stud.display(); //stud.change(101,80.5); stud.display(); return 0; } 解法二: #include <iostream> 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 {cout<<num<<" "<<score<<endl;} private: mutable 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 <iostream> 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() {cout<<num<<" "<<score<<endl;} private: int num; float score; }; int main() {Student stud(101,78.5); Student *p=&stud; p->display(); p->change(101,80.5); p->display(); return 0; } 8: #include <iostream> 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() {cout<<num<<" "<<score<<endl;} private: int num; float score; }; int main() {Student stud(101,78.5); void fun(Student&); fun(stud); return 0; } void fun(Student &stu) {stu.display(); stu.change(101,80.5); stu.display(); } 9: #include <iostream> 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 quantity; float price; static float discount; static float sum; static int n; }; void Product::total() {float rate=1.0; if(quantity>10) rate=0.98*rate; sum=sum+quantity*price*rate*(1-discount); n=n+quantity; } void Product::display() {cout<<sum<<endl; cout<<average()<<endl; } float Product::average() {return(sum/n);} float Product::discount=0.05; float Product::sum=0; int Product::n=0; int main() { Product Prod[3]={ Product(101,5,23.5),Product(102,12,24.56),Product(103,100,21.5) }; for(int i=0;i<3;i++) Prod[i].total(); Product::display(); return 0; } 10: #include <iostream> using namespace std; class Date; class Time {public: Time(int,int,int); friend void display(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; } void display(const Date &d,const Time &t) { cout<<d.month<<"/"<<d.day<<"/"<<d.year<<endl; cout<<t.hour<<":"<<t.minute<<":"<<t.sec<<endl; } int main() { Time t1(10,13,56); Date d1(12,25,2004); display(d1,t1); return 0; } 11: #include <iostream> using namespace std; class Time; class Date {public: Date(int,int,int); friend Time; private: int month; int day; int year; }; Date::Date(i- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+ 面向 对象 程序设计 课后 习题 答案 谭浩强版
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【xrp****65】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【xrp****65】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【xrp****65】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【xrp****65】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文