单选题
有以下程序:
#include
#include
typedef strtut{char name[9];char sex;float score[2];}STU;
STU fun(STU a)
{STU b={''Tom'','m',85,90};
int i;
strcpy(a.name,b.name);
a.sex=b.sex:
for(i=0;i<2;i++)a.score[i]=b.score[i];
return a;
}
main()
{STU c={''Alex'','f',95,92},d;
d=fun(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
【答案解析】解析:注意使用typedef定义结构体时,大括号后面的标识符将成为该结构体类型的定义关键字,可以用来定义新的结构体变量。使用值传递调用函数时实参的值不会改变,所以调用后结构c的值没有发生变化,调用函数会返回一个固定的结构体内容,所以答案A正确。