首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到student.dat文件中。函数fun的功能是从指定文件中找出指定学号的学生数据,读入此学生数据,对该生的分数进行修改,使每门课的分数加3分,修改后重写文件
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到student.dat文件中。函数fun的功能是从指定文件中找出指定学号的学生数据,读入此学生数据,对该生的分数进行修改,使每门课的分数加3分,修改后重写文件
admin
2013-04-02
91
问题
程序通过定义学生结构体变量,存储了学生的学号、姓名和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://www.kaotiyun.com/show/nxJp777K
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
以下程序的功能是:将输入的正整数按逆序输出。例如:若输入135则输出531。请填空。#include<stdio.h>main(){intn,s;printf("Ente
有以下程序 fun(int x) { int p; if(x=0||x=1) return(3); p=x-fun(x-2); return p;
有以下程序 main() {int x,y,z; x=y=1; z=x++,y++,++y; printf("%d,%d,%d\n",x,y,z); } 程序运行后的输出结果是____
下列叙述中正确的是______。
数据库系统在其内部分为三级模式,即概念模式、内模式和外模式。其中,【】给出了数据库物理存储结构和物理存取方法。
有语句定义共用体类型变量: union {inti; charch; floatf; }a,bc; 上面定义的共用体变量a、b、c各占()字节。
结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、【】和限制使用goto语句。
在下列叙述中,错误的一条是()
如下图所示的二叉树后序遍历序列是【】。
有以下定义和语句,则sizeof(A)的值是【】,而sizeof(a.share)的值是【】。structdate{intday;intmouth;intyear;
随机试题
在同资产阶级的联盟中必须实行的方针是()
不能测血钠时补液种类应选择
根据《医疗用毒性药品管理办法》,关于医疗机构使用医疗用毒性药品的说法,错误的是()。
()和货物采购组织应分别编制技术议程和商务议程,与会议通知一起发给中标人。
进行索赔须有正当索赔理由和充分证据,索赔事件发生()d内,向监理工程师发出索赔意向通知。
我国宪法的修改由全国人大()。
下列关于医学常识的表述,正确的是()。
毛泽东指出:人民这个概念在不同的国家和各个国家的不同历史时期,有着不同的内容。在当代中国,一切赞成、支持和参加中国特色社会主义建设的阶级、阶层和社会力量,都属于人民的范畴,都是建设中国特色社会主义事业的依靠力量。其中,建设中同特色社会主义事业的根本力量是(
甲为了杀死乙,用棒子猛击乙脑袋致乙昏迷,但误以为乙已死,便将乙扔到池塘,结果使乙溺水而亡。对甲的行为,下列说法正确的是()。
Writeanessayof160~200wordsbasedonthefollowingdrawing.Inyouressay,youshould1)describethepicturebriefly,
最新回复
(
0
)