请懂c语言的朋友吗帮我看看这个程序呀

long f1(int p)
{
int k;
long r;
long f2(int);
k=p*p;
r=f2(k);
return r;
}
long f2(int q)
{
long c=1;
int i;
for(i=1;i<=q;i++)
c=c*i;
return c;
}
main()
{
int i;
long s=0;
for (i=2;i<=3;i++)
s=s+f1(i);
printf("\ns=%ld\n",s);
}
以下给出部分说明:

#include <stdio.h>/*应为使用到基本输出,所以最好加头文件*/
long f1(int p)
{
int k;
long r;
long f2(int); /*函数声明*/
k=p*p;
r=f2(k); /*以k为形参,调用函数f2()*/
return r; /*返回r的值给主函数*/
}
long f2(int q)
{
long c=1;
int i;
for(i=1;i<=q;i++) /*FOR循环裤念御*/
c=c*i; /*累乘*/
return c; /*返回c的值给函数f1()中的r*/
}
main()
{
int i; /*定义一个整型数i*/
long s=0; /*定义一个长整型数s,并胡岩且赋值为0*/
for (i=2;i<=3;i++) /*当i等于2和3的时候分别执行一次循环,共2次*/
s=s+f1(i); /*以i为形参,调用f1()函数,返回值和s累加*/
printf("\ns=%ld\n",s); /*输出s的高答值*/
}
少了头文件#include<stdio.h>
其他没错啊
//求形参p的平方的阶乘,
long f1(int p)
{
int k;
long r;
long f2(int); //这句话没有旅哗弊用拆族,多余
k=p*p;
r=f2(k);
return r;
}

//求芦巧形参q的阶乘
long f2(int q)
{
long c=1;
int i;
for(i=1;i<=q;i++)
c=c*i;
return c;
}
main()
{
int i;
long s=0;
for (i=2;i<=3;i++)
s=s+f1(i); //得到的值是:2的平方的阶乘 + 3的平方的阶乘
printf("\ns=%ld\n",s);
}
这是函数棚迟嵌套调用。
main()调用好和耐f1(),f1调用f2()
其中f2()表友春示对参数进行阶乘即返回q的阶乘值
f1()表示将参数p平方后调用阶乘函数。
main()中的s表示对结果的累加。
故最后得出的结果s=0+(2*2)!+(3*3)!=4!+9!=362904;
#include <stdio.h>/*应为使用到基本输出,所以最好加头文件*/
long f1(int p)
{
int k;
long r;
long f2(int); /*函激早数声明*/
k=p*p;
r=f2(k); /*以k为形参,调用函数f2()*/
return r; /*返回r的值给主函数*/
}
long f2(int q)
{
long c=1;
int i;
for(i=1;i<=q;i++) /*FOR循环*/
c=c*i; /*累乘困册*/
return c; /*返回c的值给函数f1()中的r*/
}
main()
{
int i; /*定义明尺雀一个整型数i*/
long s=0; /*定义一个长整型数s,并且赋值为0*/
for (i=2;i<=3;i++) /*当i等于2和3的时候分别执行一次循环,共2次*/
s=s+f1(i); /*以i为形参,调用f1()函数,返回值和s累加*/
printf("\ns=%ld\n",s); /*输出s的值*/
}
都说了,我就不说了