1、C语言程序的设计第三版课后复习题答案C程序设计(第三版)答案-谭浩强程序是在 VC6.0 下编译的,所以头文件和 TC 的不太一样!4-8#include #define pi 3.1415void main()float r,h,rl,ra,ss,sv,cv;printf( 输入圆的半径和圆柱的高 nn);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;%fnnprintf( 圆周长为: %fnn 圆面积为: %fnn 圆球表面积为: %fnn 圆球体积为: 圆柱体积为: %fnn,rl,ra
2、,ss,sv,cv);4-9#include void main()float F,c;printf( 输入一个华氏温度 nn);scanf(%f,&F);c=5*(F-32)/9;printf( 摄氏温度为: %.2fnn,c); 第五章5-4#include void main()int a,b,c,max;printf( 输入三个整数 a,b,cnn);scanf(%d%d%d,&a,&b,&c);if(ab) max=a;else max=b;if(maxc) max=c;printf( 最大的数为: %dnn,max);5-5#include void main()float x,y
3、;printf( 输入 xnn);scanf(%f,&x);if(x1) y=x;else if(x10) y=2*x-1;else y=3*x-11;printf(y=%fnn,y);5-6#include void main()float m;int n;printf( 输入成绩 nn);scanf(%f,&m);n=m/10;switch(n)case 0:case 1:case 2:case 3:case 4:case 5:printf(Enn);break;case 6:printf(Dnn);break;case 7:printf(Cnn);break;case 8:printf(
4、Bnn);break;case 9:case 10:printf(Ann);break;5-7#include #include void main()int a,b,c,i,j,n;printf( 输入五位正整数 nn); scanf(%d,&a);printf(nn);c=a;for(i=1;i+) b=c%10; c=c/10; printf(%d,b); if(c=0) printf(nn);printf(正整数为 d位数 nn”,i);break;c=a;for(j=i-1;j=0;j-) n=pow(10,j); b=c/n; c=c%n; printf(%dn,b);5-8if
5、语句:#include void main()int I;float bonus;printf( 输入当月利润 Inn);scanf(%d,&I);if(I=100000) bonus=I/10;else if(I=200000) bonus=10000+(I-100000)*7.5/100;else if(I=400000) bonus=10000+7500+(I-200000)*5/100;else if(I=600000) bonus=10000+7500+10000+(I-400000)*3/100;else if(I=1000000)bonus=10000+7500+10000+60
6、00+(I-600000)*1.5/100;else bonus=10000+7500+10000+6000+6000+(I-1000000)*1/100; printf( 应发奖金数为: %fnn,bonus);switch 语句:#include void main()float bonus;printf( 输入当月利润 Inn);scanf(%d,&I);if(I1000000) n=10;else n=I/100000;switch(n)case 0:bonus=I/10;break;case 1:bonus=10000+(I-100000)*7.5/100;break;case 2:
7、case 3:bonus=10000+7500+(I-200000)*5/100;break;case 4:case 5:bonus=10000+7500+10000+(I-400000)*3/100;break;case 6:case 7:case 8:case 9:bonus=10000+7500+10000+6000+(I-600000)*1.5/100;break;case 10:bonus=10000+7500+10000+6000+6000+(I-1000000)*1/100;break; printf( 应发奖金数为: %fnn,bonus);5-9#include void m
8、ain()int a,b,c,d,temp,min;printf( 输入四个数 a,b,c,dnn);scanf(%d%d%d%d,&a,&b,&c,&d);if(ab)temp=a;a=b;b=temp;if(ac)temp=a; a=c;c=temp; if(ad)temp=a; a=d;d=temp;nn);printf( 由小到大排列为: printf(%d ,a);if(bc)temp=b;b=c;c=temp; if(bd)temp=b; b=d;d=temp;printf(%d ,b); if(cd)temp=c;c=d;d=temp;printf(%d ,c); printf(
9、%d,d);#include #include void main()float x,y,a,b,c,d;printf( 输入点的坐标 nn);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( 该点建筑高度为: else printf( 该点建筑高度为: 0m);6-1#include
10、#include void main()int m,n,max,min,i,k;printf( 输入两个正整数 nn);scanf(%d%d,&m,&n);if(mn) k=n;else k=m;for(i=1;in) k=m;else k=n;for(i=k;i+)if(i%m=0)&(i%n=0)min=i;break;printf( 最小公倍数为: %dnn,min);6-2#include void main()char c;int l=0,b=0,n=0,e=0;printf( 输入一行字符 nn);while(c=getchar()!=n) if(c=a&c=A&c=48&c=57
11、) n+=1;else e+=1;printf( 英文字母个数为: %dnn 空格个数为: %dnn 数字个数为: %dnn 其他字符个 数为: %dnn,l,b,n,e);6-3int n,k,i;float a,s=0;printf( 输入 n 和 ann);scanf(%d%f,&n,&a);for(i=0;in;i+)k=pow(10,i); s=s+(n-i)*a*k;printf( 和 s=%fnn,s);6-4#include void main()int n,s,S=0,i,j;printf( 输入 nnn);scanf(%d,&n);for(i=1;j=n;i+)s=1;fo
12、r(j=1;j=i;j+)s=s*j;S+=s;printf( 和 S=%dnn,S);6-5 #include void main()int i,m,n,t;int s1=0,s2=0;float s3=0,s,l;printf( 输入 m,n,t 的值 nn);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 void main()int m,n,k,i,j;print
13、f( 水仙花数为: 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 void main()int i,j,k,s;for(i=1;i=1000;i+) s=0;for(j=1;ji;j+)if(i%j=0) s+=j; if(s=i)printf(nn); printf(%d its factors are ,i); for(j=1;ji;j+) if(i%j=0) printf(%d ,j);6-8#includ
14、e void main() float f1,f2,s,temp; printf( 输入 nnn); 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 void main()int i,n,l=100;float m,s=0;printf( 输入 nnn); scanf(%d,&n);m=l;for(i=1;i=n;i+)s+=2*m; m=m*0.5;printf(第 d次落地时经过 %f
15、米nn,n,s-l); printf( 第4次落地后反弹%f米nn,n,m);#include void main()int m=1,n,i;printf( 输入 nnn);scanf(%d,&n);for(i=1;in;i+)m=(m+1)*2;printf(” 一共摘了 d个桃子 nn”,m);6-11#include #include void main()float a,x1,x2;printf( 输入 ann); scanf(%f,&a);x1=a/2; loop:x2=(x1+a/x1)/2;if(fabs(x1-x2)1e-5) x1=x2; goto loop;else pri
16、ntf(nna 的平方根为 %fnn,x2); #include #include void main()float f(float);float xpoint(float,float);float root(float,float);float x,x1,x2,f1,f2;doprintf( 输入 x1,x2nn); scanf(%f%f,&x1,&x2);f1=f(x1);f2=f(x2);while(f1*f20);x=root(x1,x2);%fnn,x);printf( 方程在 1.5 附近的根为: float f(float x)float y;y=2*x*x*x-4*x*x+3*
17、x-6;return(y);float xpoint(float x1,float x2)float y; y=(x1*f(x2)-x2*f(x1)/(f(x2)-f(x1);return(y);float root(float x1,float x2)float x,y,y1;y1=f(x1);dox=xpoint(x1,x2);y=f(x);if(y*y10)y1=y;x1=x;elsex2=x;while(fabs(y)1e-4);return(x);6-13#include #include void main()float f(float);float root(float,floa
18、t);float x,x1,x2,f1,f2;doprintf( 输入 x1,x2nn); scanf(%f%f,&x1,&x2); f1=f(x1);f2=f(x2);while(f1*f20);x=root(x1,x2);printf( 方程的根为: %fnn,x);float f(float x)float y;y=2*x*x*x-4*x*x+3*x-6;return(y);float root(float x1,float x2)float x,y;do y=f(x1+x2)/2); if(y1e-4) x2=(x1+x2)/2;else x=(x1+x2)/2;while(fabs(
19、y)1e-4);return(x);6-14#include void main()int i,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 void main()char i,j,k;for(i=X;i=Z;i+)for(j=X;j=Z;j+)if(i!=j)for(k=X;k=
20、Z;k+)if(i!=k&j!=k)if(i!=X&k!=X&k!=Z) printf(nA-%cnB-%cnC-%cn,i,j,k);第七章7-1#include #include void main()int i,j;int a101;printf( 素数为: nn); for(i=1;i=100;i+)ai=i; for(i=3;i=100;i+) for(j=2;j=sqrt(ai);j+)if(ai%j=0)ai=0;break;for(i=2;i=100;i+)if(ai!=0) printf(%d ,ai);7-2 #include void main()int a10,i,j,
21、temp;printf( 输入 10 个整数 nn);for(i=0;i10;i+)scanf(%d,&ai);for(i=0;i10;i+)for(j=i+1;jaj)temp=ai;ai=aj;aj=temp;printf( 排序后的输出为: nn);for(i=0;i10;i+)printf(%d ,ai);printf(nn);7-3#include void main()int a9,i,s=0;printf( 输入一个 3*3 整型矩阵 nn); for(i=0;i9;i+) scanf(%d,&ai);for(i=0;i9;i+=4) s+=ai;printf( 对角线元素之和为
22、: %dnn,s);7-4#include void main()int a11=1,2,3,4,5,6,7,8,9,10;int i,j,n,temp1,temp2;printf( 输入一个数 nnn); scanf(%d,&n);if(a0-a9)0)if(n=a9)a10=n;elsefor(i=0;i10;i+)if(ain)temp1=ai; ai=n;for(j=i+1;j0)if(n=a9)a10=n;elsefor(i=0;in)temp1=ai; ai=n;for(j=i+1;j11;j+) temp2=aj;aj=temp1; temp1=temp2; break; for
23、(i=0;i11;i+)printf(%d ,ai);7-5#include #define N 5void main()int aN;int i,temp;printf( 输入 5 个个数 nn);for(i=0;iN;i+)scanf(%d,&ai);for(i=0;i=N/2;i+)temp=ai;ai=aN-i-1;aN-i-1=temp;for(i=0;iN;i+)printf(%d ,ai);printf(nn);7-6 #include #include void main()int a1010=1;int i,j;for(i=1;i10;i+)for(j=0;j=i;j+)ai0=ai-10;aij=ai-1j-1+ai-1j;for(i=0;i10;i+)for(j=0;j=i;j+)printf(%4d,aij);printf(nn);7-7 #include #define N 7 void main()int aNN=0;int i,j,k;i=0;j=(N-1)/2;aij=1;for(k=2;k=N*N;k+) i=i-1;j=j+1;if(iN-1)i=i+2;j=j-1;elseif(iN
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1