以下程序拟读取一个学生结构体中的人名,查找其年龄并输出: #include #include #include struct stu{char name[10];int age;}; struct stu team[6]={’’zhangli’’,18,

admin2020-11-27  24

问题 以下程序拟读取一个学生结构体中的人名,查找其年龄并输出:
#include
#include
#include
struct stu{char name[10];int age;};
struct stu team[6]={’’zhangli’’,18,
’’wangtao’’,20,
’’limei’’,19,
’’zhaodong’’,18,,
’’liuxiu’’,19
},*P;
main()
{inti,flag=0;
p=(struct stu *)malloc(sizeof(struct stu));
gets(&p->name);
for(i=0;i<6;i++)  
if((strcmp(p->name,team.name)==0))
{pfintf(’’%d\n’’,team.age);
flag=1;
}
if(flag==0)printf(’’No find!\n’’);
}
程序有语法错误,出错的是(  )。

选项 A、pfintf(’’%d\n’’,team.age)
B、p=(struct stu*)malloc(sizeof(structstu))
C、if((strcmp(p->name,team.name)==0))
D、gets(&p->name);

答案D

解析 gets的参数应该是成员变量name数组的首地址,而&p一>name是首先获取数组name的首地址,然后再对首地址取地址符,所以这是错误的,正确参数应该是:gets(p一>name)。
转载请注明原文地址:https://kaotiyun.com/show/9O3p777K
0

最新回复(0)