2、q){returnp/q;}2.输入4个整数,找出其中最大的数。用函数的嵌套调用来处理。#includeintmain(){intmax4(int,int,int,int);//对max4的函数声明inta,b,c,d;scanf("%d%d%d%d",&a,&b,&c,&d);//输入4个数printf("max=%d",max4(a,b,c,d));//调用4个数中的最大者return0;}intmax4(inta,intb,intc,intd)//定义max4函数{intmax2(int,int);//对max2的函数声明return
3、max2(max2(max2(a,b),c),d);//调用max2把作为函数值带回main函数}intmax2(inta,intb){return(a>b?a:b);//返回条件表达式的值,即a和b中的大者}3.用递归调用的方法求5!。#includeintmain(){intfac(int);intn;scanf("%d",&n);第21页共2页printf("%d!=%d",n,fac(n));return0;}intfac(intn){if(n==0
4、
5、n==1)return1;elsereturnfac(n-1)*n;}4.按以下
6、递归公式求函数的值。例如,当给n输入5时,函数值为18,(要求用递归实现)。#includeintmain(){intfun(int);intn;scanf("%d",&n);printf("%d",fun(n));return0;}intfun(intn){if(n==1)return10;elsereturnfun(n-1)+2;}5.用递归法将一个整数n转换成字符串。例如,输入483,应输出字符串“483”,n的位数不确定,可以是任意位数的整数。#includevoidmain(){voidfun(int);intn
7、;scanf("%d",&n);if(n<0){n=-n;putchar('-');}fun(n);puts("");}voidfun(intm){if(m/10)fun(m/10);putchar(m%10+48);}6.写一个函数,完成将一个数组中的值按逆序重新存放。例如,原来顺序为8,6,5,4,1改后成为1,4,5,6,8。#include#defineN5intmain(){第21页共2页voidfun(inta[]);inta[N],i;for(i=0;i8、;}voidfun(inta[N]){intt,i;for(i=0;i#defineN5#defineM10intmain(){intscore_1[N],score_2[M];inti,fun(inta[],int);for(i=0;i<5;i+
9、+)scanf("%d",&score_1[i]);for(i=0;i<10;i++)scanf("%d",&score_2[i]);printf("averageofscore_1:%d",fun(score_1,N));printf("averageofscore_2:%d",fun(score_2,M));return0;}intfun(intc[],intl){intaver=0;for(inti=0;i10、用系统提供的strcat