问题 填空题

以下程序运行后的输出结果是______。
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和fun(a)的值,由于a的值一直没被修改过,所以三次调用的都是fun(5)。第1次调用,b=0,c=3,所以返回值为5+1+4=10;第2次调用,因为c是静态局部变量,它仍然保存着上次调用结束时的值4,而b重新被创建和初始化为0,所以返回值为 5+1+5=11;同理,第3次调用返回的是12。所以,程序最终输出为:010111212。

单项选择题
选择题