问题
填空题
以下程序运行后的输出结果是 【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循环,并输出回车换行符。