首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指
admin
2018-03-28
67
问题
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数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);
C源程序中不能表示的数制是______。
对关系S和只进行集合运算,结果中既包含S中的所有元组也包含只中的所有元组,这样的集合运算称为()。
若i是int型变量,且有下面的程序段:for(i=4;i<6;i++)printf((i%2)?("**%d\n"):("##%d\n"),i);上面程序段的输出结果是______。
有以下定义语句:doublea,b;intw;longc;若各变量已正确赋值,则下列选项中正确的表达式是()。
字符串“\\\”ABCDEF\“\\”的长度是()。
在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是()。
表示“整数x的绝对值大于5”时值为“假”的C语言表达式是______。
以下不正确的转义字符是()。
随机试题
合理宰杀禽类,宰前________停食,但应充分喂水以清洗胃肠道。
用于探测人们本能倾向的测量技术是
关于中耳癌的临床表现错误的是
某大型海上工程孤立墩混凝土承台施工,其混凝土的配合比为1:1.5:2.50,水灰比为0.40,水泥用量为444kg/m3。承台的平面尺寸为10m×10m,承台底标高为一0.5m,顶标高为+3.5m。9根直径1.2m的钢管桩伸入承台混凝土中2m(桩芯混凝土已
想像、审美、情感丰富、求异、智能等表现,属于现代“五因素”特质理论中的()。
习近平总书记在中央政治局第十三次集体学习时强调,要精准有效处置重点领域风险,深化金融改革开放,增强金融服务()能力,坚决打好防范化解包括金融风险在内的重大风险攻坚战,推动我国金融业健康发展。
地震、火山爆发和异常的天气在最近十年里造成的对人们产生不利影响的自然灾害要比前数十年多得多。我们可以得出结论,作为一种自然环境,地球变得愈加不友善和危险了,我们应该利用气象学和地球学来探寻这种趋向的原因。下面哪一项,如果正确,将最严重地削弱上述所得结论?
95年来,共产主义远大理想激励了一代又一代共产党人英勇奋斗,成千上万的烈士为了这个理想献出了宝贵生命。“砍头不要紧,只要主义真”“敌人只能砍下我们的头颅,决不能动摇我们的信仰”,这些视死如归、大义凛然的誓言生动表达了共产党人对远大理想的坚贞。理想之光不灭,
PositiveforYouthaimstoplaceteenagersandyoungpeopleatitsheart.Thereistheaccurateexpectationteenagersthemselves
TheInternetprovidesanamazingforumforthefreeexchangeofideas.Giventherelativelyafewrestrictionsgoverningaccess
最新回复
(
0
)