单选题
有以下程序:
#include <stdio.h>
int fun()
{
static int x=1;
X+ =1;
return x;
}
main( )
{
int i, s=1;
for(i=1;i<=5;i+ +) s+ =fun();
printf("%d/n",s);
}
程序运行后的输出结果是______。
【正确答案】
D
【答案解析】[解析] fun函数中的变量x为静态局部变量,占用固定的内存单元,下一次调用时仍可以保留上次调用时的值。也就是说,如果多次调用fun函数,x的定义只在第一个调用时有效,从第二次调用开始,x的定义相当于不存在,直接使用上次x的值。fun函数被调用了5次,每次调用后的返回值累加并赋予s。5次调用后,x的值为6,s的值为21。因此D选项正确。