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

admin2020-06-16  18

问题 有以下程序:
#include   <stdio.h>
#include   <string.h>
typedef  struct { char  name[9];  char  sex;  int  score[2];  } STU;
STU  f (STU  a)
{  STU  b={"Zhao", ’m’, 85, 90};
  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", ’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\n", c.name, c.sex, c.score[0], c.score[1]);
}
程序运行后的输出结果是(  )。

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

答案A

解析 本题考查的是函数调用时的参数传递问题。程序在调用函数f时,传给函数f的参数只是结构变量c在栈中的一个拷贝,函数f所做所有操作只是针对这个数据拷贝进行的修改,这些都不会影响变量c的值。
转载请注明原文地址:https://jikaoti.com/ti/PMG0FFFM
0

最新回复(0)