欢迎来到麦多课文档分享! | 帮助中心 海量文档,免费浏览,给你所需,享你所想!
麦多课文档分享
全部分类
  • 标准规范>
  • 教学课件>
  • 考试资料>
  • 办公文档>
  • 学术论文>
  • 行业资料>
  • 易语言源码>
  • ImageVerifierCode 换一换
    首页 麦多课文档分享 > 资源分类 > DOC文档下载
    分享到微信 分享到微博 分享到QQ空间

    【计算机类职业资格】初级程序员下午试题-105及答案解析.doc

    • 资源ID:1330067       资源大小:56.50KB        全文页数:10页
    • 资源格式: DOC        下载积分:5000积分
    快捷下载 游客一键下载
    账号登录下载
    微信登录下载
    二维码
    微信扫一扫登录
    下载资源需要5000积分(如需开发票,请勿充值!)
    邮箱/手机:
    温馨提示:
    如需开发票,请勿充值!快捷下载时,用户名和密码都是您填写的邮箱或者手机号,方便查询和重复下载(系统自动生成)。
    如需开发票,请勿充值!如填写123,账号就是123,密码也是123。
    支付方式: 支付宝扫码支付    微信扫码支付   
    验证码:   换一换

    加入VIP,交流精品资源
     
    账号:
    密码:
    验证码:   换一换
      忘记密码?
        
    友情提示
    2、PDF文件下载后,可能会被浏览器默认打开,此种情况可以点击浏览器菜单,保存网页到桌面,就可以正常下载了。
    3、本站不支持迅雷下载,请使用电脑自带的IE浏览器,或者360浏览器、谷歌浏览器下载即可。
    4、本站资源下载后的文档和图纸-无水印,预览文档经过压缩,下载后原文更清晰。
    5、试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓。

    【计算机类职业资格】初级程序员下午试题-105及答案解析.doc

    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)解析:填空项

    16、 1:_ (正确答案:*s-*p)解析:填空项 1:_ (正确答案:arowcolmax)解析:填空项 1:_ (正确答案:row=0)解析:填空项 1:_ (正确答案:maxmin)解析:解析 对于函数 1,比较字符串的大小要从比较字符串中的每个字符做起。如果字符相等,则移动到下一个字符,直到其中一个指针移动到字符串尾部或两字符不相等为止,即空(1)应填*s=*t。然后根据当前两指针所指的字符来比较大小,按规定返回值,即空(2)应填*s-*p。函数 2中,max 中存放的是矩阵每行中的最大数,这里判断某个数是否大于 max,若是,则将这个数存放到 max变量中,即空(3)应填 arowcol

    17、max。min 变量存放的是 n行最大数中最小的一个,首先判断当前是否为首行,若是则直接将这个 max变量中的值赋给 min,即空(4)填 row=0; 再判断某行的 max是否小于 min变量中的数值,若是,则将这个 max变量中的值赋给 min,即空(5)填 maxmin。三、试题三(总题数:1,分数:15.00)函数说明 3.1假设两个队列共享一个循环向量空间(参见右图),其类型 Queue2定义如下:(分数:15.00)填空项 1:_ (正确答案:(i+1)%2 或 1-i)解析:填空项 1:_ (正确答案:Q-reari)解析:填空项 1:_ (正确答案:Q-reari+1)%Max

    18、size)解析:填空项 1:_ (正确答案:T1= =NULL|T2=NULL)解析:填空项 1:_ (正确答案:T1-data=T2-data BTreeEqual(T1-left, T2-left)BTreeEqual(T1-right, T2-right))解析:解析 这一题共有两个函数,第一个函数是一个循环共享队列入队的问题,第二个函数是用递归法判断两棵二叉树是否相等的问题。先分析第一个函数。空(1)所在 if语句是判断能否入队,当队列 0入队时,如果队列 0队尾指针与队列 1队头指针相等时,说明队列 0无法入队; 当队列 1入队时,如果队列 1队尾指针与队列 0队头指针相等时,说明队

    19、列 1无法入队。因此空(1)处应填写“(i+1)%2”或“1-i”。空(2)和空(3)是入队操作,其操作步骤是先将元素 x插入队列 i队尾所指的位置,再将队尾“加 1”。因此空(2)处应填写“Q-reari”,由于是一个循环队列,空(3)处应填写“(Q-reari+1)%Maxsize”。再分析第二个函数。这一题比较简单,只需将程序注释转换成 C语言即可得到答案。空(4)所处理的是若一棵为空,而一棵不为空则不相等,显然空(4)应填入“T1=NULL|T2=NULL”。空(5)处是一个递归调用,处理若根结点值相等并且左、右子树也相等则两棵树相等,因此空(5)处应填入“T1-data=T2-dat

    20、aBTreeEqual(T1-left,T2-left)BTreeEqual(T1-right,T2-right)”或其等价形式。四、试题四(总题数:1,分数:15.00)说明本程序实现对指定文件内的单词进行计数。其中使用二叉树结构来保存已经读入的不同单词,并对相同单词出现的次数进行计数。此二叉树的左孩子结点的字符串值小于父结点的字符串值,右孩子结点的字符串值大于父结点的字符串值。函数 getword(char *filename,char*word)是从指定的文件中得到单词。char* strdup(char* s)是复制 s所指向的字符串,并返回复制字符串的地址。函数#include st

    21、dio. 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-word=strdup (w); p-count=1;(1) ;else if(cond=strcm

    22、p (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:_ (正确答案:p-left=p-right=NULL)解析:填空项 1:_ (正确答案:p-count+)解析:填空项 1:_ (正确答案:adtree(p-

    23、left,w))解析:填空项 1:_ (正确答案:adtree(p-right,w))解析:填空项 1:_ (正确答案:adtree(root,word))解析:解析 在用二叉树结构来保存指定文件内的单词时,采用递归调用。首先在树中创建一个结点,因此空(1)填 p-left=p-right=NULL。如果要插入的字符串已经存在,则计数值加一,即空(2)填 p-count+;如果要插入的字符串小于此结点上字符串的值,则再次调用此函数,即空(3)填 adtree(p-left,w);如果要插入的字符串大于此结点上字符串的值,则再次调用函数为空(4),即 adtree(p-right,w)。在主函数

    24、中调用空(5),即 adtree(root,word)。五、试题五(总题数:1,分数:15.00)说明设计一个评选优秀教师和学生的程序,其类结构如下图所示。当输入一系列教师或学生的记录后,将优秀学生及教师的姓名列出来。(分数:15.00)填空项 1:_ (正确答案:public base)解析:填空项 1:_ (正确答案:(mum90)?True: False)解析:填空项 1:_ (正确答案:public base)解析:填空项 1:_ (正确答案:(num3)?True:False)解析:填空项 1:_ (正确答案:pi-isgood()=True)解析:解析 基类 base中提供的一个纯

    25、虚函数作为判断类 student和类 teacher的公共接口,且这两个类中都需要访问保护成员,所以空(1)和(3)中应填入的继承方式为“public base”。评选优秀教师和学生的标准不同,所以类 student和类 teacher分别定义了各自的函数 isgood(),优秀学生的标准为考试成绩超过 90分,所以空(2)中应填入“(mum90)? True:False”。优秀教师的标准为一年发表论文超过 3篇,所以空(4)中应填入“(num3)?True:False”。在主函数中指针数组 p存放输入的数据,然后判断是否被评为优秀教师或学生。空(5)显然是要调用其函数 isgood(),所以

    26、应填入“pi-isgood()=True”。六、试题六(总题数:1,分数:15.00)说明下面程序定义了一个类 Shape及其成员函数,然后从类 Shape派生出类 Point、类 Circle、类Cylinder,以及它们的成员函数。Java程序(1) Shapepublic abstract void printShapeName(); /纯虚函数。public double area()return 0.0;public double volumn()return 0.0;class Point extends Shapeprivate double x.y; public Point

    27、(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 extends Pointprivate double radius;public Circle(double r, double a, double b) (3) ;radius=r0? r:0;public

    28、 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: “) ;class Cylinder (4) private double height;public Cylinder(double h, double r, double x, double y) supe

    29、r (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 * height;public void printShapeName () System. out .print (“cylinder: “) ;(分数:15.00)填空项 1:_ (正确答案:abst

    30、ract class)解析:填空项 1:_ (正确答案:System.out.print(“Point:“))解析:填空项 1:_ (正确答案:super(a,b))解析:填空项 1:_ (正确答案:extends Circle)解析:填空项 1:_ (正确答案:2*Circle:area()+2*3.14159*Circle:getRadius()*height)解析:解析 本题以 Java语言为载体,考查面向对象的对象设计中的几个重要概念,继承和抽象类。本程序的功能是通过一个公共接口 printShapeName()来-打印不同的图形的名称。试题中共定义了 4个类,Shape、Point、

    31、Circle 和 Cylinder(圆柱),在完成本试题时,一个重要的环节是确定这 4个类之间的继承关系。首先,类 Shape中有抽象函数 printShapeName(),也有非抽象函数,故空(1)应填 abstract class; 其次,由 Shape派生出了 Point,空(2)要求给出 printShapeName()的实现体:打印图形的名称,即System.out.print(“Point:“)。空(3)考查基类及继承方式,由于类 Circle继承自类 Point,而 Point类没有默认的构造函数,故在Circle类的构造函数中必须在第一个语句用 super引用调用基类构造函数,故空(3)应填 super(a,b)。同样的情况,类 Cylinder的构造函数中的一个语句调用 super(r,x,y),故类 Cylinder应该继承自类Circle,故空(4)应填入 extends Circle。空(5)考查对基类成员函数的调用,应填入 2*Circle:area()+2*3.14159*Circle:getRadius()*height。


    注意事项

    本文(【计算机类职业资格】初级程序员下午试题-105及答案解析.doc)为本站会员(hopesteam270)主动上传,麦多课文档分享仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对上载内容本身不做任何修改或编辑。 若此文所含内容侵犯了您的版权或隐私,请立即通知麦多课文档分享(点击联系客服),我们立即给予删除!




    关于我们 - 网站声明 - 网站地图 - 资源地图 - 友情链接 - 网站客服 - 联系我们

    copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
    备案/许可证编号:苏ICP备17064731号-1 

    收起
    展开