教学文库网 - 权威文档分享云平台
您的当前位置:首页 > 文库大全 > 实用文档 >

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

来源:网络收集 时间:2026-08-28
导读: 第七章 用函数实现模块化程序设计 第七章 函数 7.1写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果两个整数由键盘输入。 maxyueshu(m,n) int m,n; { int i=1,t; for(;i=mi=n;i++) {if(m%i==0n%i==0) t=i; } return

第七章 用函数实现模块化程序设计

第七章 函数

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("enter two number is: ");

scanf("%d,%d",&a,&b);

max=maxyueshu(a,b);

min=minbeishu(a,b);

printf("max=%d,min=%d\n",max,min);

}

7.2求方程 的根,用三个函数分别求当b2-4ac大于0、等于0、和小于0时的根,并输出结果。从主函数输入a、b、c的值。

#include"math.h"

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("two shigen is x1=%.3f and x2=%.3f\n",x1,x2);

}

float denggen(m,n)

float m,n;

{float x;

x=-n/(2*m);

printf("denggen is x=%.3f\n",x);

}

第七章 用函数实现模块化程序设计

float xugen(m,n,k)

float m,n,k;

{float x,y;

x=-n/(2*m);

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

printf("two xugen is x1=%.3f+%.3fi and x2=%.3f-%.3fi\n",x,y,x,y);

}

main()

{float a,b,c,q;

printf("input a b c is ");

scanf("%f,%f,%f",&a,&b,&c);

printf("\n");

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<m) break;

if(m-i==0) t=1;

else t=0;

return m;

}

main()

{int a,s;

printf("enter sushu is \n");

scanf("%d",&a);

s=psushu(a);

if(s==1) printf("a is sushu\n");

else printf("s is not sushu\n");

}

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("%d",&a[i][j]);

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

{for(j=0;j<3;j++)

printf(" %d",a[i][j]);

printf("\n");}

zhuangzhi(a);

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

{for(j=0;j<3;j++)

printf(" %d",a[i][j]);

printf("\n");}

}

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,应输出"1_9_9_0"。

char f(b)

char b[4];

{int i=0;

for(;i<4;i++)

{printf(" ");

printf("%c",b[i]);}

printf("\n");

}

main()

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

scanf("%4d",&a);

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("zimu Shuzi Kongge Qita\n");

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

printf("%-8d ",a[i]);printf("\n");

}

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++)

< …… 此处隐藏:6176字,全部文档内容请下载后查看。喜欢就下载吧 ……
C语言程序设计第四版第七章答案 谭浩强.doc 将本文的Word文档下载到电脑,方便复制、编辑、收藏和打印
本文链接:https://www.jiaowen.net/wenku/1108466.html(转载请注明文章来源)
Copyright © 2020-2025 教文网 版权所有
声明 :本网站尊重并保护知识产权,根据《信息网络传播权保护条例》,如果我们转载的作品侵犯了您的权利,请在一个月内通知我们,我们会及时删除。
客服QQ:78024566 邮箱:78024566@qq.com
苏ICP备19068818号-2
Top
× 游客快捷下载通道(下载后可以自由复制和排版)
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
VIP包月下载
特价:29 元/月 原价:99元
低至 0.3 元/份 每月下载150
全站内容免费自由复制
注:下载文档有可能出现无法下载或内容有问题,请联系客服协助您处理。
× 常见问题(客服时间:周一到周五 9:30-18:00)