有以下程序 #include <stdio.h> #include <string.h> typedef stmct{ char name[9];char sex;float score[2];}STU; void f(STU a)

admin2010-09-05  47

问题 有以下程序
   #include <stdio.h>
   #include <string.h>
   typedef stmct{ char 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=b.score;
   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时,传给函数f的参数只是结构变量c在栈中的一个副本,函数f的所有操作只是针对这个数据副本进行的修改,这些都不会影响变量c的值。
转载请注明原文地址:https://jikaoti.com/ti/YPI0FFFM
0

最新回复(0)