问题
单项选择题
有以下程序:
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所指向的第2个结构体中的成员变量,这一改变,也就是改变了主函数中s[1]的成员变量,故程序输出的值为Penghua 20045 537。