问题
单项选择题
有以下程序:
#include <stdio.h>
#include <string.h>
typedef struct 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;1<2;i++) a.score[i]=b.score[i];
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的值。