首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC++2010打开考生文件夹下blankl中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。此程序定义了学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun()的功能是从形参fil
使用VC++2010打开考生文件夹下blankl中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。此程序定义了学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun()的功能是从形参fil
admin
2023-02-27
106
问题
使用VC++2010打开考生文件夹下blankl中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。此程序定义了学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun()的功能是从形参filename所指的文件中读入学生数据,先按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指的文件中,覆盖原来的文件内容。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:部分源程序在文件blank1.c中。
不得增行或删行,也不得更改程序的结构!
试题程序:
1 #include<stdio.n>
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)
9 {FILE*fp;int i,j;
10 STU s[N],t;
11 /*********found*********/
12 fp=fopen(filename,<u>【1】</u>);
13 fread(s,sizeof(STU),N,fp);
14 fclose(fp);
15 for(i=0; i<N-1;i++)
16 for(j=i+1;j<N;j++)
17 /*********found*********/
18 if(s
.sno<u>【2】</u>s[j].sno)
19 {t=s
;s
=s[j];
20 s[j]=t;}
21 fp=fopen(filename,"wb");
22 /*********found*********/
23 <u>【3】</u>(s,sizeof(STU),N,fp);
24 fclose{fp);
25 }
26 main()
27 { STU t[N]={{10005,"ZhangSan",
95,80,88},{10003,"LiSi",85,70,
78},{10002,"CaoKai",75,60,88},{10004,"FangFang",90,82,87},{10001,"MaChao",91,92,77}},ss[N];
28 int i,j;FILE*fp;
29 fp=fopen("student.dat","wb");
30 fwrite(t,sizeof(STU),5,fp);
31 fclose(fp);
32 printf("\n\nThe original data:\n\n");
33 for(j=0;j<N;j++)
34 {printf("\nNo:%ld Name:%-8sScores:",t[j].sno,t[j].name);
35 for(i=0;i<3;i++)
36 printf("%6.2f",t[j].score
);
37 printf ("\n");
38 }
39 fun("student.dat");
40 printf("\n\nThe data after sorting:\n\n");
41 fp=fopen("student.dat","rb");
42 fread(ss,sizeof(STU),5,fp);
43 fclose(fp);
44 for(j=0;j<N;j++)
45 {printf("\nNo:%ld Name:%-8s Scores:",ss[j].sno,ss[j].name);
46 for(i=0;i<3;i++)
47 printf("%6.2f",ss[j]. score
);
48 printf("\n");
49 }
50 }
选项
答案
(1)"rb"(2)> (3)fwrite
解析
填空1:题目中要求从形参filename所指的文件中读入学生的数据,以此可以看出空1处应该填"rb"。
填空2:此处的if语句用来比较学号的大小,如果学号大,就和学号小的换位,故空2处应该填>。
填空3:题目要求所有的学生数据均以二进制方式输出到文件中,故空3处应该填fwrite。
转载请注明原文地址:https://kaotiyun.com/show/6D0D777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
A.条件(1)充分,但条件(2)不充分B.条件(2)充分,但条件(1)不充分C.条件(1)和(2)单独都不充分,但条件(1)和条件(2)联合起来充分D.条件(1)充分,条件(2)也充分E.条件(1)和条件(2)单独都不充分,条件(1)和条件(2)联
以下各组数据中,众数、中位数和平均数都相等的是()。
已知方程(x2-2x+m)(x2-2x+n)=0的4个根组成一个首项为的等差数列,则|m-n|=()。
一种商品,按照期望50%的利润来定价,结果只销售掉70%的商品,为尽早销售掉剩下的商品,商店决定按定价打折销售,这样获得的全部利润是原来期望利润的82%,则打了()折。
如下图所示,它是由3层没有缝隙的小立方块组成的,如果它的外表面(包括底面)全都被涂成红色,那么把它们再分开成一个个小立方块时,有()个小立方块恰有三面是红色的。
2021年联合国教科文组织作出统计,美国对中国电影海外票房贡献度在上升,华语歌曲在YouTube点击量过亿所需天数逐年缩短,且华语榜首和全部榜单榜首点击量差距在收窄,中国手游收入在美国市场的份额上升,由2018年第一季度的7.3%上升至2021年第二季度的
1956年对中国来说,是一个非常重要的年份,国内国外都发生了重大变化。毛泽东深刻总结了苏联在建设社会主义过程中的缺点和错误,在《论十大关系》一文中,明确提出()
毛泽东在《论持久战》中指出,抗日战争要经过的三个阶段是________。
结合材料回答问题:材料1新型冠状病毒肺炎是近百年来人类遭遇的影响范围最广的全球性大流行病,对全世界是一次严重危机和严峻考验。人类生命安全和健康面临重大威胁。这是一场全人类与病毒的战争。面对前所未知、突如其来、来势汹汹的疫情天灾
结合材料回答问题:材料1进入新发展阶段,国内外环境的深刻变化既带来一系列新机遇,也带来一系列新挑战,是危机并存、危中有机、危可转机。我们要辩证认识和把握国内外大势,统筹中华民族伟大复兴战略全局和世界百年未有之大变局,深刻认识我国社会主要
随机试题
Ifyouwanttolearnanewlanguage,theveryfirstthingtothinkaboutiswhyDoyouneeditfora【C1】______reason,suchasyo
某装饰装修工程的下列单项合同额中属于中型工程的是()万元。
守信是诚实品格必然导致的行为,也是诚实与否的判断依据和标准。()
《中华人民共和国教育法》中将我国现阶段的教育方针表述为:“教育必须为社会主义现代化建设服务、为人民服务,必须与()相结合,培养德、智、体、美等方面全面发展的社会主义建设者和接班人。
研发中心的员工是全公司最优秀的,小赵是研发中心的员工,所以他是全公司最优秀的。根据上述文字,该推理是()。
(08年)设f(x)是连续函数,(I)利用定义证明函数F(x)=∫0xf(t)dt可导,且F’(x)=f(x);(Ⅱ)当f(x)是以2为周期的周期函数时,证明函数G(x)=2∫0xf(t)dt一x∫02f(t)dt也是以2为周期的周期函数.
在Windows[资源管理器]的左窗口中,若显示的文件夹图标前带有标志,则意味着该文件夹(43)。
在命令窗口执行SQL命令时,若命令要占用多行,续行符是()。
有以下程序:structS{intn;inta[20];};voidf(int*a,intn){inti;for(i=0;i<n-1;i++)a[i]+=i;}mainf(){inti;stru
WhyLearningSpanish?TheimportanceofSpanishisgrowinginEurope.Spanish,with400millionspeakers,isthefourthmostcom
最新回复
(
0
)