C++面向对象程序设计课后习题答案1~14章.pdf
《C++面向对象程序设计课后习题答案1~14章.pdf》由会员分享,可在线阅读,更多相关《C++面向对象程序设计课后习题答案1~14章.pdf(68页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第一章1-5#include using namespace std;int main()(coutThisis;coutaHC+;coutHprogram.;return 0;)1-6#include using namespace std;int main()(int a,b,c;a=10;b=23;c=a+b;couta+b=;1-8、include using namespace std;int main()int a,b,c;cinab;c=a+b;couta+b=a+bendl;return 0;)1-9、include using namespace std;int main()
2、(int a,b,c;int add(int x,int y);cinab;c=add(a,b);coutc;coutendl;return 0;)couta+b=cendl;return 0;l-7#include using namespace std;int main()(int a,b,c;int f(int x,int y,int z);cin abc;c=f(a,bzc);coutcendl;return 0;)int f(int xjnt y,int z)(int m;if(xy)m=x;else m=y;int add(int xjnt y)int z;z=x+y;return
3、(z);)第 一 早2-3、#include using namespace std;int main()charcl=,a,/c2=b,/c3=,c,/c4=,101,c5=,116,;coutclc2c3,n,;couttbc4t,c5,n;return 0;)2-4、#include if(z ttinclude using namespace std;int main()int i,j,m,n;i=8;j=io;m=+i+j+;n=(+i)+(+j)+m;co u t i,t j,t,m tnendl;return 0;2-8 include using namespace std;i
4、nt main()char cl=C/c2=hz c3=iz c4=n,c5=a;cl+=4;c2+=4;c3+=4;c4+=4;c5+=4;coutpasswordis:,clc2 c3 c4 c5 en d l;setprecision(2);coutl=setw(10)lendl;couts=setw(10)sendl;coutsq=setw(10)sqendl;coutvq=setw(10)vqendl;cout,vz=setw(10)vzendl;return 0;)3-3、include using namespace std;int main()float c,f;cout“请输
5、入一个华氏温度:“;cinf;c=(5.0.0)*(f-32);注意 5 和 9 要用实型表示,否则5/9值为0coutvv摄氏温度为:cendl;return 0;;3-4、#include using namespace std;int main()char cl,c2;coutv”请输入两个字符01,02:;cl=getchar();将输入的第一个字return 0;第三章3-2、#include#include using namespace std;int main()float h,rj,szsq,vq,vz;const float pi=3.1415926;coutplease
6、enter r,h:u;符赋给C1c2=getchar();将输入的第二个字符赋给C2cout”用 putchar函数输出结果为:“;putchar(cl);putchar(c2);coutendl;cout(“用 cout语句输出结果为:“;coutclc2endl;return 0;cinrh;l=2*pi*r;s=r*r*pi;sq=4*pi*r*r;vq=3.O/4.O*pi*r*r*r;vz=pi*r*r*h;)3-4-1、#include using namespace std;int main()char cl,c2;cout请输入两个字符d,c2:;cl=getchar();将
7、输入的第一个字coutsetiosflags(ios:fixed)setiosflags(ios:符赋给clright)c2=getchar();将输入的第二个字符赋给c2coutffl putchar函数输出结果为:“;putchar(cl);putchar(44);putchar(c2);coutendl;cout“用 cout语句输出结果为:;cou t cl/c2endl;return 0;)3-5、#include using namespace std;int main()char cl,c2;int ilJ2;定义为整型cout“请输入两个整数il,i2:;cin ili2;cl
8、=il;c2=i2;cout按 字 符 输 出 结 果 为:,c2endl;return 0;)3-8、include using namespace std;int main()int a=3,b=4zc=5zx,y;cout(a+bc&b=c)endl;cout(a|b+c&b-c)endl;cout(!(ab)&c|l)endl;cout(!(x=a)&(y=b)&0)endl;cout(!(a+b)+c-l&b+c/2)endl;return 0;3-9-1#include using namespace std;int main()int a,b,c;coutplease enter
9、 three integernumbers:;cin abc;if(ab)if(bc)coutmax=c;elsecoutmax=b;else if(ac)coutmax=c;elsecoutmax=a;coutendl;return 0;)39-2、#include using namespace std;int main()int a,b,c,tempzmax;coutplease enter three integernumbers:;cin abc;temp=(ab)?a:b;/*将 a 和 b 中的大者存入temp中*/max=(tempc)?temp:c;/*将 a 和 b 中的大
10、者与c 比较,最大者存入max*/coutmax=#include using namespace std;int main()int x,y;coutenter x:;cinx;if(xl)y=x;coutx=x/y=x=y;else if(x10)/110y=3*x-ll;coutx=x,y=3*x-ll=y;coutendl;return 0;)3-ll#include using namespace std;int main()float score;char grade;coutplease enter score of student:;cinscore;while(score10
11、0|score#include using namespace std;int main()long int num;intindiv,ten,hundredzthousand,ten_thousand,place;/*分别代表个位,十位,百位,千位,万位和位数*/coutenter an integer(099999):;cinnum;if(num9999)place=5;else if(num999)place=4;else if(num99)place=3;else if(num9)place=2;else place=l;coutplace=placeendl;计算各位数字ten_th
12、ousand=num/10000;thousand=(int)(num-ten_thousand*10000)/l000;hundred=(int)(num-ten_thousand*10000-thousand*1000)/100;ten=(int)(num-ten_thousand*10000-thousand*1000-hundred*100)/10;indiv=(int)(num-ten_thousand*10000-thousand*1000-hundred*100-ten*10);coutoriginal order:;switch(place)case5:coutten_thou
13、sand,7,thousand7,#include using namespace std;int main()long i;/i 为利润floatbonus,bonLbon2,bon4,bon6,bonlO;bonl=100000*0.1;利润为 10万元时的奖金bon2=bonl+100000*0.075;利润为 20万元时的奖金bon4=bon2+100000*0.05;利润为 40万元时的奖金bon6=bon4+100000*0.03;利 润为 60万元时的奖金bonl0=bon6+400000*0.015;利润为 100万元时的奖金coutenter i:;cini;if(i=100
14、000)bonus=i*0.1;利润在10万元以内按10%提成奖金else if(i=200000)bonus=bonl+(i-100000)*0.075;/利润在10万元至20万时的奖金else if(i=400000)bonus=bon2+(i-200000)*0.05;/利润在20万元至4 0 万时的奖金else if(i=600000)bonus=bon4+(i-400000)*0.03;/利润在40万元至60万时的奖金else if(i=1000000)bonus=bon6+(i-600000)*0.015;/利润在60万元至100万时的奖金elsebonus=bonl0+(i-10
15、00000)*0.01;/利润在100万元以上时的奖金coutbonus=bonusendl;return 0;)3-13-2、#include using namespace std;int main()long i;float bonus,bonl,bon2,bon4,bon6,bonl0;int c;bonl=100000*0.1;bon2=bonl+100000*0.075;bon4=bon2+200000*0.05;bon6=bon4+200000*0.03;bonl0=bon6+400000*0.015;coutenter i:;cini;c=i/100000;if(O10)c=1
16、0;switch(c)case 0:bonus=i*0.1;break;case 1:bonus=bonl+(j-100000)*0.075;break;case 2:case 3:bonus=bon2+(i-200000)*0.05;break;case 4:case 5:bonus=bon4+(i-400000)*0.03;break;case 6:case 7:case 8:case 9:bonus=bon6+(i-600000)*0.015;break;case 10:bonus=bonl0+(i-1000000)*0.01;)coutnbonus=bonusendl;return 0
17、;3-14#include using namespace std;int main()int t,a,b,c,d;coutenter four numbers:;cin a b c d;couta=a,b=b,c=,c,/d=dendl;if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;if(ad)t=a;a=d;d=t;if(bc)t=b;b=c;c=t;if(bd)t=b;b=d;d=t;if(cd)t=c;c=d;d=t;coutthe sorted sequence:endl;couta,b,c,dendl;return 0;)3-15#include usin
18、g namespace std;int main()int pj,n,m,temp;coutplease enter two positive integernumbers n,m:;cinnm;if(nm)temp=n;n=m;m=temp;把大数放在n 中,小数放在m 中)p=n*m;先将n和m 的乘积保存在p 中,以便求最小公倍数时用while(m!=0)求 n 和 m的最大公约数r=n%m;n=m;m=r;coutHCF=nendl;coutLCD=p/nendl;P 是原来两个整数的乘积return 0;)3-16、#include using namespace std;int m
19、ain()char c;int letters=0,space=0,digit=0,other=0;coutenter one line:Hendl;while(c=getchar()!=n)if(c=a&c=A&c=0&c=9)digit+;elseother+;)coutletter:,letters/space:space,/digit:,d igit/other:otherendl;return 0;)3-17、#include using namespace std;int main()int a,n,i=l/sn=0,tn=0;couta,n=:;cinan;while(i=n)t
20、n=tn+a;赋值后的tn 为 i 个 a组成数的值sn=sn+tn;赋值后的s n 为多项式前i 项之和a=a*10;+i;couta+aa+aaa+.=snendl;return 0;)3-18、#include using namespace std;int main()float s=0,t=l;int n;for(n=l;n=20;n+)(t=t*n;求 n!s=s+t;/将各项累加)coutl!+2!+.+20!=nsendl;return 0;)3-19、#include using namespace std;int main()int i,j,k,n;coutnarcissu
21、s numbers are:endl;for(n=100;n1000;n+)i=n/100;j=n/10-i*10;k=n%10;if(n=i*i*i+j*j*j+k*k*k)coutn)coutendl;return 0;)3-20-1、#include using namespace std;int main()const int m=1000;/定义寻找范围int kl,k2,k3,k4,k5,k6,k7,k8,k9,kl0;int i,a,n,s;for(a=2;a=m;a+)a 是 21000 之间的整数,检查它是否为完数n=0;/n 用来累计a 的因子的个数s=a;/s 用来存放尚
22、未求出的因子之和,开始时等于afor(i=l;ia;i+)/检查 i 是否为 a的因子if(a%i=0)/如果 i 是 a 的因子n+;11加 1,薪:新找到一个因子s=s-i;到s 减去已找:的因子,s 的新值是尚未求出的因子之和switch(n)/将找到的因子赋给case 1:kl=i;个因子赋给klcase 2:break;/找出的笫 1k2=i;个因子赋给k2case 3:break;/找出的笫 2k3=i;个因子赋给k3case 4:break;/找出的笫 3k4=i;个因子赋给k4case 5:break;/找出的笫 4k5=i;个因子赋给k5case 6:break;/找出的笫
23、5k6=i;个因子赋给k6case 7:break;/找出的笫 6k7=i;个因子赋给k7case 8:break;/找出的笫 7k8=i;个因子赋给k8case 9:break;/找出的笫 8k9=i;个因子赋给k9case 10:break;/找出的笫 9kl0=i;break;10个因子赋给klO)/找出的笫if(s=0)/s=0 表示全部因子都已找到了couta is a 完数l)coutklzl l表示a 至少有2 个因子if(n2)coutzk3;/n2 表示至少有3 个因子,故应再输出一个因子if(n3)cout,”3 表示至少有4 个因子,故应再输出一个因子if(n4)cout
24、zk5;/以下类似if(n5)coutzk6;if(n6)cout,k7;if(n7)coutzk8;if(n8)cout,k9;if(n9)coutzHklO;coutendlendl;)return 0;)3-20-2#include using namespace std;int main()int m,s,i;for(m=2;m1000;m+)s=0;for(i=l;im;i+)if(m%i)=0)s=s+i;if(s=m)coutm is a 完数ench;coutits factors are:;for(i=l;im;i+)if(m%i=0)couticoutendl;)retur
25、n 0;)3-2 0-3#include using namespace std;int main()int kll;int i,azn,s;for(a=2;a=1000;a+)n=0;s=a;for(i=l;ia;i+)if(a%i)=0)n+;s=s-i;kn=i;/将找到的因子赋给 kl k10)if(s=0)couta is a 完数endl;coutHits factors are:;for(i=l;in;i+)coutkiH;coutknendl;)return 0;)3-21N#include using namespace std;int main()int i,t,n=20;
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- C+ 面向 对象 程序设计 课后 习题 答案 14
限制150内