谭浩强C语言第八章答案.doc
8.1
# include
int yueshu(int m,int n);
int beishu(int m,int n);
int main()
{
int a,b,Y,B;
printf("输入两个数字:\n");
scanf("%d%d",&a,&b);
Y=yueshu(a,b);
B=beishu(a,b);
printf("最大公约数为Y=%d\n最小公倍数为B=%d\n",Y,B); }
int yueshu(int m,int n)
{
int r,t;
if(m { t=m;m=n;n=t; } while(1) { r=m%n; if(r==0)break; else { m=n; n=r; } } return n; } int beishu(int m,int n) { int c; c=m*n/yueshu(m,n); return c; } 8.2 # include float gen1(int a,int b,int c) { int x1,x2; x1=(-b+sqrt(b*b-4*a*c))/(2*a); x2=(-b-sqrt(b*b-4*a*c))/(2*a); printf("%f\n%f\n",x1,x2); return 0; } float gen2(int a,int b,int c) { int x; x=-b/(2*a); printf("%f\n",x); return x; } float gen3(int a,int b,int c) { printf("无实根;\n"); return 0; } float function(int a,int b,int c) { float x,y; y=a*x*x+b*x+c; return y; } void main() { int x,a,b,c,y; printf("请输入系数:\n"); scanf("%d%d%d",&a,&b,&c); if(b*b-4*a*c>0) { printf("根为:%f%f",gen1(a,b,c)); } if(b*b-4*a*c==0) { printf("根为:%f",gen2(a,b,c)); } if(b*b-4*a*c<0) { printf("根为:",gen3(a,b,c)); } } 8.3 # include # include int sushu(int x); void main() { int y; printf("请输入要判断的数字:\n"); scanf("%d",&y); sushu(y); } int sushu(int x) { int i; float k; k=sqrt(x); for(i=2;i<=k;i++) if(x%i==0) break; if(i>k+1) printf("%d就是素数!",x); else printf("%d不是素数\n",x); } 8.4 # include void zhuanzhi(b); void main() { int a[3][3]={0}; int i,j; printf("请输入三维数组:\n"); for(i=0;i<3;i++) for(j=0;j<3;j++) scanf("%d",&a[i][j]); zhuanzhi(a); } void zhuanzhi(int b[3][3]) { int i,j; for(i=0;i<3;i++) { for(j=0;j<3;j++) { printf("%2d",b[j][i]); } printf("\n"); } } 8.5 # include # include void fanxu(char a[50]); void main() { char b[50]; printf("请输入字符串:\n"); gets(b); fanxu(b); printf("\n"); } void fanxu(char a[50]) { int i; for(i=strlen(a);i>=0;i--) printf("%c",a[i]); } 8.6 # include # include void lianjie(char a1[20],char a2[20]); void main() { char a[20]={0},b[20]={0}; printf("输入两个字符串:\n"); gets(a); gets(b); lianjie(a,b); printf("\n"); } void lianjie(char a1[20],char a2[20]) { int m,n,i; char a3[50]; m=strlen(a1); n=strlen(a2); for(i=0;i a3[i]=a1[i]; for(i=0;i a3[m+i]=a2[i]; a3[m+n]='\0'; for(i=0;i printf("%c",a3[i]); } 8.7 # include # include void yuanyin(char b[30]); void main() { char a1[50]; printf("请输入一字符串:\n"); gets(a1); yuanyin(a1); } void yuanyin(char b[30]) { int i,j=0; char c1[20]={0},c2[20]={0}; for(i=0;i if(b[i]=='a'||b[i]=='e'||b[i]=='i'||b[i]=='o'||b[i]=='u' ||b[i]=='A'||b[i]=='E'||b[i]=='I'||b[i]=='O'||b[i]=='U') { c1[j]=b[i]; j++; } // c1[j+1]='\0'; strcpy(c2,c1); for(i=0;i printf("%c",c2[i]); printf("\n"); } 8.8 # include void kong(int b[4]); void main() { int a[4]={0},i; printf(" 请输入四个数字\n"); for(i=0;i<4;i++) scanf("%d",&a[i]); kong(a); printf("\n"); } void kong(int b[4]) { int i; for(i=0;i<4;i++) { printf("%d",b[i]); printf(" "); } } 8.9 # include # include void tongji(char b[50]); void main() { char a[50]={0}; printf("输入一串字符:\n"); gets(a); tongji(a); } void tongji(char b[50]) { int i; int d=0,x=0,s=0,k=0,q=0; for(i=0;i { if(b[i]>='A'&&b[i]<='Z') d++; else if(b[i]>='a'&&b[i]<='z') x++; else if(b[i]>='0'&&b[i]<='9') s++; else if(b[i]==' ') k++; else q++; } printf("大写%d个\n小写%d个\n数字%d个\n空格%d个\n其他%d个\n",d,x,s,k,q); } 8.10 # include # include void danci(char str1[100],char w0[15]); void main() { char a[50]={0},b[15]={0}; printf("输入一串字符:\n"); gets(a); danci(a,b); } void danci(char str1[100],char w0[15]) { int i=0,j=0,t=0; char w1[15];