《c程序设计》谭浩强课后习题答案.pdf
《《c程序设计》谭浩强课后习题答案.pdf》由会员分享,可在线阅读,更多相关《《c程序设计》谭浩强课后习题答案.pdf(131页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、第一章1.5 题#include using namespace std;int main()(cout,This,His,;coutva“vv“C+”;cout,program.n;return 0;1.6 题#include using namespace std;int main()(int a,b,c;a=10;b=23;c=a+b;coutna4-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 c
2、;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;retum(m);1.8 题#include using namespace std;int main()(int a,b,c;c in a b;c=a+b;c o u tna+b=a+bendl;return 0;1.9 题#include using namespace std;int main()(int a,b,c;int add(int x,int y);c in a b;c=add(a,b);c o
3、u tna+b=n c e n 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 c 1 =a,c2=b,c3=,c,c4=,101,c5=,1161;co u t c 1 c2c3,n,;couttb,c 4,t,c 5,n,;return 0;)2.4 题#include using namespace std;int main()charcl=Cc2=,+*,c3=,+,;coutHI say:,n*c l c 2 c 3 V,
4、;couttt,He says:C+is very interesting!u n;return 0;)2.7 题#include using namespace std;int main()inti=8;j=10;m=+i+j+;n=(+i)+(+j)+m;c o u t i,t,j t m t,n en d l;return 0;12.8 题#include using namespace std;int main()char c l-C c2-h c3=i c4=n,c5-a*;cl+=4;c2+=4;c3+=4;c4+=4;c5+=4;coutpassword is:0c 1 c2c3
5、c4c5endl;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:H;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);coutl=*setw(l O)lendl;c
6、outHs=setw(10)sendl;cout,sq=,setw(10)sqendl;coutHvq=Hsetw(10)vqendl;cout,vz=,setw(10)vzendl;return 0;)3.3 题#include using namespace std;int main()float c,f;coutv”请输入一个华氏温度:cinf;c=(5.0/9.0)*(f-32);/注意5 和 9 要用实型表示,否则5/9值为0coutn 摄氏温度为:M c en d l;return 0;);3.4 题#include using namespace std;int main()ch
7、ar cl,c2;couicv”请输入两个字符cl,c2:n;cl=getchar();/将输入的第一个字符赋给clc2=getchar();/将输入的第二个字符赋给c2cout 用putchar函数输出结果为:“;putchar(cl);putchar(c2);coutendl;cout 用cout语句输出结果为:“;coutc 1 c2 en d l;return 0;)3.4 题另一解#include using namespace std;int main()char cl,c2;couicv”请输入两个字符cl,c2:n;cl=getchar();/将输入的第一个字符赋给clc2=g
8、etchar();/将输入的第二个字符赋给c2coutffl putchar函数输出结果为:;putchar(cl);putchar(44);putchar(c2);coutendl;coulv”用 cout语句输出结果为:“;coutc 1 ,uc2endl;return 0;)3.5题#include using namespace std;int main()char cl,c2;intil,i2;定义为整型cout”请输入两个整数il,i2:n;c in il i2;cl=il;c2=i2;coulv”按字符输出结果为:“vvcl,c2endl;return 0;)3.8 题#incl
9、ude 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;coutplease enter three integer numbers:;c in a b c;if(ab)if(bc)coutmax=
10、n c;elsecoutmax=M b;else if(ac)coutmax=c;elsecoutmax=a;coutendl;return 0;)3.9题另一解#include using namespace std;int main()int a,b,c,temp,max;coutplease 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=nm axendl;retur
11、n 0;)3 1 0 题#include using namespace std;int main()int x,y;coutenter x:;cinx;if(xl)y=x;cout,x=,x,y=x=H y;)else if(x10)/lx10y=3*x-ll;coutnx=u x y=3*x-ll=,y;coutendl;return 0;)3.11 题#include using namespace std;int main()float score;char grade;coutplease enter score of student:;cinscore;while(score 10
12、0|score0)coutndata 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;defaultgrade=E;)coutnscore is,score,grade is gradeendl;return 0;)3.12 题#include using namespace std;int main()long int num;int in
13、div,ten,hundred,thousand,ten_thousand,place;/*分别代表个位,十位,百位,千位,万位和位数*/coutenter an integer(0-99999):;cinnum;if(num9999)place=5;else if(num999)place=4;else if(num99)place=3;else if(num9)place=2;else place=l;coutplace=nplaceendl;/计算各位数字ten_thousand=num/10000;thousand=(int)(num-ten_thousand*10000)/1000;
14、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*lOOOO-thousand*1000-hundred*100-ten*10);cout,original order:H;switch(place)case5:coutten_thousand,thousand,hundred,u te n u,indivendl;coutnreverse order
15、:;coutindivtenhundredthousandten_thousandendl;break;case 4:coutthousand,hundred,n te n,uindivendl;coutreverse order:n;coutindivtenhundredthousandendl;break;case 3:couthundred,n te n,indivendl;coutreverse order:;coutindivtenhundredendl;break;case 2:couttenn,Hindivendl;coutnreverse order:,;coutindivte
16、nendl;break;case 1 :coutindivendl;coutnreverse order:;coutindivendl;break;)return 0;)3.13 题#include using namespace std;int main()long i;/i 为利润float bonus,bon 1 ,bon2,bon4,bon6,bon 10;bonl=100000*0.1;bon2=bon1+100000*0.075;bon4=bon2+100000*0.05;bon6=bon4+100000*0.03;利润为10万元时的奖金利润为20万元时的奖金利润为40 万元时的奖
17、金利润为60万元时的奖金bon 10=bon6+400000*0.015;利润为100万元时的奖金coutenter i:;cini;if(i=100000)bonus=i*0.1;elseif(i=200000)bonus=bon l+(i-l 00000)*0.075;elseif(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-l 000000)*0
18、.01;coutnbonus=Mbonusendl;return 0;)3.13题另一解#include using namespace std;int main()long i;float bonus,bon 1 ,bon2,bon4,bon6,bon 10;int c;bon 1=100000*0.1;bon2=bon1+100000*0.075;bon4=bon2+200000*0.05;bon6=bon4+200000*0.03;bonl0=bon6+400000*0.015;coutenter i:n;cini;c=i/100000;if(c10)c=10;switch(c)case
19、 0:bonus=i*0.1;break;case 1:bonus=bon 1 +(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:利润在10万元以内按10%提成奖金利润在10万元至20万时的奖金利润在20万元至4 0 万时的奖金利润在40万元至60万时的奖金利润在60万元至100万时的奖金利润在100万元以上时的奖金case 9:bonus=bon6+(i-600000
20、)*0.015;break;case 10:bonus=bon 10+(i-1000000)*0.01;)coutbonus=Mbonusendl;return 0;)3.14 题#include using namespace std;int main()int t,a,b,c,d;coutenter four numbers:;c in a b c d;cout,a=,a,b=b,c=,c ,d=,dendl;if(ab)t=a;a=b;b=t;if(ac)t=a;a=c;c=t;Jif(ad)t=a;a=d;d=t;if(bc)t=b;b=c;c=t;if(bd)t=b;b=d;d=t;
21、if(cd)t=c;c=d;d=t;coutthe sorted sequence:nendi;couta,b,n 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:;cinnm;if(nm)temp=n;n=m;m=temp;把大数放在n 中,小数放在m 中p=n*m;while(m!=0)先将n 和 m 的乘积保存在p 中,以便求最小公倍数时用求n 和 m 的最大公约
22、数r=n%m;n=m;m=r;)cout,HCF=,n en d l;coutLCD=np/nendl;/p 是原来两个整数的乘积return 0;3.16 题#include using namespace std;int main()chare;int Ietters=0,space=0,digit=0,other=0;coutHenter one line:nendl;while(c=getchar()!=n)if(c=a&c=A&c=0&c=9)digit+;elseother+;)coutnletter:n letters space:sp a c e ,digit:digit,ot
23、her:uotherendl;return 0;)3.17 题#include using namespace std;int main()int a,n,i=1 ,sn=0,tn=0;coutna,n=:n;cin a n;while(i=n)tn=tn+a;赋值后的m 为 i 个 a 组成数的值sn=sn+tn;赋值后的sn 为多项式前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=1 ;n=20;n+
24、)(t=t*n;/求 n!s=s+t;/将各项累加)coutnl!+2!+.+20!=sendl;return 0;)3.19 题#include using namespace std;int main()int i,j,k,n;cout*narcissus numbers are:Hendl;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)c o u t n M M;)coutendl;return 0;)3 2 0 题#include using namespace std;int main()co
25、nst int m=1000;/定义寻找范围int kl,k2,k3,k4,k5,k6,k7,k8,k9,k 10;int i,a,n,s;for(a=2;a=m;a+)a 是 2-1000之间的整数,检查它是否为完数n=0;/n 用来累计a 的因子的个数s=a;s 用来存放尚未求出的因子之和,开始时等于afor(i=l;ia;i+)/检查i 是否为a 的因子if(a%i=0)/如果i 是 a 的因子n+;11加 1,表示新找到一个因子s=s-i;s 减去已找到的因子,s 的新值是尚未求出的因子之和switch(n)/将找到的因子赋给kl,.,kl0case 1:kl=i;break;/找出的
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- c程序设计 程序设计 谭浩强 课后 习题 答案
限制150内