C语言作业答案.doc
文本预览下载声明
第一章:
第6题
方法一:
#include stdio.h
int main()
{int a,b,c,max;
printf(please input a,b,c:\n);
scanf(%d,%d,%d,a,b,c);
max=a;
if (maxb)
max=b;
if (maxc)
max=c;
printf(The largest number is %d\n,max);
return 0;
}
方法二:
#include stdio.h
int main()
{int max(int x,int y);
int a,b,c,d;
printf(please input a,b,c:\n);
scanf(%d,%d,%d,a,b,c);
d=max(max(a,b),c);
printf(The largest number is %d\n,d);
return 0;
}
int max(int x,int y)
{ return (xy)?x:y;
}
第三章
第3题
#include stdio.h
#include math.h
int main()
{float d=300000,p=6000,r=0.01,m;
m=log10(p/(p-d*r))/log10(1+r);
printf(m=%6.2f\n,m);
return 0;
}
第题#include stdio.h
int main()
{char c1,c2;
c1=97;
c2=98;
printf(c1=%c,c2=%c\n,c1,c2);
printf(c1=%d,c2=%d\n,c1,c2);
return 0;
}
运行时会输出什么信息?为什么?
解:运行时输出:
第1行是将c1,c2按%c的格式输出,97是字符a的ASCII代码,98是字符b的ASCII代码。
第2行是将c1,c2按%d的格式输出,所以输出两个十进制整数。
如果将程序第4,5行改为:
C1=197;
C2=198;
运行时会输出什么信息?为什么?
解:由于Visual C++6.0字符型数据是作为signed char 类型处理的,它存字符的有效范围为0~127,超过此范围的处理方法,不同的系统得到的结果不同,因而用“%c”格式输出时,结果是不可预料的。
如果将程序第3行改为;
int c1,c2;
运行时会输出什么信息?为什么?
解:如果给c1和c2赋的值是97和平利用8,则输出结果与(1)相同。如果给c1和c2赋的值是197和198,则用%c输出时,是不可预料的字符。用%d输出时,输出整数197和198,因为它们在int类型的有效范围内。
第5题
#include stdio.h
int main()
{int a,b;
float x,y;
char c1,c2;
scanf(a=%d b=%d,a,b);
scanf(%f %e,x,y);
scanf(%c%c,c1,c2);
printf(a=%d,b=%d,x=%f,y=%f,c1=%c,c2=%c\n,a,b,x,y,c1,c2);
return 0;
}
输入方法1:a=3 b=7 8.5 71.82 Aa回车即可
输入方法2:
a=3 b=7;
8.5 71.82Aa
输入方法3:
a=3
b=7
8.5
71.82Aa
第7题
方法一
#include stdio.h
int main ()
{float h,r,l,s,sq,vq,vz;
float pi=3.141526;
printf(请输入圆半径r,圆柱高h∶);
scanf(%f,%f,r,h); //要求输入圆半径r和圆柱高h
l=2*pi*r; //计算圆周长l
s=r*r*pi; //计算圆面积s
sq=4*pi*r*r; //计算圆球表面积sq
vq=3.0/4.0*pi*r*r*r; //计算圆球体积vq
vz=pi*r*r*h; //计算圆柱体积vz
printf(圆周长为: l=%6.2f\n,l);
printf(圆面积为: s=%6.2f\n,s);
printf(圆球表面积为: sq=%6.2f\n,sq);
printf(圆球体积为: v=%6.2f\n,vq);
printf(圆柱体积为:
显示全部