有以下程序 #include <stdio.h> #include <string.h> typedef struct { char name[9]; char sex; float score[2]; } STU; void f(STU A)

admin2020-06-16  36

问题 有以下程序
#include <stdio.h>
#include <string.h>
typedef  struct {  char name[9];  char sex;  float score[2];  } STU;
void  f(STU A)
{  
    STU   b={"Zhao", ’m’, 85.0, 90.0};      
    int   i;
    strcpy(a.name, b.name);
    a.sex = b.sex;
    for (i=0; i<2; i++)  
        a.score = b.score;
}
main()
{
    STU   c={"Qian", ’f’, 95.0, 92.0};
    f(c);   
    printf("%s,%c,%2.0f,%2.0f\n", c.name, c.sex, c.score[0], c.score[1]);
}
程序的运行结果是

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

答案D

解析 本题考查结构体的相关操作以及传值、传址的区别,该题中调用f函数后,会生成参数c的一个副本,而不会改变c的值,所以c值维持原值,选项D正确。
转载请注明原文地址:https://jikaoti.com/ti/PsG0FFFM
0

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