问题
单项选择题
以下程序运行后的输出结果是 #include<stdio.h> #include<string.h> struct A { int a; char b[10]; double c; }; struct A f(struct A t); main() { struct A a={1001, "ZhangDa", 1098.0}; a=f(a); printf("%d, %s, %6.1f\n", a.a, a.b, a.c); } struct A f(struct A t) { t.a=1002; strcpy(t.b, "ChangRong"); t.c=1202.0; return t; }
A.1001, ZhangDa, 1098.0
B.1002, ZhangDa, 1202.0
C.1001, ChangRong, 1098.0
D.1002, ChangRong, 1202.0
答案
参考答案:D
解析: 函数调用f(a)将结构体变量a的值传给f函数的形参t,在函数f中改变了t的值,通过return语句返回后,在main函数中,因为a=f(a);,a也被改变,所以最后输出的是改变后的结果。