C语言函数复习题答案
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
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]='\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
void 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%
5==0&&i%3!=0) j=1;
return j;
}
10、/*编写函数打印以下图形,将图形中的行数作为函数的形参。在main()函数中输入行数n,调用该函数打印行数为n的图形。
(如:输入5,则打印出5行的三角形)
*
**
***
****
******/
#include
void main()
{int n;
void triangle(int n);
scanf("%d",&n);
triangle(n);
}
void triangle(int n)
{int i,j;
for(i=1;i<=n;i++)
{for(j=1;j<=i;j++)
printf("*");
printf("\n");
}
}
11、/*编写一个求1——n内的奇数和的函数,在main()函数中输入n,然后调用该函数求1——n的奇数和并输出。*/
#include
void main()
{int n,s;
int jishusum(int n);
scanf("%d",&n);
s=jishusum(n);
printf("%d",s);
}
int jishusum(int n)
{int i,j=1;
int s=0;
for(i=1;i<=n;i++)
{if(i%2!=0)
s+=i;
}
return s;
}
13、/*在main()函数中输入一个人的年龄和性别,编写一个函数根据年龄和性别判断一个人士工作还是退休,若工作,
则输出“Working!”,退休则输出“Retired!” */
#include
void main()
{int sex,age;
scanf("%d%d",&sex,&age);
if(sex==0)
if(age<=55) printf("she is woking");
else printf("she has retired");
else
if(age<=60) printf("he is woking");
else printf("he has retired");
}
14、/*编写一个函数,其功能是;检验一个输入的四位数字是否是闰年,如果是闰年则返回1,否则返回0。在主函数中从键盘输入一个
四位数XXXX,调用该函数进行判断,如果是则输出” yes”,否则输出”no”(提示:如果该四位数能被4整除但不能被100整除,
则是闰年;如果该四位数能被400整除,则是闰年)*/
#include
void main()
{int n;
int runnian(int n);
printf("输入一个年份:");
scanf("%d",&n);
if(runnian(n)==1) printf("yes");
else printf("no");
}
int runnian(int n)
{int j=0;
if(n%4==0&&n%100!=0||n%400==0) j=1;
else j=0;
return j;
}