有以下程序      #include   <stdio.h>      #include   <string.h>      typedef struct {  char name[9];  char sex;  float score[2];  } S

admin2013-02-23  24

问题 有以下程序      #include   <stdio.h>      #include   <string.h>      typedef struct {  char name[9];  char sex;  float score[2];  } STU;      STU 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;         return   a;      }      main()      {   STU  c={"Qian", T, 95.0, 92.0}, d;          d=f(c);     printf("%s,%c,%2.0f,%2.0f\n", d.name, &sex, &score[O], d.score[1]);      }     程序的运行结果是

选项 A、Qian, f,95,92
B、Qian,m,85,90
C、Zhao,m,85,90
D、Zhao,f,95,92

答案C

解析 本题的f()函数中,首先定义了一个STU结构体变量b并初始化为{"Zhao",’m’,85.0,90.0},然后分别通过strcpy()库函数、赋值语句和for循环,将b中所有成员分别赋给形参a的相应成员,最后返回a。所以,无论传递给函数fun()的参数是什么,结果返回的都会是函数中定义的STU结构体b的内容{"Zhao",’m’,85.0,90.0}。故最终输出结果为:Zhao,m,85,90,应该选择C。
转载请注明原文地址:https://kaotiyun.com/show/6SPp777K
0

最新回复(0)