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

admin2009-08-24  39

问题 有下列程序:    #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、Qian,f,95,92
B、Qian,m,85,90
C、Zhao,f,95,92
D、Zhao,m, 85,90

答案A

解析 本题考查在结构体中函数的实参和形参的传递,调用f(C)后,实参传向形参,进行f()函数功能的实现,但程序中没有返回语句,故形参不能将值传回实参,它们值的传递具有不可逆性,所与printf输出的还是c中实参的值,故选项A)正确。
转载请注明原文地址:https://jikaoti.com/ti/6bI0FFFM
0

最新回复(0)