首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指
admin
2018-03-28
33
问题
程序通过定义学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数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全国计算机二级
相关试题推荐
非空的循环单链表head的尾结点(由p所指向),满足()
若有结构体定义:structstu{intnum;charsex;intage;}a1,a2;则下列语句中错误的是()。
若a是float型变量,b是unsigned型变量,以下输入语句合法的是()
以下程序段的输出结果是【 】。inti=9; printf("%o\n",i);
以下程序的输出结果是【】。#defineMAX(x,y)(x)>(y)?(x):(y)main(){inta=5,b=2;c=3,d=3,t;t+MAX(a+,b,c+D)*10;
设x和y均为int型变量,且x=1,y=2,则表达式double(1+x/y)的值为【】。
下列程序输出结果是()。#includemain(){chara[]={’a’,’b’,’c’,’d’,’e’,’f’,’\0’};inti,j;i=sizeof(a);
fgets(str,n,fp)函数从文件中读入一个字符串,以下错误的叙述是()。
有三个关系R?S和T如下:则由关系R和S得到关系T的操作是
以下程序运行后的输出结果是【】。voidfun(intX,inty){x=x+y;y=x-y;x=x-y;printf("%d,%d,",x,y);}main(){intx=2,y=3;fun(x
随机试题
历史观的基本问题是()
当前防治流感最有效的方法是什么
修复体粘固后患牙长时间持续疼痛,最可能
某企业报检一批出口玩具,并于2010年9月10日领取了《出境货物通关单》。以下情况中,企业须重新报检的有()。
【真题(初级)】下列各项中,违反货币资金业务内部控制要求的有()。
ABC会计师事务所负责审计甲公司2011年度财务报表,并委派A注册会计师担任审计项目合伙人。A注册会计师在审计甲公司关联方交易的过程中遇到下列事项,请代为做出正确的专业判断。A注册会汁师确定的下列审计程序中,对于发现甲公司管理层利用关联方交易编制虚假财
镜泊湖是大约1万年前,由于()而形成的。
Jack:I’dlikeahaircut,please.Barber:Wouldyoucareforashaveandashampooaswell?Jack:______.Ahaircutwillbejust
“乐以天下,忧以天下,然而不王者,未之有也”与下列哪一观点属于同一学派。()
A、Achurchclergy.B、Apsychologist.C、Acounselor.D、Asocialworker.A本题考查重要细节。根据句(1)可知,谢利在宾夕法尼亚州的布林茅尔长老会教堂担任副牧师,因此[A]为正确答案。
最新回复
(
0
)