问题
填空题
以下程序运行后的输出结果是______。 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。