选择题
39.
有下列程序:
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、
5,5
B、
5,11
C、
11,11
D、
11,5
【正确答案】
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。
提交答案
关闭