首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指
admin
2018-03-28
70
问题
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数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全国计算机二级
相关试题推荐
对建立良好的程序设计风格,下列描述正确的是()。
若a是float型变量,b是unsigned型变量,以下输入语句合法的是()
若已经定义inta=25,b=14,c=19;,以下三目运算符(?:)所构成的语句的执行结果是【】。a++
有以下程序: main() { char p[]={’a’,’b’,’c’},q[]="abc"; printf("%d%d\n",sizeof(p),sizeof(q)); } 程序运行后的输出结果是 ______。
有以下定义语句doublea,b;intw;longc;若各变量已正确赋值,则下列选项中正确的表达式是
在下列关系运算中,不改变关系表中的属性个数但能减少元组个数的是()。
对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是
以下选项中可作为C语言合法整数的是()。
设fp为指向某二进制文件的指针,且已读到此文件末尾,则函数feof(fp)的返回值为()。
随机试题
亚硫酸盐能破坏肉、鱼等动物性食品中的()。
甲醛、乙醛、丙酮三种化合物可用()一步区分开。
刺激迷走神经可用于治疗
女,20岁。上前牙松动3年,检查见上切牙松动Ⅱ°扇形移位,口腔卫生较好,初步印象为局限性青少年牙周炎。若已确诊,其可能还具有的特征如下,但不包括
满山红的质量控制成分是()
长上公司与艺海公司在履行合同过程中发生了纠纷。长上公司按照仲裁条款向选定的石家庄市仲裁委员会提交了仲裁申请。下列关于该案仲裁庭的组成的表述哪个是错误的?
下列关于简易程序的说法中,错误的是()。
危机发生时,如果公司能够采取有效的措施来消除不利影响,那么反而能够增加公司的声誉。一个非常好的声誉,可能仅仅因为一个事件,转眼间就被破坏殆尽;而一个不好的声誉,往往需要很长时间的努力才能消除它。如果以上陈述为真,则最能支持以下哪项陈述?()
马克思认为资本主义制度下的工资掩盖了资本主义剥削的实质,这是因为工资
设线性方程组(1)Ax=0的一个基础解系为α1=(1,1,1,0,2)T,α2=(1,1,0,1,1)T,α3=(1,0,1,1,2)T。线性方程组(2)Bx=0的一个基础解系为β1=(1,1,一1,一1,1)T,β2=(1,一1,1,一1,2)T,β3=
最新回复
(
0
)