有以下程序 #include #include typedef struct { char name[9]; char sex; int score[2]; } STU; STU f (STU a) { STU b={"Zhao", ’m’, 85,

admin2020-03-15  23

问题 有以下程序
#include
#include
typedef struct { char name[9]; char sex; int score[2]; } STU;
STU f (STU a)
{ STU b={"Zhao", ’m’, 85, 90};
int i;
strcpy( a.name, b.name );
a.sex = b.sex;
for ( i=0; i<2; i++ ) a.score = b.score;
return a;
}
main()
{ STU c= { "Qian", ’f’, 95, 92 }, d;
d = f(c);
printf ("%s,%c,%d,%d, ", d.name, d.sex, d.score[0], d.score[1]);
printf ("%s,%c,%d,%d\n", c.name, c.sex, c.score[0], c.score[1]);
}
程序运行后的输出结果是( )。

选项 A、Zhao,m,85,90, Qian,f,95,92
B、Zhao,m,85,90, Zhao,m,85,90
C、Qian,f,95,92, Qian,f,95,92
D、Qian,f,95,92, Zhao,m,85,90

答案A

解析 结构体是用户自己定义的一种数据类型,使用方法和C语言中的基本数据类型一致。函数f()传递的参数为结构体变量,也是一种值传参,形参的变化不能影响到实参,所以调用函数f(c)对c中的数据没有影响。函数f()中将结构体b中成员的数据分别赋值给a,所以函数的返回值为a即{"Zhao",?m?,85,90}。
转载请注明原文地址:https://jikaoti.com/ti/CfG0FFFM
0

最新回复(0)