问题 单项选择题

有以下程序:struct STU{ charname[10];intnum;floatTotalScore; };void f(struct STU*p){ struct STUs[2]={{"SunDan",20044,550},{"Penghua",20045,537}},*q=s;++p;++q;*p=*q;}main(){ struct STUs[3]={ {"YangSan",20041,703},{"LiSiGuo",20042,580}};f(s);printf("%s%d%3.0f\n",s[1].name, s[1].num,s[1].TotalScore);}程序运行后的输出结果是______。

A.SunDan 20044 550

B.Penghua 20045 537

C.LiSiGuo 20042 580

D.SunDan 20041 703

答案

参考答案:B

解析:本题将结构体数组 s 的首地址传递给了结构体指针变量 p,并在函数 f 中改变了指针变量 p 所指向的 第二个结构体中的成员变量,这一改变,也就是改变了主函数中 s[1]的成员变量,故程序输出的值为 Penghua 20045 537。

单项选择题
问答题 简答题