C程序设计谭浩强 清华大学出版社 课后习题答案.docx

上传人:b****6 文档编号:6386906 上传时间:2023-01-05 格式:DOCX 页数:79 大小:45.03KB
下载 相关 举报
C程序设计谭浩强 清华大学出版社 课后习题答案.docx_第1页
第1页 / 共79页
C程序设计谭浩强 清华大学出版社 课后习题答案.docx_第2页
第2页 / 共79页
C程序设计谭浩强 清华大学出版社 课后习题答案.docx_第3页
第3页 / 共79页
C程序设计谭浩强 清华大学出版社 课后习题答案.docx_第4页
第4页 / 共79页
C程序设计谭浩强 清华大学出版社 课后习题答案.docx_第5页
第5页 / 共79页
点击查看更多>>
下载资源
资源描述

C程序设计谭浩强 清华大学出版社 课后习题答案.docx

《C程序设计谭浩强 清华大学出版社 课后习题答案.docx》由会员分享,可在线阅读,更多相关《C程序设计谭浩强 清华大学出版社 课后习题答案.docx(79页珍藏版)》请在冰豆网上搜索。

C程序设计谭浩强 清华大学出版社 课后习题答案.docx

C程序设计谭浩强清华大学出版社课后习题答案

C程序设计(第三版)谭浩强 清华大学出版社课后习题答案

第一章

1。

5

