如果您无法下载资料,请参考说明:
1、部分资料下载需要金币,请确保您的账户上有足够的金币
2、已购买过的文档,再次下载不重复扣费
3、资料包下载后请先用软件解压,在使用对应软件打开
1.问题简介:(1)编写一个函数,求两个正整数的最大公约数和最小公倍数。(编程要求:必须使用函数的递归调用)(2)编写一个函数,从主函数得到任意一个三个数,由函数判断以这三个数为边长的三角形是否存在,如果存在输出三角形的面积(结果保留两位小数)。(3)编写一个函数,从主函数得到一个5位数,判断这个5位数是否为回文数。(4)编写一个函数,函数功能是从三个数中找到最大数。(5)有5个人坐在一起,问第五个人多少岁,他说比第四个人大2岁。问第四个人多少岁?他说比第三个人大2岁。问第三个人多少岁,他说比第二个人大2岁。问第二个人多少岁,他说比第一个人大2岁。最后问第一个人,他说是10岁。请问第五个人多大?(编程要求:必须使用函数的递归调用)(6)编写一个函数,函数功能是:将两个两位数的正整数a、b合并成一个正整数放在c中。(选作)合并的方法是:将a数的十位和个位数依次存放在c数的个位和百位上,b数的十位和个位数依次存放在c数的十位和千位上。例如:当a=45,b=12时,调用函数后,c=2514。(7)编写一个函数,函数的功能为:根据形参m计算如下公式的值。(选作)例如,若输入5,则应输出2.283334。(8)编写一个函数,函数的功能为:输出斐波那契数列:1,1,2,3,5,8,13,21,……。(编程要求:必须使用函数的递归调用)2.C语言源程序代码:(1)#include<stdio.h>intgys(intx,inty){if(x%y==0)returny;elsereturngys(y,x%y);}voidmain(){intm,n;printf("输入俩正数:");scanf("%d,%d",&m,&n);printf("%d和%d的最大公约数为%d\n",m,n,gys(m,n));printf("%d和%d的最小公倍数为%d\n",m,n,m*n/gys(m,n));}(2)#include<stdio.h>#include<math.h>voidfun(floata,floatb,floatc){floatarea,s;s=(a+b+c)/2;area=sqrt(s*(s-a)*(s-b)*(s-c));if((a+b)>c&&(a-b)<c&&(b-a)<c)printf("三角形的面积是:%.2f\n",area);elseprintf("三角形不存在");}voidmain(){floata,b,c;printf("请输入三个数:");scanf("%f,%f,%f",&a,&b,&c);fun(a,b,c);}(3)#include<stdio.h>voidfun(intn){inta,b,c,d;a=n/10000;b=(n%1000)/1000;c=(n%100)/100;d=n%10;if(a==d&&b==c)printf("%d\n",n);}voidmain(){inti,k=0;for(i=10000;i<=99999;i++){fun(i);k=k+1;if(k==10000){getchar();k=0;}}}(4#include<stdio.h>intmax(intx,inty){intz;z=x>y?x:y;return(z);}intmain(){inta,b,c,m;printf("请输入三个数:");scanf("%d,%d,%d",&a,&b,&c);m=max(a,max(b,c));printf("\nmax=%d\n",m);return(0);})(5)#include<stdio.h>intage(int);intmain(){printf("%d\n",age(5));return0;}intage(intn){intc;if(n==1)c=10;elsec=age(n-1)+2;returnc;}(6)#include<stdio.h>voidmain(){inta,b,c;printf("输入两个两位数");scanf("%d,%d",&a,&b);if(c=(b%10)*1000+(a%10)*100+(b/10)*10+(a/10))printf("%d",c);}(7)#include<stdio.h>floatsum(intm){floatt=0;inti;for(i=1;i<=m;i++)t=t+1.0/i;return(t);}main(){intn;floatk;printf("输入一个数:");scanf("%d",&n);k=sum(n);