A-A+
有以下程序 intfun(intx[] intn) {staticintsum=0 i; f
问题详情
有以下程序 intfun(intx[],intn) {staticintsum=0,i; for(i=0;i<n;i++)sum+=x[i]; retumsum; } main() {inta[]-{1,2,3,4,5),b[]={6,7,8,9),s=0; s=fun(a,5)+fun(b,4);printf(%dn,s); }
A.50
B.45
C.60
D.55
请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:C
在函数intfun(intx[],intn)的定义中,变量sum使川rstatic修饰符,这说明了变量sum为一个静态局部变量。由于在整个程序运行期问,静态局部变量在内存中的静态存储区中占据着永久的存储单元。即使退出函数之后,下次再进入该函数时,静态局部变量继续使用原来存储单元中原来的值。函数intfun(intx[]intn)的功能是求出数组各个元素的和。所以在主函数中,调用函数Fun(a,5)后,变量sum=1+2+3+4+5=15,当再次调用Fun(b,4)后,变量sum=15+6+7+8+9=45,所以s=15+45=60。