java结构体构建学生 学号_易错题: 程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。...
根據網考網考試中心的統計分析,以下試題在2015-12-7日計算機二級考試C語言習題練習中,答錯率較高,為:93%
【填空題】
程序通過定義學生結構體變量,存儲了學生的學號、姓名和3門課的成績。所有學生數據均以二進制方式輸出到student.dat文件中。函數fun的功能是從指定文件中找出指定學號的學生數據,讀入此學生數據,對該生的分數進行修改,使每門課的分數加3分,修改后重寫文件中該學生的數據,即用該學生的新數據覆蓋原數據,其他學生數據不變;若找不到,則什么都不做。
請在程序的下劃線處填入正確的內容并把下劃線刪除,使程序得出正確的結果。
注意:不得增行或刪行,也不得更改程序的結構!
#include?
#define??? N??? 5
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+");
/**********found**********/
while(!___1___)
{
fread(&n,sizeof(STU),1,fp);
/**********found**********/
if(n.sno___2___)? break;
}
if(!feof(fp))
{
for(i=0;i<3;i++)? n.score[i]+=3;
/**********found**********/
fseek(fp,1L*___3___,SEEK_CUR);
fwrite(&n, sizeof(STU), 1, fp);
}
fclose(fp);
}
main(){
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];
int I,j;? FILE *fp;
fp=fopen("student.dat","wb");
fwrite(t, sizeof(STU), N, fp);
fclose(fp);
printf("\nThe original data :\n");
fp=fopen("student.dat","rb");
fread(ss, sizeof(STU), N, fp);
fclose(fp);
for(j=0; j
{
printf("\nNo:%ld? Name:%-8sScores: ",
ss[j].sno,ss[j].name);
for(i=0;i<3;i++)
printf("%6.2f ",ss[j].score[i]);
printf("\n");
}
fun("student.dat",10003);
fp=fopen("student.dat","rb");
fread(ss,sizeof(STU),N,fp);
fclose(fp);
printf("\nThe data aftermodifying :\n");
for(j=0;j
{
printf("\nNo:%ld? Name: %-8s Scores:",
ss[j].sno,ss[j].name);
for(i=0;i<3;i++)
printf("%6.2f",ss[j].score[i]);
printf("\n");
}
}
網考網參考答案:(1)feof(fp) (2)==sno (3)sizeof(STU),答錯率:93%
試題解析:點擊查看解析
總結
以上是生活随笔為你收集整理的java结构体构建学生 学号_易错题: 程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。...的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: java大型wms架构设计_Java生鲜
- 下一篇: java自制缓冲池_java Strin