若有以下程序 #include #include typedef struct stu { char name[10], gender; int score; } STU; void f( char *p ) { strcpy( p, "Qian"

admin2019-05-17  31

问题 若有以下程序
#include
#include
typedef struct stu { char name[10], gender;
int score;
} STU;
void f( char *p )
{ strcpy( p, "Qian" ); }
main()
{ STU a={"Zhao", ’m’, 290}, b;
b=a;
f(b.name);
b.gender = ’f’; b.score = 350;
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,f,350
B、Zhao,m,290,Zhao,m,290
C、Qian,f,350,Qian,f,350
D、Zhao,m,290,Zhao,f,350

答案A

解析 同类型的结构体之间可以直接赋值,所以主函数中把结构体变量a中的数据整体赋值给了结构体变量b。函数f()的作用是给b.name赋值为"Qian"(注意这里结构体的第一个称为为数组而不是指针,所以a.name与b.name指向不同的内存空间),所以输出结果为选项A)。
转载请注明原文地址:https://kaotiyun.com/show/ZPRp777K
0

最新回复(0)