首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blan1.C。此程序定义了学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filena
使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blan1.C。此程序定义了学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filena
admin
2020-06-02
45
问题
使用VC++2010打开考生文件夹下blank1中的解决方案。此解决方案的项目中包含一个源程序文件blan1.C。此程序定义了学生结构体变量,存储了学生的学号、姓名和三门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是从形参filename所指的文件中读入学生数据,并按照学号从小到大排序后,再用二进制方式把排序后的学生数据输出到filename所指的文件中,覆盖原来的文件内容。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:部分源程序在文件BLANKl.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},{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<N;j++)
{ printf("\nNo:%ld 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<N;j++)
{ printf("\nNo:%ld Name:%-8 s 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://kaotiyun.com/show/YqCp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
有以下程序:#include<stdio.h>main(){inty=10:while(y--);printf("y=%d\n",y);}程序执行后的输出结果是()。
下列条件语句中,输出结果与其他语句不同的是()。
有如下程序段:intx=12;doubley=3.141593;printf("%d%8.6f",x,y);其输出结果是()。
若变量x、y已正确定义并赋值,以下符合C语言语法的表达式是()。
若有定义intx,y;并已正确给变量赋值,则以下选项中与表达式(x-y)?(x++):(y++)中的条件表达式(x-y)等价的是()。
在容量为15的循环队列中,若头指针front=6,尾指针rear=9,则循环队列中的元素个数为
有以下程序intf(intm)main(){intn=0;{staticintn=0;printf("%d,",f(++n));n+=m;return
有以下程序#includeintf(intn);main(){inta=3,s;intf(intn){staticinta=1;s=f(a);n+=a
有以下程序#includemain(){inti,s=1:intfun(){staticintx=1;for(i=1;i
若有以下函数首部intfun(doublex[10],int,*n)则下面针对此函数的函数声明语句中正确的是
随机试题
下列关于瞳孔大小的叙述,正确的是()
A、低流量、低浓度持续给氧B、高流量给氧C、高压氧舱D、高流量通过50%乙醇湿化后给氧E、低流量通过30%乙醇湿化后给氧重症哮喘吸氧原则是()
期前收缩三联律是指
两个以上的申请人分别就同样的发明创造申请专利的,专利权授予()。
甲公司2017年1月1日发行三年期可转换公司债券,实际发行价款200000万元,其中负债成分的公允价值为180000万元。假定发行债券时另支付发行费用600万元。不考虑其他因素,甲公司发行债券时应确认的“其他权益工具”科目的金额为()万元。
纳税人欠缴应纳税款,采取转移或者隐匿财产的手段,致使税务机关无法追缴欠缴的税款,数额在1万元以上的,应追究其刑事责任。( )
阅读下列材料,完成教学设计。材料1:《普通高中化学课程标准(实验)》的“内容标准”:“通过实例了解人体必需的维生素的主要来源及其摄入途径。了解维生素在人体中的作用。”“认识微量元素对人体健康的重要作用。”材料2:普通
教师在讲授古代诗歌鉴赏时强调,“借景抒情”是诗人常用来抒情的重要表现手法,并列举了一些例句,下列没有使用“借景抒情”的手法的诗句是()。
有以下程序main(){inti,s=0,t[]={1,2,3,4,5,6,7,8,9};for(i=0;i<9;i+=2)s+=*(t+i);printf("%d\n",s);}程序执行后的输出结果是
Peopleliketothinkthatlifewasbetterinthepast.Theairwascleaner,thewaterwasclearer,people【C1】______friendlier,l
最新回复
(
0
)