问题
填空题
以下程序运行后的输出结果是 【16】 。 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) ); prind("\n"); }
答案
参考答案:010111212
解析:需要注意的是,函数fun()中的变量c为静态局部变量,在静态存储区内分配了存储单元,在程序整个运行期间不会释放,所以调用函数时,只赋初值一次,以后再调用函数时,c中的值为上次调用函数时的值。执行for循环,当i=0时,fun(5)=5+1+4= 10,此时c=4;当i=1时,fun(5)=5+1+5=11,此时c=5;当i=2时,fun(5)=5+1+6 =12;此时c=6:当i=3时,退出for循环,并输出回车换行符。