# include<stdio.h>

 void main()

 printf("*********\nVerygood!

\n** **** ***\n");

1。

(法一)

#include〈stdio。

h〉

main()

 inta,b,c,max;

scanf("%d,%d,%d”,&a,&b,&c);

max=(a>b)?

a:

b;

 max=(max>c)?

max:

c;

printf("max=%d\n",max);

(法二)

main()

 {

inta,b,c,max;

scanf(”%d,%d,%d",&a,&b,&c);

if(a>b&&a>c)

 max=a;

elseif(b>c)

 max=b;

else

 max=c;

printf("max=%d\n",max);

}

(法三)

#include〈stdio.h〉

voidmain()

{

int max(intx,inty,intz);

inta,b,c,d;

scanf(”%d,%d,%d",&a,&b,&c);

d=max(a,b,c);

printf("max=%d\n”,d);

}

intmax(intx,inty,int z)

int A,B;

if(x>y) A=x;

 else A=y;

if(z>A)B=z;

elseB=A;

 return(B);

第三章

3.3

 

(1)(10)10=(12)8=(a)16

 

(2)(32)10=(40)8=(20)16

(3)(75)10=(113)8=(4b)16

(4)(-617)10=(176627)8=(fd97)16

(5)(-111)10=(177621)8=(ff91)16

(6)(2483)10=(4663)8=(963)16

(7)(-28654)10=(110022)8=(9012)16

(8)(21003)10=(51013)8=(520b)16

3.6

aabb     (8)cc (8)abc

(7)AN

3.7

main()

{charc1='C',c2='h',c3='i',c4=’n’,c5='a’;

c1+=4,c2+=4,c3+=4,c4+=4,c5+=4;

printf("%c%c%c%c%c\n”,c1,c2,c3,c4,c5);

3。

8

main()

{int c1,c2;

 c1=97;c2=98;

 printf("%c %c",c1,c2);

 }

3.9

(1)=2.5

(2)=3.5

3.10

 9,11,9,10

3。

12

 

(1)24

(2)10(3)60(4)0(5)0 (6)0

第四章

4。

4

main()

 {inta,b,c;

long int u,n;

 float x,y,z;

char c1,c2;

 a=3;b=4;c=5;

x=1。

2;y=2。

4;z=—3。

6;

u=51274;n=128765;

c1='a’;c2='b';

printf("\n");

printf("a=%2db=%2dc=%2d\n”,a,b,c);

printf(”x=%8.6f,y=%8.6f,z=%9.6f\n",x,y,z);

printf(”x+y=%5.2fy+z=%5.2fz+x=%5。

2f\n",x+y,y+z,z+x);

printf(”u=%6ldn=%9ld\n”,u,n);

printf(”c1='%c'or%d(ASCII)\n",c1,c1);

printf(”c2='%c'or %d(ASCII)\n",c2,c2);

}

4.5

57

 57

67.856400,-789。

123962

67.856400,-789.123962

67.86—789.12,67。

856400,-789.123962,67。

856400,-789.123962

6.785640e+001,-7。

89e+002

A,65,101,41

1234567,4553207,d687

65535,177777,ffff,—1

COMPUTER, COM

4.6

 a=3b=7/

x=8.5y=71.82/

c1=A c2=a/

4.7

 1020Aa1.5-3。

75+1。

4,67.8/

(空3)10(空3)20Aa1.5(空1)—3。

75(空1)(随意输入一个数),67.8回车

4.8

main()

{floatpi,h,r,l,s,sq,sv,sz;

pi=3。

1415926;

printf(”input r,h\n");

 scanf(”%f,%f”,&r,&h);

l=2*pi*r;

 s=r*r*pi;

sq=4*pi*r*r;

sv=4.0/3。

0*pi*r*r*r;

sz=pi*r*r*h;

printf("l=%6.2f\n",l);

printf("s=%6.2f\n",s);

 printf("sq=%6。

2f\n",sq);

printf("vq=%6。

2f\n”,sv);

printf("vz=%6。

2f\n”,sz);

 }

4。

9

main()

{float c,f;

scanf("%f”,&f);

c=(5。

0/9。

0)*(f-32);

 printf("c=%5.2f\n",c);

}

4.10

 #include"stdio.h"

 main()

{charc1,c2;

 scanf(”%c,%c",&c1,&c2);

putchar(c1);

 putchar(c2);

printf(”\n");

printf("%c%c\n",c1,c2);

第五章

 5。

 (1)0 

(2)1(3)1(4)0(5)1

5.4

main()

{inta,b,c;

 scanf("%d,%d,%d",&a,&b,&c);

if(a<b)

 if(b〈c)

  printf("max=%d\n",c);

   else

  printf(”max=%d\n",b);

elseif(a〈c)

 printf("max=%d\n”,c);

else

   printf(”max=%d\n”,a);

}

main()

{int a,b,c,temp,max;

 scanf("%d,%d,%d",&a,&b,&c);

temp=(a〉b)?

a:

b;

max=(c>temp)?

c:

temp;

 printf("max=%d",max);

}

5。

 main()

{intx,y;

scanf(”%d",&x);

if(x〈1)y=x;

elseif(x<10)y=2*x—1;

elsey=3*x-11;

printf(”y=%d",y);

5.6

 main()

{intscore,temp,logic;

char grade;

logic=1;

while(logic)

{scanf("%d”,&score);

 if(score〉=0&&score〈=100)logic=0;

  }

 if(score==100)

temp=9;

 else

  temp=(score-score%10)/10;

switch(temp)

{case9:

grade='A';break;

 case8:

grade=’B';break;

case7:

grade='C';break;

case6:

grade=’D';break;

 case5:

   case4:

 case3:

  case2:

  case1:

   case 0:

grade=’E';

 }

printf"score=%d,grade=%c”,score,grade);

 }

5.7

 main()

 {long intnum;

intindiv,ten,hundred,thousand,ten_thousand,place;

scanf("%ld",&num);

if(num>9999) place=5;

else if(num>999)place=4;

elseif(num〉99)place=3;

elseif(num〉9)place=2;

elseplace=1;

printf("place=%d\n",place);

ten_thousand=num/10000;

thousand=(num-ten_thousand*10000)/1000;

hundred=(num—ten_thousand*10000—thousand*1000)/100;

 ten=(num—ten_thousand*10000—thousand*1000-hundred*100)/10;

 indiv=num—ten_thousand*10000-thousand*1000-hundred*100-ten*10;

switch(place)

{case 5:

printf("%d,%d,%d,%d,%d\n”,ten_thousand,thousand,hundred,ten,indiv);

     printf("%d,%d,%d,%d,%d\n",indiv,ten,hundred,thousand,ten_thousand);

  break;

  case4:

printf("%d,%d,%d,%d\n”,thousand,hundred,ten,indiv);

 printf(”%d,%d,%d,%d\n",indiv,ten,hundred,thousand);

    break;

   case 3:

printf("%d,%d,%d\n”,hundred,ten,indiv);

     printf(”%d,%d,%d\n”,indiv,ten,hundred);

    break;

  case2:

printf("%d,%d\n",ten,indiv);

   printf("%d,%d\n”,indiv,ten);

    break;

    case 1:

printf("%d\n",indiv);

  printf("%d\n",indiv);

 }

}

5。

main()

{long i;

 floatbonus,bon1,bon2,bon4,bon6,bon10;

bon1=100000*0。

1;

 bon2=bon1+100000*0。

075;

bon4=bon2+200000*0。

05;

bon6=bon4+200000*0.03;

bon10=bon6+400000*0.015;

scanf("%ld",&i);

 if(i<=1e5)bonus=i*0。

1;

elseif(i<=2e5)bonus=bon1+(i-100000)*0.075;

elseif(i<=4e5)bonus=bon2+(i-200000)*0.05;

else if(i〈=6e5)bonus=bon4+(i-400000)*0.03;

 else if(i<=1e6)bonus=bon6+(i—600000)*0.015;

elsebonus=bon10+(i-1000000)*0.01;

printf(”bonus=%10。

2f",bonus);

}

main()

{longi;

floatbonus,bon1,bon2,bon4,bon6,bon10;

int branch;

bon1=100000*0.1;

 bon2=bon1+100000*0.075;

bon4=bon2+200000*0.05;

 bon6=bon4+200000*0.03;

bon10=bon6+400000*0。

015;

 scanf("%ld”,&i);

branch=i/100000;

if(branch>10)branch=10;

switch(branch)

{case0:

bonus=i*0。

1;break;

case1:

bonus=bon1+(i—100000)*0.075;break;

 case2:

case3:

bonus=bon2+(i—200000)*0.05;break;

case4:

case5:

bonus=bon4+(i—400000)*0。

03;break;

case6:

case 7

case8:

case9:

bonus=bon6+(i-600000)*0。

015;break;

case 10:

bonus=bon10+(i—1000000)*0。

01;

 }

printf(”bonus=%10。

2f",bonus);

}

4。

9

 main()

{intt,a,b,c,d;

scanf("%d,%d,%d,%d”,&a,&b,&c,&d);

if(a>b){t=a;a=b;b=t;}

if(a〉c){t=a;a=c;c=t;}

 if(a〉d){t=a;a=d;d=t;}

 if(b〉c){t=b;b=c;c=t;}

if(b>d){t=b;b=d;d=t;}

if(c>d){t=c;c=d;d=t;}

 printf("%d %d%d%d\n",a,b,c,d);

}

5.10

 main()

{int h=10;

float x,y,x0=2,y0=2,d1,d2,d3,d4;

scanf("%f,%f",&x,&y);

d1=(x—x0)*(x-x0)+(y—y0)*(y—y0);

d2=(x—x0)*(x—x0)+(y+y0)*(y+y0);

d3=(x+x0)*(x+x0)+(y-y0)*(y-y0);

d4=(x+x0)*(x+x0)+(y+y0)*(y+y0);

if(d1〉1&&d2〉1&&d3>1&&d4>1)h=0;

printf("h=%d”,h);

第六章 循环控制

6。

1

main()

{inta,b,num1,num2,temp;

scanf("%d,%d",&num1,&num2);

if(num1〈num2){temp=num1;num1=num2;num2=temp;}

a=num1;b=num2;

while(b!

=0)

  {temp=a%b;

a=b;

  b=temp;}

printf("%d\n",a);

printf("%d\n",num1*num2/a);

6.2

 #include"stdio.h”

main()

{charc;

 intletters=0,space=0,digit=0,other=0;

while((c=getchar())!

='\n’)

  {if(c>='a'&&c〈=’z'||c〉=’A'&&c<='Z') letters++;

 elseif(c=='’)space++;

 else if(c〉=’0’&&c<='9’)digit++;

   else other++;

}

printf("letters=%d\nspace=%d\ndigit=%d\nother=%d\n",letters,space,digit,other);

}

6。

3

 main()

{int a,n,count=1,sn=0,tn=0;

scanf("%d,%d”,&a,&n);

while(count<=n)

  {tn+=a;

sn+=tn;

 a*=10;

 ++count;

  }

printf(”a+aa+aaa+。

.=%d\n”,sn);

6.4

main()

 {floatn,s=0,t=1;

for(n=1;n〈=20;n++)

  {t*=n;

 s+=t;

  }

printf("s=%e\n”,s);

}

6。

5

main()

 {intN1=100,N2=50,N3=10;

float k;

floats1=0,s2=0,s3=0;

 for(k=1;k<=N1;k++)s1+=k;

 for(k=1;k<=N2;k++)s2+=k*k;

for(k=1;k〈=N3;k++)s3+=1/k;

printf(”s=%8。

2f\n",s1+s2+s3);

}

6.6

main()

 {int i,j,k,n;

for(n=100;n〈1000;n++)

{i=n/100;

     j=n/10—i*10;

 k=n%10;

 if(i*100+j*10+k==i*i*i+j*j*j+k*k*k)

   printf(”n=%d\n",n);

}

6。

#defineM1000

main()

 {intk0,k1,k2,k3,k4,k5,k6,k7,k8,k9;

inti,j,n,s;

for(j=2;j<=M;j++)

{n=0;

 s=j;

  for(i=1;i〈j;i++)

 {if((j%i)==0)

{n++;

     s=s-i;

     switch(n)

   {case 1:

k0=i;break;

      case 2:

k1=i;break;

       case3:

k2=i;break;

    case4:

k3=i;break;

   case5:

k4=i;break;

  case6:

k5=i;break;

  case 7:

k6=i;break;

   case 8:

k7=i;break;

 case9:

k8=i;break;

  case 10:

k9=i;break;

 }

    }

 }

 if(s==0)

  {printf("j=%d\n”,j);

    if(n>1)printf("%d,%d”,k0,k1);

  if(n〉2)printf(",%d",k2);

  if(n>3)printf(”,%d”,k3);

    if(n〉4)printf(",%d",k4);

  if(n>5)printf(”,%d",k5);

     if(n>6)printf(”,%d”,k6);

   if(n>7)printf(”,%d”,k7);

  if(n>8)printf(",%d",k8);

 if(n>9)printf(”,%d\n”,k9);

  }

  }

 }

main()

{staticintk[10];

inti,j,n,s;

for(j=2;j<=1000;j++)

 {n=-1;

  s=j;

  for(i=1;i

  {if((j%i)==0)

     {n++;

  s=s-i;

    k[n]=i;

   }

   }

   if(s==0)

 {printf(”j=%d\n",j);

for(i=0;i<n;i++)

  printf("%d,",k[i]);

 printf("%d\n",k[n]);

 }

  }

6。

8

 main()

{intn,t,number=20;

 floata=2;b=1;s=0;

 for(n=1;n<=number;n++)

{s=s+a/b;

 t=a,a=a+b,b=t;

 }

printf(”s=%9.6f\n”,s);

}

6.9

main()

{floatsn=100.0,hn=sn/2;

intn;

for(n=2;n<=10;n++)

  {sn=sn+2*hn;

   hn=hn/2;

 }

printf("sn=%f\n”,sn);

 printf(”hn=%f\n",hn);

6.10

main()

{intday,x1,x2;

day=9;

x2=1;

while(day>0)

 {x1=(x2+1)*2;

    x2=x1;

  day-—;

 }

printf("x1=%d\n",x1);

 }

6.11

#include”math.h"

main()

{floata,xn0,xn1;

scanf("%f",&a);

xn0=a/2;

xn1=(xn0+a/xn0)/2;

do

{xn0=xn1;

  xn1=(xn0+a/xn0)/2;

 }

while(fabs(xn0—xn1)〉=1e-5);

printf("a=%5.2f\n,xn1=%8.2f\n”,a,xn1);

 }

6。

12

#include”math.h"

main()

{floatx,x0,f,f1;

 x=1。

5;

 do

  {x0=x;

  f=((2*x0—4)*x0+3)*x0—6;

 f1=(6*x0—8)*x0+3;

 x=x0-f/f1;

   }

 while(fabs(x—x0)〉=1e-5);

printf("x=%6。

2f\n",x);

}

6.13

 #include"math。

h"

main()

{floatx0,x1,x2,fx0,fx1,fx2;

do

{scanf("%f,%f”,&x1,&x2);

 fx1=x1*((2*x1—4)*x1+3)—6;

  fx2=x2*((2*x2-4)*x2+3)—6;

 }

while(fx1*fx2〉0);

do

 {x0=(x1+x2)/2;

  fx0=x0*((2*x0-4)*x0+3)—6;

 if((fx0*fx1)<0)

  {x2=x0;

  

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 高中教育 > 高考

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1