有以下程序 #include #include typedef struct stu { char name[10]; char gender; int score; } STU; void f(char *name, char gender, int score) { strcpy(name, "Qian"); gender = 'f'; score = 350; } main() { STU a={"Zhao", 'm', 290}, b; b=a; f(b.name,b.gender,b.score); printf("%s,%c,%d,", a.name, a.gender, a.score); printf("%s,%c,%d\n", b.name, b.gender, b.score); } 程序的运行结果是

🔥 728 热度
A Zhao,m,290,Qian,m,290
B Zhao,m,290,Zhao,m,290
C Zhao,m,290,Qian,m,350
D Zhao,m,290,Qian,f,350
参考答案
A
解析
【解析】程序执行过程为:将a赋给b,调用f函数,将b中name地址与gender和score的值传进函数,执行函数体,strcpy函数改变b中name值,但由于后两个成员为值传递不能改变b中gender和score值。调用函数结束后,结构体a={"Zhao", 'm', 290},b={"Qian", 'm', 290},A选项正确。