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