有以下程序 #include #include typedef struct stu { char name[10]; char gender; int score; } STU; void f(char *name, char gender, in

admin2020-07-28  33

问题 有以下程序
#include
#include
typedef struct stu {
char name[10];
char gender;
int score;
} STU;
void f(char *name, char gender, int score)
{ strcpy(name, "Qian");
gender = ’f’;
score = 350;
}
main()
{ STU a={"Zhao", ’m’, 290}, b;
b=a;
f(b.name,b.gender,b.score);
printf("%s,%c,%d,", a.name, a.gender, a.score);
printf("%s,%c,%d\n", b.name, b.gender, b.score);
}
程序的运行结果是( )。

选项 A、Zhao,m,290,Qian,m,290
B、Zhao,m,290,Zhao,m,290
C、Zhao,m,290,Qian,m,350
D、Zhao,m,290,Qian,f,350

答案A

解析 结构体成员变量作为函数参数,第一个参数为地址传参,第二个和第三个参数为值传参,地址传参中形参指针指向内容的改变能够改变实参指针指向内容的改变,而值传递过程中,形参的改变不能够影响到实参,所以调用函数语句"f(b.name,b.gender,b.score);"之后,b中的数据为{"Qian",?m?,290}。
转载请注明原文地址:https://jikaoti.com/ti/QrD0FFFM
0

最新回复(0)