有以下程序#include <string.h>struct STU{ int num; float TotalScore; };void f(st
有以下程序#include <string.h>struct STU{ int num; float TotalScore; };void f(struct STU p){ struct STU s[2]={{1047,530},{1048,531}}; p.num = s[1].num; p.TotalScore = s[1].TotalScore;}main(){ struct STU s[2]={{2041,730},{2042,731}}; f(s[0]); printf("%d,%3.0f\n",s[0].num,s[0].TotalScore);}程序的運(yùn)行結(jié)果是A.1047,530 B.1048,531C.2041,730 D.2042,731
正確答案:C本題中,程序首先定義了一個結(jié)構(gòu)體,該結(jié)構(gòu)體包含一個整型和一個浮點(diǎn)型成員變量。然后定義了一個函數(shù)f,該函數(shù)無返回類型,函數(shù)的形參是已定義的結(jié)構(gòu)體變量。在該函數(shù)中,首先定義了一個結(jié)構(gòu)體數(shù)組s,并賦了初值,然后試題用結(jié)構(gòu)體數(shù)組中各對應(yīng)成員的值替代形參結(jié)構(gòu)體變量中各成員的值,這里關(guān)鍵的問題還是參數(shù)的傳遞問題,由于結(jié)構(gòu)體成員值的傳遞方式采用的是傳值傳遞,是單向傳遞,即形參值的改變不影響實(shí)參的結(jié)果。在主函數(shù)中,同樣定義了一個結(jié)構(gòu)體數(shù)組s,并賦了初值,然后調(diào)用函數(shù)f,將s[0]作為函數(shù)的參數(shù),輸出s[0]中兩成員的值
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。