有以下程序: #include #include typedef struet{char name[9];char sex;float score[2];}STU; void f(STU*a) { strcpy(a

admin2020-06-16  25

问题 有以下程序:
    #include
    #include
    typedef struet{char name[9];char sex;float score[2];}STU;
    void f(STU*a)
    {  strcpy(a->name,"Zhao");
    a->sex=’m’;a->score[1]=90.0;
    }
    main()
    {  STU c={"Qian",’f’,95.0,92.0},*d=&c;
    f(d);printf("%s,%c,%2.O f,%2.O f\n",d->name,c.sex,c.score[0],c.score[1]);
    }
    程序的运行结果是(    )。

选项 A、Qian,f,95,92
B、Zhao,f,95,90
C、Zhao,m,95,90
D、Zhao,f,95,92

答案C

解析 f函数调用时,结构体数组名作为实参传给形参指针,结构体指针a指向数组c的首地址。因此,f可以对数组c中的元素赋值,故返回主函数之后,数组c中的成员值已被更新。main函数中有赋值语句"*d=&c;",指针d指向结构体数组c的首地址,故d->name=c.name,输出结果为Zhao,m,95,90。
转载请注明原文地址:https://kaotiyun.com/show/dz3p777K
0

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