单选题 有以下程序: #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。