c++程序设计谭浩强课后习题答案

上传人:小** 文档编号:111147687 上传时间:2022-06-20 格式:DOC 页数:20 大小:313KB
收藏 版权申诉 举报 下载
c++程序设计谭浩强课后习题答案_第1页
第1页 / 共20页
c++程序设计谭浩强课后习题答案_第2页
第2页 / 共20页
c++程序设计谭浩强课后习题答案_第3页
第3页 / 共20页
资源描述:

《c++程序设计谭浩强课后习题答案》由会员分享,可在线阅读,更多相关《c++程序设计谭浩强课后习题答案(20页珍藏版)》请在装配图网上搜索。

1、第一章1.5题#includeusingnamespacestd;intmain()cout,This,is,;cout,a,C+H;cout,program.M;return0;1.6题includeusingnamespacestd;intmain()inta,b,c;a=10;b=23;c=a+b;cout,a+b=;coutc;coutendl;return0;1.7七题#includeusingnamespacestd;intmain()intabc;intf(intx,intyjntz);cinabc;c=f(a,b,c);coutcendl;return0;intf(intxjn

2、ty,intz)intm;if(xy)m=x;elsem=y;if(zm)m=z;return(m);1.8题/includeusingnamespacestd;intmain()intabc;cinab;c=a+b;cout,a+b=,a+bendl;return0;1.9题/includeusingnamespacestd;intmain()intabc;intadd(intxnty);cinab;c=add(a,b);cout,a+b=,cendl;return0;intadd(intxnty)intz;z=x+y;return(z);2.3题/includeusingnamespace

3、std;intmain()charcl=,a,c2=,b,zc3=,c,/c4=,101,/c5=,116,;coutclc2c3,n,;cout,tb,c4,t,c5,n,;return0;2.4题/includeusingnamespacestd;intmain()charcl=,C,c2=,+/c3=+,;coutHlsay:,clc2c3,H,;cout,tt,Hesays:C+isveryinteresting!,Hreturn0;2.7题includeusingnamespacestd;intmain()inti,j,mzn;i=8;j=10;m=+i+j+;n=(+i)+(+j)

4、+m;couti,t,j,t,m,t,nendl;return0;2.8题includeusingnamespacestd;intmain()charcl=,C,/c2h:c3=,i,c4=,nl/c5=,a;cl+=4;c2+=4;c3+=4;c4+=4;c5+=4;coutHpasswordis:,clc2c3c4c5endl;return0;3.2题includeincludeusingnamespacestd;intmain()floath,r,s,sq,vq/z;constfloatpi=3.1415926;coutHpleaseenterch:;cinrh;l=2*pi*r;s=r

5、*r*pi;sq=4*pi*r*r;vq=3.0/4.0*pi*r*r*r;vz=pi*r*r*h;coutsetiosflags(ios:fixed)setiosflags(ios:right)setprecision(2);coutHl=,setw(10)lendl;coutHs=Hsetw(10)sendl;cout,sq=,setw(10)sqendl;cout,vq=,setw(10)vqendl;cout,vz=,setw(10)vzendl;return0;3.3题/includeusingnamespacestd;intmain()floatczf;cout“请输入一个华氏温度

6、:”;cinf;c=(5.0/9.0)*(f-32);注意5和9要用实型表示,否则5/9值为0cout摄氏温度为:cendl;return0;3.4题/includeusingnamespacestd;intmain()charcl,c2;cout“请输入两个字符cl,c2:“;cl=getchar();将输入的第一个字符赋给clc2=getchar();将输入的第二个字符赋给c2cout用putchar函数输出结果为:;putchar(cl);putchar(c2);coutendl;cout“用cout语句输出结果为:“;coutclc2endl;return0;3.4题另一解/inclu

7、deusingnamespacestd;intmain()charcl,c2;cout“请输入两个字符cl,c2:“;cl=getchar();将输入的第一个字符赋给clc2=getchar();将输入的第二个字符赋给c2cout用putchar函数输出结果为:;putchar(cl);putchar(44);putchar(c2);coutendl;cout“用cout语句输出结果为:“;coutcl,/,c2endl;return0;3.5题/includeusingnamespacestd;intmain()charcl,c2;intil,i2;定义为整型cout-请输入两个整数il,i

