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

admin2021-06-15  38

问题 有以下程序:
#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/slz0FFFM
0

最新回复(0)