以下程序的输出结果是( )。 int fun(int x[],int n) main() {static int sum=0,i; {int a[]={1,2,3,4,5},b[]={6,7,8,9},s=0; for(

admin2017-10-24  23

问题 以下程序的输出结果是(  )。
int fun(int x[],int n)         main()
{static int sum=0,i;          {int a[]={1,2,3,4,5},b[]={6,7,8,9},s=0;
for(i=0;i<n;i++)sum+=x;  s=fun(a,5)+fun(b,4);printf(’’%d\n”,S);
return sum;}                   }

选项 A、50
B、55
C、60
D、65

答案C

解析 在本题函数定义中,变量sum使用了static修饰符,这说明了变量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/xIxp777K
0

最新回复(0)