问题 单项选择题

有以下程序: #include<stdio.h> #include<string.h> typedef struct{char name[9];char sex;float score[2];}STU; STU 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[i]=b.score[i]; return a; } main() {STU c={"Qian",’f’,95.0,92.0},d; d=f(c);printf("%s,%c,%2.0f%2.0f\n",d.name,d.sex,d.score[0],d.score[1]); } 程序的运行结果是______。

A.Qian,f,95,92

B.Qian,85,90

C.Zhao,m,85,90

D.Zhao,f,95,92

答案

参考答案:C

解析: 本题考查的重点是对向函数传递结构体的理解。用结构体做函数的参数时,是按传值规则把全部结构传给函数,因此,函数内对结构内容的修改不影响原结构,即退出函数时,原结构内容不变。本题中,d中的值应为b中的值,所以选项C是正确的。

填空题
单项选择题