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

admin2019-07-14  14

问题 若有以下程序
    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,Zhao,m,290
B、Qian,f,3 50,Qian,f,3 50
C、Zhao,in,290,Qian,f,350
D、Zhao,m,290,Zhao,f,350

答案C

解析 主函数中结构体变量定义同时赋初值。执行b=a;语句后,b的数据和a的数据相同,调用函数f(b.name),形参指针p接收实参b.name的地址,此时p和b.name指向同一个存储空间,流程转到f执行,  p指向的存储空间存放字符串"Qian",流程结束返回主函数。主函数中变量b的其他成员存放数据。因此a的数据{"Zhao",’m’,290},b的数据为{"Qian",’f’,350}。注意本题结构体STU类型变量a和b中的name成员为数组,不是指针,它具有自己的存储空间。
转载请注明原文地址:https://kaotiyun.com/show/1yRp777K
0

最新回复(0)