好哥哥好姐姐,能帮我看看这个题嘛

列程序执行后输出的结果是(). int f(int a) { int b=0; static int c=3; a=c++,b++; return(a); } int main(viod) { int a=2,i,k; for(i=0;i<2;i++) k=f(a++); printf("%d\n",k); return 0; }

注释说明如下,供参考:

#include<stdio.h>

int f(int a)
{
    int b=0;
    static int c=3;//c是静态变量,每次函数调用时,c的值会保留
    a=c++,b++; //这里每次函数被调用时,a被重新赋值
    return(a); //返回a的值,就是上面a=c的值
}
int main(viod)
{
    int a=2,i,k;
    for(i=0;i<2;i++)
        k=f(0);   //这里即使把a改成整数0,循环结束后返回的仍然 k=4
    printf("%d\n",k);
    
    return 0;
}

 

最后输出:k=4.