首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指
admin
2019-04-14
73
问题
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指的文件中,覆盖原来的文件内容。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
试题程序:
#include <stdio.h>
#define N 5
typedef struct student{
long sno;
char name[10];
float score[3];}STU;
void fun(chat*filename)
{
FILE *fp;int i,j;
STU S[N],1;
/* * * * * * found * * * * * */
fp=fopen(filename,___1___);
fread(s,sizeof(STU),N,fp);
fclose(fp);
for(i=0;i<N—1;i+ +)
for(j=i+1;j<N;j+ +)
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[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);
pfintf(″\nThe original data:\n″);
for(j=0;j<N;j+ +)
{
printf(″\nNo:%ld Name:%—8sScores:″,t[j].sno,t[j].name);
for(i=0;i<3;i+ +)
printf(″%6.2f″,t[j].score
);
printf(″\n″);
}
fun(″student.dat″);
printf(″\nThe data after sorting:\n″);
fp=fopen(″student.dat″,″rb″);
fread(ss,sizeof(STU),5,fp);
fclose(fp);
for(j=0;j<N;j+ +)
{
printf(″\nNo:%ld Name:%—8sScores:″,ss[j].sno,ss[j].name);
for(i=0;i<3;i+ +)
printf(″%6.2f″,ss[j].score
);
printf(″\n″);
}
}
选项
答案
(1)″r″ (2)> (3)fwrite
解析
填空1:题目中要求从形参filename所指的文件中读入学生的数据,以此可以看出本空应该填写″r″。
填空2:此处的if语句是比较学号的大小,如果学号大就和学号小的换位,以此本空填写>。
填空3:题目要求所有的学生数据均以二进制方式输出到文件中,因此本空填写:fwrite。
转载请注明原文地址:https://kaotiyun.com/show/H1Rp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
数字字符’0’的ASCII值为48,若有以下程序:#include<stdio.h>main()chara=’1’,b=’2’;printf("%c,",b++);
以下叙述中错误的是
在C语言中,变量的隐含存储类别是()。
设某循环队列的容量为50,头指针front=5(指向队头元素的前一位置),尾指针rear=29(指向队尾元素),则该循环队列中共有()个元素。
下列关于C语言用户标识符的叙述中正确的是()。
下列叙述中正确的是______。
以下是while语句的基本形式:while(表达式){语句;}其中“表达式”()。
下列叙述中正确的是()。
在关系数据库中,对一个关系做投影操作后,新关系的元组个数将()
可以在C语言程序中用做用户标识符的一组标识符是()。
随机试题
行政管理方法的地位与作用?
Excel2000的数据排序中,允许用户最多指定______个关键字。
关于体内药量变化的时间过程,下列叙述错误的是
某中级人民法院在审理戴某等5人盗窃案件时,当法院宣告戴某死刑时,作为被告人戴某父亲的毛某及其他人等哭闹并冲进法庭,使法庭审判无法继续。当被告人戴某被强行带出法庭后,毛某等人在法院大门口继续吵闹,阻拦囚车出门,并几次冲击法院大门,而且用雨伞殴打维持秩序的司法
可疑类贷款是指借款人的还款能力出现明显问题,完全依靠其正常营业收入无法足额偿还贷款利息,及时执行担保,也可能会造成一定损失。()
已知向量组α1=(3,1,1),α2=(1,-1,3),α3=(0,2,-4),α4=(2,-1,4),则向量组的秩为()。
(2009下集管)F公司成功中标S市的电子政务工程。F公司的项目经理李工组织相关人员对该项目的工作进行了分解,并参考以前曾经成功实施的W市电子政务工程项目,估算该项目的工作量为120人月,计划工期为6个月。项目开始不久,为便于应对突发事件,经业主与F公司协
在面向对象模型中常用的有两种继承,即单继承与【】。
MustthePoorGoHungryJustSotheRichCanDrive?SportsstarslikeMoFarahwillnotchangeasimplefact:peoplearesta
A、TaughtherEnglishherself.B、Wenttotalkwithherteacher.C、Signedupforalanguagetrainingclassforher.D、Talkedwith
最新回复
(
0
)