A-A+
有以下程序 include<stdio.h> include<string.h> typed
问题详情
有以下程序 include<stdio.h> include<string.h> typedefstruct{charname[9];charsex;intscore[2];}STU; STUfSTUa) {STUb={Zhao,m,85,90}; inti; strcpy(a.name,b.name); a.sex=b.sex; for(i=0;i<2;i++)a.score[i]-b.score[i]; returna: } main() {STUc={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,”,c.name,C.sex,C.score[0],C.score[1]); }
A.Zhao,m,85,90,Zhao,m,85,90
B.Qian,f,95,92,Qian,f,95,92
C.Zhao,m,85,90,Qian,f,95,92
D.Qian,f,95,92,Zhao,m,85,90
请帮忙给出正确答案和分析,谢谢!
参考答案
正确答案:C
在C语言中,函数实参与形参之间数据的传递是传值,也就是说在用实参调用形参时,是把实参的值拷贝一份给形参,而实参的值并不变化,仍是原来的值。所以对于本题来说,在主函数中调f(e)后,实参e的值并不会变化,仍是原值。在函数f中把局部变量b的值依次返回给变量d。