8、2:“;cinili2;cl=il;c2=i2;cout按字符输出结果为:,clH,c2endl;return0;3.8题/includeusingnamespacestd;intmain()inta=3/b=4/c=5,x/y;cout(a+bc&b=c)endl;cout(a11b+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;return0;3.9题ineludeusingnamespacestd;intmain()inta,b,c;coutpleaseenterth

9、reeintegernumbers:1;cinabc;if(ab)if(bc)cout,max=,c;elsecout,max=,b;elseif(ac)cout,max=,c;elsecout,max=,a;coutendl;return0;3.9题另一解includeusingnamespacestd;intmain()intabc,temp,max;coutpleaseenterthreeintegernumbers:;cinabc;temp=(ab)?a:b;存入temp中*/max=(tempc)?temp:c;者与c比较,最大者存入max*/cout,max=,maxendl;re

10、turn0;3.10题include/*将a和b中的大者/*将a和b中的大usingnamespacestd;intmain()intx,y;coutHenterx:H;cinx;if(xl)y=x;cout,x=,x,/y=x=y;elseif(x10)y=2*x-l;cout,x=x,/y=2*x-l=Hy;elsey=3*x-ll;cout,x=x,/y=3*x-ll=uy;/lWxVIO/xlOcoutendl;return0;3.11 题/includeusingnamespacestd;intmain()floatscore;chargrade;coutHpleaseentersc

11、oreofstudent:;cinscore;while(score100|score0)coutHdataerror,enterdataagain.;cinscore;switch(int(score/10)case10:case9:grade=,A;break;case8:grade=Bf;break;case7:grade=,C,;break;case6:grade=D,;break;default:grade=,E,;coutHscoreis,score,/gradeisHgradeendl;return0;3.12 题/includeusingnamespacestd;intmain

12、()longintnum;intindiytenhundred,thousanctten_thousand,place;/*分别代表个位,十位,百位,千位,万位和位数*/coutHenteraninteger(099999):;cinnum;if(num9999)place=5;elseif(num999)place=4;elseif(num99)place=3;elseif(num9)place=2;elseplace=l;cout,place=,placeendl;计算各位数字ten_thousand=num/10000;thousand=(int)(num-ten_thousand*10

13、000)/1000;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);coutHonginalorder:;switch(place)case5:coutten_thousandTthousanckvfvvhundreck,/,ten,/,indivendl;coutHre

14、verseorder:1;coutindivtenhundredthousandten_thousandendl;break;case4:coutthousand,/,hundred,/,ten,/,indivendl;coutHreverseorder:1;coutindivtenhundredthousandendl;break;case3:couthundred,/,ten,/,,indivendl;coutHreverseorder:1;coutindivtenhundredendl;break;case2:coutten,/,indivvcendl;coutHreverseorder

15、:1;coutindivtenendl;break;casel:coutindivendl;coutHreverseorder:1;coutindivendl;break;return0;3.13 题includeusingnamespacestd;intmain()longi;/i为利润floatbonus”bonl,bon2,bon4,bon6,bonl0;bonl=100000*0.1;bon2=bonl+100000*0.075;金bon4=bon2+100000*0.05;金bon6=bon4+100000*0.03;金bonl0=bon6+400000*0.015;奖金coutHe

16、nteri:;cini;if(i=100000)bonus=i*0.1;内按10%提成奖金elseif(i=200000)bonus=bonl+(i-100000)*0.075;20万时的奖金elseif(i=400000)bonus=bon2+(i-200000)*0.05;40万时的奖金elseif(i=600000)bonus二bon4+(卜400000)*0.03;60万时的奖金elseif(i=1000000)bonus=bon6+(i-600000)*0.015;利润为10利润为20利润为4利润为60利润为10利润在利润在1利润在2利润在4利润在6100万时的奖金elsebonus

17、=bonl0+(i-1000000)*0.01;/利润在以上时的奖金coutbonus=llbonusendl;万元时的奖金万元时的奖I万元时的奖万元时的奖万元时的10万元以)万元至万元至万元至)万元至)0万元return0;3.13题另一解includeusingnamespacestd;intmain()longi;floatbonus,bonl,bon2,bon4,bon6,bonl0;intc;bonl=100000*0.1;bon2=bonl+100000*0.075;bon4=bon2+200000*0.05;bon6=bon4+200000*0.03;bonl0=bon6+400

