选择题   有以下程序
    #include<stdio.h>
    int fun(int x, int y)
    {  static int m=0, i=2;
    i+=m+1; m=i+x+y; return m;
    }
    main()
    {int j=1, m=1, k;
    k=fun(j, m); printf('%d', k);
    k=fun(j, m); printf('%d\n', k);
    }
    执行后的输出结果是______。
 
【正确答案】 A
【答案解析】声明静态局部变量:函数调用结束后,其占用的存储单元不释放,在下次该函数调用时,该变量保留上一次函数调用结束时的值。本题子函数fun中的变量i和m均为静态局部变量。因此第一次调用fun函数,返回m的值为5,第二次再调用fun函数时,i的值为3,m的值已经是5了,所以执行i+=m+1,i的值变为9,m=i+x+y=9+1+1=11。故本题答案为A。