问题 单项选择题

有以下程序:
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]的成员变量。

多项选择题
单项选择题