首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指
admin
2019-07-10
74
问题
程序通过定义学生结构体变量,存储了学生的学号、姓名和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全国计算机二级
相关试题推荐
改革,哪怕是仅仅一小步的改革,也都是需要________的。倘若一种行为从一开始就定错了目标,或者更有甚者,如果这种行为从一开始就没有定下目标,只是________地走一步算一步,那完全是有可能“摸着石头过不了河”的!填入画横线部分最恰当的一项是(
当了二十多年教师,从小学教到高中,我发现一个规律,学生的好奇心与年龄的增长是成反比的。按理说,知道得越多,好奇心也会越强,探究新知识新领域的愿望也会越强烈,而现实却恰恰相反。随着就读年级的增高,学生的头脑越来越僵化。九年义务教育,三年高中生活,学生的脑袋里
跳蚤被放进敞口的瓶子里,它便立刻跳了出来。当把瓶子盖上时,跳蚤还是会竭力跳出瓶子,它不停地撞击着瓶盖的内侧。一个多小时后,它还在那样跳着。差不多三个小时后,它依然在跳。只是它不再撞着瓶盖了,此时它跳的高度离瓶盖大约1厘米,而且每一次都是如此,它已经习惯了这
6.葡聚糖是现在人气极高,食品科学和工业界很看好的一种可溶性纤维。某些葡聚糖也似乎对于增强免疫力更有效果——但是任何的膳食纤维都对健康大有裨益。与其花大钱去买“特别的”“增强免疫力”的纤维,多吃一些经济实惠的富含膳食纤维的食物是不是更划算?根据上文推断,作
教育对个体发展的功能,除了具有促进人的个体社会化功能,还表现在促进
根据马克思主义法学的基本观点,下列表述哪项是不正确的?()
以法的地位、效力、内容和制定程序为标准,法可以划分为()
构建社会主义和谐社会的总要求,其中提出公平正义,就是
已知函数z=u(χ,y)eaχ|by,且=0,若z=z(χ,y)满足方程+z=0,则a=________,b=________.
随机试题
LOF场外募集的基金份额登记在中国证券登记结算有限责任公司的证券登记结算系统,场内募集的基金份额登记在中国证券登记结算有限责任公司的开放式基金登记系统。( )
在相同条件下,如果固定桥桥体的宽度增加至原来的2倍,则其挠曲变形量变为
含真皮下血管网的全厚皮片包含
A.最小有效量与最小中毒量之间的药物剂量B.最小有效量与极量之间的药物剂量C.比最小有效量大些,比极量小些的药物剂量D.开始出现治疗作用的剂量E.最大治疗量的一半安全范围是()。
某省甲市南区人民政府为改造旧城建设,成立一公司,负责旧房拆迁。郭某因与该公司打不成协议而拒不搬迁。南区人民政府决定对其房屋强制拆迁。郭某对强制拆迁行为不服向南区人民法院提出行政诉讼,1个月未得到南区人民法院答复。下列说法正确的有()。
填方土料应符合设计要求,一般不能选用的有()。
社会工作督导是专业训练的一种方法,它是由机构内资深的工作者,对机构内的新进入的工作人员,一线初级社会工作者、实习学生及志愿者,通过一种定期和持续的督导程序,传授专业服务的知识与技术,以增进其专业技巧,进而促进他们成长并确保服务质量的活动。社会工作督导是专业
简述绩效考评指标体系设计的程序以及绩效考评标准的设计原则。
在解决计算机主机与打印机之间速度不匹配问题时通常设置一个打印数据缓;中区,主机将要输出的数据依次写入该缓;中区,而打印机则依次从该缓;中区中取出数据打印,该缓;中区应是一个(59)结构。
Pedestrianzonesreducecitycenterpollution.
最新回复
(
0
)