万能百科  > 所属分类  > 

有以下程序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 。

词条内容仅供参考,如果您需要解决具体问题
(尤其在法律、医学等领域),建议您咨询相关领域专业人士。

标签