首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。 请在程序的
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。 请在程序的
admin
2017-07-27
66
问题
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数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,’’MaChao’’,91,92,77},{10002,’’CaoKai’’,75,60,88},{10003,’’LiSi’’,85,70,78},{10004,’’FangFang’’,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 original 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++) printf(’’%6.2f’’,ss[j].score
);
32 printf(’’\n’’);
33 }
34 fun(’’student.dat’’,n);
35 printf(’’\nThe data after modifing:\n\n’’);
36 fp=fopen(’’student.dat’’,’’rb’’);
37 fread(ss,sizeof(STU),N,fp);
38 fclose(fp);
39 for(j=0;j<N;j++)
40 { printf(’’\nNo:%1d Name:%-8s Scores:’’,ss[j].sno,ss[j].name);
41 for(i=0;i<3;i++)printf(’’%6.2f’’,ss[j].score
);
42 printf(’’\n’’);
43 }
44 }
选项
答案
(1)filename (2)fp (3)fp
解析
第一空:“fp=fopen(__1__,’’rb+’’);”补充fopen的参数,fopen的调用形式是:fp=fopen(文件名,文件使用方式),因此第一空处应填文件名“filename”。
第二空:此处是补充fseek函数的参数,fseek的调用形式是:fseek(fp,offset,position),其中第一个参数是文件型指针,故第二空处应填文件型指针变量“fp”。
第三空:fwrite的调用形式是(buffer,size,count,fp),最后一个参数是文件型指针,故第三空处应填“fp”,将新的学生数据写在最后一个学生数据位置。
转载请注明原文地址:https://www.kaotiyun.com/show/W7Dp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
有以下程序#include<stdio.h>intfun(inta,intB){if(b=0)returna;elsereturn(fun(--a,--B));}main(){pdntf("%d\
若有定义intx,y;并已正确给变量赋值,则下列选项中与表达式(x-y)?(x++):(y++)中的条件表达式(x-y)等价的是()。
uniondt{inta;charb;doublec;}data;以下叙述中错误的是()。
在C语言中,变量的隐含存储类别是()。
下述语句中,在字符串s1和s2相等时显示"theyareEqual"的是()。
在三级模式之间引入两层映像,其主要功能之一是()。
设q1和q2是指向一个int型一维数组的指针变最,k为float型变量,下列小能正确执行的语句是()。
下列函数从字符数组s[]中删除和c一样的字符,请在下面横线处填空。voiddelete(s,C)chars[],c;{inti,j;for(i=j=0;();i++)if(s[i]!=’c’)s[j++]=
若有运算符:>、=、<<、%、sizeof,则它们按优先级(由高至低)的正确排列顺序为()。
从顺序存储的循环队列中删除一个元素时,是______。
随机试题
ThebestwaytouseEarth’sresourcesmoresensiblyistoreducetheamountsofthingsthatweuseandtoreusethingsinstead
患者,男,68岁,农民。因牙痛引起左颊部红肿,流脓月余。体检发现左颊部软组织变硬,局部皮肤发黑,有一层管形成并不断排脓。查脓液发现有黄色小颗粒,压片镜检颗粒呈菊花状,由放射状排列菌丝组成,菌丝末端膨大呈棒状。该患者感染的是
A.血尿B.蛋白尿C.乳糜尿D.脓尿E.少尿或无尿慢性肾小球肾炎常见的尿液特点为
在资产组合理论中,最优证券组合为()。
阳光公司与研究所订立的买卖合同约定:阳光公司向研究所购买一台断桥铝合金门窗生产设备,总价款460万元;阳光公司应于合同签订之日起10日内向研究所支付60万元预付款;研究所应于2009年12月2日之前交付设备,由阳光公司自行提货;阳光公司验收设备合格后在12
下列对雕塑工艺品描述正确的是()。
技术环境因素不包括()。
1939年毛泽东在《中国革命和中国共产党》一文中,对新民主主义革命总路线作了完整的概括,即无产阶级领导的,人民大众的,反对帝国主义、封建主义和官僚资本主义的革命。()
下面关于解释程序和编译程序的论述,其中正确的一条是______。
Thefollowingareallcorrectresponsesto"Whotoldthenewstotheteacher?EXCEPT_____?(2015-61)
最新回复
(
0
)