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

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

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

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

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

    1、初级程序员下午试题-36 及答案解析(总分:120.00,做题时间:90 分钟)一、B试题一/B(总题数:1,分数:15.00)1.说明 下面的流程图用于统计一个英文句子中单词的个数 N。假设该英文句子中只含字母、空格和句点“.”,其中句点表示结尾,空格之间连续的字母串称为单词。 流程图 (分数:15.00)_二、B试题二/B(总题数:1,分数:15.00)2.函数 2.1说明 函数 void find(int *a, int n, int * max, int * min)的功能是在长度为 n的整型数组 a中,查找最大元素和最小元素的下标。main()中给出了调用 find函数的一个实例。

    2、函数 2.1 #includestdio.h void find(int *a, int n,int *max,int * min) int i; *max =* min=0; for(i=1;in;i+ +) if(aia* max) U(1) /U; else if(aia*min) U(2) /U;return; main() int a=4,6,8,9,0,6,max,min; find(a,6,U (3) /U); printf(“%5d%5d/n“, max,min); 函数 2.2说明 以下程序用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串前端的公共部分。例如:输入的

    3、两个字符串分别是 abcdefg和 abceef,则输出为abc。 函数 2.2 #include stdio.h main() char str1100,str2100,str100,c; int i=0,s; printf(“/nInput string 1:“);gets(str1); printf(“/nInput string 2:“);gets(str2); while(U (4) /U) i+; printf(“%s/n“,str); (分数:15.00)_三、B试题三/B(总题数:1,分数:15.00)3.说明 二叉树的二叉链表存储结构描述如下: typedef struct

    4、BiTNode datatype data; struct BiTNode *lchild, * rchild; /*左右孩子指针*/ BiTNode,* BiTree; 对二叉树进行层次遍历时,可设置一个队列结构,遍历从二叉树的根结点开始,首先将根结点指针入队列,然后从队首取出一个元素,执行下面两个操作: (1) 访问该元素所指结点; (2) 若该元素所指结点的左、右孩子结点非空,则将该元素所指结点的左孩子指针和右孩子指针顺序入队。 此过程不断进行,当队列为空时,二叉树的层次遍历结束。 下面的函数实现了这一遍历算法,其中 Visit(datatype a)函数实现了对结点数据域的访问,数组

    5、queueMAXNODE用以实现队列的功能,变量 front和 rear分别表示当前队首元素和队尾元素在数组中的位置。 函数 void LevelOrder(BiTree bt) /*层次遍历二叉树 bt*/ BiTree QueueMAXNODE; int front,rear; if(bt= =NULL)return; front=-1; rear=0; queuerear=U (1) /U; while(frontU (2) /U) U(3) /U; Visit(queuefront-data); /*访问队首结点的数据域*/ if(queuefrontlchild!:NULL) rea

    6、r+; queuerear=U (4) /U; if(queuefront-rchild! =NULL) rear+; queuerear=U (5) /U; (分数:15.00)_四、B试题四/B(总题数:1,分数:15.00)4.说明 本程序在 33方格中填入 1到 10以内 9个互不相等的整数,使所有相邻两个方格内的两个整数之和为质数。程序的输出是全部满足条件的方格。 方格的序号如下图所示。程序采用试探法,从序号为 0的方格开始,依次为当前方格寻找一个合理的可填整数,并在当前位置正确填入后,为下一方格寻找可填入的合理整数;如不能为当前方格寻找一个合理的可填整数,就要后退到前一方格,调整前

    7、一方格的填入整数;当序号为 8的方格也填入合理的整数后,就找到了一个解。 (分数:15.00)_五、B试题五/B(总题数:1,分数:15.00)5.说明 某单位组织一次职业技术考核比赛,由十名评委对选手的现场表现打分(0 到 100以内的数值)。本程序接收原始评分后,去掉一个最高分、一个最低分,最后计算并输出选手最后得分。在接收输入第 i个评分时,若输入数据的类型、范围不正确,程序将给出相应提示,并等待下一次输入,直至正确接收第i个评分为止。程序的运行界面如下: (分数:15.00)_六、B试题六/B(总题数:1,分数:15.00)6.说明 本程序使用类来管理员工的通讯地址信息。已知程序的输出

    8、为: 输出记录:5 姓名:王丽华 街道地址:中华路 15号 市:襄樊市 省:湖北省 邮政编码:430070 Java 代码 public class Employee protected String U(1) /U; protected String street; protected String city; protected String prov; protected String post; protected int no; public Empbyee() public Employee(String name,String street,String city,String

    9、prov,String post,U (2) /U) this.name=name; this.street=street; this.city=city; this.prov=prov; this.post=post; this.no=no; public static void main(Stringargs) Employee emp=new Employee(“王华”,“中华路 15号”,“武汉市”,“湖北省”,“430070”,1); emp.changeName(“王丽华”); U (3) /U(“襄樊市”); emp.changeNo(5); U (4) /U; void cha

    10、ngeName(String name)this.name=name; void changeStreet(String street)this.street=street; void changeCity(String city)this.city=city; void changeProv(String prov)this.prov=prov; void changeNo(int no)U (5) /U; void display() System.out.println(“输出记录:”+this.no); System.out.Println(“姓名:”+this.name); Syst

    11、em.out.println(“街道地址:”+this.street); System.out.println(“市:”+this.city); System.out.println(“省:”+this.prov);System.out.println(“邮政编码:”+this.post); (分数:15.00)_七、B试题七/B(总题数:1,分数:15.00)7.说明 某公司的服务器上为每位员工提供了一定大小的存储空间,用于数据的备份。下面的程序面向公司员工,提供了本地计算机与服务器端之间文件传输的功能。主要操作介绍如下: (1)连接服务器:员工需要输入用户名和口令才能连接到服务器端,che

    12、ckUser 函数用于检查用户名和口令是否合法,返回真假值。 (2)上传文件:从本地计算机上传文件到服务器。员工可以在本地文件列表中选择一个或多个文件,这些文件通过上传操作被复制到服务器端指定的某个文件夹中; (3)下载文件:从服务器端下载文件到本地。 (分数:15.00)_八、B试题八/B(总题数:1,分数:15.00)8.说明 以下程序的功能是统计学生成绩,包括输入学生的姓名和成绩,按成绩从高到低排列打印输出,对前百分之七十的学生定为合格(PASS),而后百分之三十的学生定为不合格(FAIL)。例如,当输入 4名学生的姓名和成绩“Alice 67 Mary 90 Tom 56 John 8

    13、8”后,程序的执行结果如下: 姓名 成绩 合格否 Mary 90 PASS John 88 PASS Alice 67 FAIL Tom 56 FAIL C+程序 #include stdio.h #include string.h #define N 10 class student protected: char name10; int deg; public: void setname(charna) strcpy(name,na); char * getname() return name; void setdeg(int d) deg= d; int getdeg()return d

    14、eg; ; class compute int ns; student naN; public: void getdata(); void sort(); void disp(); ; void compute:getdata() int i,tdeg; char tname10; printf(“输入学生人数:“); scanf(“%d“, printf(“输入学生姓名和成绩:/n“); for(i=0;ins;i+ +) scanf(“%s%d“,tname, U(1) /U; nai.setdeg(tdeg); void compute:sort() int i,j,pick; U (2

    15、) /U; for(i=0;ins-1;i+ +) pick=i; for(j=i+1;jns;j+ +) if(naj.getdeg()napick.getdeg()U (3) /U; temp=nai; nai=napick; napick=temp; void compute:disp() int cutoff,i; printf(“RESULT/n“); printf(“姓名 成绩 合格否/n“); cutoff=ns*7/10-1; for(i=0;ins;i+ +) printf(“%-6s%3d“,U (4) /U); if(U (5) /U) printf(“/tPASS/n“

    16、); else printf(“/tFAIL/n“); void main() compute obj; obj.getdata(); obj.sort(); obj.disp(); (分数:15.00)_初级程序员下午试题-36 答案解析(总分:120.00,做题时间:90 分钟)一、B试题一/B(总题数:1,分数:15.00)1.说明 下面的流程图用于统计一个英文句子中单词的个数 N。假设该英文句子中只含字母、空格和句点“.”,其中句点表示结尾,空格之间连续的字母串称为单词。 流程图 (分数:15.00)_正确答案:()解析:(1) N0 (2) N+1 (3) 是 (4) 否 (5) =

    17、 考点分析 考查算法的流程图表示。 解析 本题用到的两个变量及其作用分别为:A,存放输入的一个字符;N 存放当前读取的单词个数。 (1)使用变量 N应先赋予初值,由上下文知其初值为 0; (2)读取单词的首字母后,单词个数 N应增 1; (3)读取单词的首字母后,循环读入单词的后继字母,直到遇到下一个非字母字符(空格或句点)为止; (4)略; (5)读到句点表明句子结束,这时输出结果并结束算法。二、B试题二/B(总题数:1,分数:15.00)2.函数 2.1说明 函数 void find(int *a, int n, int * max, int * min)的功能是在长度为 n的整型数组 a

    18、中,查找最大元素和最小元素的下标。main()中给出了调用 find函数的一个实例。 函数 2.1 #includestdio.h void find(int *a, int n,int *max,int * min) int i; *max =* min=0; for(i=1;in;i+ +) if(aia* max) U(1) /U; else if(aia*min) U(2) /U;return; main() int a=4,6,8,9,0,6,max,min; find(a,6,U (3) /U); printf(“%5d%5d/n“, max,min); 函数 2.2说明 以下程序

    19、用来对从键盘上输入的两个字符串进行比较,然后输出两个字符串前端的公共部分。例如:输入的两个字符串分别是 abcdefg和 abceef,则输出为abc。 函数 2.2 #include stdio.h main() char str1100,str2100,str100,c; int i=0,s; printf(“/nInput string 1:“);gets(str1); printf(“/nInput string 2:“);gets(str2); while(U (4) /U) i+; printf(“%s/n“,str); (分数:15.00)_正确答案:()解析:(1) * max

    20、=i (2) * min=i (3) struct BiTNode *lchild, * rchild; /*左右孩子指针*/ BiTNode,* BiTree; 对二叉树进行层次遍历时,可设置一个队列结构,遍历从二叉树的根结点开始,首先将根结点指针入队列,然后从队首取出一个元素,执行下面两个操作: (1) 访问该元素所指结点; (2) 若该元素所指结点的左、右孩子结点非空,则将该元素所指结点的左孩子指针和右孩子指针顺序入队。 此过程不断进行,当队列为空时,二叉树的层次遍历结束。 下面的函数实现了这一遍历算法,其中 Visit(datatype a)函数实现了对结点数据域的访问,数组 queu

    21、eMAXNODE用以实现队列的功能,变量 front和 rear分别表示当前队首元素和队尾元素在数组中的位置。 函数 void LevelOrder(BiTree bt) /*层次遍历二叉树 bt*/ BiTree QueueMAXNODE; int front,rear; if(bt= =NULL)return; front=-1; rear=0; queuerear=U (1) /U; while(frontU (2) /U) U(3) /U; Visit(queuefront-data); /*访问队首结点的数据域*/ if(queuefrontlchild!:NULL) rear+;

    22、queuerear=U (4) /U; if(queuefront-rchild! =NULL) rear+; queuerear=U (5) /U; (分数:15.00)_正确答案:()解析:(1) bt (2) ! =rear (3) front+ + (4) queue front-lchild (5) queuefront-rchild 考点分析 考查用 C语言实现二叉树的层次遍历。 解析 (1)遍历开始时队列长度为 1,其中只存放了根结点 bt; (2)遍历过程是一个循环访问队列的过程,其终止条件是队列为空,即 front等于 rear; (3)遍历到某结点时,该结点应退出队列,因此

    23、队首元素的位置应该增 1; (4)此处应将队首结点的左孩子结点放入队列,即插在队尾; (5)此处应将队首结点的右孩子结点放入队列,即插在队尾。四、B试题四/B(总题数:1,分数:15.00)4.说明 本程序在 33方格中填入 1到 10以内 9个互不相等的整数,使所有相邻两个方格内的两个整数之和为质数。程序的输出是全部满足条件的方格。 方格的序号如下图所示。程序采用试探法,从序号为 0的方格开始,依次为当前方格寻找一个合理的可填整数,并在当前位置正确填入后,为下一方格寻找可填入的合理整数;如不能为当前方格寻找一个合理的可填整数,就要后退到前一方格,调整前一方格的填入整数;当序号为 8的方格也填

    24、入合理的整数后,就找到了一个解。 (分数:15.00)_正确答案:()解析:(1) checkMatrixposi (2) apos+aj (3) a+pos (4) bapos=1 (5) pos= =8 或pos=8 或 pos7 考点分析 考查 C语言程序设计,主要是试探和回溯算法。 解析 程序中主要变量及其作用说明如下:pos 用于标记当前要填数的方格序号;数组元素 ai表示第 i个方格所填的内容;数组元素 bj标记整数 j是否被使用 (初始化时设为 1,表示没有使用);一维数组 checkMatrixi记录了填写第 i个方格需要检查的方格序号,例如 checkMatrix4=1,3,

    25、-1,其中-1 用作结束标记。 (1)此循环遍历一维数组 checkMatrixpos,取出第 i个数 checkMatrixposi赋给 j,直至-1; (2)j 是checkMatrixpos中不等于-1 的值,即表示需要检查当前方格(第 pos个)与第 j个的和是否是素数; (3)这条语句应包含 pos增 1以及 apos=selectNum (1)前后两个操作,因此需用+pos; (4)若能为当前方格找到下一个未被使用的数,则应先释放当前格中的数,再填入新数; (5)这条语句包含输出方格操作,因此判断的条件是全部方格被填满,即 pos值已增至 8。五、B试题五/B(总题数:1,分数:1

    26、5.00)5.说明 某单位组织一次职业技术考核比赛,由十名评委对选手的现场表现打分(0 到 100以内的数值)。本程序接收原始评分后,去掉一个最高分、一个最低分,最后计算并输出选手最后得分。在接收输入第 i个评分时,若输入数据的类型、范围不正确,程序将给出相应提示,并等待下一次输入,直至正确接收第i个评分为止。程序的运行界面如下: (分数:15.00)_正确答案:()解析:(1) Not (2) marks(1)或 marks(i) (3) minMark=marks(i) (4) sumMark-maxMark-minMark (5) Text1 考点分析 考查 VB语言程序设计,主要是控件

    27、的使用。 解析 (1)程序在输入数据 temp不是数值(即 IsNumeric (temp)返回 False值)时报告错误,因而此处应填写逻辑运算符:取非; (2)由程序最后的输出可推断:maxMark 和 minMark分别用于记录最高分和最低分。它们通过 For循环求得,此处需要为其赋初值; (3)当第 i个评分 marks(i)小于当前 minMark的值时,应该更新 minMark; (4)根据程序说明,选手最后的分为去掉一个最高分、一个最低分后的平均分; (5)略。六、B试题六/B(总题数:1,分数:15.00)6.说明 本程序使用类来管理员工的通讯地址信息。已知程序的输出为: 输出

    28、记录:5 姓名:王丽华 街道地址:中华路 15号 市:襄樊市 省:湖北省 邮政编码:430070 Java 代码 public class Employee protected String U(1) /U; protected String street; protected String city; protected String prov; protected String post; protected int no; public Empbyee() public Employee(String name,String street,String city,String prov,

    29、String post,U (2) /U) this.name=name; this.street=street; this.city=city; this.prov=prov; this.post=post; this.no=no; public static void main(Stringargs) Employee emp=new Employee(“王华”,“中华路 15号”,“武汉市”,“湖北省”,“430070”,1); emp.changeName(“王丽华”); U (3) /U(“襄樊市”); emp.changeNo(5); U (4) /U; void changeNa

    30、me(String name)this.name=name; void changeStreet(String street)this.street=street; void changeCity(String city)this.city=city; void changeProv(String prov)this.prov=prov; void changeNo(int no)U (5) /U; void display() System.out.println(“输出记录:”+this.no); System.out.Println(“姓名:”+this.name); System.ou

    31、t.println(“街道地址:”+this.street); System.out.println(“市:”+this.city); System.out.println(“省:”+this.prov);System.out.println(“邮政编码:”+this.post); (分数:15.00)_正确答案:()解析:(1) name (2) int no (3) emp.changeCity (4) emp.display() (5)this.no=no 考点分析 考查Java语言程序设计,主要是类的使用。 解析 本程序创建一个 employee类,包括姓名、街道地址、市、省、邮政编码

    32、和记录号等信息以及若干函数:构造函数 employee()初始化每个成员;changname()、changeno()等用于更改类中各属性的值;display()函数用于打印数据。七、B试题七/B(总题数:1,分数:15.00)7.说明 某公司的服务器上为每位员工提供了一定大小的存储空间,用于数据的备份。下面的程序面向公司员工,提供了本地计算机与服务器端之间文件传输的功能。主要操作介绍如下: (1)连接服务器:员工需要输入用户名和口令才能连接到服务器端,checkUser 函数用于检查用户名和口令是否合法,返回真假值。 (2)上传文件:从本地计算机上传文件到服务器。员工可以在本地文件列表中选择

    33、一个或多个文件,这些文件通过上传操作被复制到服务器端指定的某个文件夹中; (3)下载文件:从服务器端下载文件到本地。 (分数:15.00)_正确答案:()解析:(1) Dir1.Path=Drive1.Drive (2) InpatBox (3) File1.ListCount-1 (4) File1.Selected(i) (5) GetFile 考点分析 考查 VB语言程序设计,主要是文件系统对象的使用。 解析 (1)驱动器列表框的Drive属性表示当前选择的驱动器;目录列表框的 Path属性表示当前目录的路径;文件列表框的 path属性则表示列表中文件所在的目录的路径; (2)此处需要提

    34、供输入框以供用户输入用户名和密码; (3)Flie1.ListCount表示 File1中文件的总数目,因文件编号自 0起,所以还应减去 1; (4)若文件列表框中某项被选中,则其 Selected(index)属性将为 True,此循环中,index 就足循环变量 i; (5)FSO 对象的 GetFile方法返回一个和指定路径中文件相对应的 File对象。八、B试题八/B(总题数:1,分数:15.00)8.说明 以下程序的功能是统计学生成绩,包括输入学生的姓名和成绩,按成绩从高到低排列打印输出,对前百分之七十的学生定为合格(PASS),而后百分之三十的学生定为不合格(FAIL)。例如,当输

    35、入 4名学生的姓名和成绩“Alice 67 Mary 90 Tom 56 John 88”后,程序的执行结果如下: 姓名 成绩 合格否 Mary 90 PASS John 88 PASS Alice 67 FAIL Tom 56 FAIL C+程序 #include stdio.h #include string.h #define N 10 class student protected: char name10; int deg; public: void setname(charna) strcpy(name,na); char * getname() return name; void

    36、 setdeg(int d) deg= d; int getdeg()return deg; ; class compute int ns; student naN; public: void getdata(); void sort(); void disp(); ; void compute:getdata() int i,tdeg; char tname10; printf(“输入学生人数:“); scanf(“%d“, printf(“输入学生姓名和成绩:/n“); for(i=0;ins;i+ +) scanf(“%s%d“,tname, U(1) /U; nai.setdeg(td

    37、eg); void compute:sort() int i,j,pick; U (2) /U; for(i=0;ins-1;i+ +) pick=i; for(j=i+1;jns;j+ +) if(naj.getdeg()napick.getdeg()U (3) /U; temp=nai; nai=napick; napick=temp; void compute:disp() int cutoff,i; printf(“RESULT/n“); printf(“姓名 成绩 合格否/n“); cutoff=ns*7/10-1; for(i=0;ins;i+ +) printf(“%-6s%3d

    38、“,U (4) /U); if(U (5) /U) printf(“/tPASS/n“); else printf(“/tFAIL/n“); void main() compute obj; obj.getdata(); obj.sort(); obj.disp(); (分数:15.00)_正确答案:()解析:(1) nai.setname(tname) (2) student temp (3) pick=j (4) nai.getname(),nai.getdeg() (5) i=cutoff 考点分析 考查 C+语言程序设计,主要是类的使用。 解析 本程序定义了两个类student和 co

    39、mpute,另有三个公共成员函数 getdata()、sort()和 disp(),它们分别用于获取数据、按成绩排序和输出数据。 (1)此处获取扑更新学生对象 nai的姓名属性; (2)sort()函数后半部分使用了student类型的变量 temp,应该在此处声明; (3)sort()函数的功能是将数组 na按成绩降序排列,这里使用的是简单选择排序算法,pick 和 i都是数组下标,且 pick记录了自第 i个位置起最大元素的下标;(4)根据程序输出的示例,此处应依次输出 nai的姓名和成绩,分别需使用 getname()和 getdeg()方法获得; (5)cutoff 是前百分之七十学生的序号。


    注意事项

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




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

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

    收起
    展开