问题
填空题
以下程序运行后的输出结果是______。
fun(int a)
int b=0;static int c=3;
b++;c++;
return(a+b+c);
main()
int i,a=5;
for(i=0;i<3;i++)printf("%d%d",i,fun(a));
printf("\n");
答案
参考答案:0 10 1 11 2 12
解析: 此题的考点是静态变量。函数中的局部变量每次调用都重新赋初值,而静态变量只在开始执行时赋一次初值.其值一直存在有累计效应。语句“for(i=0;i<3;i++)printf("%d%d",i,fun(a));”调用fun函数3次,虽然实参都是a值为5,但返回值不同,因为fun函数内有静态变量c,每次调用累加1,首次返回值10,以后为11、12。