有以下程序 #include <stdio.h> #include <string.h> struct A { int a; char b[10]; double c;}; void f(struct A

admin2020-01-10  12

问题 有以下程序
     #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.1f\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正确。
转载请注明原文地址:https://kaotiyun.com/show/HHCp777K
0

最新回复(0)