首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。 请在程序的
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。 请在程序的
admin
2015-08-23
38
问题
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANKl.C中。
不得增行或删行,也不得更改程序的结构!
#include
#defitie N 5
typedef struct student{
long sno;
char name[10];
float Score[3];
}STU;
void fun(char*filename,STU n)
{FILE*fp;
/**********found**********/
fp=fopen( _____1_____ ,"rb+");
/**********found**********/
fseek(_____2_____,一(long)sizeof(STU),
SEEK END);
/**********found**********/
fwrite(&n,sizeof(STU),1, _____3_____ );
fclose(fp);
}
main()
{STU t[N]={{1000l,"Machao",91,92,77),{10002,"CaoKai",75,60,8 8),
{10003,"LiSi",85,70,78),{10004,
"FangFang",90,82,87),{1 00 0 5,
"ZhangSan",95,8 0,8 8}};
STU n={1 0 0 0 6,"7,haoSi",55,70,68},
ss[N];
int i,j;FILE*fp;
fp=fopen("Student.dat","wb");
fwrite(t,Sizeof(STU),N,fp);
fciose(fp);
fp=fopen("student.dat","rb");
fread(ss,sizeof(STU),N,fp);
fclose(fp);
printf("\nThe original data:\n\n");
for(j=0;j
{printf("\nNo:%id Name:%一8 s
Scores:",ss[j].sno,ss[j].name);
for (i=0; i<3; i++)Printf
("%6.2 f",ss[j].s core
);
printf("\n");
}
fun("student.dat",n);
printf("\nThe data after modifing:
\n\n");
fp=fopen("student.dat","rb");
fread(ss,sizeof(STU),N,fp);
fclose(fp);
for(j=0 ; 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)filename (2)fp (3)fp
解析
第一空:“fp=fopen(_____1 _____"rb+");”补充fopen的参数,fopen的调用形式是:fp=fopen(文件名,文件使用方式),因此第一空处应填文件名“filename”。
第二空:此处是补充fseek函数的参数,fseek的调用形式是:fseek(fp,offset,position],其中第一个参数是文件型指针,故第二空处应填文件型指针变量“fp”。
第三空:fwrite的调用形式是(bu*ffer,size,count,fp),最后一个参数是文件型指针,故第三空处应填“fp”,将新的学生数据写在最后一个学生数据位置。
转载请注明原文地址:https://kaotiyun.com/show/GHDp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
下列程序的执行结果是()。#include<stdio.h>main(){inta,b,c;a=b=2;c=(a++)-1;printf("%d,%d",a,c);c+=-a++
在“文件包含”预处理语句的使用形式中,当#include后面的文件名用""(双撇号)括起时,寻找被包含文件的方式是()。
若函数调用时,参数为基本数据类型的变量,下列叙述中正确的是()。
下列程序的输出结果是()。main(){inti=1,j=2,k=3;if(i++==1&&(++j=3‖k++==3))printf("%d%d%d\n",i,j,k);}
下列能正确定义且赋初值的语句是()。
当变量c的值不为2、4、6时,值也为“真”的表达式是
有以下结构体说明和变量的定义,且指针p指向变量a,指针q指向变量b,则不能把结点b连接到结点a之后的语句是【】。structnode{chardata;structnode*next;}a,b
已有定义:charc;,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是
已知数据表A中每个元素距其最终位置不远,为节省时间,应采用的算法是
用筛选法可得到2~n(n
随机试题
卫生部1989年12月发布的医院分级管理试行草案有以下要求,但除外
自动排放管道中的凝结水,并防止蒸汽泄漏的阀门是()。
在单元格中的段落标记或文字左边单击,可以选取()。
甲、乙两人同时加工同样多的零件,甲每小时加工40个。当甲完成任务的时,乙距离完成任务的还差40个,这时乙开始提高工作效率,又用了7.5小时完成了全部加工任务。这时甲还剩下20个零件没完成。乙提高工效后,每小时加工零件多少个?
计算
设f(x)在[a,b](0<a<b)上连续,在(a,b)内可导,则在(a,b)内存在ξ,η,使
Ayoungconsultant’slifeistiring.A【C1】______weekstartsbeforedawnonMonday,witharushtotheairportanda【C2】______to
有以下程序:#include<stdio.h>#include<string.h>#includevoidf(char*s,char*t){chark;k=*s;*s=*t;*t=k;s+
下述有关选项组叙述正确的是______.
一天晚上,一群游牧部落的牧民正准备安营扎寨休息,忽然被一束耀眼的光芒所笼罩。他们知道神就要出现了。因此,他们殷切地期盼着,恭候着来自上苍的重要旨意。最后,神终于说话了:“你们要沿路多捡一些鹅卵石,把它们放在你们的马褡子里。明天晚上,你们会非常快乐
最新回复
(
0
)