首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到student.dat文件中。函数fun的功能是从指定文件中找出指定学号的学生数据,读入此学生数据,对该生的分数进行修改,使每门课的分数加3分,修改后重写文件
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到student.dat文件中。函数fun的功能是从指定文件中找出指定学号的学生数据,读入此学生数据,对该生的分数进行修改,使每门课的分数加3分,修改后重写文件
admin
2013-04-02
53
问题
程序通过定义学生结构体变量,存储了学生的学号、姓名和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全国计算机二级
相关试题推荐
下列叙述中正确的是______。
以下程序的输出结果是【 】。#include<stdlib.h>main(){char*s1,*s2,m;s1=s2=(char*)malloc(sizeof(char));*s1=15;*s2=20;
以下程序的功能是:利用指针指向三个整型变量,并通过指针运算找出三个数中的最大值,输出到屏幕上。请填空。main(){intx,y,z,max,*px,*py,*pz,*pmax;scanf("%d%d%d",&x,&y,&z
有以下程序 main() { char ch[]="uvwxyz",*pc; pc=ch;printf("%c\n",*(pc+5)); } 程序运行后的输出结果是
有以下程序main(){intn=0,m=1,x=2;if(!n)x-=1;if(m)x-=2;if(x)x-=3;printf("%d\n",x);}执行后输出结果是【
下列字符串是用户自定义标识符的是______。
实体联系模型是一种常用的高级概念数据模型,而【】是实体联系模型中的核心。
函数sstrcmp()的功能是对两个字符串进行比较。当s所指字符串和t所指字符串相等时,返回值为0;当s所指字符串大于t所指字符串时,返回值大于0;当s所指字符串小于t所指字符串时,返回值小于0(功能等同于库函数strcmp())。请填空。#in
在结构化方法中,软件功能分解属于下列软件开发中的______阶段。
已知字母A的ASCⅡ码为十进制数65,下面程序的输出结果是()main(){charch1,ch2;ch1=’A’+’5’-’3’;ch2=’A’+’6’-’3’;printf("%d,%c\n
随机试题
患者,女性,35岁。因月经过多且经期延长,贫血,血红蛋白仅56g/L,而决定行全子宫切除术。术前主刀医生在考虑手术各步注意事项时,可不必顾虑的是
一般来说,元认知策略可分为()。
在整车销售、售后服务、配件供应、信息反馈的过程中,售后服务是最重要的,是中心内容。()
债务人对同一债权人负担数宗同种类债务,而债务人的履行不足以清偿全部债务时,决定该履行抵充某宗或某几宗债务的现象,称之为()
美国《化学文摘》摘引的医药学期刊达
A.蕈伞型食管癌B.溃疡型食管癌C.缩窄型食管癌D.贲门失弛缓症E.食管良性狭窄(瘢痕)梗阻症状出现较晚,钡餐造影有龛影,提示
关于课堂教学的环境,实验证明学生座位的选择会影响学习,其中坐()是最积极的学习者。
随着炎炎夏日的到来,防晒成为人们出行的必备行为。下列有关防晒的知识正确的是()。
中国妇女发展基金会将委托专业金融机构对中国女足发展基金进行______和______,其收益部分用于______中国女子足球队改善生活和训练条件,开展交流与合作,培养选拔后备力量。填入划横线部分最恰当的一项是()。
甜饼干会导致蛀牙。甜饼干与牙齿接触的时间越长,就越容易导致蛀牙。而饴糖比甜饼干融化得更快,所以吃饴糖比吃甜饼干引起蛀牙的可能性要小。以下哪项最为恰当地指出了上述论证中存在的逻辑漏洞?
最新回复
(
0
)