有以下程序: #include #include typedef strtut{char name[9];char sex;float score[2];}STU; STU fun(STU a) {STU b={’’Tom’’,’m’,85,90}; in

admin2020-07-28  26

问题 有以下程序:
#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=b.score
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、Tom,m,85,90,Alex,f,95,92
B、Tom,m,85,90,Tom,m,85,90
C、Qian,f,95,92,Alex,f,95,92
D、Alex,f,95,92,Tom,m,85,90

答案A

解析 注意使用typedef定义结构体时,大括号后面的标识符将成为该结构体类型的定义关键字,可以用来定义新的结构体变量。使用值传递调用函数时实参的值不会改变,所以调用后结构c的值没有发生变化,调用函数会返回一个固定的结构体内容,所以答案A正确。
转载请注明原文地址:https://jikaoti.com/ti/oND0FFFM
0

最新回复(0)