问题:
[单选] 下列程序:int fun(int x[],int n)
{ static int sum=0,i;
for(i=0;i<n;H++)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(h,4),printf(”%d\n”.s);
f
程序执行后的输出结果是( )。
A . 45
B . 50
C . 60
D . 55
参考答案:C
参考解析:
C。【解析】在函数int。fun(intx[],intn)的定义中,变量sum为一个静态局部变量。由于在整个程序运行期间,静态局部变量在内存中的静态存储中占据着永久的存储单元。函数intfun(intx口,intn)的功能是求出数组x口各个元素的和,所以在主函数中,调用函数fun(a,5)后,变量SHill一1+2+3+4+5—15,当再次调用fun(b,4)后,变量sum一15+6+7+8+9—45,所以S=15+45=60。