c语言阶乘问题求指导

这是一段程序,填空类型的,求的是0-n的阶乘之和,但是我不是很明白这三个s等于什么,第一个和第三个不明白,第二个我感觉是写s=s*i;不确定对不对,请求帮忙解答一下

#include 
long f(int n){
    int i;long s;
    s=__;
    for(i=1;i<=n;i++)
    s=__;
    printf("i=%d;s=%d\n",i,s);
    return s;
}
void main(){
    long s;int k,n;
    scanf("%d",&n);
s=__;
    for(k=0;k<=n;k++)
    s=s+f(k);
    printf("%d\n",s);
}

第一个s=1,初始化。因为后面要累乘,所以初始为1,如果为0的话,乘以任何数都是0了
第二个s=s*i,连续相乘
第三个s=0,因为是记录阶乘的累加和,初始必须是0