首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC++2010打开考生文件夹下blankl中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。此程序定义了学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun()的功能是从形参fil
使用VC++2010打开考生文件夹下blankl中的解决方案。此解决方案的项目中包含一个源程序文件blank1.c。此程序定义了学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun()的功能是从形参fil
admin
2023-02-27
92
问题
使用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://www.kaotiyun.com/show/6D0D777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
如图,在Rt△ABC中,∠C=90°,∠B=30°,BC=4cm,以点C为圆心,以2cm的长为半径作圆,则⊙C与AB的位置关系是()。
设平面内有n条直线(n≥3),其中有且仅有两条直线互相平行,任意三条直线不过同一点,若用f(n)表示这n条直线交点的个数,则f(4)=();当n>4时,f(n)=()。
某人5天上班途中所花的时间(单位:min)分别为x,y,10,11,9,已知这组数据的平均数为10,方羞为2,则|x-y|的值为()。
某班有36名同学参加数学、物理、化学课外研究小组,每名同学至多参加两个小组,已知参加数学、物理、化学小组的人数分别为26,15,13,同时参加数学和物理小组的有6人,同时参加物理和化学小组的有4人,则同时参加数学和化学小组的有()人。
从单词“equation”中选取5个不同的字母排成一排,含有“qu”(其中“qu”相连且顺序不变)的不同的排列共有()。
由数字0,1,2,3,4,5组成的无重复数字且奇偶数字相问的六位数有()。
结合材料回答问题:材料1美国疾病控制与预防中心的统计显示,截至2021年7月23日,美国过去一周平均日增新冠肺炎确诊病例40246例,较一周前增加46.7%。面对再趋紧张的疫情形势,美国一些政客的心思却没有放在本国抗疫上,而是继续玩弄疫情污名
求下列由参变量方程所确定的导数;
在假设检验中,H0为原假设,下列选项中犯第一类错误(弃真)的是().
假设主机A通过Telnet连接了主机B,连接建立后,在命令行输入字符“C”。如图所示,主机B收到字符“C”后,用于运输回送消息的TCP段的序列号seq应为____①____,而确认号ack应为____②____。②
随机试题
A、Holditonamodestscaletoremovebirthdayanxieties.B、Viewitasachanceforpeopletosocializeandhavefun.C、Extendi
腹腔淋巴结位于___________;肠系膜淋巴结位于___________。肠干由___________、___________和___________淋巴结的输出管组成。
水磨石面层对水泥的一般要求有()。
以下哪一项不是城市空间环境演进的基本规律()
水利水电工程临时设施中的主要工厂设施包括()等。
排水工程采用柔性管道时,管道敷设完毕,到管顶以上()的高度,防止管道因雨漂浮。
下列关于切点投资组合的特征说法错误的是()。
下列有关无形资产后续计量的会计处理表述正确的有()。
(2013年国考)童话故事《木偶奇遇记》中,木偶人皮诺曹一撒谎,鼻子就会变长,谎话显而易见。现实生活中,虽然说谎话时我们的鼻子不会变长,但我们身体确实也会产生一些细微的生理变化,有的通过肉眼就可以观察到,有的则要通过精密的测谎仪器才能测试出来。日前,美国犹
Whenisthislecturegiven?
最新回复
(
0
)