首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指
admin
2017-02-24
85
问题
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指的文件中,覆盖原来的文件内容。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANK1.C中。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include<stdio.h>
#define N 5
typedef struct student{
long sno;
char name[10];
float score[3];
}STU;
void fun(char*filename)
{FILE*fp;int i,j;
STU s[N],t ;
/*********found*********/
fp=fopen(filename,
【1】
)j
fread(s,sizeof(STU),N,fp);
fclose(fp);
for(i=0;i<N一1;i++)
for(j=i+1;j<N;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<N;j++)
{printf("\nNo:%id 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<N;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].scoEe
);
printf("\n");
}
}
选项
答案
(1)"rb" (2)> (3)fwrite
解析
填空1:题目中要求从形参filename所指的文件中读入学生的数据,以此可以看出本空应该填写"rb"。
填空2:此处的if语句是比较学号的大小,如果学号大就和学号小的换位,以此本空填写>。
填空3:题目要求所有的学生数据均以二进制方式输出到文件中,因此本空填写fwrite。
转载请注明原文地址:https://kaotiyun.com/show/iMDp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
结构化分析方法是面向()的自顶向下、逐步求精进行需求分析的方法。
下列选项中,不是一个算法的基本特征的是()。
有以下程序#include<stdio.h>main(){FILE*fp;inti=20,j=30,k,n;fp=fopen("d1.dat","w");fprintf(fp,"%d\n",i;fprintf(f
以下叙述中错误的是
已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是
设p1和p2是指向一个int型一维数组的指针变量,k为int型变量,则不能正确执行的语句是
对下述程序的判断中,正确的是#includevoidmain(){char*p,s[128];p=s;while(strcmp(s,"End")){printf("Inputastring:");gets(s);w
若有定义intw[3][5];,则以下不能正确表示该数组元素的表达式是
若变量均已正确定义并赋值,以下合法的C语言赋值语句是
随机试题
要将管理者对客户期望的认知准确地转化成服务质量标准,就需要对任务进行()
患者,女,58岁。高热伴咳嗽咳痰、乏力1天,入院后予止咳化痰处理,肌内注射妥布霉素8万U,2次/天,3天后出现少尿,恶心呕吐,化验尿蛋白(+),红细胞8~10/HP,血红蛋白114g/L,血肌酐520μmol/L。问题3:该患者若行肾病理检查其表现可
通常会出现口腔病损的是哪一类天疱疮
事业单位国有资产处置,是指事业单位对其占有、使用的国有资产进行产权转让或者注销产权的行为。处置方式包括()。
下列等式中正确的有()。
被誉为“天府之国”的四川盆地多为()土壤,气候暖湿,农作物可四季生长,盛产水稻、油菜和甘蔗。
Accordingtothispassage,troublesontheroadareprimarilycausedby______.Expertshavelongpointedoutthatinthefaceo
设银行规定:居民三年期定期年储蓄利率为4.25%,某人存入银行50000元,则三年后到期时可得本利和为多少元?若所得利息需缴纳个人所得税,税率为5%,则某人实际得到利息为多少元?
在事件处理过程中,涉及的3类对象是事件、事件源和【】。
AAccommodation住宿Oneisneveratalossforaplaceto(1)inMalaysia.Thecountry’scitiesandmajortownshavea(2)r
最新回复
(
0
)