填空实现函数的功能:程序通过定义学生结构体变量,存储了学生的学号、姓名和 3 门课的成绩。所有学生数据均以二进制方式输出到 student.dat 文件中。函数 fun 的功能是从指定文件中找出学号为 sno 的学生数据,读入此学生数据,对该生的分数进行修改,使每门课的分数加 3 分,修改后重写文件中该学生的数据,即用该学生的新数据覆盖原数据,其它学生数据不变;若找不到,则什么都不做。 typedef struct student { long sno; char name[10]; float score[3]; } STU; void fun(char *filename, long sno) { FILE *fp; STU n; int i; fp = fopen(filename, "rb+"); while (!________) { fread(&n, sizeof(STU), 1, fp); if (n.sno ______) break; } if (!feof(fp)) { for (i =0; i < 3; i++) n.score[i] += 3; fseek(fp, -1L * __________, SEEK_CUR); fwrite(&n, sizeof(STU), 1, fp); } fclose(fp); }