首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指
admin
2017-02-24
49
问题
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数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"structty{intdata;charc;};main(){structtya={30,’x’};fun(a);printf("%d%c
以下程序中函数f的功能是在数组x的n个数(假定n个数互不相同)中找出最大最小数,将其中最小的数与第一个数对换,把最大的数与最后一个数对换。请填空。#include<stdio.h>voidf(intx[],intn){intp0,p1,i
下面程序输出的结果是main(){inti;inta[3][3]={1,2,3,4,5,6,7,8,9};for(i=0;i<3;i++)printf("%d",a[2-i][i]);}
当运行以下程序时,从键盘输入AhaMA(空格)Aha<CR>,则下面程序的运行结果是#include<stdio.h>main(){chars[80],c=’a’;inti=0;scanf("%s",s);
阅读以下程序及对程序功能的描述,其中正确的是#includemain(){FILE*in,*out;charch,infile[10],outfile[10];printf("Entertheinfilename:\n"
设有如下定义:structsk{intn;floatx;}data,*p;若要使p指向data中的n域,正确的赋值语句是
函数的值通过return语句返回,下面关于return语句的形式描述错误的是
有以下程序intadd(inta,intb){return(a+b);}main(){intk,(*f)(),a=5,b=10;f=add;…}则以下函数调用语句错误的是
随机试题
暖暧远人村,_____________。《归园田居》(其一)
Doyouhaveaphobia(恐惧症)?Doesitspread?No,itisnotaninfectious(传染的)disease,butitcanmakeyouquiteasbad.Aphobia
巩膜呈向心性黄染见于哪组情况
流感嗜血杆菌不能引起
2007年1月,甲股份有限公司(章程规定董事会设董事13名)增发股票结束,公司持股情况发生巨大变化,原13名董事中,5名董事宣布退出董事会。下列表述不正确的是()。
海拔4000m及以上地区野外作业每天不宜超过8h,隧道作业每天不宜超过6h。()
公司型基金以()的投资公司为代表。
幼儿园环境创设要符合幼儿的年龄特征及身心健康发展的需要,促进每个幼儿全面、和谐地发展是指()原则。
是否公开学生的学习成绩,已成为明讯管理学院的一个热点话题。很多学生认为学习成绩是个人隐私,需要得到保护,呼吁学院不要再公开发布学生的学习成绩。学院的管理部门经过慎重的考虑,决定今后所有的学习成绩统一通过电子函件的方式发送,每个学生将只能收到自己的学习成绩。
负责数据库中查询操作的数据库语言是( )。
最新回复
(
0
)