首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。 请在程序的下划线处
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。 请在程序的下划线处
admin
2019-09-02
29
问题
程序通过定义学生结构体变量,存储了学生的学号、姓名和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全国计算机二级
相关试题推荐
下列选项中不属于面向对象程序设计特征的是
阅读以下程序#includemain(){intcase;floatprintf;printf("请输入2个数:"):scanf("%d%f",&case,&printF);printf("%d%f\n",case,printF);}
有以下程序#includeintfun(charS[]){intn=0;while(*s<=’9’&&*s>=n’0’){n=10*n+*s-’0’;s++;)return(n);}main(){chars[10]={’
若有定义语句charc=’\101’;则变量C在内存中占
在嵌套使用if语句时,C语言规定else总是
s1和s2已正确定义并分别指向两个字符串。若要求:当s1所指串大于s2所指串时,执行语句S;则以下选项中正确的是
以下程序函数f的功能是:当flag为1时,进行由小到大排序;当flag为0时,进行由大到小排序voidf(intb[],intn,intflag){inti,j,t;for(i=0;i<n-1;i++)for(j=i+1j<
下列选项中不属于软件生命周期开发阶段任务的是
以下C语言用户标识符中,不合法的是
在软件开发中,需求分析阶段产生的主要文档是()。
随机试题
抑制突触前膜对5一HT及去甲肾上腺素的再摄取,属于三环类的抗抑郁药是()。
向阳公司的商标注册申请公告后1个月,第三人对此提出异议,商标局裁定异议成立。该公司对此规定不服,向商标评审委员会申请复审。若该异议人对复审裁定不服()。
关于期货公司执行金融期货投资者适当性制度正确的做法有()。[2015年3月真题]
某股权投资基金《风险揭示书》中有如下一项风险揭示:“本基金可能存在不能满足成立条件从而无法成立的风险。对此,基金管理人承担责任的方式为:(1)以其固有财产承担募集行为而产生的债务和费用。(2)在基金募集期限届满(确认基金无法成立)后30日内返还投资人已交纳
甲公司为一般纳税人企业,增值税税率为17%。有关的资料如下:(1)2012年7月1日,研发活动正式开始,研究阶段共发生研究费用700万元。2012年10月25日,进入开发阶段,共发生开发费用1000万元,其中满足资本化条件的支出为800万元。2013年1
()是对人影响最为深广的美育途径。
小强同学吃完中饭发现他家时钟的时针和分针刚好垂直,且时针刚过12,分针刚过3,问时针和分针再次垂直至少要过()小时。
已知曲线L:(x≥0),点O(0,0),点A(0,1),设P是L上的动点,S是直线OA与直线AP及曲线L所围成图形的面积.若P运动到点(3,4)时沿x轴正向的速度是4,求此时S关于时间t的变化率.
在成绩表中有字段“总评成绩”“平时成绩”和“期末考试”等,其中,总评成绩=平时成绩+0.7×期末考试。则进行表设计时,字段“总评成绩”的数据类型应该是()。
Oldpeoplearealwayssayingthattheyoungarenotwhattheywere.Thesamecommentis【C1】______fromgenerationtogenerationa
最新回复
(
0
)