有下列程序:
#include<stdio.h>
#include"string.h"
typedestructchar name[9];char sex;float score[2];STU;
void f(STU a)
STU b="Zhao",'m',85.0,90.0;int i;
strcpy(a.name,b.name);
a.sex=b.sex:
for(i=0;i<2;i++)a.score[i]=b.score[i];
void main()
STU c="Qian",'f',95.0,92.0);
f(c);
printf("%s,%c,%2.0f,%2.0f\n",c.name,c.sex,c.score[0],c.score[1]);
程序的运行结果是( )。
A) Qian,f,95,92
B) Qian,m,85,90
C) Zhao,f,95,92
D) Zhao,m,85,90
参考答案:A
解析: 本题考查在结构体中函数的调用,主函数调用f(c)后,实参传向形参,但程序中没有返回语句,故形参不能将值传回实参,实参之间值的传递具有不可逆性,所以printf输出的还是c中实参的值。