有以下程序:    struct STU    {char name[10];int num;float TotalScore;};    void f(struct STU  *p)    {struct STU s[2]={{"SunDan",2004

admin2009-02-15  26

问题 有以下程序:    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。
转载请注明原文地址:https://jikaoti.com/ti/L4K0FFFM
0

最新回复(0)