首页
外语
计算机
考研
公务员
职业资格
财经
工程
司法
医学
专升本
自考
实用职业技能
登录
计算机
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。 请在程序的
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。 请在程序的
admin
2015-08-23
36
问题
程序通过定义学生结构体变量,存储了学生的学号、姓名和3门课的成绩。所有学生数据均以二进制方式输出到文件中。函数fun的功能是重写形参filename所指文件中最后一个学生的数据,即用新的学生数据覆盖该学生原来的数据,其他学生的数据不变。
请在程序的下划线处填入正确的内容并把下划线删除,使程序得出正确的结果。
注意:源程序存放在考生文件夹下的BLANKl.C中。
不得增行或删行,也不得更改程序的结构!
#include
#defitie N 5
typedef struct student{
long sno;
char name[10];
float Score[3];
}STU;
void fun(char*filename,STU n)
{FILE*fp;
/**********found**********/
fp=fopen( _____1_____ ,"rb+");
/**********found**********/
fseek(_____2_____,一(long)sizeof(STU),
SEEK END);
/**********found**********/
fwrite(&n,sizeof(STU),1, _____3_____ );
fclose(fp);
}
main()
{STU t[N]={{1000l,"Machao",91,92,77),{10002,"CaoKai",75,60,8 8),
{10003,"LiSi",85,70,78),{10004,
"FangFang",90,82,87),{1 00 0 5,
"ZhangSan",95,8 0,8 8}};
STU n={1 0 0 0 6,"7,haoSi",55,70,68},
ss[N];
int i,j;FILE*fp;
fp=fopen("Student.dat","wb");
fwrite(t,Sizeof(STU),N,fp);
fciose(fp);
fp=fopen("student.dat","rb");
fread(ss,sizeof(STU),N,fp);
fclose(fp);
printf("\nThe original data:\n\n");
for(j=0;j
{printf("\nNo:%id Name:%一8 s
Scores:",ss[j].sno,ss[j].name);
for (i=0; i<3; i++)Printf
("%6.2 f",ss[j].s core
);
printf("\n");
}
fun("student.dat",n);
printf("\nThe data after modifing:
\n\n");
fp=fopen("student.dat","rb");
fread(ss,sizeof(STU),N,fp);
fclose(fp);
for(j=0 ; j
{printf("\nNo:%ld Name:%一8 s
Scores:",ss[j].sno,ss[j].name);
for (i=0; i<3; i++)Printf
("%6.2 f",ss[j].score
);
printf("\n");
}
}
选项
答案
(1)filename (2)fp (3)fp
解析
第一空:“fp=fopen(_____1 _____"rb+");”补充fopen的参数,fopen的调用形式是:fp=fopen(文件名,文件使用方式),因此第一空处应填文件名“filename”。
第二空:此处是补充fseek函数的参数,fseek的调用形式是:fseek(fp,offset,position],其中第一个参数是文件型指针,故第二空处应填文件型指针变量“fp”。
第三空:fwrite的调用形式是(bu*ffer,size,count,fp),最后一个参数是文件型指针,故第三空处应填“fp”,将新的学生数据写在最后一个学生数据位置。
转载请注明原文地址:https://jikaoti.com/ti/ySi0FFFM
本试题收录于:
二级C语言题库NCRE全国计算机二级分类
0
二级C语言
NCRE全国计算机二级
相关试题推荐
运行下列程序,若从键盘输入字母“a”,则输出结果是()。charc;c=getchar();if(c>=’a’&&c<=’g’)c=c+4;elseif(c>=’g’&&c<=’z’)c=c-21;
下列叙述中错误的是()。
以下函数rotate的功能是:将a所指N行N列的二维数组中的最后一行放到b所指二维数组的第0列中,把a所指二维数组中的第0行放到b所指二维数组的最后一列中,b所指二维数组中其他数据不变。#defineN4voidrotate(i
有以下程序:voidsum(inta[]){a[0]=a[-1)+a[1];}main(){inta[10]=(1,2,3,4,5,6,7,8,9,10};sum(&a[2]);printf("%d
以下数据库除______外,均为严格意义上的DBMS系统。
以下程序用于判断a、b、c能否构成三角形,若能,输出YES,否则输出NO。当给a、b、c输入三角形三条边长时,确定a、b、c能构成三角形的条件是需同时满足三个条件:a+b>c,a+c>b,b+c>a。请填空。main(){floata,b
现有两个C程序文件T18.c和myfun.c同在TC系统目录(文件夹)下,其中T18.c文件如下:#include#include"myfun.c"main(){fun();printf("\n");}myf
变量a中的数据用二进制表示的形式是01011101,变量b中的数据用二进制表示的形式是11110000。若要求将a的高4位取反,低4位不变,所要执行的运算是
已有定义:charc;,程序前面已在命令行中包含ctype.h文件,不能用于判断c中的字符是否为大写字母的表达式是
用筛选法可得到2~n(n
随机试题
转朱阁,低绮户,________。
关于试用买卖的正确表述是()。A.试用买卖的买受人在试用期内可以购买标的物,也可以拒绝购买B.试用期届满,买受人对是否购买标的物未作表示的,视为拒绝购买C.试用买卖的买受人在试用期内不得购买标的物,仅在期满后方可购买D.试用买卖的当事人对标
作用维持时间最长的巴比妥类药物是
患者,男性,78岁,左下颌后牙黏膜出现破溃疼痛1年。口腔检查:残冠,颊侧黏膜上有一个直径1.5cm的深溃疡。周围硬,边缘不齐。底部呈菜花状,扪诊基底部有硬结。触诊下颌下淋巴结肿大。为明确诊断,最佳辅助诊断方法是
关于施工现场宿舍管理的说法,正确的有()。
自律性是会计法律制度与会计职业道德在()上的区别。
约定购回式证券交易是指符合条件的客户以约定价格向托管其证券的证券公司卖出标的证券,并约定在未来某一日期客户按照另一约定价格从证券公司购回标的证券,除指定情形外,待购回期间标的证券所产生的相关权益于权益登记日()的交易行为。
经国家审批,某企业计划建造一个核电站,其主体设备核反应堆将会对当地的生态环境产生一定的影响。根据法律规定,企业应在该项设备使用期满后将其拆除,并对造成的污染进行整治。20×1年1月1日,该项设备建造完成并交付使用,建造成本共计100000万元。预计使用年限
甲公司是一家经营粮食生产的公司,经过多年的发展逐渐壮大,由于业务的需要,该公司需要筹集资金,通过资本结构的分析,该公司需要筹集一部分债务资金,而且目前的借款利率比较低,则下列方式不合理的是()。
报表设计中,可以通过在组页眉或组页脚中创建【】来显示记录的分组汇总数据。
最新回复
(
0
)