选择题

有以下程序

#include
typedef struct stu
{
   char name[10];
   char gender;
   int score;
} STU;
void f(STU a, STU *b)
{
   *b=a;
   printf("%s,%c,%d,", b->name, b->gender, b->score);
}
main()
{
   STU a={"Zhao", 'm', 290}, b={"Qian", 'f', 350};
   f(a,&b);
   printf("%s,%c,%d\n", b.name, b.gender, b.score);
}

程序运行后的输出结果是(     )。

【正确答案】 A
【答案解析】

考察结构体和结构体成员的引用。 main 函数中, 首先为结构变量 a, b 初始化, 再调用函数 f, 在 f函数中, 使用结构体变量 a 对指针 b 指向的结构体进行赋值, 使得指针 b 指向的结构体成员依次赋值为结构体 a的成员, 然后依次输出指针 b 指向的结构体成员的值; 由于 f 函数形参 b 为指针, 所以指针 b 指向的值被修改为a 的同时, main 函数中的实参 b 的值也被修改成 a。 答案选择 A 选项。