有以下程序: float f1(float n) { return n*n; } float f2(float n) { return
有以下程序: float f1(float n) { return n*n; } float f2(float n) { return 2*n; } main() {float(*p1)(float),(*p2)(float),(*t)(float),y1,y2; p1:f1; p2=f2; y1=p2(p1(2.0)); t=p1; p1=p2; p2=t; y2=p2(p1(2.0)); printf("%3.0f,%3.0f\n",y1,y2); } 程序運行后的輸出結(jié)果是 ______。
A.8, 16
B.8, 8
C.16, 16
D.4, 8
正確答案:A解析:題中“(*p1)(float)”定義了一個指向函數(shù)的指針變量p1,此函數(shù)的返回值是float類型。在main函數(shù)中,使得p1指向了函數(shù)f1,P2指向了函數(shù)綴。語句“y1=p2(p1(2.0));”先調(diào)用了p1函數(shù),將其返回值4.000000傳遞給了f2的形參n,并使其函數(shù)返回值8.000000賦值給y1。然后在main函數(shù)中交換了p1、p2指針變量的指向,使p1指向了函數(shù)侵,p2指向了函數(shù)f1,并先調(diào)用函數(shù)f2,得到返回值4.000000,使其傳遞給f1函數(shù)的形參n,并帶回返回值16.000000
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。