首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指
admin
2019-03-06
36
问题
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指的文件中,覆盖原来的文件内容。
请在程序的下画线处填入正确的内容并把下画线删除,使程序得出正确的结果。
注意:不得增行或删行,也不得更改程序的结构!
试题程序:
nclude
#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___);
fread(s,sizeof(STU),N,fp);
felose(fp);
for(i=0;i
for(j=i+1;j
if(s
.sno___2___s[j].sno)
{
t=s
;s
=8[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,“NaChao”,91,92,77}},ss[N];
int i,j;FILE*fp;
fp=fopen(“student.dat”,“wb”);
fwrite(t,sizeof(STU),5,fp);
felose(fp);
prinff(“\nThe original data:\n”);
for(j=0;j
{
prinff(“\nNo:%ld Name:%一8s
Scores:“,t[j].sno,t[j].name);
for(i=0;i<3;i++)
printf(“%6.2f”,t[J]。score
);
printf(“\n”);
}
fun(“student.dat”);
prinff(“\nThe data after sorting:\n”);
fp=fopen(“student.dat”,”rb”);
fread(ss,sizeof(STU),5,fp);
fclose(fp);
for(j=0;j
{
prinff(“\nNo:%ld Name;%一8s
Scores:“,ss[j].sno,ssrj].name);
for(i=0;i<3;i++)
prinff(“%6.2f”,8s[j].score
);
printf(“\n”);
}
}
选项
答案
(1)“r” (2)> (3)fwrite
解析
填空1:题目中要求从形参fiename所指的文件中读入学生的数据,以此可以看出本空应该填写“r”。
填空2:此处的if语句是比较学号的大小,如果学号大就和学号小的换位,以此本空填写>。
填空3:题目要求所有的学生数据均以二进制方式输出到文件中,因此本空填写fwrite。
转载请注明原文地址:https://jikaoti.com/ti/ukf0FFFM
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
执行程序时的输入为123456789,则程序的运行结果为_____________。#include“stdio.h”main(){inta,b;scanf(“%2d%*2d%1d”,&a,&b);
下面程序段的运行结果是chara[]="lanuage",*p;p=a;while(*p!=′u′){printf("%c",*p-32);p++;}
若有定义:int*p[3];则以下叙述中正确的是()。
以下程序段中的变量已正确定义:for(i=0;i<4;i++,i++)for(k=1;k<3;k++);printf("*");程序段的输出结果是______。
以下程序的输出结果是__________。#includevoidswap(int*a,int*b){int*t;t=a;a=b;b=t;}main(){inti=3,j
在线性表的多种存储结构中,最简单的方法是【】
在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是______。
以下程序段打开文件后,先利用fseek函数将文件位置指针定位在文件末尾,然后调用ftell函数返回当前文件位置指针的具体位置,从而确定文件长度,请填空。FILE*myf;longf1;myf=【】("test.t""rb");
下面的程序实现的是指针p所指向的地址的n个数中,求出最大的和最小的数据,请填空。fun(int*p,intn){int*q;intmax,min;max=min=*p;for(q=p;【】
利用fseek函数可实现的操作是()。
随机试题
两性霉素B的应用注意点不包括
哪项症状不符合肝经湿热下注的临床表现
引起右心室后负荷增加的因素是
对特定的货物而言,其功能只能满足人们的某一方面的需求,下列选项不属于确定货物功能需求需要考虑的因素的是()。
下列观点中,符合会计职业道德要求的是()。
公安工作的主要依据是法律,党委对重大问题的指示不能作为公安工作的依据。()
一款游戏能否吸引玩家,能否激发游戏者对游戏的激情,很大程度上__________游戏任务。游戏任务系统其实是通过各种任务剧情使游戏者融入到__________社会当中。在进行各项任务的同时,玩家已经不知不觉地_________起任务当中的某个角色,全身心地
“不要把所有的鸡蛋都放在同一个篮子里”的投资理念,强调的是要重视股票、债券等投资方式的()。
流通中的货币需要量是考察经济生活运行的一项重要指标。假设某国去年的商品价格总额为24万亿元,流通中需要的货币量为3万亿元。若今年该国商品价格总额增长10%,其他条件不变,今年流通中需要的货币量为()(2009年单选)
"Historydoesn’trepeatitself,"arguedMarkTwain,"butitdoesrhyme."Inthisinstance,history’sechocouldscarcelybemo
最新回复
(
0
)