18、000*0.015;coutHenteri:;cini;c=i/100000;if(c10)c=10;switch(c)case0:bonus=i*0.1;break;case1:bonus二bonl+(卜100000广0.075;break;case2:case3:bonus=bon2+(i-200000)*0.05;break;case4:case5:bonus=bon4+(i-400000)*0.03;break;case6:case7:case8:case9:bonus=bon6+(i-600000)*0.015;break;case10:bonus=bonl0+(i-1000000)

19、*0.01;coutbonus=bonusendl;return0;3.14 题/includeusingnamespacestd;intmain()inttzazb,c,d;coutHenterfournumbers:;cinabcd;cout,a=,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;coutHthesortedsequence:”endl;couta,/,b,/,c,/udendl;return0;3.15 题/in

20、cludeusingnamespacestd;intmain()intpinmtemp;coutNpleaseentertwopositiveintegernumbersnzm:;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;cout,HCF=,lnendl;coutLCD=p/nendl;/p是原來两个整数的乘积return0;3.16 题/includeusingnamespacestd;intmain()charc;i

21、ntletters=0,space=0,digit=0,other=0;coutHenteroneline:Hendl;while(c=getchar()!=,n,)if(c=a&c=A&c=,0,&c=,9,)digit+;elseother+;cout,letter:,letters,/space:,space,/digit:,digit,/other:otherendl;return0;3.17 题/includeusingnamespacestd;intmain()intn=0,tn=0;cout,a/n=:;cinan;while(i=n)tn二tn+a;sn二sn+tn;a=a*1

22、0;+i;赋值后的tn为i个a组成数的值赋值后的sn为多项式前i项之和cout,a+aa+aaa+.=,snendl;return0;3.18 题/includeusingnamespacestd;intmain()floats=0,t=l;intn;for(n=l;n=20;n+)t=t*n;/求n!s=s+t;/将各项累加cout,l!+2!+.+20!=,sendl;return0;3.19 题/includeusingnamespacestd;intmain()intij,k,n;coutHnarcissusnumbersare:Hendl;for(n=100;n1000;n+)i=n

23、/100;j=n/10-i*10;k=n%10;if(n=i*i*i+j*j*j+k*k*k)coutncoutendl;return0;3.20 题/includeusingnamespacestd;intmain()constintm=1000;/定义寻找范围intkbk乙k3,k4,k5,k6,k7,k&k9,kl0;intiza,n,s;for(a=2;a=m;a+)/a是2-1000之间的整数,检査它是否为完数n=0;/n用來累计a的因子的个数s=a;/s用來存放尚未求出的因子之和,开始时等于afor(i=l;il)coutkl,/,,k2;/nl表示a至少有2个因子if(n2)co

24、ut,/,k3;/n2表示至少有3个因子,故应再输出一个因子if(n3)cout,/,,k4;/n3表示至少有4个因子,故应再输出一个因子if(n4)cout,/,,k5;/以下类似if(n5)cout,/,,k6;if(n6)cout,/,k7;if(n7)cout”/k&if(n8)cout,/,k9;if(n9)coutll/,kl0;coutendlendl;return0;3.20题另一解/includeusingnamespacestd;intmain()intm,s,i;for(m=2;m1000;m+)s=0;for(i=l;im;i+)if(m%i)=0)s=s+i;if(s

25、=m)coutmnisa完数endl;coutitsfactorsare:;for(i=l;im;i+)if(m%i=0)couticoutendl;return0;3.20题另一解includeusingnamespacestd;intmain()intkll;intfor(a=2;a=1000;a+)n=0;s=a;for(i=l;ia;i+)if(a%i)=0)n+;s=s-i;kn=i;/将找到的因子赋给klk10if(s=0)coutaisa完数endl;coutitsfactorsare:;for(i=l;in;i+)coutki;coutknendl;return0;3.21 题

26、includeusingnamespacestd;intmain()intiWO;doublea=2,b=l/s=0;for(i=l;i=n;i+)s二s+a/b;t=a;a=a+b;/将前一项分子与分母之和作为卜一项的分子b=t:/将前_项的分子作为下一项的分母cout,sum=,sendl;return0;3.22 题/includeusingnamespacestd;intmain()intday,xlzx2;day=9;x2=l;while(day0)xl=(x2+l)*2;/第1天的桃子数是第2天桃子数加1后的2倍x2=xl;day-;cout,total=,xlendl;retur

