有以下程序 #include #include struct A { int a; char b[10]; double c; }; struct A f(struct A t); main() { struct A a={1001,"Zhang

admin2015-07-28  33

问题 有以下程序
#include
#include
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、1002,ChangRong,1202.0
B、1002,ZhangDa,1202.0
C、1001,ChangRong,1098.0
D、1001,ZhangDa,1098.0

答案A

解析 该段程序先定义了一个结构体A,同时定义了一个返回值类型为该结构体类型的函数。函数f()的作用是对结构体t做相应修改后返回。虽然该函数属于值传递,形参的变化不会影响到实参,但是返回值又被赋值给了结构体变量a(见语句"a=f(a);"),所以输出的为改变后的值,答案选A。
转载请注明原文地址:https://kaotiyun.com/show/17Jp777K
0

最新回复(0)