谭浩强c前5章习题答案.docx

上传人:b****7 文档编号:23617148 上传时间:2023-05-19 格式:DOCX 页数:24 大小:18.78KB
下载 相关 举报
谭浩强c前5章习题答案.docx_第1页
第1页 / 共24页
谭浩强c前5章习题答案.docx_第2页
第2页 / 共24页
谭浩强c前5章习题答案.docx_第3页
第3页 / 共24页
谭浩强c前5章习题答案.docx_第4页
第4页 / 共24页
谭浩强c前5章习题答案.docx_第5页
第5页 / 共24页
点击查看更多>>
下载资源
资源描述

谭浩强c前5章习题答案.docx

《谭浩强c前5章习题答案.docx》由会员分享,可在线阅读,更多相关《谭浩强c前5章习题答案.docx(24页珍藏版)》请在冰豆网上搜索。

谭浩强c前5章习题答案.docx

谭浩强c前5章习题答案

1.6

main()

{inta,b,c,max;

 printf("inputthreenumbers:

\n");

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

 max=a;

 if(max

 if(max

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

}

第二章

2.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

2.6

aabb       (8)cc       (8)abc

      (7)AN

2.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);

}

2.8

main()

{intc1,c2;

 c1=97;c2=98;

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

}

2.9

(1)=2.5

(2)=3.5

2.10

9,11,9,10

2.12

(1)24 

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

第三章

3.4

main()

{inta,b,c;

 longintu,n;

 floatx,y,z;

 charc1,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=%2d b=%2d c=%2d\n",a,b,c);

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

 printf("x+y=%5.2f y+z=%5.2f z+x=%5.2f\n",x+y,y+z,z+x);

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

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

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

}

3.5

57

 5 7

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

3.6

a=3b=7/

x=8.5y=71.82/

c1=Ac2=a/

3.7

  10  20Aa1.5-3.75+1.4,67.8/

(空3)10(空3)20Aa1.5(空1)-3.75(空1)(随意输入一个数),67.8回车

3.8

main()

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

 pi=3.1415926;

 printf("inputr,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);

}

3.9

main()

{floatc,f;

 scanf("%f",&f);

 c=(5.0/9.0)*(f-32);

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

}

3.10

#include"stdio.h"

main()

{charc1,c2;

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

 putchar(c1);

 putchar(c2);

 printf("\n");

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

}

第四章

4.3

(1)0 

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

4.4

main()

{inta,b,c;

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

 if(a

  if(b

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

  else

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

 elseif(a

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

 else

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

}

main()

{inta,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);

}

 

4.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);

}

4.6

main()

{intscore,temp,logic;

 chargrade;

 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:

   case0:

grade='E';

  }

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

}

4.7

main()

{longintnum;

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

 scanf("%ld",&num);

 if(num>9999)place=5;

 elseif(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;

*/

从后向前求

n=num;

indiv=n%10;

n=n/10;

ten=n%10;

n=n/10;

hundred=n%10;

n=n/10;

thousand=n%10;

ten_thousand=n%10;

*/

 switch(place)

  {case5:

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;

   case3:

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;

   case1:

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

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

   }

}

4.8

main()

{longi;

 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;

 elseif(i<=6e5)bonus=bon4+(i-400000)*0.03;

 elseif(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;

 intbranch;

 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:

 case7

 case8:

 case9:

bonus=bon6+(i-600000)*0.015;break;

 case10:

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);

}

4.10

main()

{inth=10;

 floatx,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);

}

第五章 循环控制

5.1

#include

voidmain()

{unsignedintm,n,i;

unsignedintmax,min;

printf("输入两个数");

scanf("%d%d",&m,&n);

max=m>=n?

m:

n;

min=m>=n?

n:

m;

i=max;

while((i%m!

=0)||(i%n!

=0))

i++;

printf("最小公倍数是%d\n",i);

i=min;

while((m%i!

=0)||(n%i!

=0))

i--;

printf("最大公约数是%d\n",i);

}

或者用下面的辗转相除法

main()

{inta,b,num1,num2,temp;

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

 if(num1

 a=num1;b=num2;

 while(b!

=0)

  {temp=a%b;

   a=b;

   b=temp;}

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

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

}

5.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++;

   elseif(c>='0'&&c<='9')digit++;

   elseother++;

  }

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

}

5.3

其中,sn代表和,tn代表累加的项,如222222,该算法中,把222表达成了22*10+2

main()

{inta,n,count=1,sn=0,tn=0;

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

while(count<=n)

{tn=tn*10+a;

sn=sn+tn;

++count;

}

printf("a+aa+aaa+...=%d\n",sn);

}

或者如下,该算法中,a的变化是2202002000,从而引起tn的变化是0+22+2022+200

main()

{inta,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);

}

5.4

Main()

{floati,s=0,t=1;

 for(i=1;i<=20;i++)

{ji=1;

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

  ji=ji*j;

sum=sum+ji;

}

  

main()

{floatn,s=0,t=1;

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

  {t*=n;

   s+=t;

  }

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

}

5.5

main()

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

 floatk;

 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);

}

或者:

main()

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

 floatk;

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

 for(k=1;k<=N3;k++)s+=k+k*k+1/k;

 for(k=11;k<=N2;k++)s+=k+k*k;

 for(k=51;k<=N1;k++)s+=k;

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

}

5.6

main()

{inti,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)//if(n==i*i*i+j*j*j+k*k*k)

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

   }

}

5.7如果没有最后的输出要求,比较简单i可能的因子是j=1..i-1,如果i%j==0,则j一定是因子。

令sum为各因子的和,初值为0。

每球出一个因子就加到sum上。

 如国i==sum.,则i为完数。

#include

main()

{inti,j,sum;

for(i=1;i<=100;i++)

{

sum=0;

for(j=1;j

if(i%j==0)

sum+=j;

if(i==sum)

{printf("\n%ditsfactorsare",i);

for(j=1;j

if(i%j==0)

printf("%d,",j);

}

}

}

#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

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

        {n++;

         s=s-i;

         switch(n)

           {case1:

k0=i;break;

            case2:

k1=i;break;

            case3:

k2=i;break;

            case4:

k3=i;break;

            case5:

k4=i;break;

            case6:

k5=i;break;

            case7:

k6=i;break;

            case8:

k7=i;break;

            case9:

k8=i;break;

            case10:

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

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

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

     }

   }

}

5.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);

}

5.9

ma

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

当前位置:首页 > 党团工作 > 入党转正申请

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

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