有以下程序: #include int sumf(int x[],int n) { static int sum=0,i=0; for(;1<n;1++)sum+=x[i]; return sum; } void main() {int a[]={1

admin2021-04-28  24

问题 有以下程序:
#include
int sumf(int x[],int n)
{
static int sum=0,i=0;
for(;1<n;1++)sum+=x
return sum;
}   
void main()
{int a[]={1,2,3,4,5},b[]={7,8,9,10},ss=0;
ss=sumf(a,5)+sumf(b,4);
printf(’’%d\n’’,ss);
}
程序执行后的输出结果是(  )。

选项 A、15
B、30
C、45
D、60

答案B

解析 静态变量的值一直在内存中保持,所以子函数中的sum和i在下次调用的时候,其值不会被初始化,第1次调用结束sum=15,i=5;第2次调用时由于i=5,所以不会执行求和操作,只返回sum的值,此时sum=15,所以主函数中ss=15+15=30。
转载请注明原文地址:https://kaotiyun.com/show/G3tp777K
0

随机试题
最新回复(0)