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

admin2020-10-26  30

问题 有以下程序
#include <stdio.h>
#include <string.h>
typedef struct stu {
                      char  name[10];
                      char  gender;
                      int  score;
                    } STU;
void f(STU  *c)
{  strcpy(c->name, "Qian");
   c->gender = ’f’;
   c->score = 350;
}
main( )
{  STU a = {"Zhao", ’m’, 290}, b;
   b = a;
   f(&b);
   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,f,350     
B、Zhao,m,290,Qian,m,290
C、Zhao,m,290,Zhao,m,290
D、Zhao,m,290,Qian,m,350

答案A

解析 本题定义了一个结构变量struct stu,并且命名为STU,STU结构中包含三个数据。main函数中,首先定义两个结构体STU类型的变量a,b,并对a完成初始化,然后将a赋值给b,使得结构体a,b的值都是{"Zhao", ’m’, 290},然后调用f函数,f函数的功能是将形参结构体指针c指向的结构体赋值为{"Qian", ’f’, 350},由于形参是指针,c指向的结构体就是b,所以实参b的值被修改为{"Qian", ’f’, 350},而a的值不变,答案为A选项。
转载请注明原文地址:https://jikaoti.com/ti/oWD0FFFM
0

最新回复(0)