有以下程序 #include <stdio.h> #include <string.h> typedef struct stu { char name[10]; char gender

admin2015-11-24  7

问题 有以下程序
#include <stdio.h>
#include <string.h>
typedef struct stu {
                 char  name[10];
                 char  gender;
                 int  score;
               } STU;
void f(char  *name, char  gender, int  score)
{  strcpy(name, "Qian");
   gender = ’f’;
   score = 350;
}
main()
{  STU a={"Zhao", ’m’, 290}, b;
   b=a;
   f(b.name,b.gender,b.score);
   printf("%s,%c,%d,", a.name, a.gender, a.score);
   printf("%s,%c,%d\n", b.name, b.gender, b.score);
}
程序的运行结果是

选项 A、Zhao,m,290,Qian,m,290
B、Zhao,m,290,Zhao,m,290
C、Zhao,m,290,Qian,m,350
D、Zhao,m,290,Qian,f,350

答案A

解析 程序执行过程为:将a赋给b,调用f函数,将b中name地址与gender和score的值传进函数,执行函数体,strcpy函数改变b中name值,但由于后两个成员为值传递不能改变b中gender和score值。调用函数结束后,结构体a={"Zhao", ’m’, 290},b={"Qian", ’m’, 290},A选项正确。
转载请注明原文地址:https://jikaoti.com/ti/dtkiFFFM
0

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