[考试复习题库精编合集]2021年度程序员级下午试题_第1页
[考试复习题库精编合集]2021年度程序员级下午试题_第2页
[考试复习题库精编合集]2021年度程序员级下午试题_第3页
[考试复习题库精编合集]2021年度程序员级下午试题_第4页
免费预览已结束,剩余1页可下载查看

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、考试复习题库精编合集2021年度程序员级下午试题考试复习题库精编合集2021年度程序员级下午试题1、【简答题】试题一阅读下列程序或函数说明和C代码,将应填入_(n)_处的字句写在答题纸的对应栏内。函数1.1说明函数strcmp()是比较两个字符串s和t的大小。若st,函数返回正数。函数1.1intstrcmp(char*s,char*t)while(*s&*t&_(1)_)s+;t+;return_(2)_;程序1.2说明在n行n列的矩阵中,每行都有最大的数,本程序求这n个最大数中的最小一个程序1.2#includestdio.h#defineN100intaNN;voidmain()intr

2、ow,col,max,min,n;/*输入合法n(100),和输入mn个整数到数组a的代码略*/for(row=0;rowmax(4)row=0(5)maxva1=v;_(1)_;*p=_(2)_;NODE*reverse_copy(NODE*p)NODE*u;for(u=NULL;p;p=p-next)first_insert(_(3)_);returnu;voidprint_link(NODE*p)for(;_(4)_)printf(%dt,p-val);printf(n);voidfree_link(NODE*p)NODE*u;while(p!=NULL)u=p-next;free(p)

3、;_(5)_;voidmain()NODE*link1,*link2;inti;linkl=NULL;for(i=1;incxt=*p(2)q(3)&u,p-val(4)p!=NULL;p=p-next(5)p=u3、【简答题】试题三阅读下列程序说明和C代码,将应填入_(n)_处的字句写在答题纸的对应栏内。程序3说明本程序从若干个原始文件合并成的合并文件中恢复出其中一个或全部原始文件。所有文件均作为二进制文件进行处理。合并文件中先顺序存储各原始文件,然后顺序存储各原始文件的控制信息,即文件名、文件长度和在合并文件中的位置(偏移量)。其结构为:typedefstmctcharfnme256;/*

4、原始文件名*/longlength;/*原始文件长度(字节数)*/longoffset;/*原始文件在合并文件中的位置(偏移量)*/FileInfo;在合并文件最后存储如下一个特殊的标志信息作为合并文件的结束标记:F11ek1foEndF1ag=CombinedFile.0,_offset;其中_offset是第一个原始文件的控制信息在合并文件中的位置(偏移量)。启动本程序的命令行的格式是:程序名合并文件名原始文件名如果不指定原始文件名,默认恢复合并文件中的所有原始文件。程序中涉及的部分文件操作的库函数简要说明如下:intfread(void*buffer,intsize,intcount,F

5、ILE*fbin):从二进制文件流fbin中读取count块长度为size字节的数据块到buffer指向的存储区。返回值为实际读取的数据块数。intfwrite(void*buffer,intsize,intcount,FILE*fbin):各参数和返回值的意义与fread相同,但对文件进行写操作。intfseek(FILE*fbin,longoffset,intposition):将文件流fbin的读/写位置以position为基准移动offset字节。position的值可以是SEEK_SET(文件头),SEEK_CUR(当前位置),SEEK_END(文件尾);offset为正表示向文件尾

6、方向移动,为负表示向文件头方向移动,为零表示到基准位置。longftell(FILE*fbin):返回文件流fbin的当前读/写位置(相对于文件头的偏移量)。上述偏移量均以字节为单位,即偏移字节数。程序3#includestdio.h#includestring.htypedefstructcharfname256;longlength;longoffset;FileInfo;voidcopyfile(FILE*fin,FILE*fout,intfsiz)charbuf1024;intsiz=1024;while(fsiz!=0)/*每次复制siz个字节,直至复制完fsiz个字节*/if(si

7、zfsiz)_(1)_;fread(buf,1,siz,fin);fwrite(buf,1,siz,fout);fsiz=_(2)_;intdofile(FILE*fin,FileInfo*inp)longoffset;FILE*fout;if(fout=fopen(inp-fname,wb)=NULL)printf(创建文件错误:%sn,inp-fname);return1;offset=_(3)_;/*保留合并文件读/写位置*/fseek(_(4)_);/*定位于被恢复文件首*/copyfile(fin,fout,inp-length);fclose(fout);printf(n-文件名:

8、%n文件长:%1d.n,inp-fname,inp-length);_(5)_;/*恢复合并文件读/写位置*/return0;intmain(intargc,char*argv)FileInfofinfo;charfname256;FILE*fcmbn;if(argc2)或全部(argc=2)原始文件*/fread(&finfo,1,sizeof(FileInfo),fCmbn);if(finfo.length=0)break;if(argc2&strcmp(finfo.fname,argv2)continue;if(dofile(fcmbn,&finfo)!=0)break;fclose(f

9、cmbn);return0;15分解析:(1)siz=fsiz(2)fsiz-siz(3)ftell(fin)(4)fin,inp-offset,SEEK_SET(5)feesk(fin,offset,SEEK_SET)4、【简答题】试题五阅读下列程序说明和C代码,将应填入_(n)_处的字句写在答题纸的对应栏内。程序5说明本程序采用递归算法将一个自然数n分解成不多于m个整数之和。设构成和数n的各个整数取于数组d,d中的整数互不相等且由大到小存储。例如,数组d中存储以下整数:d=100,81,64,49,36,25,16,9,4,1,则有:nm程序运行后的输出1002100=10013213=9

10、+4142Noanswer(9+4+1超过2个)71571=49+9+9+4(表示可重复取数)函数End()的形参c表示d中可取的整数个数;形参pd指向能成为和数的整数的存放位置。程序5#includestdio.h#defineN20intfind(intn,intm,int*d,intc,int*pd)intr;if(n=0)return0;/*已分解完成*/if(m=0|c=0)return-1;/*不可以分解*/if(_(1)_)returnfind(n,m,d+1,c-1,pd);else*pd=*d;r=find(_(2)_,d,c,_(3)_);/*继续对剩余数作分解*/if(r=0)return_(4)_;returnfind(n,m,_(5)_,pd);voidmain()intn,m,k,i,pN,*pptr=p;intd=100,81,64,49,36,25,16,9,4,1;printf(Entern,m:;scanf(%d%d,&n,&

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论