首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。 请在程序的下划线处
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。 请在程序的下划线处
admin
2019-09-02
24
问题
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参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,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]={{10001,"MaChao",91,92,77},{10002,"CaoKai",75,60,88},{10003,"LiSi",85,70,78},{10004,"FangFang",90,82,87},{10005,"ZhangSan",95,80,88}};
STU n={10006,"ZhaoSi",55,70,68},ss[N];
int i,j;FILE*fp;
fp=fopen("student.dat","wb");
fwrite(t,sizeof(STU),N,fp);
fclose(fp);
fp=fopen("student.dat","rb");
fread(ss,Sizeof(STU),N,fp);
fclose(fp);
printf("\nThe original data:\n\n");
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");
}
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<N;j++)
fprintf("\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)filename (2)fp (3)fp
解析
本题中函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,本题主要考察文件的读写。
第一空:“fp=fopen(___1___,"rb+");”补充fopen的参数,fopen的调用形式是:fp=fopen(文件名,文件使用方式),因此,第一空处应填文件名“filename”。
第二空:此处是补充fseek函数的参数,fseek的调用形式是:fseek(fp,offset,position),其中,第一个参数是文件型指针,故第二空处应填文件型指针变量“fp”。
第三空:fwrite的调用形式是(buffer,size,count,fp),最后一个参数是文件型指针,故第三空处应填“fp”,将新的学生数据写在最后一个学生数据位置。
转载请注明原文地址:https://jikaoti.com/ti/ZMf0FFFM
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
下列选项中不属于结构化程序设计方法的是
阅读以下程序#includemain(){intcase;floatprintf;printf("请输入2个数:"):scanf("%d%f",&case,&printF);printf("%d%f\n",case,printF);}
下列选项中,不能用作标识符的是
有以下程序voidfun(intx,inty,int*C,int*d)D){*c=x+y;*d=x—y;}main(){inta=4,b=3,c=0,d=0;fun(a,b,&c,&d);printf(
有以下程序#includevoidf(int*p,int*q);main(){intm=1,n=2,*r=&m;f(r,&n);printf("%d,%d",m,n);}voidf(int*p,int*q){p=
以下程序段中,与语句:k=a>b?(b>c?1:0):0;功能相同的是
在嵌套使用if语句时,C语言规定else总是
有三个关系R、S和T如下: 则由关系R和S得到关系T的操作是
有三个关系R、S和T如下: 其中关系T由关系R和S通过某种操作得到,该操作为
以下选项中合法的标识符是
随机试题
患者,男性,36岁。上腹部疼痛伴恶心、呕吐4小时入院。5小时前进食晚餐(红烧肉、排骨、白酒等),1小时后突发腹痛,以上腹部为主,胀痛性质,持续发作,半蹲位稍可缓解,伴恶心、呕吐,无腹泻。提示:体查:体温38.5℃,心率120次/分,呼吸25次/分,血压10
分段诊刮顺序是
气性坏疽最关键的治疗措施是
根据《标准施工合同》,履约担保和预付款担保的主要区别有()。
在一个工程项目中,具有独立的设计文件、竣工后可以独立发挥生产能力或效益的一组配套齐全的工程项目为( )。
关于数字印刷的说法,正确的有()等。
《祭侄文稿》是()为祭奠其侄季明而作的祭文稿。
学习中所谓的“触类旁通”“举一反三”是知识的()在理解中的表现。
关于容器,以下叙述中错误的是()。
Becausethereisevidenceofseverelyharmfuleffectsfromchemicaldumps,thegovernmenthas_____toughercleanupmeasures.
最新回复
(
0
)