首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。 请在程序的
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。 请在程序的
admin
2016-12-06
80
问题
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数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://www.kaotiyun.com/show/gVDp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
对于长度为n的顺序存储的线性表,当随机插入和删除—个元素时,需平均移动元素的个数为【】。
函数fun的功能是计算xn:doublefun(doublex,intn){inti;doubley=1;for(i;=1;i<=n;i++)y=y*x;returny;}主函数中已
在关系数据库中,把数据表示成二维表,每一个二维表称为【】。
有以下程序:main(){intx=0,y=5,z=31while(z-->0&&++x<5)y=y-1;printf("%d,%d,%d\n",x,y,z);
x、y、z被定义为int型变量,若从键盘给x、y、z输入数据,正确的输入语句是______。
有以下程序段chareh;intk;ch=’a’;k=12;printf("%c,%d,",ch,ch,k);printf("k=%d\n",k);已知字符a的ASCII码值为97,则执行
以下程序的功能是:给r输入数据后计算半径为r的圆面积s。程序在编译时出错。main()/*Beginning*/{intr;floats;scanf("%d",&r);s=*π*r*r*r;printf("
以下选项中可以作为C语言中合法整数的是______。
下列程序的功能是将字符串s中所有的字符c删除。请填空。#include<stdio.h>main(){chars[80];inti,j;gets(s);for(i=j=0;s[i]!=’\0’;i+
结构化分析方法是面向()的自顶向下、逐步求精进行需求分析的方法。
随机试题
A、窥阴器检查B、双合诊C、三合诊D、肛腹诊E、腹部触诊检查已婚妇女子宫及附件情况( )。
量反应是指
工程项目投资,一般是指()。
Railtransportplaysamoreimportantrolethanroadtransportdoesinthedomesticeconomyofacountry.
为证实Q公司应付账款的发生和偿还记录是否完整,应实施适当的审计程序,以查找未入账的应付账款。以下各项审计程序中,可以实现上述审计目标的有( )。注册会计师实施的下列各项审计程序中,能够证实银行存款是否存在的有( )。
小张同学期中考试的语文成绩为54分。按学校要求,试卷必须经家长签阅后送交班主任。小张因成绩不及格,不敢给家长签阅,而是自己拿起笔来,在试卷上签上他爸爸的姓名,然后交给班主任。班主任发现后,在班上公开点名批评,指责他欺骗老师和家长,并罚他重做试题两遍。班
采用可变分区方式管理主存储器时,若采用最优适应分配算法,宜将空闲区按()次序登记在空闲区表中。
基于一个“微观数据抽样”(样本数据足够大,可以合理地作出准确预测的抽样)的人口研究发现:二十年来美国大于60岁的人多数迁移到本州或其他州的小镇和乡村地区,因为数据显示,在小城市和乡村的60岁以上人口比例增加了,而大城市中则相反;但是,这一趋势在1984年
如果要取消宏的自动运行,在打开数据库时按住______键即可。
Therearealotofgoodcamerasavailableatthe【B1】______.MostofthesearemadeinJapan.Buttherearealsogood【B2】______mo
最新回复
(
0
)