单选题
有以下程序
有以下程序
int fun(int x[],int n)
{static int sum=0,i;
for(i=0;ireturn 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);
}
程序执行后的输出结果是()。
}
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
解析:
易错
static int sum=0是静态变量
s=fun(a,5)+fun(b,4)=(1+2+3+4+5)+(15+6+7+8+9)=15+45=60
如果是在函数内部定义的,那么这个变量只初始化一次,即使再次调用这个函数,这个static变量也不会再次被初始化,于是,这个变量的取值就会一直保存着,也就是说,当你再次调用这个函数的时候,里面用到这个static变量时,就会发现,还是它还是上一次函数调用时的结果。
static int sum=0是静态变量
s=fun(a,5)+fun(b,4)=(1+2+3+4+5)+(15+6+7+8+9)=15+45=60
如果是在函数内部定义的,那么这个变量只初始化一次,即使再次调用这个函数,这个static变量也不会再次被初始化,于是,这个变量的取值就会一直保存着,也就是说,当你再次调用这个函数的时候,里面用到这个static变量时,就会发现,还是它还是上一次函数调用时的结果。
题目纠错
信息技术知识大赛
