单选题
有下列程序:
#include<Stdio.h>
int f(int n);
main()
{ int a=3,s;
s=f(A) ;s=s+f(A) ;printf("%d/n",s);
}
int f(int n)
{ static int a=1;
n+=a++;
return n;
}
程序运行后的输出结果是( )。
【正确答案】
C
【答案解析】[解析] f函数中static int a=1;的a是静态局部变量,不像自动变量那样,当调用时就存在,退出函数时就消失。静态局部变量始终存在着,也就是说它的生存期为整个源程序。s=f(a);,n+=a++;返回n=4,s=f(a);的s值为4,然后执行s=s+f(a);f(a)返回5,即s=s+f(a);执行后s=9。