欢迎来到天天文库
浏览记录
ID:6667153
大小:37.50 KB
页数:10页
时间:2018-01-21
《2001年度程序员级下午试题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、2001年度程序员级下午试题2001年度程序员级下午试题试题一阅读下列程序或函数说明和C代码,将应填入__(n)__处的字句写在答题纸的对应栏内。[函数1.1说明]函数strcmp()是比较两个字符串s和t的大小。若st,函数返回正数。[函数1.1]intstrcmp(char*s,char*t){while(*s&&*t&&__(1)__){s++;t++;}return__(2)__;}[程序1.2说明]在n行n列的矩阵中,每行都有最大的数,本程序求这n个
2、最大数中的最小一个[程序1.2]#include〈stdio.h〉#defineN100inta[N][N];voidmain(){introw,col,max,min,n;/*输入合法n(〈100),和输入mn个整数到数组a的代码略*/for(row=0;row3、("Theminofmaxnumbersis%d",min);} 试题二阅读下列程序说明和C代码,将应填入__(n)__处的字句写在答题纸的对应栏内。[程序2说明]本程序中的函数first_insert()的功能是在已知链表的首表元之前插入一个指定值的表元;函数reverse_copy()的功能是按已知链表复制出一个新链表,但新链表的表元链接顺序与已知链表的表元链接顺序相反;函数print_link()用来输出链表中各表元的值;函数free_link()用来释放链表全部表元空间。[程序2〕#incl4、ude〈stdip.h〉#include〈malloc.h〉typedefstructnode{intval;structnode*next;}NODE;voidfirst_insert(NODE**p,intv){NODE*q=(NODE*)malloc(sizeof(NODE));q->va1=v;__(1)__;*p=__(2)__;}NODE*reverse_copy(NODE*p){NODE*u;for(u=NULL;p;p=p->next)first_insert(__(3)__);retu5、rnu;}voidprint_link(NODE*p){for(;__(4)__)printf("%dt",p->val);printf("");voidfree_link(NODE*p){NODE*u;while(p!=NULL){u=p-〉next;free(p);__(5)__;}}voidmain(){NODE*link1,*link2;inti;linkl=NULL;for(i=1;i<=10;i++)firstinsert(&link1,i);link2=revere_copy(lin6、k1);print_link(link1);freeJink(linkl);print_link(link2);free_link(link2);} 试题三阅读下列程序说明和C代码,将应填入__(n)__处的字句写在答题纸的对应栏内。[程序3说明]本程序从若干个原始文件合并成的合并文件中恢复出其中一个或全部原始文件。所有文件均作为二进制文件进行处理。合并文件中先顺序存储各原始文件,然后顺序存储各原始文件的控制信息,即文件名、文件长度和在合并文件中的位置(偏移量)。其结构为:typedefstmct{ch7、arfnme[256];/*原始文件名*/longlength;/*原始文件长度(字节数)*/longoffset;/*原始文件在合并文件中的位置(偏移量)*/}FileInfo;在合并文件最后存储如下一个特殊的标志信息作为合并文件的结束标记:F11ek1foEndF1ag={"CombinedFile".0,_offset};其中_offset是第一个原始文件的控制信息在合并文件中的位置(偏移量)。启动本程序的命令行的格式是:程序名合并文件名[原始文件名]如果不指定原始文件名,默认恢复合并文件中的所有8、原始文件。程序中涉及的部分文件操作的库函数简要说明如下:intfread(void*buffer,intsize,intcount,FILE*fbin):从二进制文件流fbin中读取count块长度为size字节的数据块到buffer指向的存储区。返回值为实际读取的数据块数。intfwrite(void*buffer,intsize,intcount,FILE*fbin):各参数和返回值的意义与fread相同,但对文件进行写操作。intfs
3、("Theminofmaxnumbersis%d",min);} 试题二阅读下列程序说明和C代码,将应填入__(n)__处的字句写在答题纸的对应栏内。[程序2说明]本程序中的函数first_insert()的功能是在已知链表的首表元之前插入一个指定值的表元;函数reverse_copy()的功能是按已知链表复制出一个新链表,但新链表的表元链接顺序与已知链表的表元链接顺序相反;函数print_link()用来输出链表中各表元的值;函数free_link()用来释放链表全部表元空间。[程序2〕#incl
4、ude〈stdip.h〉#include〈malloc.h〉typedefstructnode{intval;structnode*next;}NODE;voidfirst_insert(NODE**p,intv){NODE*q=(NODE*)malloc(sizeof(NODE));q->va1=v;__(1)__;*p=__(2)__;}NODE*reverse_copy(NODE*p){NODE*u;for(u=NULL;p;p=p->next)first_insert(__(3)__);retu
5、rnu;}voidprint_link(NODE*p){for(;__(4)__)printf("%dt",p->val);printf("");voidfree_link(NODE*p){NODE*u;while(p!=NULL){u=p-〉next;free(p);__(5)__;}}voidmain(){NODE*link1,*link2;inti;linkl=NULL;for(i=1;i<=10;i++)firstinsert(&link1,i);link2=revere_copy(lin
6、k1);print_link(link1);freeJink(linkl);print_link(link2);free_link(link2);} 试题三阅读下列程序说明和C代码,将应填入__(n)__处的字句写在答题纸的对应栏内。[程序3说明]本程序从若干个原始文件合并成的合并文件中恢复出其中一个或全部原始文件。所有文件均作为二进制文件进行处理。合并文件中先顺序存储各原始文件,然后顺序存储各原始文件的控制信息,即文件名、文件长度和在合并文件中的位置(偏移量)。其结构为:typedefstmct{ch
7、arfnme[256];/*原始文件名*/longlength;/*原始文件长度(字节数)*/longoffset;/*原始文件在合并文件中的位置(偏移量)*/}FileInfo;在合并文件最后存储如下一个特殊的标志信息作为合并文件的结束标记:F11ek1foEndF1ag={"CombinedFile".0,_offset};其中_offset是第一个原始文件的控制信息在合并文件中的位置(偏移量)。启动本程序的命令行的格式是:程序名合并文件名[原始文件名]如果不指定原始文件名,默认恢复合并文件中的所有
8、原始文件。程序中涉及的部分文件操作的库函数简要说明如下:intfread(void*buffer,intsize,intcount,FILE*fbin):从二进制文件流fbin中读取count块长度为size字节的数据块到buffer指向的存储区。返回值为实际读取的数据块数。intfwrite(void*buffer,intsize,intcount,FILE*fbin):各参数和返回值的意义与fread相同,但对文件进行写操作。intfs
此文档下载收益归作者所有