【计算机类职业资格】初级程序员下午试题-105及答案解析.doc
《【计算机类职业资格】初级程序员下午试题-105及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】初级程序员下午试题-105及答案解析.doc(10页珍藏版)》请在麦多课文档分享上搜索。
1、初级程序员下午试题-105 及答案解析(总分:90.00,做题时间:90 分钟)一、试题一(总题数:1,分数:15.00)说明本流程图采用“双向冒泡法”实现对数组 an的排序。双向冒泡法就是在逐步缩小的数组内,分别从数组的两端开始向内搜索,同时将大数往上浮,小数往下沉,每次交换一组数。flag 是一个标志,发生过交换就置为 1,当这个循环过程都不再发生交换时,则数组排序完成。注:流程中循环开始的说明按照“循环变量:循环初值,循环终值,增量”格式描述; 定义 SWAPa,b为将 a和 b两数交换。流程图(分数:15.00)填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_二、
2、试题二(总题数:1,分数:15.00)函数 2.1说明函数 int strcmp(char *s,char *t)的功能是比较两个字符串 s和 t的大小。若 st,函数返回负数; 若 s=t,函数返回 0; 若 st,函数返回整数。函数 2.1int strcmp(char *s,char *t)while(*s *t (1) )s+; t+; return (2) ;函数 2.2说明在 n行 n列的矩阵中,每行都有最大的数,求这 n个最大数中最小的一个。函数 2.2#include stdio.h#define N 100int aN N; void main()int row,col,ma
3、x,min,n;scanf(“%d“,n); for(row=0; rown; row+)for(col=0; coln; col+)scanf(“%d“,arow col);for (row=0; rown; row+)for (max=arow0,col=1; colri; col+)if( (3) )max=a rowcol;if( (4) ) min=max; else if( (5) ) min=max; printf(“The main of max number is %d/n“,min);(分数:15.00)填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_
4、三、试题三(总题数:1,分数:15.00)函数说明 3.1假设两个队列共享一个循环向量空间(参见右图),其类型 Queue2定义如下:(分数:15.00)填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_四、试题四(总题数:1,分数:15.00)说明本程序实现对指定文件内的单词进行计数。其中使用二叉树结构来保存已经读入的不同单词,并对相同单词出现的次数进行计数。此二叉树的左孩子结点的字符串值小于父结点的字符串值,右孩子结点的字符串值大于父结点的字符串值。函数 getword(char *filename,char*word)是从指定的文件中得到单词。char* strdup
5、(char* s)是复制 s所指向的字符串,并返回复制字符串的地址。函数#include stdio. h#includectype. h#include string.h#define MAXWORD 100struct nodechar *word;int count; struct node *left;struct node *right;struct node *addtree(struct node *p,char *w)int cond;if (p=NULL) /*向树中插入结点*/p=(struct node*) malloc(sizeof(struct node);p-wor
6、d=strdup (w); p-count=1;(1) ;else if(cond=strcmp (w,p-word)=0) (2) ;else if (cond0) p-left= (3) ;else p-right= (4) ; return p; main()struct node *root;char word MAXWORD;root=NULL; filename=“example .dat“; while getword(filename,word)! =EOFroot= (5) ; (分数:15.00)填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_五、试题
7、五(总题数:1,分数:15.00)说明设计一个评选优秀教师和学生的程序,其类结构如下图所示。当输入一系列教师或学生的记录后,将优秀学生及教师的姓名列出来。(分数:15.00)填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_六、试题六(总题数:1,分数:15.00)说明下面程序定义了一个类 Shape及其成员函数,然后从类 Shape派生出类 Point、类 Circle、类Cylinder,以及它们的成员函数。Java程序(1) Shapepublic abstract void printShapeName(); /纯虚函数。public double area()re
8、turn 0.0;public double volumn()return 0.0;class Point extends Shapeprivate double x.y; public Point (double a, double b)x=a; y=b;public void setPoint (double a,double b)x=a;y=b;final public double getX() return x; final public double getY()return y;public void printShapeName()(2) ;class Circle exten
9、ds Pointprivate double radius;public Circle(double r, double a, double b) (3) ;radius=r0? r:0;public void setRadius (double r) radius=r0 ? r:0;public double getRadius () return radius; public double area()return 3.14259 * radius * radius;public void printshapeName () System.out.print (“circle: “) ;c
10、lass Cylinder (4) private double height;public Cylinder(double h, double r, double x, double y) super (r, x, y) ;height = h0 ? h:0;public void setHeight (double h) height = h0 ? h:0;public double area () /计算表面积return (5) ;public double volumn () double r=super.getRadius () ;return 3.14159 * r * r *
11、height;public void printShapeName () System. out .print (“cylinder: “) ;(分数:15.00)填空项 1:_填空项 1:_填空项 1:_填空项 1:_填空项 1:_初级程序员下午试题-105 答案解析(总分:90.00,做题时间:90 分钟)一、试题一(总题数:1,分数:15.00)说明本流程图采用“双向冒泡法”实现对数组 an的排序。双向冒泡法就是在逐步缩小的数组内,分别从数组的两端开始向内搜索,同时将大数往上浮,小数往下沉,每次交换一组数。flag 是一个标志,发生过交换就置为 1,当这个循环过程都不再发生交换时,则数组
12、排序完成。注:流程中循环开始的说明按照“循环变量:循环初值,循环终值,增量”格式描述; 定义 SWAPa,b为将 a和 b两数交换。流程图(分数:15.00)填空项 1:_ (正确答案:leftrightflag=1;)解析:填空项 1:_ (正确答案:left,right-1,1;)解析:填空项 1:_ (正确答案:aiai+1;)解析:填空项 1:_ (正确答案:flag=1;)解析:填空项 1:_ (正确答案:aRight-iaRight-i-1)解析:分析 本题目考查的是流程图。首先题目中已经给出算法说明,是分别从数组的两端同时向内搜索,每次交换一组数,所以,可以判断,空(1)中的条件
13、应该由两部分组成,首先是 leftright,因为这样才能构成一个数组,第二个条件是flag=1,如果它成立,则说明还有交换,要继续排序,如果 flag=0,则说明没有交换了,排序完成,所以空(1)要填入 leftright flag=1。内循环开始,从数组两端,两两比较数的大小,所以空(2)应填入 left,right-1,1,在 left端,当 aiai+1时,将两数交换,交换后将 flag置 1,即空(3)填入 aiai+1,空(4)填入 flag=1; 在 right端,当 aRight-iaRight-i-1时,将两数交换,flag置 1,所以空(5)应填入 aRight-iaRig
14、ht-i-1。二、试题二(总题数:1,分数:15.00)函数 2.1说明函数 int strcmp(char *s,char *t)的功能是比较两个字符串 s和 t的大小。若 st,函数返回负数; 若 s=t,函数返回 0; 若 st,函数返回整数。函数 2.1int strcmp(char *s,char *t)while(*s *t (1) )s+; t+; return (2) ;函数 2.2说明在 n行 n列的矩阵中,每行都有最大的数,求这 n个最大数中最小的一个。函数 2.2#include stdio.h#define N 100int aN N; void main()int r
15、ow,col,max,min,n;scanf(“%d“,n); for(row=0; rown; row+)for(col=0; coln; col+)scanf(“%d“,arow col);for (row=0; rown; row+)for (max=arow0,col=1; colri; col+)if( (3) )max=a rowcol;if( (4) ) min=max; else if( (5) ) min=max; printf(“The main of max number is %d/n“,min);(分数:15.00)填空项 1:_ (正确答案:*s=*t)解析:填空项
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 初级 程序员 下午 试题 105 答案 解析 DOC
