【计算机类职业资格】初级程序员下午试题-43及答案解析.doc
《【计算机类职业资格】初级程序员下午试题-43及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】初级程序员下午试题-43及答案解析.doc(15页珍藏版)》请在麦多课文档分享上搜索。
1、初级程序员下午试题-43 及答案解析(总分:120.00,做题时间:90 分钟)一、试题一(总题数:1,分数:15.00)1.【函数 1.1说明】函数 strcpy(char*to,char*from)将字符串 from复制到字符串 to。【函数 1.1】void strcpy(char*to,char*from)while ( (1) );【函数 1.2说明】函数 merge(int a,int n,int b,int m,int*c)是将两个从小到大有序数组 a和 b复制合并出一个有序整数序列 c,其中形参 n和 m分别是数组 a和 b的元素个数。【函数 1.2】void merge(in
2、t a ,int n,int b ,int m,int * c)int i,j;for(i=j=0;in )*c+=ai bj?ai+:bj+;while( (2) )*c+=ai+;while( (3) )*c+=bj+;【函数 1.3说明】递归函数 sum(int a,int n)的返回值是数组 a的前 n个元素之和。【函数 1.3】int sum(int a ,int n)if( n 0) return (4) ;else (5) ;(分数:15.00)_二、试题二(总题数:1,分数:15.00)2.【说明】该程序运行后,输出下面的数字金字塔11 2 11 2 3 2 11 2 3 4
3、3 2 11 2 3 4 5 6 7 8 9 8 7 6 5 4 3 2 1【程序】#include stdio. h main ( )char max, next;int i;for( max = 1; max = 9; max + +)for(i=1;i=20- (1) ;+i)printf(“ “);for(next = (2) ;next = (3) ;next +)printf(“ %c“ ,next);for(next= (4) ;next= (5) ;next-)printf(“ %c“ ,next);printf(“ /n“ );(分数:15.00)_三、试题三(总题数:1,分
4、数:15.00)3.【说明】函数 diff的功能是:根据两个由整数(都大于-32768)按升序构成的单链表 L1和 L2(分别由 A,B 指向)构造一个单链表 L3(由*r 指向),要求 13中的所有整数都是 L1,并且不是 L2 中的整数,还要求 L3中的所有整数都两两不等。【函数】#include malloc. h typedef struct node int d;struct node * nextNode;void diff(Node *A,Node * B,Node * * r)int lastnum;Node * p;*r = NULL;if( ! A) return;whil
5、e( (1) )if(A-d B -d)lastnum =A - d;p= ( Node * ) malloc( sizeof(Node) );p-d = lastnum;p-next= *r; (2) ;doA = A - next;while( (3) );else if(A-d B-d)B=B- next;else (4) ;lastnum=A - d;while ( A while(A)lastnum=A-d;p=( Node * ) malloc( sizeof(Node) );p- d = lastnum;(5) ;*r=p;while (A (分数:15.00)_四、试题四(总题
6、数:1,分数:15.00)4.【说明】本程序从若干个原始文件合并成的合并文件中恢复出其中一个或全部原始文件。所有文件均作为二进制文件进行处理。合并文件中先顺序存储各原始文件,然后顺序存储各原始文件的控制信息,即文件名、文件长度和在合并文件中的位置(偏移量)。其结构为:typedef struct char fname 256 /*原始文件名*/long length; /*原始文件长度(字节数)*/long offset; /*原始文件在合并文件中的位置(偏移量)*/FileInfo;在合并文件最后存储如下一个特殊的标志信息作为合并文件的结束标记:FileInfo EndFlag=“Combi
7、ned 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 cou
8、nt,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的当前读/写位置(相对于文件头的偏移量)。上述偏移量均以字节
9、为单位,即偏移字节数。【程序】#include stdio. h#include string. htypedef struct char fname256;long lengt;long offset;Filelnfo;void copyfile( FILE*fin, FILE * fout,int fsize)char buf1024;int siz=1024;while(fsize !=0) /*每次复制 siz个字节,直至复制完 fsize个字节*/if(siz fsize) (1) ;fread(buf,1,siz,fin); fwrite(buf,1,siz,fout);fsize
10、= (2) ;int dofile(FILE * fin,Filelnfo * 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 文件长: %ld. /n“,
11、inp - fname, inp - length);(5) ; /*恢复合并文件读/写位置*/return 0;int main( int argc, char * argv )Filelnfo finfo;char fname256 ;FILE * fcmbn;if(argc 2) printf(“输入合并文件名:“ ) ;scanf(“%s“ ,fname);else strcpy(fname,argv1);if(fcmbn = fopen(fname,“rb“ ) = NULL) printf(“文件打开错误: %s/n“ ,fname);return 1;fseek(fcmbn, -
12、sizeof(Filelnfo),SEEK_END); /*定位于合并文件末尾的标志信息*/fread(if(finfo. length!=0|strcmp(finfo. fnane,“ CombinedFile“ )printf(“指定的文件不是合法的合并文件/n“);fclose (fcmbn); return 2;fseek(fcmbn,finfo. offset,SEEK_SET); /*定位于首个原始文件的控制信息*/for(;) /*恢复一个(argc2)或全部(argc=2)原始文件*/fread ( if(finfo, length =0) break;if (argc 2 i
13、f (dofile ( fcmbn, fcolse(fcmbn);return 0;(分数:15.00)_五、试题五(总题数:1,分数:15.00)5.【说明】本应用程序的运行窗口如图 2所示。(分数:15.00)_六、试题六(总题数:1,分数:15.00)6.【说明】单击窗体上的“测试”(cmdTest)按钮,出现一个输入框,要求输入一串字符,将该字符串中的非字母字符删除后,显示在窗体中的一个文本框(txtShow)中。【程序代码】Private Sub cmdTest_Click( )Dim strT1 ,strT2 As StringDim strCh As (1) Dim intL A
14、s IntegerDim intl As IntegerstrT1 = (2) (“请输入一串字符“,“字符串输入“)intL = (3) strT2 = “ “For intl = I To intLstrCh = Mid ( strT1, intl, 1 )If(strCh“A“And (4) ) Or (strCh “a“ And suCh “z“ )ThenstrT2 = strT2 + strChEnd IfNext intltxtShow. Text= (5) End sub(分数:15.00)_七、试题七(总题数:1,分数:15.00)7.【说明】以下程序的功能是设计一个栈类 s
15、tackT,并建立一个整数栈。【程序】#include iostream. h #include stdlib. h const int Max =20; /栈大小template class T class stack /栈元素数组T sMax; /栈顶下标int top;public:stack( )top =-1; /栈顶初始化为-1void push( const T /item入栈T pop( ); /出栈int stackempty( ) const; /判断栈是否为;template class T void stack T :push(const T exit(1);top +
16、stop = item;template class T T stackT :pop()T temp;if(top= (2) )cout “栈为空,不能出栈操作“ endl;exit(1);temp =stop;top -;return temp;template class T int stack T : stackempty( ) constreturn top = -1;void main( )stack int st;int a =1,2,3,4,5;cout “整数栈“ endl;cout “入栈序列:“ endl;for(int i=0;i4;i +)cout ai “ “;(3)
17、 ;cout endl “出栈序列“;while( (4) )tout (5) “ “;cout endl;(分数:15.00)_八、试题八(总题数:1,分数:15.00)8.【说明】下面的程序是从命令行输入 3个数传递到 public static void main(String args)方法中 (如 java IsTriangle 3 4 5),并判断这 3个数能否构成三角形的 3条边,并显示相应的结果。请在程序的每条横线处填入适当的语句,使程序的功能完整。注意:请勿改动 main()主方法和其他已有的语句内容,仅在横线处填入适当的语句。public class IsTrianglep
18、ublic static void main( String args )int a =new (1) args. (2) ;for(int i=0;i3; (3) )ai= (4) if( (5) )System. out. println(a0 +“,“+a1 +“,“+a2“能构成三角形的 3条边“);elseSystem. out. println(a0 +“,“+a1 +“,“+a2“不能构成三角形的 3条边);(分数:15.00)_初级程序员下午试题-43 答案解析(总分:120.00,做题时间:90 分钟)一、试题一(总题数:1,分数:15.00)1.【函数 1.1说明】函数 s
19、trcpy(char*to,char*from)将字符串 from复制到字符串 to。【函数 1.1】void strcpy(char*to,char*from)while ( (1) );【函数 1.2说明】函数 merge(int a,int n,int b,int m,int*c)是将两个从小到大有序数组 a和 b复制合并出一个有序整数序列 c,其中形参 n和 m分别是数组 a和 b的元素个数。【函数 1.2】void merge(int a ,int n,int b ,int m,int * c)int i,j;for(i=j=0;in )*c+=ai bj?ai+:bj+;while
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 初级 程序员 下午 试题 43 答案 解析 DOC
