【填空题】
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到stuDEnt.DAt文件中。函数Fun的功能是从指定文件中找出指定学号的学生数据,读入此学生数据,对该生的分数进行修改,使每门课的分数加3分,修改后重写文件中该学生的数据,即用该学生的新数据覆盖原数据,其他学生数据不变;若找不到,则什么都不做。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
#inCluDE&nBsp; <stDio.h>
#DEFinE&nBsp;&nBsp;&nBsp; n&nBsp;&nBsp;&nBsp; 5
typEDEF struCt stuDEnt
{long sno;
&nBsp;ChAr nAmE[10];
&nBsp;FloAt sCorE[3];
}stu;
voiD Fun(ChAr *FilEnAmE, long sno)
{
&nBsp; FilE *Fp;
&nBsp; stu n;&nBsp; int i;
&nBsp; Fp=FopEn(FilEnAmE,"rB+");
/**********FounD**********/
&nBsp; whilE(!___1___)
&nBsp; {
&nBsp;&nBsp;&nBsp; FrEAD(&Amp;n,sizEoF(stu),1,Fp);
/**********FounD**********/
&nBsp;&nBsp;&nBsp; iF(n.sno___2___)&nBsp; BrEAk;
&nBsp; }
&nBsp; iF(!FEoF(Fp))
&nBsp; {
&nBsp;&nBsp;&nBsp; For(i=0;i<3;i++)&nBsp; n.sCorE[i]+=3;
/**********FounD**********/
&nBsp;&nBsp;&nBsp; FsEEk(Fp,1l*___3___,sEEk_Cur);
&nBsp;&nBsp;&nBsp; FwritE(&Amp;n, sizEoF(stu), 1, Fp);
&nBsp; }
&nBsp; FClosE(Fp);
}
mAin()
{
&nBsp; stu t[n]={{10001,"mAChAo",91,92,77},{10002,"CAokAi",75,60,88},{10003,"lisi",85,70,78},{10004,"FAngFAng",90,82,87},{10005,"zhAngsAn",95,80,88}},ss[n];
&nBsp; int i,j;&nBsp; FilE *Fp;
&nBsp; Fp=FopEn("stuDEnt.DAt","wB");
&nBsp; FwritE(t, sizEoF(stu), n, Fp);
&nBsp; FClosE(Fp);
&nBsp; printF("\nthE originAl DAtA :\n");
&nBsp; Fp=FopEn("stuDEnt.DAt","rB");
&nBsp; FrEAD(ss, sizEoF(stu), n, Fp);
&nBsp; FClosE(Fp);
&nBsp; For(j=0; j<n; j++)
&nBsp; {
&nBsp;&nBsp;&nBsp; printF("\nno:%lD&nBsp; nAmE:%-8ssCorEs: ",
&nBsp;&nBsp;&nBsp;&nBsp;&nBsp;&nBsp;&nBsp;&nBsp;&nBsp;&nBsp; ss[j].sno,ss[j].nAmE);
&nBsp;&nBsp;&nBsp; For(i=0;i<3;i++)
&nBsp;&nBsp;&nBsp;&nBsp;&nBsp; printF("%6.2F ",ss[j].sCorE[i]);
&nBsp;&nBsp;&nBsp; printF("\n");
&nBsp; }
&nBsp; Fun("stuDEnt.DAt",10003);
&nBsp; Fp=FopEn("stuDEnt.DAt","rB");
&nBsp; FrEAD(ss,sizEoF(stu),n,Fp);
&nBsp; FClosE(Fp);
&nBsp; printF("\nthE DAtA AFtErmoDiFying :\n");
&nBsp; For(j=0;j<n;j++)
&nBsp; {
&nBsp;&nBsp;&nBsp; printF("\nno:%lD&nBsp; nAmE: %-8s sCorEs:",
&nBsp;&nBsp;&nBsp;&nBsp;&nBsp;&nBsp;&nBsp;&nBsp;&nBsp;&nBsp; ss[j].sno,ss[j].nAmE);
&nBsp;&nBsp;&nBsp; For(i=0;i<3;i++)
&nBsp;&nBsp;&nBsp;&nBsp;&nBsp; printF("%6.2F",ss[j].sCorE[i]);
&nBsp;&nBsp;&nBsp; printF("\n");
&nBsp; }
} &nBsp;
查看答案解析
参考答案:
正在加载...
答案解析
正在加载...
根据网考网移动考试中心的统计,该试题:
0%的考友选择了A选项
0%的考友选择了B选项
0%的考友选择了C选项
0%的考友选择了D选项