首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到student.dat文件中。函数fun的功能是从指定文件中找出指定学号的学生数据,读入此学生数据,对该生的分数进行修改,使每门课的分数加3分,修改后重写文件
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到student.dat文件中。函数fun的功能是从指定文件中找出指定学号的学生数据,读入此学生数据,对该生的分数进行修改,使每门课的分数加3分,修改后重写文件
admin
2013-04-02
56
问题
程序通过定义学生结构体变量,存储了学生的学号、姓名和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全国计算机二级
相关试题推荐
当执行以下程序时,输入1234567890<回车>,则其中while循环体将执行【 】次。#include<stdio.h>main(){charch;while((ch=getchar())==’0’)prinft("#
有以下程序 main() { char ch[]="uvwxyz",*pc; pc=ch;printf("%c\n",*(pc+5)); } 程序运行后的输出结果是
有一个名为init.txt的文件,内容如下:#defineHDY(A,B)A/B#definePRINT(Y)printf("y=%d\n",Y)有以下程序#include"init.txt"ma
以下语句或语句组中,能正确进行字符串赋值的是
当执行下面的语句定义一维数组a并赋以初值后,此数组的元素中不正确的一个赋值结果是() staticinta[10]={0,1,2,3,4,5};
以下选项中不合法的用户标识符是()
数据库系统在其内部分为三级模式,即概念模式、内模式和外模式。其中,【】是用户的数据视图,也就是用户所见到的数据模式。
在软件开发中,下面任务不属于设计阶段的是______。
可在C程序中用作用户标识符的一组标识符是
已知字母A的ASCⅡ码为十进制数65,下面程序的输出结果是()main(){charch1,ch2;ch1=’A’+’5’-’3’;ch2=’A’+’6’-’3’;printf("%d,%c\n
随机试题
化工生产的操作常用的有连续操作、半连续操作、间歇操作等。 ()
保险经纪机构任免高级管理人员,应当自决定作出之日起( )内,书面报告中国保监会。
企业文化的中间层面是指()。
“物华天宝,龙光射牛斗之墟;人杰地灵,徐孺下陈蕃之榻”出自()。
中国古代思想家荀子在论述“礼”的由来时曾说:人一生下来就有欲望,如果欲望得不到满足,那么就不会没有追求,如果追求没有限度和止境,那么就不能不起争夺,争夺就会导致混乱,混乱就会导致贫穷。根据上述说法可以推出()。
判断下列句子是否符合普通话语法规范。由于工人努力提高产品质量,我国棉布的出口深受各国顾客的欢迎。(扬州大学2017)
甲为牟利,未经著作权人许可,私自复制影视作品的高密度数字视频光盘(DigitalVideoDisc,简称DVD)出售,销售金额4万元,获纯利润3万余元。这批DVD因质量太差导致他人在播放时经常死机。对甲的行为应定为()(2011年非法学基础课单
《开国大典》
产品价格的上升通常会使其销量减少,除非价格上升的同时伴随着质量的提高。时装却是一个例外。在某时装店,一款女装标价86元无人问津,老板灵机一动改为286元,衣服却很快售出。以下哪一项陈述如果为真,最能解释上述反常现象?
Returningtothehotel,______.
最新回复
(
0
)