填空题
以下程序运行后的输出结果是{{U}} 【16】 {{/U}}。
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");
}
【正确答案】
1、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循环,并输出回车换行符。