首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指
admin
2017-09-23
38
问题
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数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) , Nf fp) ;
fclose ( fp) ;
for (i=0; i < N 一1; 1++)
for (j 一i+l; j < N; j ++)
/*********found*********/
if (s
.sno
【2】
s[j ] .sno)
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 },
{10004 f "FangFang", 90, 82, 87 J,{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");
{ printf ("\nNo: %ld Name: % 一8sscores: ",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) ;
for(j=0;j < N;j++)
{ printf ("\nNo: %ld Name: % 一8s
Scores : ",ss[j ] .sno, ss[j ] .name) ;
for(i=0;i < 3,i++)
printf ("%6.2f ", ss[j].
score
) ;
printf ("\n") :
}
}
选项
答案
(1)"rb" (2) > (3)fwrite
解析
填空1:题目中要求从形参filename所指的文件中读入学生的数据,以此可以看出本空应该填写”rb”。
填空2:此处的if语句是比较学号的大小,如果学号大就和学号小的换位,以此本空填写 >。
填空3:题目要求所有的学生数据均以二进制方式输出到文件中,因此本空填写fwrite。
转载请注明原文地址:https://kaotiyun.com/show/Fzxp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
C语言源程序名的后缀是()。
以下叙述错误的是()。
以下程序的输出结果是()。#include<stdio.h>main(){inta=8,b=6,m=1;switch(a%4){case0:m++;break;case1:m++;
设函数中有整型变量a,为保证其在未赋初值的情况下初值为0,应选择的存储类别是()。
以下程序:#include<stdio.h>#include<string.h>main(){charstr[]="abcd\n\123\xab";printf("%d",(str));}运行后的输
以下选项中非法的字符常量是()。
下面程序的运行结果是()。#definePOW(r)r*rmain(){intx=2,y=3,t;t=POW(x+y);printf("%d\n",t);}
以下语句段执行后的输出结果是()。#include<stdio.h>main(){intk=3;if(k)printf("###")elseprintf("&&&&");}
在一介C源程序文件中,要定义一个只允许本源文件中所有函数使用的全局变量,则该变量需要使削的存储类别是()。
在C语言中,函数返回值的类型最终取决于()。
随机试题
()是对会计对象具体内容所作的最基本分类,是会计对象基本的、主要的组成部分。
MydaughterandItooka()touraroundNewYorkCity.
膝反射神经系统检查:受检者取仰卧位,放松下肢,检查者左手在胭窝处托起膝关节使其屈曲约(),右手持叩诊锤叩击受检侧髌骨下方股四头肌腱,正常可见小腿伸展动作
A.人促红素B.甲基多巴C.利多卡因D.阿米卡星E.吡罗昔康可引起蛋白尿和急性肾衰竭的药品是()。
利用施工中产生的张力作用,使软土扬弃或压缩,然后填以强度较高的渗水土或粘土的软土处理技术是()。
假设某公司于三年前发行了5年期的浮动利率债券,现在利率大幅上涨,公司要支付高昂的利息,为了减少利息支出,该公司可以采用()。
下列关于股利分配的说法中,错误的是()。
设α1,α2,α3均为三维列向量,记矩阵A=(α1,α2,α3),B=(α1+α2+α3,α1+2α2+4α3,α1+3α2+9α3),如果|A|=1,那么|B|=______。
数据库管理系统(DBMS)是位于(136)之间的一层数据管理软件。关系数据库的概念模型式是(137)的集合。关系数据库的数据及更新操作必须遵循(138)等完整性规则。用符号∞表示的关系操作称为(139)操作。设有关系R和S如下:
Pendulumsareusedtoregulatemotioninsomescientificequipments.
最新回复
(
0
)