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

admin2019-01-11  26

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

答案A

解析 本题定义了一个结构变量struct stu,并且命名为STU,STU结构中包含3个数据。main()函数中,首先定义两个结构体STU类型的变量a,b,并对a完成初始化,然后将a赋值给b,使得结构体a,b的值都是{"Zhao",’m’,290},再调用f()函数。f()函数的功能是将形参结构体指针c指向的结构体赋值为{"Qian",’f’,350},由于形参是指针,c指向的结构体就是b,所以实参b的值被修改为{"Qian",’f’,350},而a的值不变,故答案为A选项。
转载请注明原文地址:https://kaotiyun.com/show/JZxp777K
0

最新回复(0)