有以下程序: #define f(x)(x*x) main() { int i1,i2; il=f(8)/f(4); i2=f(4+4
有以下程序: #define f(x)(x*x) main() { int i1,i2; il=f(8)/f(4); i2=f(4+4)/f(2+2); printf("%d,%d\n",i1,i2); } 程序運行后的輸出結果是 ______。
A.64,28
B.4,4
C.4,3
D.64,64
正確答案:C解析:對帶參數(shù)的宏的展開只是將語句中宏名后面括號內(nèi)的實參字符串代替#define命令行中的形參。本題中“il=f(8)/f(4)”用“#define f(x) (x*x)”代替得il=(8*8)/(4*4),結果為4: “i2=f(4+4)/f(2+2)”用“#define f(x) (x*x)”代替得i2= (4+4*4+4)/(2+2*2+2),求得結果為3。故本題輸出的值為4,3。
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學等領域),建議您咨詢相關領域?qū)I(yè)人士。