有以下程序: struct STU {char name[10];int num;float TotalScore;}; void f(struct S
有以下程序: struct STU {char name[10];int num;float TotalScore;}; void f(struct STU *p) {struct STU s[2]={{"SunDan",20044,550},{"Penghua",20045,537}},*q=s; ++p;++q; *p=*q; } main() {struct STU s[3]={{"YangSan",20041,703},{"LiSiGuo",20042,580}}; f(s); printf("%s%d%3.0f\n",s[1].name,s[1].num,s[1].TotalScore); } 程序運(yùn)行后的輸出結(jié)果是 ______。
A.SunDan 20044 550
B.Penghua 20045 537
C.LiSiGuo 20042 580
D.SunDan 20041 703
正確答案:B解析:本題將結(jié)構(gòu)體數(shù)組s的首地址傳遞給了結(jié)構(gòu)體指針變量p,并在函數(shù)f中改變了指針變量p所指向的第二個結(jié)構(gòu)體中的成員變量,這一改變,也就是改變了主函數(shù)中s[1]的成員變量,故程序輸出的值為Penghua 20045 537。
詞條內(nèi)容僅供參考,如果您需要解決具體問題
(尤其在法律、醫(yī)學(xué)等領(lǐng)域),建議您咨詢相關(guān)領(lǐng)域?qū)I(yè)人士。