问题
单项选择题
有以下程序:
#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; i<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的值。