【计算机类职业资格】初级程序员下午试题-108及答案解析.doc
《【计算机类职业资格】初级程序员下午试题-108及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】初级程序员下午试题-108及答案解析.doc(12页珍藏版)》请在麦多课文档分享上搜索。
1、初级程序员下午试题-108 及答案解析(总分:90.00,做题时间:90 分钟)一、试题一(总题数:1,分数:15.00)说明下面的流程图说明的是图的深度遍历。它的基本思想是:以图中某一结点作为当前结点,然后进行以下过程:(1)处理或输出当前结点,并记录当前结点的查访标志。(2)若当前结点有后件结点,则取第一个后件结点。若该后件结点未被查访过,则以该后件结点为当前结点用深度遍历法进行查访。(分数:15.00)填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_二、试题二(总题数:1,分数:15.00)函数 2.1说明假设两个队列共享一个循环向量空间,其类型 Queue2定义如
2、下:typedef structDateType data MaxSize;int front2,rear2;Queue2;对于 i=0或 1,fronti和 reari分别为第 i个队列的头指针和尾指针。函数 EnQueue(Queue2 *Q,int i,DateType x)的功能是实现第 i个队列的入队操作。函数 2.1int EnQueue(Queue2 *Q,int i,DateType x)/*若第 i个队列不满,则元素 x入队列,并返回 1,否则返回 0*/if (i0 | i1) return 0; if(Q-rear i =Q-front (1) ) return 0;Q-
3、data (2) =x;Q-rear i= (3) ; return 1;函数 2.2说明函数 int BtreeEquaI(BinTreeNode *T1,BinTreeNode *T2)的功能是递归判断两棵二叉数是否相等,若相等则返回 1,否则返回 0。当两棵树的结构完全相同,并且对应结点的值也相同时才被认为相等。已知二叉树中的结点类型定义为:struct BinTreeNodechar data;BinTreeNode *left,*right; 其中 data为结点值域,left 和 right分别为指向左、右子女结点的指针域。函数 2.2int BtreeEqual(BinTreeN
4、ode *T1,BinTreeNode *T2)(if (T1=NULLT2=NULL) return 1;else if ( (4) ) return 0; else if( (5) ) return 1; else return 1; (分数:15.00)填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_三、试题三(总题数:1,分数:15.00)说明这个是一个链接存储线性表的直接插入排序函数。把未排序序列中的第一个结点插到已排序序列中。排序完毕,链表中的结点按结点值由小到大链接。函数typedef struct nodechar data;struct node *li
5、nk;NODE;NODE *insert_sort (NODE *h)NODE *t,*s,*u,*v; s=h-link;h-link=NULL:while(s!=NULL)for(t=s,v=h;v!=NULL V-datat-data; (1) , (2) );s=s-link;if(V=h) (3) ;else (4) ;(5) ;return h;(分数:15.00)填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_四、试题四(总题数:1,分数:15.00)说明将一正整数序列 K1,K2,.,K9 重新排列成一个新的序列,新序列中,比 K1小的数都在 K1的前面(
6、左面),比 K1大的数都在 K1的后面(右面)。在程序中已给出了 10个序列,每个序列有 9个正整数,并存入数组 a109中,分别求出这 10个新序列。函数#includestdio.h#includeconio. hvoid jsValue(int a10 9)int i, j ,k.n, temp;int b9;for (i=0 ; i10 ; i+)temp=a 1 0 ;for(j=8;j=0;j-)if(tempail j) (1) =aij;if(temp=ai j) (2) =aij;if(temp=ai j) (3) =temp;for (j=0; j9; j+) ajj=bj
7、void main ()int a 109= 6, 8,9,1,2, 5,4,7,3,3,5,8,9,1,2,6,4,7,8,2,1,9,3,5,4,6,7),3,5,1,2,9,8,6,7,4,4,7,8,9,1,2,5,3,6,4,7,3,5,1,2,6,8,9,9,1,3,5,8,6,2,4,7,2,6,1,9,8,3,5,7,4,5,3,7,9,1,8,2,6,4,7,1,3,2,5,8,9,4,6;int i,j;(4) ;for(i=0; i10; i+)for(j=0; j9; j+) printf(“%d“,ai j );if( (5) ) printf(“,“);printf
8、 (“/n“);getch () ;(分数:15.00)填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_五、试题五(总题数:1,分数:15.00)说明设计一个类模板 Sample用于对一个有序数组采用二分法查找元素下标。c+程序#includeiostream. h#define Max 100 /最多元素个数templateclass Tclass SampleT A Max; /存放有序数序int n; /实际元素个数Public:Sample /默认构造函数Sample(T a ,int i); /初始化构造函数int seek(T c); void dispfor
9、 (int i=0; in; i+)coutA i“ “;coutendl; templateclass TSampleT:Sample(T a,int i)n=I;for (int j=0; jI; j+)(1) ;templateclass Tint SampleT:seek(T c)int low=0,high=n-1,mid;while( (2) )mid=(low+high)/2;if( (3) )return mid;else if ( (4) )low=mid+1; else(5) ; return-1;void main()char a=“acegkmpwxz“; Sample
10、chars(a,1.);cout“元素序列:“ ;s. disp();cout“元素g 的下标: “s. seek(g)endl;(分数:15.00)填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_六、试题六(总题数:1,分数:15.00)1.说明下面 Application程序根据 ManKind类中的 sex属性输出“Man!”或“Woman!”。程序全部写在Main.java文件中。程序中存在两个错误,分别在第 01和 14行,请将其改正或删除相应语句,并指出程序运行的输出结果。Java程序01 public class ManKind02 int sex; /默认
11、,是公有成员03 public void manOrWoman()/公有方法04 ifsex =0 /表示男人05 System.out.print “Man!”;06 else /女人07 System.out.print “Woman!“;08 09 10 11 public class Main12 public static void main(String args13 ManKind somePerson, somePerson2;14 SomePerson. sex=1;15 somePerson=new ManKind();16 SomePerson.sex=1;17 some
12、Person.manOrWoman(); 18 SomePerson2=somePerson;19 SomePerson2.sex=0:20 somePerson2 .manOrWoman();21 somePerson.manOrWoman(); 22 23 (分数:15.00)填空项 1:_初级程序员下午试题-108 答案解析(总分:90.00,做题时间:90 分钟)一、试题一(总题数:1,分数:15.00)说明下面的流程图说明的是图的深度遍历。它的基本思想是:以图中某一结点作为当前结点,然后进行以下过程:(1)处理或输出当前结点,并记录当前结点的查访标志。(2)若当前结点有后件结点,则取
13、第一个后件结点。若该后件结点未被查访过,则以该后件结点为当前结点用深度遍历法进行查访。(分数:15.00)填空项 1:_ (正确答案:markk-1=1;)解析:填空项 1:_ (正确答案:mark(p-num)-1=0;)解析:填空项 1:_ (正确答案:dfs(head,p-num,mark);)解析:填空项 1:_ (正确答案:p=p-next;)解析:填空项 1:_ (正确答案:struct node;)解析:解析 本题目考查流程图。按题目要求,在空(1)应该填入一个标记,表示该结点已经被访问过了,即应该填入 markk-1=1。接着p指针指向当前结点的第一个后件结点,如果 p不为空,
14、则判断该后件结点是否被访问过,空(2)应该填入 mark(p-num)-1=0。如果是,那么则采用递归调用,所以空(3)应该填入 dfs(head, p-num, mark)。如果该后件结点已经被访问过了,则 p指向当前结点的下一个后件结点,所以空(4)应该填入p=p-next。空(5)考查数据结构,根据题意,gpnode 用来存储结点的值和指向的下一个结点,所以指针的类型应该为 struct node型,即空(5)应填入 struct node。二、试题二(总题数:1,分数:15.00)函数 2.1说明假设两个队列共享一个循环向量空间,其类型 Queue2定义如下:typedef struc
15、tDateType data MaxSize;int front2,rear2;Queue2;对于 i=0或 1,fronti和 reari分别为第 i个队列的头指针和尾指针。函数 EnQueue(Queue2 *Q,int i,DateType x)的功能是实现第 i个队列的入队操作。函数 2.1int EnQueue(Queue2 *Q,int i,DateType x)/*若第 i个队列不满,则元素 x入队列,并返回 1,否则返回 0*/if (i0 | i1) return 0; if(Q-rear i =Q-front (1) ) return 0;Q-data (2) =x;Q-r
16、ear i= (3) ; return 1;函数 2.2说明函数 int BtreeEquaI(BinTreeNode *T1,BinTreeNode *T2)的功能是递归判断两棵二叉数是否相等,若相等则返回 1,否则返回 0。当两棵树的结构完全相同,并且对应结点的值也相同时才被认为相等。已知二叉树中的结点类型定义为:struct BinTreeNodechar data;BinTreeNode *left,*right; 其中 data为结点值域,left 和 right分别为指向左、右子女结点的指针域。函数 2.2int BtreeEqual(BinTreeNode *T1,BinTree
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 初级 程序员 下午 试题 108 答案 解析 DOC
