好文档 - 专业文书写作范文服务资料分享网站

C语言程序设计第四版第七章答案-谭浩强

天下 分享 时间: 加入收藏 我要投稿 点赞

第七章 函数

7.1写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。 maxyueshu(m,n) int m,n; { int i=1,t;

for(;i<=m&&i<=n;i++) {if(m%i==0&&n%i==0) t=i; }

return(t); }

minbeishu(m,n) int m,n; {int j;

if(m>=n) j=m; else j=n;

for(;!(j%m==0&&j%n==0);j++); return j; }

main()

{int a,b,max,min;

printf(\ scanf(\ max=maxyueshu(a,b); min=minbeishu(a,b);

printf(\ }

7.2求方程 的根,用三个函数分别求当b2-4ac大于0、等于0、和小于0时的根,并输出结果。从主函数输入a、b、c的值。 #include\ float yishigen(m,n,k) float m,n,k; {float x1,x2;

x1=(-n+sqrt(k))/(2*m); x2=(-n-sqrt(k))/(2*m);

printf(\ }

float denggen(m,n) float m,n; {float x; x=-n/(2*m);

printf(\ }

float xugen(m,n,k) float m,n,k; {float x,y; x=-n/(2*m);

y=sqrt(-k)/(2*m);

printf(\ }

main()

{float a,b,c,q;

printf(\

scanf(\ printf(\ q=b*b-4*a*c;

if(q>0) yishigen(a,b,q); else if(q==0) denggen(a,b); else xugen(a,b,q); }

7.3写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的消息。 psushu(m) int m; {int i=2,t;

for(;i<=m;i++)

if(m%i==0&&i

main() {int a,s;

printf(\ scanf(\ s=psushu(a);

if(s==1) printf(\ else printf(\ }

7.4写一个函数,使给定的一个二维数组(3×3)转置,即行列互换。 int zhuangzhi(b) int b[3][3]; {int i,j,t;

for(i=0;i<3;i++)

for(j=0;j>=i&&j<3-i;j++)

{t=b[i][j];b[i][j]=b[j][i];b[j][i]=t;} }

main()

{int a[3][3];int i,j; for(i=0;i<3;i++) for(j=0;j<3;j++)

scanf(\ for(i=0;i<3;i++) {for(j=0;j<3;j++) printf(\ printf(\ zhuangzhi(a); for(i=0;i<3;i++) {for(j=0;j<3;j++) printf(\ printf(\ }

7.5写一函数,使输入的一个字符串按反序存放,在主函数中输入输出字符串。 main()

{char str0[100]; gets(str0); fanxu(str0); puts(str0); }

fanxu(str1) char str1[100]; {int i,t,j;

char str2[100];strcpy(str2,str1); t=strlen(str1);

for(i=0,j=t-1;j>-1;i++,j--) str1[i]=str2[j]; }

7.6写一函数,将两个字符串连接。 lianjie(a,b)

char a[100],b[100]; {strcat(a,b); }

main()

{char str1[100],str2[100]; gets(str1);gets(str2); lianjie(str1,str2); puts(str1); }

8.7写一函数,将两个字符串中的元音字母复制到另一个字符串,然后输出。 fuzhi(a,b)

char a[100],b[100]; {int i,j=0;

for(i=0;a[i]!=’\\0’;i++)

if(a[i]==97||a[i]==101||a[i]==105||a[i]==111||a[i]==117||a[i]==65|| a[i]==69||a[i]==73||a[i]==85) {b[j]=a[i];j++;} }

main()

{char str1[100],str2[100]; gets(str1);

fuzhi(str1,str2); puts(str2); }

7.8写一函数,输入一个四位数字,要求输出这四个数字字符,但每两个数字间空格。如输入1990,应输出\。 char f(b) char b[4]; {int i=0; for(;i<4;i++) {printf(\

printf(\ printf(\ }

main()

{int a,u,v,w,t;char c[4]; scanf(\

u=a*0.001;v=0.01*(a-1000*u);w=(a-1000*u-100*v)*0.1;t=a-1000*u-100*v-10*w; c[0]=u+48; c[1]=v+48; c[2]=w+48; c[3]=t+48; f(c); }

7.9编写一函数,由实参传来一个字符串,统计此字符串中字母、数字、空格和其它字符的个数,在主函数中输入字符串以及输出上述结果。 char tongji(str0,b) char str0[100]; int b[4]; {int i;

for(i=0;str0[i]!=’\\0’;i++)

{if(str0[i]>=65&&str0[i]<=90||str0[i]>=97&&str0[i]<=122) b[0]++; else if(str0[i]>=48&&str0[i]<=57) b[1]++; else if(str0[i]==32) b[2]++; else b[3]++;} }

main()

{char str1[100];static int i,a[4];

gets(str1); tongji(str1,a);

printf(\ for(i=0;i<4;i++)

printf(\ }

7.10写一函数,输入一行字符,将此字符串中最长的单词输出。 cechang(str1,word0)

char str1[100],word0[15]; {int i=0,j=0,t=0;

static char word1[15]; for(;str1[i]!=’\\0’;i++)

{if(!(str1[i]>=97&&str1[i]<=122||str1[i]>=65&&str1[i]<=90)) {t=j;j=0;continue;} word1[j]=str1[i];j++;

if(j>=t) strcpy(word0,word1);} }

main()

{char str0[100],longword[15]; gets(str0);

cechang(str0,longword); puts(longword); }

7.11写一函数用起泡法对输入的个字符按由小到大的顺序排列。 int paixu(x) int x[]; {int i,j,t;

for(j=1;j<10;j++) for(i=0;i<=9-j;i++)

if(x[i]>x[i+1]) {t=x[i+1];x[i+1]=x[i];x[i]=t;} }

main()

{int y[10];int i; for(i=0;i<10;i++) scanf(\ paixu(y);

for(i=0;i<10;i++) printf(\ printf(\ }

7.12用牛顿迭代法求根。方程为: ,系数a,b,c,d由主函数输入。求X在1附近的一个实根。求出后由主函数输出。 double qigen(s,t,u,v) int s,t,u,v;

C语言程序设计第四版第七章答案-谭浩强

第七章函数7.1写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。maxyueshu(m,n)intm,n;{inti=1,t;for(;i<=m&&i<=n;i++){if(m%i==0&&n%i==0)t=i;}return(t);}<
推荐度:
点击下载文档文档为doc格式
1jjm01ut5a9ersa9pruq6ksx797jw500wp6
领取福利

微信扫码领取福利

微信扫码分享