有以下程序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);
}
執(zhí)行后的輸出結(jié)果是
A)5,5
B)5,11
C)11,11
D)11,5
正確答案:B答案 B解析 : 在子函數(shù) fun(int x,int y) 中 , 變量 m 和 i 聲明為靜態(tài)局部變量 , 所以經(jīng)過第 1 次函數(shù)的調(diào)用后,局部靜態(tài)變量 m 和 i 的值分為為 5 和 3 ,當(dāng)?shù)?1 次調(diào)用結(jié)束時(shí),其值保持不變 ,所以第 2 次調(diào)用時(shí) , m 和 i 的值分別為 5 和 3 , 也就是說在執(zhí)行 “ i+=m+1 ” 時(shí) , i 的值為 9 ,因此最終 m 的值為 11 。
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。