有以下程序fun(int x, int y){ static int m=0, i=2;i+=m+1; m=i+x+y; return m;}main(){ i
有以下程序
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答案 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 。
词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。