有以下程序: struct STU {char name[10];int num;float TotalScore;}; void f(struct S

12 查阅

有以下程序: 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); } 程序运行后的输出结果是 ______。

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。

计算机二级