首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。 请在程序的下划线处
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。 请在程序的下划线处
admin
2019-09-02
26
问题
程序通过定义学生结构体变量,存储了学生的学号、姓名和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。请改正程序中的错误,使它能得出正确
对下列二叉树进行前序遍历的结果是
以下叙述中正确的是
以下选项中,能用作用户标识符的是
我们所写的每条C语句,经过编译最终都将转换成二进制的机器指令。关于转换以下说法错误的是
有以下程序#inchdeintfuna(inta,intb){returna+b;)intfunb(inta,intb){returna-b;}intsss(int(*t)(),intx,inty){retur
以下函数按每行8个输出数组中的数据:voidfun(int*w,intn){inti;for(i=0;i<n;i++){______________printf("%d",w[i]);}printf
在嵌套使用if语句时,C语言规定else总是
在学生管理的关系数据库中,存取一个学生信息的数据单位是
在软件开发中,需求分析阶段产生的主要文档是()。
随机试题
卧式测长仪的万能工作台具有哪五种运动?
女,66岁。快步行走时右下肢疼痛,休息数分钟后缓解。其父亲52岁时被确诊为急性心肌梗死。BP170/106mmHg,血清总胆固醇6.0mmol/L,两次空腹血糖>9.0mmol/L,右足背动脉搏动未触及。该患者高血压诊断的分级与危险度分层是
100倍散是指
根据《中华人民共和国药品管理法》,下列对违法行为的处罚错误的是
法国公司与中国外贸公司在履行涉外经济合同时发生纠纷,法国公司依据仲裁协议在我国申请仲裁,要求支付货款;中国公司反请求其产品质量不合格。并请求其支付违约金并赔偿损失。双方约定由1名仲裁员独任审理此案,以不公开的方式审理了此案。根据上述案情,关于本案的表述哪些
质点以匀速度15m/s绕直径为10m的圆周运动,则其法向加速度为()。
以下关于贷款购车的说法,不正确的是( )。
设f(x)具有连续导数,且F(x)=(x2-t2)f’(t)dt,若当x→0时F’(x)与x2为等价无穷小,则f’(0)=_______.
下列关于数据库设计的叙述中,正确的是
Themanismakingthecallbecausethecellphone
最新回复
(
0
)