有以下程序 #include <string.h> struct STU { int hum; float TotalScore; }; void f(struct STU p)

admin2009-01-15  25

问题 有以下程序     #include  <string.h>     struct STU    {         int hum;         float TotalScore;    };     void f(struct STU  p)    {        struct STU s[2]={{20044,550},{20045,537}};        p.num=s [1].num;       p.TotalScore-s[1].TotalScore;    }   main()    {      struct STU  s[2]-{{20041,703},{20042,580}};      f(s[0]);      printf("%d  %3.0f\n",s[0].num,s[0].TotalScore);    }       程序运行后的输出结果是

选项 A、20045 537
B、20044550
C、20042580
D、20041 703

答案8

解析 把结构体变量作为一个参数传递给函数时,传递的是实参结构体变量的值,系统将为结构体类型的形参开辟相应的存储单元,并将实参中各成员的值赋给对应的形参成员。因此,改变形参变量的内容不会影响实参,即传值调用。所以本题的函数f()没有对传递的结构体s[0]作任何改动,结果还是20041 703。应该选择D。
转载请注明原文地址:https://kaotiyun.com/show/qOHp777K
0

相关试题推荐
最新回复(0)