有下列程序: fun(int x int y) {statlc int m=0 i=2; i+=m+1;m=i+X+y;return m; } main() {int j

计算机 程序 已帮助 人

有下列程序:

fun(int x,int y)

{statlc 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.5,5

B.5,11

C.11,11

D.11,5

热搜:java int类型的取值范围

答案解析

难度★★☆ 搜索
  • 正确答案:B
    解析:子函数fun(int x,int y),将变量m和i声明为局部静态变量,因此第1次调用主函数后,局部静态变量m和i的值为5和3,第1次函数调用结束时,它们的值不释放保持不变,所以第2次调用时,局部静态变量m和i的初始值分别为5和3,即在执行“i+=m=1”时,i的值为9,因此最终m的值为11。