C语言第七章习题答案.docx

上传人:b****2 文档编号:3165309 上传时间:2023-05-05 格式:DOCX 页数:9 大小:15.68KB
下载 相关 举报
C语言第七章习题答案.docx_第1页
第1页 / 共9页
C语言第七章习题答案.docx_第2页
第2页 / 共9页
C语言第七章习题答案.docx_第3页
第3页 / 共9页
C语言第七章习题答案.docx_第4页
第4页 / 共9页
C语言第七章习题答案.docx_第5页
第5页 / 共9页
C语言第七章习题答案.docx_第6页
第6页 / 共9页
C语言第七章习题答案.docx_第7页
第7页 / 共9页
C语言第七章习题答案.docx_第8页
第8页 / 共9页
C语言第七章习题答案.docx_第9页
第9页 / 共9页
亲,该文档总共9页,全部预览完了,如果喜欢就下载吧!
下载资源
资源描述

C语言第七章习题答案.docx

《C语言第七章习题答案.docx》由会员分享,可在线阅读,更多相关《C语言第七章习题答案.docx(9页珍藏版)》请在冰点文库上搜索。

C语言第七章习题答案.docx

C语言第七章习题答案

7.1写两个函数,分别求两个整数的最大公约数和最小公倍数,用主函数调用这两个函数,并输出结果。

两个整数由键盘输入。

hcf(u,v)

intu,v;

{inta,b,t,r;

 if(u>v)

 {t=u;u=v;v=t;}

 a=u;b=v;

 while((r=b%a)!

=0)

  {b=a;a=r;}

 return(a);

}

lcd(u,v,h)

intu,v,h;

{intu,v,h,l;

 scanf("%d,%d",&u,&v);

 h=hcf(u,v);

 printf("H.C.F=%dn",h);

 l=lcd(u,v,h);

 printf("L.C.d=%dn",l);

  return(u*v/h);

}

 

#include

void main()

{intu,v,h,l;

 scanf("%d,%d",&u,&v);

 h=hcf(u,v);

 printf("H.C.F=%dn",h);

 l=lcd(u,v,h);

 printf("L.C.D=%dn",l);

}

 

7.2求方程根

floatx1,x2,disc,p,q;

greater_than_zero(a,b)

floata,b;

{

 x1=(-b+sqrt(disc))/(2*a);

 x2=(-b-sqrt(disc))/(2*a);

}

equal_to_zero(a,b)

floata,b;

{x1=x2=(-b)/(2*a);}

 

smaller_than_zero(a,b)

floata,b;

{p=-b/(2*a);

 q=sqrt(disc)/(2*a);

}

 

main()

{

 floata,b,c;

 printf("n输入方程的系数a,b,c:

n");

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

 printf("n方程是:

%5.2f*x*x+%5.2f*x+%5.2f=0n",a,b,c);

 disc=b*b-4*a*c;

 printf("方程的解是:

n");

 if(disc>0)

  {great_than_zero(a,b);

    printf("X1=%5.2ftX2=%5.2fnn",x1,x2);

   }

 elseif(disc==0)

  {

     zero(a,b);

     printf("X1=%5.2ftX2=%5.2fnn",x1,x2);

   }

   else

   {

     small_than_zero(a,b,c);

     printf("X1=%5.2f+%5.2fitX2=%5.2f-%2.2fin",p,q,p,q);

  }

}

 

7.3写一个判断素数的函数,在主函数输入一个整数,输出是否是素数的信息。

#include

#include

void main()

{intnumber;

 scanf("%d",&number);

 if(prime(number))

   printf("yes");

 else

   printf("no");

 }

 

intprime(number)

intnumber;

{intflag=1,n;

 for(n=2;n

  if(number%n==0)

     flag=0;

 return(flag);

}

 

7.4写一个函数,使给定的一个3*3的二维整型数组转置,即行列互换。

#defineN3

intarray[N][N];

convert(array)

intarray[3][3];

{inti,j,t;

 for(i=0;i

   for(j=j+i;j

    {t=array[i][j];

      array[i][j]=array[j][i];

      array[j][i]=t;

   }

}

 

main()

{

 inti,j;

 printf("输入数组元素:

n");

 for(i=0;i

  for(j=0;j

     scanf("%d",&array[i][j];

 printf("n数组是:

n");

 for(i=0;i

 {for(j=0;j

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

  printf("n");

 }

 convert(array);

 printf("转置数组是:

n");

 for(i=0;i

 {for(j=0;j

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

  printf("n");

 }

}

 

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

#include

#include

void main()

{

 charstr[100];

 printf("输入字符串:

n");

 scanf("%s",str);

 inverse(str);

 printf("转换后的字符串是:

%sn",str);

}

 

inverse(str)

charstr[];

{

 chart;

 inti,j;

 for(i=0,j=strlen(str);i<(strlen(str)/2;i++,j--)

 {

   t=str[i];

    str[i]=str[i-1];

    str[i-1]=t;

  }

}

 

 

 

7.6写出一个函数,将两个字符串连接。

charconcatenate(string1,string2,string);

charstring1[],string2[],string[];

{

 inti,j;

 for(i=0;string1[i]!

='';i++)

    string[i]=string1[i];

 for(j=0;string2[j]!

='';j++)

   string[i+j]=string2[j];

 string[i+j]='';

}

 

#include

voidmain()

{

 chars1[100],s2[100],s[100];

 printf("n输入字符串1:

n");

 scanf("%s",s1);

 printf("输入字符串2:

n");

 scanf("%s",s2);

 concatenate(s1,s2,s);

 printf("连接后的字符串:

%sn",s);

}

 

 

7.8写一个函数,输入一个4位数字,要求输出这4个数字字符,但是两个数字间空一个空格。

#include

voidmain()

{

 charstr[80];

 printf("请输入含有四个数字的字符串:

n");

 scanf("%s",str);

 insert(str);

}

insert(str)

charstr[];

{

 inti;

 for(i=strlen(str);i>0;i--)

 {str[2*i]=str[i];

  str[2*i-1]='';

 }

 printf("n结果是:

n   %s",str);

 }

 

7.9编写一个函数,由实参传来一个字符串字母、数字、空格和其他字符的个数,在主函数中输入字符串以及输出上述的结果。

#include

intalph,digit,space,others;

voidmain()

{chartext[80];

 gets(text);

 alph=0,digit=0,space=0,others=0;

 count(text);

 printf("nalph=%d,digit=%d,space=%d,others=%dn",alph,digit,space,others);

}

count(str)

charstr[];

{inti;

 for(i=0;str[i]!

='';i++)

  if((str[i]>='a'&&str[i]<='z')||(str[i]>='A'&&str[i]<='Z'))

    alph++;

  elseif(str[i]>='0'&&str[i]<='9')

    digit++;

   elseif(strcmp(str[i],'')==0)

    space++;

   else

    others++;

}

展开阅读全文
相关资源
猜你喜欢
相关搜索
资源标签

当前位置:首页 > 工程科技 > 能源化工

copyright@ 2008-2023 冰点文库 网站版权所有

经营许可证编号:鄂ICP备19020893号-2