问答题 人员的记录由编号和出生年、月、日组成,N名人员的数据已在主函数中存入结构体数组std中,且编号唯一。函数fun的功能是:找出指定编号人员的数据,作为函数值返回,由主函数输出,若指定编号不存在,返回数据中的编号为空串。 请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。 注意:源程序存放在考生文件夹下的BLANK1.C中。不得增行或删行,也不得更改程序的结构! 给定源程序: #include #include #define N 8 typedef struct { char num[10]; int year,month,day ; }STU; /**********found**********/ ___1___ fun(STU *std, char *num) { int i; STU a={"",9999,99,99}; for (i=0; i /**********found**********/ if( strcmp(___2___,num)==0 ) /**********found**********/ return (___3___); return a; } main() { STU std[N]={ {"111111",1984,2,15},{"222222",1983,9,21},{"333333",1984,9,1}, {"444444",1983,7,15},{"555555",1984,9,28},{"666666",1983,11,15}, {"777777",1983,6,22},{"888888",1984,8,19}}; STU p; char n[10]="666666"; p=fun(std,n); if(p.num[0]==0) printf("/nNot found !/n"); else { printf("/nSucceed !/n "); printf("%s %d-%d-%d/n",p.num,p.year,p.month,p.day); } }
【正确答案】第一处:从返回值来看,是返回一个结构型的值,所以应填:STU。 第二处:判断结构变量中的编号num是否相等,所以应填:stu[i].num。 第三处:返回编号相等的记录值,所以应填:std[i]。
【答案解析】