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

admin2020-06-16  20

问题 有以下程序:
    #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://kaotiyun.com/show/SYCp777K
0

最新回复(0)