A-A+

有下列程序: fun (int x int y) {static int m=0 i=2;

2022-08-05 23:33:42 问答库 阅读 173 次

问题详情

有下列程序:
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=fun0,m);printf("%d,"k);
k=fun0,m);printf("%dn",k);
}
执行后的输出结果是()。
A.5,5
B.5,11
C.11,11
D.11,5

参考答案

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

考点:程序