《c++程序设计》谭浩强课后习题答案.pdf





《《c++程序设计》谭浩强课后习题答案.pdf》由会员分享,可在线阅读,更多相关《《c++程序设计》谭浩强课后习题答案.pdf(131页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第一章1.5 题#include using namespace std;int main()(coutvv”This“vv”is”;cout,a,C-H-H-coutHprogram.H;return 0;1.6 题#include using namespace std;int main()(int a,b,c;a=10;b=23;c=a+b;coutna+b=n;coutc;coutendl;return 0;1.7 七题#include using namespace std;int main()(int a,b,c;int f(int x,int y,int z);c in a b
2、c;c=fifa,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;retum(m);1.8 题#include using namespace std;int main()(int a,b,c;cin a b;c=a+b;cout,a4-b=a+bendl;return 0;1.9 题#include using namespace std;int main()int a,b,c;int add(int x,int y);cin a b;c=add(a,b);coutna+b
3、=n c en d l;return 0;)int add(int x,int y)int z;z=x+y;return(z);2.3 题#include using namespace std;int main()char cl=a,c2=b,c3=c,c4=10r,c5=l 16;coutc 1 c2c3,n,;cout,tbn c 4,t c5 n,;return 0;2.4 题#include using namespace std;int main()charcl=C,c2=+,c3=+;coutnI say:HH c l c 2 c 3,n,;coutnttHH e says:C+
4、is very interesting!return 0;2.7 题#include using namespace std;int main()int i,j,m,n;i=8;j=10;m=+i+j+;n=(+i)+(Hj)+m;c o u t i,t,j t,m,t,n en d l;return 0;)2.8 题#include using namespace std;int main()char c l-C,c2-h c3-i c4=n c5-a*;c 1 +=4;c2+=4;c3+=4;c4+=4;c5+=4;coutnpassword is:n c 1 c 2 c 3 c 4 c
5、5end 1;return 0;3.2题#include#include using namespace std;int main()float h,r,l,s,sq,vq,vz;const float pi=3.1415926;coutnplease enter r,h:n;cin r h;l=2*pi*r;s=r*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);coutnl=Hsetw(l O)lendl;cout
6、Ms=Hsetw(10)sendl;coutn sq=setw(l O)sqendl;coutnvq=nsetw(10)vqendl;coutn vz=nsetw(10)vzendl;return 0;3.3 题#include using namespace std;int main()float c,f;coutw”请输入一个华氏温度:“;cinf;c=(5.0/9.0)*(A32);注意5 和 9 要用实型表示,否则5/9值为0cout摄氏温度为:wcwendl;return 0;;3.4 题#include using namespace std;int main()char cl,c
7、2;coutw”请输入两个字符cl,c2:M;cl=getchar();将输入的第一个字符赋给clc2=getchar();将输入的第二个字符赋给c2coutvv”用 putchar函数输出结果为:;putchar(c 1);putchar(c2);coutendl;cout用 cout语句输出结果为:;coutc 1 c2endl;return 0;3.4 题另一解#include using namespace std;int main()char cl,c2;cout”请输入两个字符cl,c2:M;cl=getchar();将输入的第一个字符赋给clc2=getchar();将输入的第二
8、个字符赋给c2coutvv”用 putchar函数输出结果为:“;putchar(cl);putchar(44);putchar(c2);coutendl;coutvv”用 cout语句输出结果为:“;coutc 1 H,Hc2endl;return 0;3.5 题#include using namespace std;int main()char cl,c2;intil,i2;定义为整型coutvv”请输入两个整数il,i2:n;c in il i2;cl=il;c2=i2;coutw”按字符输出结果为:“v v c l w,”v c2vvendl;return 0;3.8 题#inclu
9、de using namespace std;int main()int a=3,b=4,c=5,x,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 题include using namespace std;int main()int a,b,c;coutnplease enter three integer numbers:;c in a b c;if(ab)ifibc)coutHmax=
10、H c;elsecoutnmax=H b;else if(ac)coutHmax=H c;elsecoutnmax=M a;coutendl;return 0;3.9 题另一解#include using namespace std;int main()int a,b,c,temp,max;coutnplease enter three integer numbers:;c in a b c;temp=(ab)?a:b;/*将 a 和 b 中的大者存入temp中*/max=(tempc)?temp:c;/*将 a 和 b 中的大者与c 比较,最大者存入max*/coutnmax=,m axen
11、dl;return 0;|3.10 题#include using namespace std;int main()int x,y;coutnenter x:n;cinx;if(xl)y=x;coutHx=x n,y=x=H y;else if(x10)/lx10y=3*x-ll;coutnx=x n,y=3*x-l l-*y;coutendl;return 0;3.11 题#include using namespace std;int main()float score;char grade;coutnplease enter score of student:;cinscore;whil
12、e(score 100|score0)coutHdata error,enter data again.;cinscore;switch(int(score/l 0)case 10:case 9:grade=,A,;break;case 8:grade-B;break;case 7:grade-C*;break;case 6:grade=D;break;default:grade-E;coutnscore is n sc o re n,grade is gradeendl;return 0;3.12 题#include using namespace std;int main()long in
13、t num;int indiv,ten,hundred,thousand,ten thousand,place;/*分别代表个位,十位,百位,千位,万位和位数*/coutnenter an integer(0-99999):u;cinnum;if(num9999)place=5;else if(num999)place=4;else if(num99)place=3;else if(num9)place=2;else place=l;coutnplace=,placeendl;计算各位数字ten_thousand=num/10000;thousand=(int)(num-ten_thousan
14、d*10000)/1000;hundred=(int)(num-ten_thousand*l 0000-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);coutnoriginal order:switch(place)case5:coutten_thousandH,thousand,;,hundred,te n ;,indivendl;cout
15、reverse order:n;coutindivtenhundredthousandten_thousandendl;break;case 4:coutthousand,hundred,ten *7,indivendl;coutreverse order:;coutindivtenhundredthousandendl;break;case 3:couthundred,ten,indivendl;coutreverse order:n;coutindivtenhundredendl;break;case 2:couttenH,indivendl;coutreverse order:;cout
16、indivtenendl;break;case I:coutindivendl;coutreverse order:H;coutindivendl;break;return 0;3 1 3 题#include using namespace std;int main()long i;/i为利润floatbonus,bon 1 ,bon2,bon4,bon6,bon 10;bonl=100000*0.1;bon2=bon 1 +100000*0.075;bon4=bon2+100000*0.05;bon6=bon4+100000*0.03;利润为10万元时的奖金/利润为20万元时的奖金利润为40
17、万元时的奖金利润为60万元时的奖金bonl0=bon6+400000*0.015;coutenter i:H;cini;if(i=100000)bonus=i*0.1;else if(i=200000)bonus=bon 1 +(i-l 00000)*0.075;else if(i=400000)bonus=bon2+(i-200000)*0.05;elseif(i=600000)bonus=bon4+(i-400000)*0.03;else if(i=1000000)bonus=bon6+(i-600000)*0.015;elsebonus=bon 10+(i-1000000)*0.01;c
18、outnbonus=Mbonusendl;return 0;3.13题 另 解#include using namespace std;int main()long i;float bonus,bon 1 ,bon2,bon4,bon6,bon 10;int c;bonl=100000*0.1;bon2=bon 1 +100000*0.075;bon4=bon2+200000*0.05;bon6=bon4+200000*0.03;bon 10=bon6+400000*0.015;coutnenter i:;cini;利润为100万元时的奖金利润在10万元以内按10%提成奖金利润在10万元至20
19、万时的奖金利润在20万元至40万时的奖金利润在40万元至60万时的奖金利润在60万元至100万时的奖金利润在100万元以上时的奖金c=i/100000;if(c10)c=10;switch(c)case 0:bonus=i*0.1;break;case 1:bonus=bonl+(i-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-6
20、00000)*0.015;break;case 10:bonus=bon 10+(i-1000000)*0.01;)coutnbonus=bonusendl;return 0;)3.14 题#include using namespace std;int main()(int t,a,b,c,d;coutnenter four numbers:H;c in a b c d;coutna=n a n,b=H b H,c=,c,d=,d en d l;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
21、(bd)t=b;b=d;d=t;if(cd)t=c;c=d;d=t;coutnthe sorted sequence:Hendl;c o u t a H,H b M,H c n,n d en d l;return 0;)3.15 题#include using namespace std;int main()int p,r,n,m,temp;coutnplease enter two positive integer numbers n,m:,rcinnm;if(nm)temp=n;n=m;m=temp;p=n*m;while(m!=0)/把大数放在n 中,小数放在m 中/先将n 和 m 的乘
22、积保存在p 中,以便求最小公倍数时用求n 和 m 的最大公约数r=n%m;n=m;m=r;coutuHCF=nendl;coutuLCD=np/nendl;/p 是原来两个整数的乘积return 0;3.16 题#include using namespace std;int main()char c;int letters=0,space=0,digit=0,other=0;coutnenter one line:Hendl;whi le(c=getchar()!=,n,)if(c=fa&cv=N|c=A&c=O&c=9)digit+;elseother+;)cout,letter:nlet
23、ters,space:n sp a c e n,digit:n d ig itH,other:otherendl;return 0;3.17 题#include using namespace std;int main()int a,n,i=1 ,sn=0,tn=0;coutna,n=:H;cin a n;while(i=n)tn=tn+a;赋值后的tn 为 i 个 a 组成数的值sn=sn+tn;赋值后的sn 为多项式前i 项之和a=a*10;+i;coutna+aa+aaa+.=,sn en d l;return 0;)3.18 题#include using namespace std;
24、int main()float s=0,t=l;int n;fbr(n=l;n=20;n+)(t=t*n;求 n!s=s+t;/将各项累加)coutH 1 !+2!+.+20!-,s en d l;return 0;)3.19 题#include using namespace std;int main()int ij,k,n;coutHnarcissus numbers are:nendl;for(n=100;n 1000;n+)i=n/100;j=n/10-i*10;k=n%10;if(n=i*i*i+j*j*j+k*k*k)c o u t n M M;)coutendl;return 0
25、;3.20 题#include using namespace std;int main()(const int m=1000;/定义寻找范围int kI,k2,k3,k4,k5,k6,k7,k8,k9,k 10;int i,a,n,s;fbr(a=2;a=m;a+)a 是 2-1000之间的整数,检查它是否为完数n=0;n 用来累计a 的因子的个数s=a;s 用来存放尚未求出的因子之和,开始时等于afor(i=l;il)co u t k l,n k 2;/nl 表示 a 至少有 2 个因子if(n2)coutH,k3;/n 2表示至少有3 个因子,故应再输出一个因子if(n3)cout3表示
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c+程序设计 c+ 程序设计 谭浩强 课后 习题 答案

限制150内