第1章习题参考答案1. (略)23填空题(1)main(2)函数的首部、函数体(3){、}(4)main、main(5)语句、分号(;)45选择题(1)#include <>main(){int a, b, s;float t;printf("Enter A,B=?\n");scanf("%d%d", &a, &b);s=a+b;t=a*b;printf("s=%d, t=%f\n", s, t);}(2)#include <>main(){printf("=================\n");printf(" Hello! \n");printf(" How do you do \n");printf("=================\n");}(3)#include <>main(){int r, h; float v;printf("Enter R, H=?\n"); scanf("%d%d", &r, &h); v=*r*r*h;printf("v=%f\n",v); }第2章 习题参考答案一.(略) 二.填空题(1) abe d c b b a 2+++(2) (3) 16 (4) 10 (5) 16、16、11 (6) 4、10、6 (7) 18、3、3 (8) sin(65*180)+2*( +exp(y))/(x-y) (9) 25、25 (10) 27 (11) 4 (12) 0四、编程题1.#include <> main() {int x, a, b, c;printf("Enter a intger number x=?\n"); scanf("%d",&x); a=x /100; b=x%100/10; c=x%10;printf("%d %d %d\n", a, b, c);}2.#include <>main(){unsigned a, b,r1,r2,r3;scanf("%u%u", &a, &b);r1=a &b;r2=a|b;r3=a^b;printf("r1=%u,r2=%u,r3=%u\n",r1,r2,r3);getch();}3.#include <>main(){float a, b, h, s;scanf("%f%f?%f", &a, &b, &h);s=(a+b)*h/2;printf("s=%f\n", s);}第3章习题参考答案一、判断题2填空题3语句4表达式语句5{ }6函数7由“%”和格式字符8&9getchar()1027 ,33 ,1b11x(1)= x(2)=125+ 63程序阅读题1、p=p=p=p=p=p=2、a----ASCII: 97a----ASCII: 97a----ASCII: 974编程题1、#include <>main(){int a, b;float r1, r2;scanf("%d%d", &a, &b);r2=a+b;r1=a*b/r2;printf("r1=%0.2f,r2=%0.2f\n", r1, r2);}2、#include <>main(){float c, f;printf("Input C=");scanf("%f", &c);f=5*c+32;printf("F=%f\n", f);}3、#include <>void main(){float c1, c2, c3, ver, s;printf("Input a, b and c:");scanf("%f%f%f", &c1, &c2, &c3);s=c1+c2+c3;ver=s/3;printf("total s=%f , ver=%f\n", s,ver);}}第4章习题参考答案1判断题1 2 3 4 5 6××√√×√21 2 3 4 5 6 7 8B B B B D A B B3程序阅读题(1)105(2)a=8(3)abc123DEF(4)4程序填空题(1)ch ch==')' count-- count==0 count>0 (2)div=n div—(3)min=mark min=mark max=mark sum+=mark5编程题(1)#include <>void main( ){ int x,y;printf("Enter the X,Y=?\n");scanf("%d,%d",&x,&y);if(x>0 && y>0)printf("(%d,%d)是第一像限\n",x,y);else if(x>0 && y<0)printf("(%d,%d)是第四像限\n",x,y);else if(x<0 && y>0)printf("(%d,%d)是第三像限\n",x,y);else if(x<0 && y<0)printf("(%d,%d)是第二像限\n",x,y);else if(x>0 && y==0)printf("(%d,%d)在X轴正方向\n",x,y);else if(x<0 && y==0)printf("(%d,%d)在X轴负方向\n",x,y);else if(x==0 && y>0)printf("(%d,%d)在Y轴正方向\n",x,y);else if(x==0 && y<0)printf("(%d,%d)在Y轴负方向\n",x,y);elseprintf("(%d,%d)为坐标原点\n",x,y);}(2)#include <>#include <>main(){float a, b, c, x, s;printf("Input a, b and c:");scanf("%f%f%f", &a, &b, &c);if(a+b<=c || a+c<=b || b+c<=a)printf("Error!\n");else{x=(a+b+c)/2;s=sqrt(x*(x-a)*(x-b)*(x-c));printf("area=%f\n", s);}}(3)程序代码如下:#include <>void main(){ float salary, tax;int ntax;printf("\nPlease enter a salary=");scanf("%f",&salary);ntax=salary/500;if (ntax>=10) ntax=10;switch(ntax){ case 0: case 1:tax=0;break;case 2:tax=(salary-1000)*;break;case 3:case 4:tax=500*+(salary-1500)*;break;case 5:case 6:tax=500*+1000*+(salary-2500)*;break;case 7:case 8:case 9:tax=500*+1000*+1000*+(salary-3500)*;break;case 10:tax=500*+1000*+1000*+1500*+(salary-5000)*;}printf("\nThe tax=%10.2f\n",tax);}(4)方法一#include <>#include <>main(){int i=1;float t=-1, s=0;do{t= -t/i;s=s+t;i=i+1;}while(fabs(t)>1e-6);printf("s=%f\n", s);}方法二#include <>void main(){int i=1,sign=1;float t=, s=;whilet>1e-6){t= t*i;s=s+sign/t;i=i+1;sign=-sign;};printf("s=%f\n", s);}(5)方法一:#include <>main(){int i, a, b, c;for(i=100; i<=999; i++){a=i /100;b=i/10%10;c=i%10;if(i==a*a*a+b*b*b+c*c*c) printf("%d\n", i);}}方法二:#include <>void main(){int i, a, b, c;for(a=1; a<=9; a++)for(b=0; b<=9; b++)for(c=0; c<=9; c++){ i=a*100+b*10+c;if(i==a*a*a+b*b*b+c*c*c) printf("%d\n", i);}}(6)#include <>main(){int i, j;for(i=1; i<=4; i++){for(j=1; j<=6-i; j++) putchar(' ');for(j=1; j<=i*2-1; j++)printf("%c", 65+i-1);printf("\n");}for(i=3; i>=1; i--){for(j=1; j<=6-i; j++) putchar(' ');for(j=1; j<=i*2-1; j++)printf("%c", 65+i-1);printf("\n");}}(7)#include <>main(){int a, b, c;for(a=0; a<=20; a++)for(b=0; b<=33; b++){c=100-a-b;if(a*5+b*3+c/==100)printf("%d, %d, %d\n", a, b, c);}}(8)#include <>#include <>main(){float x, x0, a;scanf("%f", &a);x=a;do{x0=x;x=2/*x0+a/(3*x0*x0);}while(fabs(x-x0)>1e-6);printf("x=%f\n", x);}(9)#include <>#include <>main(){float pi, pi0;int i=1pi=2;do{pi0=pi;pi=pi**i/*i-1))**i/*i+1));i=i+1;}while(fabs(pi-pi0)>1e-6);printf("pi=%f\n", pi);}(10)#include <>void main(){ int i,j,s;for(i=6;i<=1000;i++){ s=1;for(j=2;j<=i/2;j++)if(i%j==0) s+=j;if(s==i) /*判断是否是合数*/{ printf("%d=1",i); /* 打印输出合数及=1*/for(j=2;j<=i/2;j++) /* 打印输出各因子*/if(i%j==0) printf("+%d",j);printf("\n");}}}(11)#include <>#include <>void main(){int x, y,z,k;k=sqrt(2000);for(x=0;x<=k;x++)for(y=0;y<=k;y++)for(z=0;z<=k;z++)if(x*x+y*y+z*z==2000)printf("%d,%d,%d\n",x,y,z);}第5章习题参考答案2填空题(1)32(2)4(3)str1[7]= '\0';(4)for(i=1;i<=6;i++) gets(a[i]);(5)strcpy(web, "");(6)int *p=a;(7)5(8)1(9)*(p+6)或*(s+6)4程序阅读题(1)6(2)str(3)60(4)bcdefgacdefgabdefgabc(5)a1e25程序填空题(1)# include <> scanf("%f", &a[i]) s=0; x=a[0] fabs(a[i]-s) (2)scanf("%d",&n) a[i][i]=1 a[i-1][j-1] printf("\n")(3)b[i]!='\0' strcpy puts(b)(4)p=a[0]; 或p=&a[0][0]; *p六、编程题1、使用数组和指针2种方法来处理。