以下程序的输出结果是( )。 #nclude #include typedef struct{char name[9];char sex;int score[2];}STU; STU fun(STU a) {STU b={’’Tom’’,’m’,85,9

admin2017-10-24  19

问题 以下程序的输出结果是(  )。
#nclude
#include
typedef struct{char name[9];char sex;int 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=O;i<2;i++)A→score=B→score
return a;}
main()
{STU c={’’Lily’’,’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,’’,c→name,c→sex,c→score[0],c→score[1]);
}

选项 A、Tom,m,85,90,Tom,m,85,90
B、Lily,f,95,92,Lily,f,95,92
C、Tom,m,85,90,Lily,f,95,92
D、Lily,f,95,92,Tom,m,85,90

答案C

解析 在C语言的非指针调用函数中,函数实参与形参之间数据的传递是传值,也就是说在用实参调用形参时,是把实参的值拷贝一份给形参,而实参的值并不变化,仍是原来的值。所以对于本题来说,在主函数中调fun(c)后,实参c的值并不会变化,仍是原值。在函数f中把局部变量b的值依次返回给变量d。
转载请注明原文地址:https://kaotiyun.com/show/obxp777K
0

最新回复(0)