C语言程序的设计第三版课后复习题答案.docx
- 文档编号:8317776
- 上传时间:2023-01-30
- 格式:DOCX
- 页数:87
- 大小:31.69KB
C语言程序的设计第三版课后复习题答案.docx
《C语言程序的设计第三版课后复习题答案.docx》由会员分享,可在线阅读,更多相关《C语言程序的设计第三版课后复习题答案.docx(87页珍藏版)》请在冰豆网上搜索。
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
#include
{
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 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 #include { 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#include { 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); } #include { 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 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 #include { 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
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 语言 程序 设计 第三 课后 复习题 答案