问题
单项选择题
有以下程序
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()函数执行for循环语句,fun(a,5),i=O、1、2、3、4,sum=0+a[0]+a[1]+a[2]+a[3]+a[4]=15;接下来执行fun(a,5),因为sum定义为静态变量,即再次调用时sum保留上次函数调用结束时的值,所以sum=15+a[O]+a[1]+a[2]+a[3]=45;返回sum的值,主函数 s=15+45=60。