单选题 有以下程序:
#include<stdio.h>
#include<string.h>
struct A
{
int a;
char b[10];
double c;
};
void f(struct A t);
main()
{
struct A a={1001,"ZhangDa",1098.0};
f(a);
printf("%d,%s,%6.lf/n",a.a,a.b,a.c);
}
void f(struct A t)
{
t.a=1002;
strcpy(t.b,"ChangRong");
t.c=1202.0;
}
程序运行后的输出结果是______。
  • A.1002,ZhangDa,1202.0
  • B.1002,ChangRong,1202.0
  • C.1001,ChangRong,1098.0
  • D.1001,ZhangDa,1098.0
【正确答案】 D
【答案解析】[解析] 本题考查结构体的相关操作以及传值、传址的区别,该题中调用f函数后,会生成参数a的一个副本,而不会改变a的值,所以a值维持原值,选项D正确。