有下列程序: 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}

admin2012-12-03  25

问题 有下列程序:
int fun(int x[],int n)
{  static int sum=0,i;
  for(i=0;i<n;i++)  sum+=x
  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

解析 在函数int fun(int x[],int n)的定义中,变量sum为一个静态局部变量。由于在整个程序运行期间,静态局部变量在内存中的静态存储中占据着永久的存储单元。函数int fun(int x[],int n)的功能是求出数组x[]备个元素的和,所以在主函数中,调用函数fun(a.5)后,变量sum=1+2+3+4+5=15,当再次调用fun(b,4)后,变量sum=15+6+7+8+9=45,所以s=15+45=60。
转载请注明原文地址:https://kaotiyun.com/show/a0Pp777K
0

最新回复(0)