首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指
admin
2019-07-10
93
问题
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指的文件中,覆盖原来的文件内容。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANKl.C中。
不得增行或删行,也不得更改程序的结构!
#include
#define N 5
typedef struct student{
long sno;
char name[10];
float score[3];
}STU;
void fun(char fiiename)
{FTLE *fp;int i,j;
STU s[N],t ;
/**********found**********/
fp=fopen(filename,_____1_____);
fread(s,sizeof(STU),N,fp);
fclose(fp);
for (i=0; i
for(j=i+1;j
/**********found**********/
if(s
.sno_____2_____s[j].sno)
{t=s
;s
=s[j];s[j]=t ;)
fp=fopen(filename,"wb");
/**********found**********/
_____3_____(s,sizeof(STU),N,fp);/*二进制输出*/
fclose(fp);
}
main()
{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];
int i,j;FILE *fp;
fp=fopen("student.dat","wb");
fwrite(t,sizeof(STU),5,fp);
fclose(fp);
printf("\n\nThe original data:
\n\n");
for(j=0 ; j
{printf("\nNo:%ld Name:%一8s
Scores:",t[j].sno,t[j].name);
for (i=0; i<3; i++)printf
("%6.2 f",t[j].score
);
printf("\n");
}
fun("student.dat");
printf ("\n\nThe data after sorting:
\n\n");
fp=fopen("student.dat","rb");
fread(ss,sizeof(STU),5,fp);
fclose(fp);
for (j=0; j
{printf("\nNo:%ld Name:%一8s
scores:",ss[j].sno,ss[j].name);
for (i=0 ; i<3 ; i++)printf
("%6.2 f",ss[j].score
);
printf("\n");
}
}
选项
答案
(1)"rb" (2)> (3)fwrite
解析
第一空:根据题干要求,“fp=fopen(filename,__1__);”是打开filename所指文件,读出学生数据“fread(s,sizeof(STU),N,fp);”,然后关闭文件“fclose(fp)”,故第一空处是只读方式打开文件,因此第一空处应为“”rb””。
第二空:根据题意,for循环是将学生数据按照学号从小到大排序后,这里采用的是冒泡法排序,如果发现前面的数据比后面的大则交换,故第二空处应为“>”。
第三空:文件是以只写方式(“wb”)打开,执行“3(s,sizeof(STU),N,fp);”后,关闭文件,即第三处是一次把所有学生数据写入文件,这是执行数据块写函数fwrite,故第三宁处为“fwrite”。
转载请注明原文地址:https://kaotiyun.com/show/34ID777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
一个人________不懂得正确的意见只能是对于实际事物的客观的全面的反映,________坚持要按自己的主观的片而的想法去办事,那么,________他有善良的动机________还是会犯或大或小的错误。填入画横线部分最恰当的一项是(
多元的发展机会和自由的成长空间,是时代给予每个追梦人的馈赠;________每个追梦人在前进道路上迈出的每一步,________都在推动时代的进步。填入画横线部分最恰当的一项是()。
阅读以下文字,回答下列问题。从本质上讲,每个人都有两个年龄:一个是时间年龄,日历说你多大了;另一个是生理年龄,它以你的身体功能为基础,是与平均的健康水平对应的。“时间年龄并不是我们真正的年龄,这只是一个数字。”哈佛大学教授大卫·辛克莱说
去年,中国话剧继续保持平稳、健康的发展态势。从创作层面看,聚焦现实生活的原创作品增多,经典改编剧目紧贴当下关怀,民营剧团剧目更趋个性化表达,创作者从多个角度思辨着戏剧与时代、人性的关系。接下来最可能叙述的是()。
当今碳循环科学面临的最大问题,就是在洲际、区域和局部尺度上无法观测获取量化的、精度高的碳通量(单位面积上、单位时间内碳含量的变化)信息。下列有关说法错误的是()。
比较太平天国起义和义和团运动的异同。(南京大学2014年中国近现代史真题)
西周时期为保证适用法律的谨慎,防止错杀无辜,对犯罪事实有疑的案件,在司法审判中要经过()程序。
《中华人民共和国刑法》第13条:一切危害国家主权、领土完整和安全,分裂国家、颠覆人民民主专政的政权和推翻社会主义制度,破坏社会秩序和经济秩序,侵犯国有财产或者劳动群众集体所有的财产,侵犯公民私人所有的财产,侵犯公民的人身权利、民主权利和其他权利,以及其他危
请简要陈述宋朝关于民事诉讼的程序规定。
设某超市经营管理系统使用SQLServer2008数据库管理系统,此数据库服务器有2颗CPU、16GB内存、2TB磁盘。上线运行1年后,用户在生成每天每个销售人员及每个收银台的总销售额报表时速度缓慢。经技术人员分析,发现速度缓慢的原因为销售单据表和销售
随机试题
化工基础数据可分为两类:物性数据和热力学数据。()
影响气态物质在呼吸道吸收的因素不包括
如图所示悬臂梁受力P作用。在图示四种截面的情况下,其最大正应力(绝对值)不能用公式σmax=计算的是哪种截面?
下列有关设计概算的说法中,正确的有()。
引入会计专业判断的渗透融合具体的做法有()。
以下算式中可以求得年人口自然增长率的是( )。
A、 B、 C、 D、 D每组第一个图形旋转180°得到第二个图形,第二个图形顺时针旋转90°得到第三个图形。
我国刑法的整体框架分为总则、分则、附则三个部分。()
设矩阵A=(α1,α2,α3,α4)经行初等变换为矩阵B=(β1,β2,β3,β4),且α1,α2,α3线性无关,α1,α2,α3,α4线性相关,则().
A、Reserved.B、Prejudiced.C、Polite.D、Prudent.B
最新回复
(
0
)