问答题 学生的记录由学号和成绩组成,N名学生的数据已在主函数中放入结构体数组s中,请编写函数fun,它的功能是:函数返回指定学号的学生数据,指定的学号在主函数中输入。若没找到指定学号,在结构体变量中给学号置空串,给成绩置-1,作为函数值返回。(用于字符串比较的函数是strcmp)。 注意:部分源程序在文件PROG1.C中。 请勿改动主函数main和其他函数中的任何内容,仅在函数fun的花括号中填入你编写的若干语句。 #include #include #define N 16 typedef struct { char num[10] ; int s; } STREC; STREC fun(STREC *a, char *b) { } main () {STREC s[N]={{"GA005",85}, {"GA003",76}, {"GA002",69}, {"GA004",85},{"GA001",91}, {"GA007",72},{"GA008",64}, {"GA006",87},{"GA015",85}, {"GA013",91},{"GA012", 64}, {"GA014",91},{"GA011",77}, {"GA017",64}, {"GA018",64}, {"GA016",72}}; STREC h; char m[10]; int i;FILE *out ; printf("The original data:/n"); for(i=0; i
【正确答案】正确答案:STREC c; int i; c.num[0]='\0';/*置初始空串*/ c.s=一1; /*置成绩为一1*/ for(i=0; i<N; i++) if(strcmp(a[i].num,b)==0) {/*判断学号是否相等*/ strcpy(c.num, a[i].num); /*相等,则对学号进行赋值*/ c.s=a[i].s;/* 相等,则对成 绩进行赋值*/ break; /* 退出循环体 */ } return c;/* 返回结构体变量 */
【答案解析】解析:该程序功能是函数返回指定学号的学生数据,指定的学号在主函数中输入。解题思路是在循环过程中,使用if判断表达式,将输入的学号与所有的学号进行比较,如果找到该学号,将其赋值到指定变量,否则将空格赋值到指定变量,表明没有查找到该学号。