27、n0;3.23 题/include#includeusingnamespacestd;intmain()floata,x0,xl;coutHenterapositivenumber:;cina;/输入a的值x0=a/2;xl=(x0+a/x0)/2;dox0=xl;xl=(x0+a/x0)/2;while(fabs(x0-xl)=le-5);coutHThesquarerootofl,aHisxlendl;return0;3.24 题includeusingnamespacestd;intmain()/输出上面4行末号/输出*号输出完一行*号后换行inti,k;for(i=0;i=3;i+)f

28、or(k=0;k=2*i;k+)cout,*H;coutendl;for(i=0;i=2;i+)/输出下面3行审号for(k=O;k=4-2*i;k+)cout,*H;/输出*号coutendl;/输出完一行1*号后换行return0;3.25 题includeusingnamespacestd;intmain()chari,j,k;/*i是a的对手;j是b的对手;k是c的对手*/for(i=,X,;i=,Zl;i+)for(j=,X;j=Z,;j+)if(i!=j)for(k=,X,;k=,Z,;k+)if(i!=k&j!=k)if(i!=X&k!=X&k!=Z)cout,A-,iHB-,j

29、HC-kendl;return0;4.1题includeusingnamespacestd;intmain()inthcf(intjnt);intlcd(int,int,int);intu,vzhj;cinuv;h=hcf(u/v);cout,H.C.F=,hendl;l=lcd(u/v/h);cout,L.C.D=,lendl;return0;inthcf(intu,intv)inttzr;if(vu)t=u;u=v;v=t;while(r=u%v)!=0)u=v;v=r;return(v);intlcd(intujntyinth)(return(u*v/h);4.2题/include#in

30、cludeusingnamespacestd;floatxl/x2/disc,p/q;intmain()voidgreater_than_zero(floatjloat);voidequal_to_zero(float/float);voidsmaller_than_zero(float,float);floata,b,c;coutinputazbzc:;cinabc;disc=b*b-4*a*c;cout,root:,endl;if(disc0)greater_than_zero(a,b);cout,xl=xl,/x2=,x2endl;elseif(disc=0)equal_to_zero(

31、a,b);cout,xl=xl,/x2=,x2endl;elsesmaller_than_zero(a,b);cout,xl=,p,+,q,i,endl;cout,x2=,p,-,q,iendl;return0;/*定义一个函数,定义一个函数,用voidgreater_than_zero(floata,floatb)用来求disc0时方程的根*/(xl=(-b+sqrt(disc)/(2*a);x2=(-b-sqrt(disc)/(2*a);voidequal_to_zero(floatajloatb)來求disc=0时方程的根*/xl=x2=(-b)/(2*a);voidsmaller_th

32、an_zero(floata,floatb)/*定义一个函数,用来求disc0时方程的根*/P=-b/(2*a);q=sqrt(-disc)/(2*a);4.3题/includeusingnamespacestd;intmain()intprime(int);/*函数原型声明*/intn;coutinputaninteger:;cinn;if(prime(n)coutnHisaprime.Hendl;elsecoutnHisnotaprime.Hendl;return0;intprime(intn)intflag=lj;for(i=2;in/2&flag=l;i+)if(n%i=0)flag=

33、0;return(flag);4.4题/includeusingnamespacestd;intmain()intfac(int);inta/b,c/sum=0;coutMenterabc:”;cinabc;sum=sum+fac(a)+fac(b)+fac(c);couta,!+,b,!+,c,!=,sumendl;return0;intfac(intn)intf=l;for(inti=l;i=n;i+)f=f*i;returnf;4.5题/include#includeusingnamespacestd;intmain()doublee(double);doublex,sinh;coutM

34、enterx:;cinx;sinh=(e(x)+e(-x)/2;cout,sinh(,x)=l,sinhendl;return0;doublee(doublex)returnexp(x);4.6题/include#includeusingnamespacestd;intmain()doublesolut(double,double,double,double);doublea,b,c,d;coutinputa,b,c,d:;cinabcd;cout,x=,solut(a,b,c/d)endl;return0;doublesolut(doublea,doublebzdoublec,doubled)doublex=l/xO,f/fl;do

展开阅读全文
温馨提示:
1: 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
2: 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
3.本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
5. 装配图网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

copyright@ 2023-2025  zhuangpeitu.com 装配图网版权所有   联系电话:18123376007

备案号:ICP2024067431-1 川公网安备51140202000466号


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