单选题 有以下程序:
#include<stdio.h>
#include<string.h>
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[i]=b.score[i];
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
【答案解析】[解析] 本题考查的是函数调用时的参数传递问题。程序在调用函数f时,传给函数f的参数只是结构变量c在栈中的一个副本,函数f所做所有操作只是针对这个数据拷贝进行的修改,这些都不会影响变量c的值。