问题 单项选择题

以下程序运行后的输出结果是 #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也被改变,所以最后输出的是改变后的结果。

单项选择题
多项选择题