C语言程序的设计第三版课后复习题答案.docx

上传人:b****6 文档编号:8317776 上传时间:2023-01-30 格式:DOCX 页数:87 大小:31.69KB
下载 相关 举报
C语言程序的设计第三版课后复习题答案.docx_第1页
第1页 / 共87页
C语言程序的设计第三版课后复习题答案.docx_第2页
第2页 / 共87页
C语言程序的设计第三版课后复习题答案.docx_第3页
第3页 / 共87页
C语言程序的设计第三版课后复习题答案.docx_第4页
第4页 / 共87页
C语言程序的设计第三版课后复习题答案.docx_第5页
第5页 / 共87页
点击查看更多>>
下载资源
资源描述

C语言程序的设计第三版课后复习题答案.docx

《C语言程序的设计第三版课后复习题答案.docx》由会员分享,可在线阅读,更多相关《C语言程序的设计第三版课后复习题答案.docx(87页珍藏版)》请在冰豆网上搜索。

C语言程序的设计第三版课后复习题答案.docx

C语言程序的设计第三版课后复习题答案

C程序设计(第三版)答案-谭浩强

程序是在VC6.0下编译的,所以头文件和TC的不太一样!

4-8

#include

#definepi3.1415

voidmain()

{

floatr,h,rl,ra,ss,sv,cv;

printf("输入圆的半径和圆柱的高\n\n");

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

rl=2*pi*r;

ra=pi*r*r;

ss=4*pi*r*r;

sv=4*pi*r*r*r/3;

cv=ra*h;

%f\n\n

printf("圆周长为:

%f\n\n圆面积为:

%f\n\n圆球表面积为:

%f\n\n圆球体积为:

圆柱体积为:

%f\n\n",rl,ra,ss,sv,cv);

}

4-9

#include

voidmain()

{

floatF,c;

printf("输入一个华氏温度\n\n");

scanf("%f",&F);

c=5*(F-32)/9;

printf("摄氏温度为:

%.2f\n\n",c);}

第五章

5-4

#includevoidmain()

{

inta,b,c,max;

printf("输入三个整数a,b,c\n\n");

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

if(a>b)max=a;

elsemax=b;

if(max

printf("最大的数为:

%d\n\n",max);

}

5-5

#include

voidmain()

{

floatx,y;

printf("输入x\n\n");

scanf("%f",&x);

if(x<1)y=x;

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

elsey=3*x-11;

printf("y=%f\n\n",y);

}

5-6

#include

voidmain()

{

floatm;

intn;

printf("输入成绩\n\n");

scanf("%f",&m);

n=m/10;

switch(n)

{

case0:

case1:

case2:

case3:

case4:

case5:

printf("E\n\n");break;

case6:

printf("D\n\n");break;

case7:

printf("C\n\n");break;

case8:

printf("B\n\n");break;

case9:

case10:

printf("A\n\n");break;

}

}

5-7

#include

#include

voidmain()

{

inta,b,c,i,j,n;

printf("输入五位正整数\n\n");scanf("%d",&a);

printf("\n\n");

c=a;

for(i=1;;i++)

{b=c%10;c=c/10;printf("%d",b);if(c==0){printf("\n\n");

printf("正整数为%d位数\n\n”,i);break;

}

c=a;

for(j=i-1;j>=0;j--)

{n=pow(10,j);b=c/n;c=c%n;printf("%d\n",b);

}

}

5-8

if语句:

#include

voidmain()

{

intI;

floatbonus;

printf("输入当月利润I\n\n");

scanf("%d",&I);

if(I<=100000)bonus=I/10;

elseif(I<=200000)bonus=10000+(I-100000)*7.5/100;

elseif(I<=400000)bonus=10000+7500+(I-200000)*5/100;

elseif(I<=600000)bonus=10000+7500+10000+(I-400000)*3/100;

elseif(I<=1000000)

bonus=10000+7500+10000+6000+(I-600000)*1.5/100;

elsebonus=10000+7500+10000+6000+6000+(I-1000000)*1/100;printf("应发奖金数为:

%f\n\n",bonus);

}

switch语句:

#include

voidmain()

{

floatbonus;

printf("输入当月利润I\n\n");

scanf("%d",&I);

if(I>1000000)n=10;

elsen=I/100000;

switch(n)

{

case0:

bonus=I/10;break;

case1:

bonus=10000+(I-100000)*7.5/100;break;

case2:

case3:

bonus=10000+7500+(I-200000)*5/100;break;

case4:

case5:

bonus=10000+7500+10000+(I-400000)*3/100;break;

case6:

case7:

case8:

case9:

bonus=10000+7500+10000+6000+(I-600000)*1.5/100;break;

case10:

bonus=10000+7500+10000+6000+6000+(I-1000000)*1/100;break;}

printf("应发奖金数为:

%f\n\n",bonus);

}

5-9

#include

voidmain()

{

inta,b,c,d,temp,min;

printf("输入四个数a,b,c,d\n\n");

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

if(a>b)

{

temp=a;

a=b;

b=temp;

}

if(a>c)

{

temp=a;a=c;

c=temp;

}if(a>d)

{

temp=a;a=d;

d=temp;

}

\n\n");

printf("由小到大排列为:

printf("%d",a);

if(b>c)

{

temp=b;

b=c;

c=temp;

}if(b>d)

{

temp=b;b=d;

d=temp;

}

printf("%d",b);if(c>d)

{

temp=c;

c=d;

d=temp;

}

printf("%d",c);printf("%d",d);

}

#include#include

voidmain()

{

floatx,y,a,b,c,d;

printf("输入点的坐标\n\n");

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

a=sqrt((2-x)*(2-x)+(2-y)*(2-y));b=sqrt((2-x)*(2-x)+(-2-y)*(-2-y));c=sqrt((-2-x)*(-2-x)+(-2-y)*(-2-y));

d=sqrt((-2-x)*(-2-x)+(2-y)*(2-y));

10m");

if(a<=1||b<=1||c<=1||d<=1)printf("该点建筑高度为:

elseprintf("该点建筑高度为:

0m");

}

6-1

#include

#include

voidmain()

{

intm,n,max,min,i,k;

printf("输入两个正整数\n\n");

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

if(m>n)k=n;

elsek=m;

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

{if((m%i==0)&&(n%i==0))max=i;

}

printf("最大公约数为:

%d\n\n",max);

if(m>n)k=m;

elsek=n;

for(i=k;;i++)

{

if((i%m==0)&&(i%n==0))

{

min=i;

break;

}

}

printf("最小公倍数为:

%d\n\n",min);

}

6-2

#includevoidmain()

{

charc;

intl=0,b=0,n=0,e=0;

printf("输入一行字符\n\n");

while((c=getchar())!

='\n')

{if((c>='a'&&c<='z')||(c>='A'&&c<='Z'))l+=1;

elseif(c=='')b+=1;

elseif(c>=48&&c<=57)n+=1;

elsee+=1;

}

printf("英文字母个数为:

%d\n\n空格个数为:

%d\n\n数字个数为:

%d\n\n其他字符个数为:

%d\n\n",l,b,n,e);

}

6-3

intn,k,i;

floata,s=0;

printf("输入n和a\n\n");

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

for(i=0;i

{

k=pow(10,i);s=s+(n-i)*a*k;

}

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

}

6-4

#include

voidmain()

{

intn,s,S=0,i,j;

printf("输入n\n\n");

scanf("%d",&n);

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

{

s=1;

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

{

s=s*j;

}

S+=s;

}

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

}

6-5#includevoidmain()

{

inti,m,n,t;

ints1=0,s2=0;

floats3=0,s,l;

printf("输入m,n,t的值\n\n");

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

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

{

s1+=i;

}

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

{

s2+=i*i;

}

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

{

l=1.0/i;

s3+=l;

}

s=s1+s2+s3;

printf("和s=%f",s);

}

6-6

#include

voidmain()

{

intm,n,k,i,j;

printf("水仙花数为:

\n");

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

{

j=i;

m=j%10;

j=j/10;

n=j%10;k=j/10;

if(i==m*m*m+n*n*n+k*k*k)printf("%d",i);

}

}

6-7#include

#include

voidmain()

{

inti,j,k,s;

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

{s=0;

for(j=1;j

{

if(i%j==0)s+=j;

}if(s==i)

{

printf("\n\n");printf("%ditsfactorsare",i);for(j=1;j

if(i%j==0)printf("%d",j);

}

}

}

}

6-8

#include

voidmain()

{floatf1,f2,s,temp;printf("输入n\n\n");scanf("%d",&n);f1=2.0;f2=3.0;s=f1;

for(i=1;i<=n-1;i++)

{

s+=f2/f1;

temp=f2;

f2=f1+f2;

f1=temp;

}

printf(”前%4项和为%f",n,s);

}

6-9

#include

#include

voidmain()

{

inti,n,l=100;

floatm,s=0;

printf("输入n\n\n");scanf("%d",&n);

m=l;

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

{

s+=2*m;m=m*0.5;

}

printf("第%d次落地时经过%f米\n\n",n,s-l);printf("第%4次落地后反弹%f米\n\n",n,m);

}

#includevoidmain()

{

intm=1,n,i;

printf("输入n\n\n");

scanf("%d",&n);

for(i=1;i

{

m=(m+1)*2;

}

printf(”一共摘了%d个桃子\n\n”,m);

}

6-11

#include

#include

voidmain()

{

floata,x1,x2;

printf("输入a\n\n");scanf("%f",&a);

x1=a/2;loop:

x2=(x1+a/x1)/2;

if(fabs(x1-x2)>1e-5){x1=x2;gotoloop;

}

elseprintf("\n\na的平方根为%f\n\n",x2);}

#include#include

voidmain()

{

floatf(float);

floatxpoint(float,float);

floatroot(float,float);

floatx,x1,x2,f1,f2;

do

{

printf("输入x1,x2\n\n");scanf("%f%f",&x1,&x2);

f1=f(x1);

f2=f(x2);

}while(f1*f2>0);

x=root(x1,x2);

%f\n\n",x);

printf("方程在1.5附近的根为:

}

floatf(floatx)

{

floaty;

y=2*x*x*x-4*x*x+3*x-6;

return(y);

}

floatxpoint(floatx1,floatx2)

{

floaty;y=(x1*f(x2)-x2*f(x1))/(f(x2)-f(x1));

return(y);

}

floatroot(floatx1,floatx2)

{

floatx,y,y1;

y1=f(x1);

do

x=xpoint(x1,x2);

y=f(x);

if(y*y1>0)

{

y1=y;

x1=x;

}

else

x2=x;

}while(fabs(y)>1e-4);

return(x);

}

6-13

#include

#include

voidmain()

{

floatf(float);

floatroot(float,float);

floatx,x1,x2,f1,f2;

do

{

printf("输入x1,x2\n\n");scanf("%f%f",&x1,&x2);f1=f(x1);

f2=f(x2);

}while(f1*f2>0);

x=root(x1,x2);

printf("方程的根为:

%f\n\n",x);

}

floatf(floatx)

{

floaty;

y=2*x*x*x-4*x*x+3*x-6;

return(y);

floatroot(floatx1,floatx2)

{

floatx,y;

do

{y=f((x1+x2)/2);if(y<-1e-4){x1=(x1+x2)/2;

}

elseif(y>1e-4)

{x2=(x1+x2)/2;

}

elsex=(x1+x2)/2;

}while(fabs(y)>1e-4);

return(x);

}

6-14

#include

voidmain()

{

inti,j,k;

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

printf("");

{for(j=0;j<=2-i;j++){

}for(k=0;k<=2*i;k++)

{

printf("*");

}printf("\n");

}for(i=0;i<=2;i++)

{

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

{printf("");

}

for(k=0;k<=4-2*i;k++)

{printf("*");

}printf("\n");

}

}

6-15

#include

voidmain()

{

chari,j,k;

for(i='X';i<='Z';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')printf("\nA--%c\nB--%c\nC--%c\n",i,j,k);

}

第七章

7-1

#include

#include

voidmain()

{

inti,j;

inta[101];

printf("素数为:

\n\n");for(i=1;i<=100;i++)

{

a[i]=i;

}for(i=3;i<=100;i++)

{for(j=2;j<=sqrt(a[i]);j++)

{

if(a[i]%j==0)

{

a[i]=0;

break;

}

}

}

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

{

if(a[i]!

=0)printf("%d",a[i]);

}

7-2#include

voidmain()

{

inta[10],i,j,temp;

printf("输入10个整数\n\n");

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

{

scanf("%d",&a[i]);

}

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

{

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

{

if(a[i]>a[j])

{

temp=a[i];

a[i]=a[j];

a[j]=temp;

}

}

}

printf("排序后的输出为:

\n\n");

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

{

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

}

printf("\n\n");

}

7-3

#includevoidmain()

{

inta[9],i,s=0;

printf("输入一个3*3整型矩阵\n\n");for(i=0;i<9;i++)

{scanf("%d",&a[i]);

}

for(i=0;i<9;i+=4)

{s+=a[i];

}

printf("对角线元素之和为:

%d\n\n",s);

}

7-4

#include

voidmain()

{

inta[11]={1,2,3,4,5,6,7,8,9,10};

inti,j,n,temp1,temp2;

printf("输入一个数n\n\n");scanf("%d",&n);

if((a[0]-a[9])>0)

{

if(n<=a[9])

{

a[10]=n;

}

else

{

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

if(a[i]

{

temp1=a[i];a[i]=n;

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

temp2=a[j];

a[j]=temp1;temp1=temp2;

}break;

}

}

}

}

if((a[9]-a[0])>0)

{

if(n>=a[9])

{

a[10]=n;

}

else

{

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

{

if(a[i]>n)

{

temp1=a[i];a[i]=n;

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

temp2=a[j];

a[j]=temp1;temp1=temp2;

}break;

}

}for(i=0;i<11;i++)

{

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

}

}

7-5

#include

#defineN5

voidmain()

{

inta[N];

inti,temp;

printf("输入5个个数\n\n");

for(i=0;i

{

scanf("%d",&a[i]);

}

for(i=0;i<=N/2;i++)

{

temp=a[i];

a[i]=a[N-i-1];

a[N-i-1]=temp;

}

for(i=0;i

{

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

}

printf("\n\n");

7-6#include

#include

voidmain()

{

inta[10][10]={1};

inti,j;

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

{

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

{

a[i][0]=a[i-1][0];

a[i][j]=a[i-1][j-1]+a[i-1][j];

}

}

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

{

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

{

printf("%4d",a[i][j]);

}

printf("\n\n");

}

}

7-7#include

#defineN7voidmain()

{

inta[N][N]={0};

inti,j,k;

i=0;

j=(N-1)/2;

a[i][j]=1;

for(k=2;k<=N*N;k++){

i=i-1;

j=j+1;

if((i<0)&&(j>N-1))

{

i=i+2;

j=j-1;

}

else

{

if(i<0)i=N-1;

if(j>N

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

当前位置:首页 > 考试认证 > 其它考试

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

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