首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。 请在程序的下划线处
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。 请在程序的下划线处
admin
2019-09-02
56
问题
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
#include <stdio.h>
#define N 5
typedef struct student{
long sno;
char name[10];
float score[3];
}STU;
void fun(char*filename,STU n)
{FILE*fp;
/**********found**********/
fp=fopen(___1___,"rb+");
/**********found**********/
fseek(___2___,-(long)sizeof(STU),SEEK_END);
/**********found**********/
fwrite(&n, sizeof(STU), 1,___3___);
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}};
STU n={10006,"ZhaoSi",55,70,68},ss[N];
int i,j;FILE*fp;
fp=fopen("student.dat","wb");
fwrite(t,sizeof(STU),N,fp);
fclose(fp);
fp=fopen("student.dat","rb");
fread(ss,Sizeof(STU),N,fp);
fclose(fp);
printf("\nThe original data:\n\n");
for(j=0;j<N;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
);
printf("\n");
}
fun("student.dat",n);
printf("\nThe data after modifing:\n\n");
fp=fopen("student.dat","rb");
fread(ss,sizeof(STU),N,fp);
fclose(fp);
for(j=0;j<N;j++)
fprintf("\nNo:%ld Name:%-8s scores:",ss[j].sno,ss[j].name);
for(i=0;i<3; i++) printf("%6.2f",ss [j].score
);
printf("\n");
}
}
选项
答案
(1)filename (2)fp (3)fp
解析
本题中函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,本题主要考察文件的读写。
第一空:“fp=fopen(___1___,"rb+");”补充fopen的参数,fopen的调用形式是:fp=fopen(文件名,文件使用方式),因此,第一空处应填文件名“filename”。
第二空:此处是补充fseek函数的参数,fseek的调用形式是:fseek(fp,offset,position),其中,第一个参数是文件型指针,故第二空处应填文件型指针变量“fp”。
第三空:fwrite的调用形式是(buffer,size,count,fp),最后一个参数是文件型指针,故第三空处应填“fp”,将新的学生数据写在最后一个学生数据位置。
转载请注明原文地址:https://kaotiyun.com/show/sKRp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
给定程序MODI1.C中函数fun的功能是:统计字符串中各元音字母(即:A、E、I、O、U)的个数。注意:字母不分大、小写。例如:若输入:THIsisaboot,则输出应该是:1、0、2、2、0。请改正程序中的错误,使它能得出正确
结构化程序设计中,下面对goto语句使用描述正确的是
下列数据结构中,能用二分法进行查找的是
按照C语言规定的用户标识符命名规则,不能出现在标识符中的是
下列选项中不属于软件生命周期开发阶段任务的是
若有以下程序,编译时出现错误,你认为出错的是#includemain(){inta=0,b=0,c=0,d;c=(a+=b,,b+=A)/*第4行*/d=c;;/*第5行*/;/*第6行*/printf("%d,%d,%d\n",a,b
以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是
若以下选项中的变量a,b,y均已正确定义并赋值,则语法正确的switch语句是
在学生管理的关系数据库中,存取一个学生信息的数据单位是
以下程序函数f的功能是:当flag为1时,进行由小到大排序;当flag为0时,进行由大到小排序voidf(intb[],intn,intflag){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1j<
随机试题
A、thereB、hereC、whereD、careB
小儿,3岁。体温低热、食欲不振1天后,全身出现皮疹,且逐渐演变为水疱、脓疱。医生确诊为水痘,在家休养。水痘皮疹的特点是
A.AFP100μg/LC.AFP>200μg/L持续6周D.AFP>200μg/L持续8周E.AFP>500μg/L持续2周胆管细胞癌
A.托吡酯B.丙戊酸钠C.苯二氮类药物D.奥卡西平E.氨己烯酸
根据《建筑桩基技术规范》JGJ94—2008,施打大面积密集预制桩桩群时,对桩顶上涌和水平位移进行监测的数量应满足下列哪项要求?
建筑结构的竖向地震影响系的最大值可取水平地震影响系数最大值的()。
甲、乙、丙、丁四个人分别住在宾馆1211、1213、1215、1217和1219这五间相邻的客房中的四间里,而另外一间客房空着。已知甲和乙两人的客房中间隔了其他两间客房,乙和丙的客房号之和是四个人里任意二人的房号和中最大的,丁的客房与甲相邻且不与乙、丙相邻
Accordingtothepassage,whichorganizationsraisedtheproposaltostopthepracticeofliedetectionevidenceinmilitarycou
Whatistheproblemwiththewoman’swatch?
I’lljust______aneyeoverthesefiguresbeforeyoutypethem.
最新回复
(
0
)