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

admin2019-01-11  19

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

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

答案D

解析 本题定义了一个结构变量struct stu,并且命名为STU,STU结构中包含3个数据。main函数中,首先为结构变量a,b初始化,再调用函数f(),在f()函数中,使用结构体变量a对指针b指向的结构体进行赋值,使得指针b指向的结构体成员依次赋值为结构体a的成员,然后依次输出指针b指向的结构体成员的值;由于f函数形参b为指针,所以指针b指向的值被修改为a的同时,main函数中的实参b的值也被修改成a,答案为D选项(注:形参指针b与实参结构体变量b不要混淆)。
转载请注明原文地址:https://kaotiyun.com/show/VOxp777K
0

相关试题推荐
最新回复(0)