首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指
admin
2020-05-14
112
问题
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指的文件中,覆盖原来的文件内容。
请在程序的中括号处填入正确的内容并把中括号删除,使程序得出正确的结果。
注意:部分源程序在文件BLANKl.C中。
不得增行或删行,也不得更改程序的结构!
试题程序:
#include
#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
for(j=i+1;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(STH),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
{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
{print~("\nNo:%id Name:%一8s
Scores:",ss[j].sno,ss[j].name);
for(i=0;i<3;i++)
printf("%6.2 f",ss[j].
score
);
printf("\n");
}
}
选项
答案
(1)"rb" (2)> (3)fwrite
解析
填空1:题目中要求从形参filename所指的文件中读入学生的数据,以此可以看出本空应该填写”rb”。
填空2:此处的if语句是比较学号的大小,如果学号大就和学号小的换位,以此本空填写>。
填空3:题目要求所有的学生数据均以二进制方式输出到文件中,因此本空填写fwrite。
转载请注明原文地址:https://www.kaotiyun.com/show/Gv8p777K
本试题收录于:
二级C题库NCRE全国计算机二级分类
0
二级C
NCRE全国计算机二级
相关试题推荐
根据下面的程序,可以在主程序中使用的合法语句是( )。 #include <iostream> using namespace std; class Person{ int age; public:
下面是“二维向量”vector2D的定义,其中作为成员函数重载的运算符“+”的功能是将两向量的分量x和y对应相加,然后返回作为相加结果的新对象。那么应该在横线上填入的语句是()。classvector2D{private
以下程序的输出是()。structst{intx;int*y;}*p;intdt[4]={10,20,30,40};structst
指针变量所保存的不是一般的数据值,而是程序中另一个对象的【】。
不合法的main函数命令行参数表示形式是()。
下列模式中,能够给出数据库物理存储结构与物理存取方法的是______.
若有函数fun(x,y),并且已经使函数指针变量p指向函数fun,则使用p调用函数fun的方法是_____________。
下面关于纯虚函数和抽象类的描述中,______是错误的。
关系数据库管理系统能实现的专门关系运算包括()
已知一个类Sample,()是定义指向类Sample成员函数的指针,假设类有三个公有成员:voidfl(int),voidf2(int)和inta。
随机试题
简述人力资源的内涵。
丙型肝炎病毒(HCV)的主要传播途径是
传统颗粒胶片的感光材料为
某公司2009年和2010年的净利润分别为6400万元和9000万元,2009年和2010年的公司人数分别为4000人和4500人。则人均净利润增长率为()。
对于银行已入账而企业尚未入账的未达账项,企业应当()。
咨询师职责限制的内涵涉及()等内容。
要求儿童具体捕述照片上的人物是什么样的,正在干什么,他们的表情如何,自己看了照片以后的感觉等是说明性讲述。()
党的十八大把科学发展观列入了党章,下列关于科学发展观的说法,错误的是()。
已知二次型f(x1,x2,x3)=(1一a)x12+(1一a)x22+2x32+2(1+a)x1x2的秩为2.求a的值;
设单位质点在水平面内作直线运动,初速度ν|t=0=ν0,已知阻力与速度成正比(比例系数为1),问t为多少时此质点的速度为?并求到此时刻该质点所经过的路程.
最新回复
(
0
)