皮皮学,免费搜题
登录
logo - 刷刷题
搜题
【简答题】
●试题四 阅读下列程序说明和C代码,将应填入(n)处的字句写在答题纸的对应栏内。 【说明】 本程序从若干个原始文件合并成的合并文件中恢复出其中一个或全部原始文件。所有文件均作为二进制文件进行处理。合并文件中先顺序存储各原始文件,然后顺序存储各原始文件的控制信息,即文件名、文件长度和在合并文件中的位置(偏移量 )。其结构为: typedef struct{char fname [256]/*原始文件名*/ long length;/*原始文件长度(字节数)*/ long offset;/*原始文件在合并文件中的位置(偏移量)*/ }FileInfo; 在合并文件最后存储如下一个特殊的标志信息作为合并文件的结束标记: FileInfo EndF1ag={'Combined File',0,_offset}; 其中_offset是第一个原始文件的控制信息在合并文件中的位置(偏移量)。 启动本程序的命令行的格式是: 程序名合并文件名[原始文件名] 如果不指定原始文件名,默认恢复合并文件中的所有原始文件。 程序中涉及的部分文件操作的库函数简要说明如下: int fread (void *buffer,int size,int count,FILE *fbin):从二进制文件流fbin中读取count块长度为size字节的数据块到buffer指向的存储区。返回值为实际读取的数据块数。 int fwrite(void *buffer,int size,int count,FILE *fbin):各参数和返回值的意义与fread相同,但对文件进行写操作。 int fseek(FILE *fbin,long offset,int position):将文件流fbin的读/写位置以position为基准移动offset字节。position的值可以是SEEK_SET(文件头),SEEK_CUR(当前位置),SEEK_END(文件尾);offset为正,表示向文件尾方向移动,为负表示向文件头方向移动,为零表示到基准位置。 long ftell(FILE *fbin):返回文件流fbin的当前读/写位置(相对于文件头的偏移量)。上述偏移量均以字节为单位,即偏移字节数。 【程序】 #include #include typedef struct{char fname[256];long length;long offset; }FileInfo; void copyfile(FILE *fin,FILE *fout,int fsize) {char buf[1024];int siz=1024; while(fsize !=0){/*每次复制siz个字节,直至复制完fsize个字节*/ if(siz >fsize) (1) ; fread(buf,1,siz,fin);fwrite(buf,1,siz,fout); fsize= (2) ;} } int dofile(FILE *fin,FileInfo *inp) { long offset; FILE *fout; if((fout=fopen(inp->fname,'wb'))==NULL){ printf('创建文件错误:%s\n',inp->fname); return 1; } offset= (3) ;/*保留合并文件读/写位置*/ fseek( (4) );/*定位于被恢复文件首*/ copyfile(fin,fout,inp->length); fclose(fout); printf('\n---文件名:%\n文件长:%1d. \n',inp->fname,inp->length); (5) ;/*恢复合并文件读/写位置*/ return 0; } int main(int argc,char *argv[]) {FileInfo finfo; char fname[256];FILE *fcmbn; if(argc<2){printf('输入合并文件名:');scanf('%s',fname);} else strcpy(fname,argv[1]); if((fcmbn=fopen(fname,'rb'))==NULL){ printf('文件打开错误:%s\n',fname);return 1; } fseek(fcmbn,-sizeof(FileInfo),SEEK_END);/*定位于合并文件末尾的标志信息*/ fread(&finfo,1,sizeof(FileInfo),fcmbn); if(finfo.length!=0 || strcmp(finfo.fnane,'CombinedFile')){ printf('指定的文件不是合法的合并文件\n'); fclose(fcmbn);return 2; } fseek(fcmbn,finfo.offset,SEEK_SET);/*定位于首个原始文件的控制信息*/ for(;;){/*恢复一个(argc>2)或全部(argc=2)原始文件*/ fread(&finfo,1,sizeof(FileInfo),fcmbn); if(finfo.length==0)break; if(argc>2 && strcmp(finfo.fname,argv[2]))continue; if(dofile(fcmbn,&finfo)!=0)break; } fcolse(fcmbn);return 0; }
手机使用
分享
复制链接
新浪微博
分享QQ
微信扫一扫
微信内点击右上角“…”即可分享
反馈
参考答案:
举一反三
【简答题】小学儿童的社会性发展主要表现在___和___两个方面。
【单选题】梁的变形叠加原理适用条件是:梁的变形必须是载荷的线性其次函数,要符合此条件必须满足( )要求。
A.
梁的变形是小变形
B.
梁的变形是弹性变形
C.
梁的变形是小变形,且梁内的正应力不超过弹性极限
D.
梁的变形是小变形,且梁内的正应力不超过比例极限
【简答题】扩散脱氧
【单选题】梁的变形叠加原理适用的条件是:梁的变形必须是载荷的线性齐次函数。要符合此条件必须满足( )要求。
A.
(A) 梁的变形是小变形
B.
(B) 梁的变形是弹性变形
C.
(C) 梁的变形是小变形,且梁内正应力不超过弹性极限
D.
(D) 梁的变形是小变形,且梁内正应力不超过比例极限
【多选题】关于营业现金流量的计算,下列各项正确的有 ( )
A.
营业现金流量 = 营业收入 - 付现成本 - 所得税
B.
营业现金流量 = 税后营业利润 + 非付现成本
C.
营业现金流量 = 税后收入 - 税后付现成本 + 非付现成本抵税
D.
营业现金流量 = 收入× (1- 所得税税率 )- 付现成本× (1- 所得税税率 )+ 非付现成本
【判断题】任意情况下热电偶的热电势值与测量端的关系均可直接查分度表。(  )
A.
正确
B.
错误
【简答题】扩散脱氧的原理是什么?如何加速扩散脱氧速度?
【判断题】大豆的原产地是巴西。
A.
正确
B.
错误
【简答题】扩散脱氧
【判断题】ERP是在MRPII基础上发展而成的面向供应链的管理思想。
A.
正确
B.
错误
相关题目:
参考解析:
知识点:
题目纠错 0
发布
创建自己的小题库 - 刷刷题