首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。 请在程序的
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。 请在程序的
admin
2016-12-06
32
问题
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数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://jikaoti.com/ti/2Li0FFFM
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
有以下程序:main(){charp[]={’a’,’b’,’c’},q[]="abc";printf("%d%d\n",sizeof(p),sizeof(q));};程序运行后的输出结果是____
有以下程序:main(){inti=1,j=1,k=2;if((j++‖k++)&&i++)printf("%d,%d,%d\n",i,j,k);}执行后的输出结果是______。
有以下程序:voidfun(int*a,inti,intj){intt;if(i<j){t=a[i];a[i]=a[j];a[j]=t;i++
在关系数据库中,把数据表示成二维表,每一个二维表称为【】。
有以下定义:#include<stdio.h>chara[l0],*b=a;不能给a数组输入字符串的语句是______。
若整型变量a、b、c、d中的值依次为:1、4、3、2,则条件表达式a<b?a:c<d?c:d的值是______。
在调用函数时,如果实参是简单变量,它与对应形参之间的数据传递方式是______。
以下程序段中与语句k=a>b?(b>c?1:0):0;功能等价的是______。
结构化分析方法是面向()的自顶向下、逐步求精进行需求分析的方法。
随机试题
老年,男性患者,发现右侧腹股沟可复性肿物3年。8小时前,用力咳嗽后突感疝块明显增大,腹痛剧烈,伴呕吐、发热、全身不适。查体:右腹股沟及阴囊可扪及肿块,张力高,明显触痛。全腹有压痛、肌紧张。白细胞计数2×109,目前准备急诊手术治疗。该病人的临床诊断为
下列哪项可以进行预防接种
临床上主要采用的牙种植体为
建设用地是指建造建筑物、构筑物的土地,包括()。
2013年12月20日,甲公司购入一台不需要安装即可投入使用的机器设备,取得的增值税专用发票上注明的设备价款为50000元,增值税额为8500元,上述款项用银行存款支付。该生产设备采用年限平均法计提折旧,预计可使用10年,预计报废时的净残值为固定资产原价
甲、乙签订的买卖合同中订有有效的仲裁条款,后因合同履行发生纠纷,乙未声明有仲裁条款而向法院起诉,法院受理了该案。首次开庭后,甲提出应依合同中的仲裁条款解决纠纷,法院对该案没有管辖权。下列对该案的处理方式中,正确的是()。
以下不属于城市社区建设基本原则的是()。
生物污染:指对人和生物有害的微生物、寄生虫等病原体和变应原等污染水、大气、土壤和食品,影响生物产量,危害人类健康。依据上述定义,下列属于生物污染的是:
Lastweekoilpricesfinallystoppedrising.Theynowhoveraround$43abarrel,a20-yearhigh.TheaverageAmericanfamilyw
ScientistshadthoughtpeoplebeganmanipulatingfiretocreatetoolsinEuropeabout25,000yearsago.Butthenewfindssugge
最新回复
(
0
)