C语言函数复习题答案
1、/*编写程序,求AB(A的B次幂)。要求:实现求AB的功能用函数实现,在主函数中实现数据A、B的输入和结果的输出。其中B为正整数,A为任意实数。*/
#include "stdio.h"
void main ()
{ long cm(int x,int y);
int A;int B;int i=1;long s=1;
printf("分别输入底数和幂数:");
scanf("%d %d",&A,&B);
if(i<=B)
s=cm(A,B);
printf("s=%d\n",s);
}
long cm(int x,int y)
{ long s=1;
int i;
for (i=1;i<=y;i++) s=s*x;
return s;
}
4、/*编写函数,实现将两个字符串连接(不使用库函数strcat) */
#include "stdio.h"
#include "stdio.h"
void main()
{char a[20],b[20];
void cat(char a[],char b[]);
gets(a);gets(b);
cat (a,b);
puts (a);
}
void cat(char a[],char b[])
{int aa,bb,i,j;
aa=strlen(a),bb=strlen(b);
for (i=aa,j=0;j
a[i]=b[j];
a[i]='\0';
}
6、/*编写一个函数,将三个数按由小到大的顺序排列并输出。在main函数中输入三个数,调用该函数完成这三个数的排序。*/
#include
void main()
{int a, b, c;
void paixu(int a,int b,int c);
printf("输入三个数:");
scanf("%d%d%d",&a,&b,&c);
paixu(a,b,c);
}
void paixu(int a,int b,int c)
{int flag;
if(a>b)
{ flag=a;
a=b;
b=flag;
}
if(a>c)
{ flag=a;
a=c;
c=flag;
}
if(b>c)
{ flag=b;
b=c;
c=flag;
}
printf("%d,%d,%d",a,b,c);
}
7、/*编写一个函数,该函数的功能是判断一个整数是不是素数,在main函数中输入一个整数,调用该函数,
判断该数是不是素数,若是则输出“yes”,否则输出“no” */
#include "stdio.h"
main()
{int sushu(int a);
int a;
printf("输入一个整数:");
scanf("%d",&a);
if(sushu(a)) printf("是素数");
else printf("不是素数");
}
int sushu(int a)
{ int i;int j=1;
for(i=2;i<=a-1;i++)
if(a%i==0) j=0;
return j;
}
8、/*写一个函数,判断某一个四位数是不是玫瑰花数(所谓玫瑰花数即该四位数各位数字的四次方和恰好等于该数本身,
如:1634=14+64+34+44)。在主函数中从键盘任意输入一个四位数,调用该函数,判断该数是否为玫瑰花数,若是则
输出“yes”,否则输出“no”。*/
#include
main()
{void rose(int n);
int i;
scanf("%d",&i);
for(i=1000;i<=9999;i++)
if(rose(i)) printf("yes");
else printf("no");
}
void rose(int n)
{int g,s,b,q;
g=n%10;
s=n/10%10;
b=n/100%10;
q=n/1000;
if(g*g*g*g+s*s*s*s+b*b*b*b+q*q*q*q==n)
printf("%d\t",n);
}
9、/*编写一个函数,函数的功能是求出所有在正整数M和N之间能被5整除、但不能被3整除的数并输出,其中M<N。
在主函数中调用该函数求出100至200之间,能被5整除、但不能被3整除的数。*/
#include
v
oid main()
{int xyz(int i);
int i;
for (i=100;i<=200;i++)
if(xyz(i))
printf("%d\n",i);
}
int xyz(int i)
{int j=0;
if(i%