问题
单项选择题
有以下程序:
int fun(int x[],int n)
static int sum=0,i;
for(i=0;i<n;i++)sum+=x[i];
return sum;
main()
int a[]=1,2,3,4,5,b[]=6,7,8,9,s=0;
s= fun(a,5)+fun(b,4); printf("%d\n",s);
程序执行后的输出结果是
A) 45
B) 50
C) 60
D) 55
答案
参考答案:C
解析: 内部静态变量是始终存在的,当函数被调用退出后,内部静态变量会保存数据,再次调用该函数时,以前调用时的数值仍然保留着。fun(a,5)的值是15,再次调用后sum=15,所以fun(b,4)=45,s=45+15=60。