这C语言题怎样做?

来源:百度知道 编辑:UC知道 时间:2024/05/20 17:22:55
以下程序输出结果是( )
main()
{ int x=5,n=3,s,j;
for(j=0;j<2;j++)
{ s=fun(x,n);
printf("%d",s);
}
}
fun(int a,int b)
{ static int n=0,i=2;
i=n+1
n=i+a+b;
return(n);
}

A 3 7 B 3 5 C 3 6 D 3 3

当main函数中的j=0时;
在fun函数最后 i=0+1=1;n=1+5+3=9;
当main函数中的j=1时;
在fun函数最后 i=9+1=10;n=10+5+3=18;
所以最后答案是9 和 18;

#include <stdio.h>
int fun(int a,int b)
{ static int n=0,i=2;
i=n+1;
n=i+a+b;
return(n);
}

void main()
{ int x=5,n=3,s,j;
for(j=0;j<2;j++)
{ s=fun(x,n);
printf("%d",s);
}
}
自己在机上运行一下就知道了.

如果不是D的话
应该是:9、18
第一次
在fun函数最后 i=0+1=1;n=1+5+3=9;
第二次
i=9+1=10;n=10+5+3=18;