首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到student.dat文件中。函数fun的功能是从指定文件中找出指定学号的学生数据,读入此学生数据,对该生的分数进行修改,使每门课的分数加3分,修改后重写文件
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到student.dat文件中。函数fun的功能是从指定文件中找出指定学号的学生数据,读入此学生数据,对该生的分数进行修改,使每门课的分数加3分,修改后重写文件
admin
2013-04-02
92
问题
程序通过定义学生结构体变量,存储了学生的学号、姓名和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<string.h>main(){chara[]={’\1’,’\2’,’\3’,’\4’,’\0’};printf("%d%d\n",sizeof(a),strlen(a)
对于一个正常运行的C程序,以下叙述中正确的是
希尔排序属于______。
下面程序的输出结果是() #include<stdio.h> #include<string.h> { char*p1="abc",*p2="ABC",str[50]="xyz"; strcpy(str+2.strcat
结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、【】和限制使用goto语句。
如下图所示的二叉树后序遍历序列是【】。
对于建立良好的程序设计风格,下面描述正确的是()。
在关系数据模型中,通常可以把()称为属性,其值称为属性值。
随机试题
男,33岁,冬春季发作性节律性上腹部疼痛10年,近一周来疼痛剧烈,以半夜最甚,偶伴呕吐。胃镜检查示十二指肠后壁有直径0.5~1.5cm溃疡,周围充血、水肿,诊断为十二指肠球部活动性溃疡入院治疗。有关消化性溃疡的病史,下列哪项描述不正确
下列属于被覆上皮来源的肿瘤是
患者,男。48岁。右下齿痛2天,伴龈肿,口臭。便秘。脉滑数。治疗应首选
工程造价指数按其编制的方法不同分为()。【2005年真题】
甲公司生产多种产品的制造企业,为增值税一般纳税人,适用的增值税税率为17%,原材料采用实际成本核算,材料发出成本采用月末一次加权平均法计算,2016年12月1日,M材料库存数量为500千克,每千克实际成本为200元,该公司12月份发生有关存货业务如下:(1
谢春公司是C国第一家化妆品企业。传统产品鸭蛋粉、冰麝油及香件(誉称东方固体香水),通称谢春“三绝”。进入二十一世纪后,C国化妆品市场本土企业正面临着强大的外资企业的残酷挤压。国际巨头们运用其规模经济、资金、品牌、技术、渠道和服务等竞争优势,在C国化妆品行业
评述中法战争中国不败而败的原因。
Theworldeconomyhasbeengrowingatitsfastestforageneration.Money,goodsandideasmovearoundtheglobemorefreelytha
Amajority______collectivelymayberegardedasabeingwhoseopinionsand,mostfrequently,whoseinterestsareopposedtoth
TacomaNarrowsBridgeDisasterStrikesWhentheTacomaNarrowsBridgeopenedfortrafficon1July1940,itwascelebrateda
最新回复
(
0
)