若有以下程序 #include typedef struct stu { char name[10], gender; int score; } STU; void f(STU a, STU b) { b = a; printf( "%s,%c,%d,

admin2015-07-28  15

问题 若有以下程序
#include
typedef struct stu {
char name[10], 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、Zhao,m,290,Qian,f,350
B、Zhao,m,290,Zhao,m,290
C、Qian,f,350,Qian,f,350
D、Zhao,m,290,Zhao,f,350

答案A

解析 同类型的结构体之间可以直接赋值,所以函数f()中把结构体变量a中的数据整体赋值给了结构体变量b,所以第一次输出结果为Zhao,m,290,。函数f()传递的参数为结构体变量,也是一种值传参,形参的变化不能影响到实参,所以主函数中调用函数f(a,b)对b中的数据没有影响,所以第二次的输出结果为Qian,f,350,答案选A。
转载请注明原文地址:https://kaotiyun.com/show/PKJp777K
0

最新回复(0)