首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到student.dat文件中。函数fun的功能是从指定文件中找出指定学号的学生数据,读入此学生数据,对该生的分数进行修改,使每门课的分数加3分,修改后重写文件
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到student.dat文件中。函数fun的功能是从指定文件中找出指定学号的学生数据,读入此学生数据,对该生的分数进行修改,使每门课的分数加3分,修改后重写文件
admin
2013-04-02
65
问题
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到student.dat文件中。函数fun的功能是从指定文件中找出指定学号的学生数据,读入此学生数据,对该生的分数进行修改,使每门课的分数加3分,修改后重写文件中该学生的数据。即用该学生的新数据覆盖原数据,其他学生数据不变;若找不到,则什么都不做。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANKl.C中。
不得增行或删行,也不得更改程序的结构!
#include
#define N 5
typedef struct student {
long sno;
char name[10];
float score[3];
} STU;
void fun(char *filename, long sno)
{FILE *fp;
STU n; int i;
fp = fopen(filename,"rb+");
/**********found**********/
while (!feof(【1】))
{fread(&n, sizeof(STU), 1, fp);
/**********found**********/
if (n.sno【2】sno) break;
}
if (!feof(fp))
{for (i=0; i<3; i++) n.score
+= 3;
/**********found**********/
fseek(【3】, -(long)sizeof(STU), SEEK_CUR);
fwrite(&n, sizeof(STU), 1, fp);
}
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}}, ss[N];
int i,j; FILE *fp;
fp = fopen("student.dat", "wb");
fwrite(t, sizeof(STU), N, fp);
fclose(fp);
printf("\nThe original data :\n");
fp = fopen("student.dat", "rb");
fread(ss, sizeof(STU), N, fp);
fclose(fp);
for (j=0; 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", 10003);
fp = fopen("student.dat", "rb");
fread(ss, sizeof(STU), N, fp);
fclose(fp);
printf("\nThe data after modifing :\n");
for (j=0; 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");
}
}
选项
答案
fp == fp
解析
第一空:“while (!feof(__1__))”是在文件没有达到文件尾的情况不断读取文件内容,文件状态检测函数feof的调用形式为:feof(fp),其中fp为文件指针,故第一空处应为“fp”。
第二空:题干要求找到指定学号的学生数据,“if (n.sno__2__sno)”是比较读取出来的n学生的学号和指定的学好sno是否相等,故第二空处应为“==”。
第三空:此处是补充fseek函数的参数,fseek的调用形式是:fseek(fp, offset, position),其中第一个参数是文件型指针,故第三空处应填文件型指针变量“fp”。
转载请注明原文地址:https://kaotiyun.com/show/nxJp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
程序中已构成如下图所示的不带头结点的单向链表结构,指针变量s、p、q均已正确定义,并用于指向链表结点,指针变量s总是作为头指针向链表的第—个结点。若有以下程序段 q=s; s=s->next; p=s; while(p->next) p
有以下程序 fun(int x,int y) { static int m=0,i=2; i+=m+1; m=i+x+y; return m; } main()
有以下程序main(){intn=0,m=1,x=2;if(!n)x-=1;if(m)x-=2;if(x)x-=3;printf("%d\n",x);}执行后输出结果是【
下面程序的输出是______。main(){inta=6,b=3;printf("%d\n",b=(a/b,a%b));}
关系表中的每一横行称为一个______。
数据库是指按照一定的规则存储在计算机中的【】的集合,它能被各种用户共享。
模块本身的内聚是模块独立性的重要性度量因素之一。在7类内聚中,具有最强内聚的一类是______。
在关系运算中,【】运算是在指定的关系中选取所有满足给定条件的元组,构成一个新的关系,而这个新的关系是原关系的一个子集。
按数据流的类型,结构化设计方法有两种设计策略,它们是变换分析设计和【】。
随机试题
川芎茶调散中擅治少阳、厥阴经头痛的是
呼吸衰竭患者血气分析结果:PH7.188,Pa-CO275mmHg,PaO250mmHg,HCO3-27.6mmol/L,碱乘余-5mmol/L,据此结果诊断该患者酸碱失衡类型是()
一患儿以肠梗阻入院手术,术中医师将膀胱认作囊肿切除,造成患儿潴尿、排尿功能严重受损。该事件中,医师的行为属
患者,男,50岁。便时肛内有肿物脱出,色紫暗,表面破溃、糜烂,肛门坠痛,肛内指检有灼热感,舌红,苔黄腻,脉弦数。该患者宜选用的治法是
生态学是()。
修订世贸组织多边贸易协议的有关条款,须经()多数票通过。
A国际运输公司(增值税一般纳税人)位于市区,在2016年11月业务如下:(1)购置办公电脑10台,取得增值税专用发票,注明金额50000元,税额8500元;购置办公桌椅,取得增值税专用发票,注明金额30000元;购买叉车一辆,取得增值税专用发票,注明金额3
2012年的7月1日起,我国将强制实施新版的《生活饮用水卫生标准》。与老国标相比,新国标的特点不包括下列哪项?()
长白山天池从成冈上分类,属于()。
A、Salesmanandcustomer.B、Bossandemployee.C、Doctorandpatient.D、Teacherandstudent.C对话中男士说他胃疼,女士说为他检查一下,可以推断出二人是医生和病人的关系
最新回复
(
0
)