首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指
admin
2018-03-28
48
问题
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数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】
);
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),
{10 00 4,"FangFang",90,82,8 7),
{10001,"MaChao",91,92,7 7}},
ss[N];
int i,j;FILE*fp;
fp=fopen("student.dat","wb");
fwrite(t,sizeof(STU),5,fp);
fclose(fp);
printf f"\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,2f", 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) ;
{ printf ("\nNo: %ld Name: % -8s
Scores: ",ss[j] .sno, ss[j] .name);
printf ("00 6.2f ", ss [j].
score
);
printf ("\n") ;
}
}
选项
答案
(1)"rb" (2)> (3)fwrite
解析
填空1:题目中要求从形参filename所指的文件中读入学生的数据,以此可以看出本空应该填写”rb”。
填空2:此处的if语句是比较学号的大小,如果学号大就和学号小的换位,以此本空填写>。
填空3:题目要求所有的学生数据均以二进制方式输出到文件中,因此本空填写fwrite。
转载请注明原文地址:https://kaotiyun.com/show/GJxp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
若有定义:intk;,以下程序段的输出结果是______。for(k=2;k<6;k++,k++)printf("##%d",k);
有以下程序#include<stdio.h>main(){ints[12]={1,2,3,4,4,3,2,1,1,1,2,3},c[5]={0},i;for(i=0;i<12;i++)c[s[i]+
以下程序的输出结果是main(){inta=0,i;for(i=1;i<5;i++){switch(i){case0:case3:a+=2;case1:
线性表若采用链式存储结构时,要求内存中可用存储单元的地址()
阅读下面程序,则执行后的输出结果是【】。#include"stdio.h"main(){intx,y,z;x=1;y=2;z=3;if(x>y)if(x>z)printf("%d",x);el
变量a所占的内存字节数是______。unionU{charst[4];inti;long1;};structA{intc;union
有以下程序:#include<stdio.h>main(){unsignedinta;intb=-1;a=b;printf("%u",a);程序运行后的输出结果是()。
下面语句中不能定义一个数组,元素值依次分别为1,1,1,0,0的是______。
已知i、j、k为iht型变量,若从键盘输入:1,2,3<回车>,使i的值为1、j的值为2、k的值为3,以下选项中正确的输入语句是______。
数据的逻辑结构在计算机存储空间中的存放形式称为数据的【】。
随机试题
氢氧化钙性能如下,除外
行气与利水法并用的理论依据是
甲向乙、丙各借款40万元,并以其价值80万元的一处房屋作抵押。甲与乙于1月1日签订抵押合同.2月1日办理抵押登记;与丙于1月30日签订抵押合同,1月31日办理抵押登记。后因甲无力还款,乙、丙行使抵押权拍卖此房屋,得60:万元。对于此60万元的分配,正确的是
代理人没有代理权、超越代理权限范围或代理权终止后进行活动,属于( )。
首次公开发行的股票,应当通过向询价对象询价的方式确定股票发行价格。( )
根据出口退(免)税制度的相关规定,下列关于出口退(免)税的表述中,正确的有()。
可能导致企业资本成本上升的因素有()。
城市因水而生,因水而兴,因水而美。我们可以列举湖泊给城市带来的一系列好处,比如人工湖的修建对于改善人居环境,改善生态环境,治水治内涝等方面都能起到积极作用。但是,人工湖是不是越多越好、越大越好,大规模开挖人工湖是否会加重财政负担,政府这样大手笔的投入,到底
在高架桥上用绳子测量高架桥的高度,把绳子对折垂到地面时尚余10米,把绳子三折垂到地面时尚余2米,则高架桥高度和绳长分别是:
函数重载要求重载的函数必须有和原函数一样的【】。
最新回复
(
0
)