单选题
有以下程序:
#include
int fun(int n);
main()
{int a=3,s;
s=fun(a);s=s+fun(a);printf(''%d\n'',s);
}
int fun(int n)
{static int a=1:
n+=a++;
return n;
}
程序运行后的输出结果是( )。
【正确答案】
C
【答案解析】解析:静态局部变量只在第一次调用函数时初始化一次,其他调用都会保留上一次调用结束时的值。第一次调用时将fun(a)的返回值赋给s,静态局部变量初始化为1,所以n=4并返回,a自增为2:第二次调用时静态局部变量a取上一次调用结束时的值2,所以n=5并返回,a自增为3。所以s=4+5=9。