首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指
admin
2019-07-10
68
问题
程序通过定义学生结构体变量,存储了学生的学号、姓名和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全国计算机二级
相关试题推荐
汉字的产生从根源和雏形上说,来自劳动人民,汉字简化的动力主要来自民间。但经过采集、整理和加工创造而形成的汉字,则出于史卜和达官贵人之手。文明社会早期只有宫廷和贵族才有文化,他们祭天祀祖征战讨伐需要巫师神汉算命打卦占卜扶乩。商代甲骨文相对成熟,比较系统。但因
①借款人只能拆东墙补阿墙,通过举借新债才能偿还旧债②此时,以借款来偿还信用卡欠款利息的人就是在玩弄“庞氏骗局”③明斯基指出,债务积累的过程会经历三个阶段④只要借款人能履约还款,信贷支持就能保证经济高效且有序地成长⑤前两个阶段在总体上是良性的,促使经
下列选项中的现象所蕴含的物理原理相同的是()。
一首诗词一座城。诗词是中华文化的浓缩,每一寸河山,都饱含文人骚客的诗情画意和浓烈情感。下面诗句与其对应的城市有误的是()。
一位教育学教师让每个学生报告他们用于准备考试的时间和考试时答错的题目数:忽略样本容量的问题,解释两种相关系数的大小为何有差异,在上述数据中,你认为哪种更准确地反映了数据的关系?
构建社会主义和谐社会同建设物质文明、政治文明、精神文明的关系是
设函数y=y(χ)在(0,+∞)上满足△y=(+χsinχ)△χ+o(△χ),且,则y(χ)=_______.
当使用SomeThreadt=newSomeThread()创建一个线程时,下列叙述中正确的是()。
下列关于boolean类型的叙述中,正确的是()。
有下列二叉树,对此二叉树中序遍历的结果为()。
随机试题
患者,女,68岁。咳嗽、咳痰20余年,加重20天,昏睡1天。查体:血压90/60mmHg,心率110次/分,呼吸12次/分,表浅,双肺可闻及湿哕音。血气分析:pH7.20,PaO230mmHg,PaCO292mmHg。目前最重要的抢救措施是
Aqualityeducationistheultimateliberator.Itcanfreepeoplefrompoverty,givingthemthepowertogreatlyimprovetheirl
患者男性,58岁。患者半年前登山时出现心前区疼痛,为压迫样,持续1~2分钟并向左肩、左背放射,停止活动自行缓解。以后每当劳累和工作紧张均可诱发,含硝酸甘油可缓解。一月前心前区疼痛发作频繁并加重,发作时间较前延长,轻微活动就可诱发,含硝酸甘油效果欠佳。发现高
A.外感风寒证B.外感风湿证C.暑湿疫毒证D.寒湿困脾证E.气血两虚证
选用流动式起重机时,主要是根据()。
下列说法中,正确地反映了道德与法律差别的是()。
一位家长在星期一发现儿子上学时磨磨蹭蹭,于是追问是怎么回事,孩子犹豫了半天才道出实情。原来在上个星期二早上,班主任老师召开全班同学会议,用无记名的方式评选3名“坏学生”,因有两名同学在最近违反了学校纪律,无可争议地成了“坏学生”;而经过一番评选,第三顶“坏
下列属于民法上原物与孳息关系的是()。
某人买钢笔和铅笔合计18支,共用30元,钢笔每支8元,铅笔每支0.4元,钢笔和铅笔各多少支?
田中先生、最近先生が________ご本のことで、お伺いしたいんですが。
最新回复
(
0
)