首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。 请在程序的
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。 请在程序的
admin
2016-12-06
37
问题
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
试题程序:
1 #include <stdio.h>
2 #define N 5
3 typedef struct student{
4 long sno;
5 char name[10];
6 float score[3];
7 } STU;
8 void fun(char * filename,STU n)
9 { FILE * fp;
10 /********* found*********/
11 fp=fopen(
【1】
,’’rb+’’);
12 /********* found*********/
13 fseek(
【2】
,- (long) sizeof (STU),SEEK_END);
14 /********* found*********/
15 fwrite(&n,sizeof(STU),1,
【3】
);
16 fclose(fp);
17 }
18 main()
19 {STU t[N]={ {10001,’’NaChao’’,91,92,77},{10002,’’CaoKai’’,75,60,88}, {10003,’’LiSi’’,85,70,78},{10004,’’FancjFang’’,90,82,87},{10005,’’ZhangSan’’,95,80,88}};
20 STU n={10006,’’ZhaoSi’’,55,70,68},ss[N];
21 int i,j ; FILE * fp;
22 fp=fopen(’’student.dat’’,’’wb’’);
23 fwrite(t,sizeof(STU),N,fp);
24 fclose(fp);
25 fp=fopen(’’student.dat’’,’’rb’’);
26 fread(ss,sizeof(STU),N,fp);
27 fclose(fp);
28 printf(’’\nThe origina1 data:\n\n’’);
29 for(j=0;j<N;j++)
30 {printf(’’\nNo:%1d Name:%-8s scores:’’,ss[j].sno,ss[j].name);
31 for(i=0;i<3 ; i++)
32 printf(’’%6.2f’’,ss[j].score
);
33 printf(’’\n’’);
34 }
35 fun(’’student.dat’’,n);
36 printf(’’\nThe data after modif-ing:\n\n’’);
37 fp=fopen(’’student.dat’’,’’rb’’);
38 fread(ss,sizeof(STU),N,fp);
39 fclose(fp);
40 for(j=0;j<N;j++)
41 {printf(’’\nNo:%1d Name:%-8s Scores:’’,ss[j].sno,ss[j].name);
42 for(i=0;i<3 ; i++)
43 printf(’’%6.2f’’,ss[j].score[j]);
44 printf(’’\n’’);
45 }
46 }
选项
答案
(1)filename(2)fp(3)fp
解析
填空1:本空是对文本文件的打开,filename所指的文件中的最后数据要进行重写,因此首先是要打开。因而本空填写filename。
填空2:fseek功能是重定位流上的文件指针。用法:int fseek(FILE * stream,long offset,int from-where);本空应该填写fp。
填空3:因为题目中要对所有学生数据均以二进制方式输出到文件中,因此本空填写fp。
知识点讲解:
函数名:fseek
功能:重定位流上的文件指针。
用法:int fseek(FILE * stream,long offset,int fromwhere)。
描述:函数设置文件指针stream的位置。如果执行成功,stream将指向以fromwhere为基准(从文件的哪里开始偏移)、偏移offset个字节的位置。正数表示正向偏移,负数表示负向偏移。如果执行失败(比如offset超过文件自身大小),则不改变stream指向的位置。
返回值:成功,返回0;否则返回非0值。
转载请注明原文地址:https://kaotiyun.com/show/gVDp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
以下程序的输出是【】。main(){charstr1[]=Howdoyoudo",*p=strl;strcpy(str1+strlen(str1)\2"esshe");pfinff("
有以下程序:inta=2;intf(intn){staticinta=3;intt=0;if(n%2)(staticinta=4;t+=a++;}else{statici
以下程序运行后的输出结果是______。main(){inta=1,b=2,c=3;if(c=a)printf("%d\n",c);elseprintf("%d\n",b);}
设有定义:intA,*pA=&A;,以下scanf语句中能正确为变量A读入数据的是______。
以下程序的功能是:给r输入数据后计算半径为r的圆面积s。程序在编译时出错。main()/*Beginning*/{intr;floats;scanf("%d",&r);s=*π*r*r*r;printf("
以下选项中可以作为C语言中合法整数的是______。
结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、【】和限制使用goto语句。
在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是______。
【】(黑箱或白箱)测试方法完全不考虑程序的内部结构和内部特征。
软件开发的结构化生命周期方法将软件生命周期划分成
随机试题
痰的生成与贮存与哪两脏有关
患者,女性,68岁。头痛,头晕,胸闷,查体:BP200/110mmHg,无意识障碍及肢体活动障碍,该患者最可能的诊断为()
对胃十二指肠溃疡急性大出血的非手术治疗护理,下列哪项措施不妥( )。【历年考试真题】
计算非标准设备原价可以用()方法。
案例J钢铁集团公司,成立于1960年,已形成钢铁、有色、电力能源、装备制造、生产性服务业、现代农业六大产业板块协同发展的新格局。钢铁产业具备年产粗钢1105×104t的生产能力;有色产业已形成年产电解铝170×104t、铝板带铸轧材60×104t的生产能
根据《安全生产法》的规定,生产经营单位主要负责人的安全生产职责包括()。
关于获取现金能力的有关财务指标,下列表述中正确的是()。
俗话说“勤学如春起之苗,不见其增,日有所长”,下列与该俗语反映的哲学道理相同的是()。
Cultureisthesumtotalofallthetraditions,customs,beliefandwaysoflifeofagivengroupofhumanbeings.Inthissense
在寄存器间接寻址中,若指令指定的寄存器是BX,SI,或者DI,则默认操作数存放在(46)段中。这时要用寄存器(47)的内容作为段地址。对于指令MOV BX,[SI]而言,假设数据段寄存器 DS=1000H,代码段寄存器CS=4000H,堆栈段寄存器SS=7
最新回复
(
0
)