【计算机类职业资格】初级程序员下午试题-63及答案解析.doc
《【计算机类职业资格】初级程序员下午试题-63及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】初级程序员下午试题-63及答案解析.doc(14页珍藏版)》请在麦多课文档分享上搜索。
1、初级程序员下午试题-63 及答案解析(总分:120.00,做题时间:90 分钟)一、试题一(总题数:1,分数:15.00)1.【说明】为了减少直接插入排序关键字的比较次数,本算法使用了二分(折半)插入法对一个无序数组 R1.n进行排序。排序思想是对一个待插入元素,先通过二分法(折半)找到插入位置,后移元素后将该元素插入到恰当位置(假设 R中的元素互不相同)。【算法】1变量声明X:DataTypei,j,low,high,mid,R0n)2每循环一次插入一个 Ri循环:i 以 1为步长,从 2到 n,反复执行准备X-Ri; (1) ;high-i-1;找插入位置循环:当 (2) 时,反复执行(3
2、) ;若 X.keyRmid.key则 high-mid-1否则 (4) 后移循环:j 以-1 为步长,从 (5) ,反复执行Rj+1-Rj插入Rlow-X3算法结束(分数:15.00)填空项 1:_二、试题二(总题数:1,分数:15.00)2.1说明】【函数 2.1说明】函数 stremp()是比较两个字符串 s和 t的大小。若 st 函数返回负数;若 s=t函数返回 0;若 st,函数返回正数。【函数 2.1】int strcmp(char * s,char * t)while(* st+;return (2) ;【程序 2.2说明】在 n行 n列的矩阵中,每行都有最大的数,本程序求这 n
3、个最大数中的最小一个。【程序 2.2】#includestdio.h#define N 100int aN N;void main()int row ,col,max,min,n;/* 输入合法 n(n100),和输入 nn个整数到数组 a的代码略*/for (row =0;rown;row+) for(max=arow 0,col=1;coln;col+)if( (3) )max=arowcol;if( (4) )min=max;else if( (5) )min=max;printf(“The min of max numbers is %d/n“,min);(分数:15.00)填空项 1
4、:_三、试题三(总题数:1,分数:15.00)3.【说明】函数 move(int*a,int n)用于整理数组 a的前 n个元素,使其中小于 0的元素移到数组的前端,大于 0的元素移到数组的后端,等于 0的元素留在数表中间。令 a0alow-1)小于 0(初始为空);alow-ai-1等于 0(初始为空);aiahigh还未考察,当前考察元素为 ai。ahigh+1an-1大于 0(初始为空)。【函数】move(int*a ,int n)int i,low,high,t;low=i=0;high=n-1;while( (1) )if(ai0)t=ai;ai=alow;alow=t;(2) ;i
5、+;else if( (3) )t=ai;ai=ahigh;ahigh=t;(4) ;else (5) ;(分数:15.00)填空项 1:_四、试题四(总题数:1,分数:15.00)4.【说明】从文件 IN.DAT中读取一篇英文文章存入到字符串数组 XX中;请编写程序,其功能是:以行为单位把字符串中所有小写字母。左边的字符串内容移到该串的右边存放,然后把小写字母。删除,余下的字符串内容移到已处理字符串的左边存放。最后把已处理的字符串仍按行重新存入字符串数组 XX中,最后调用函数WRITEDAT(),把结果 XX输出到文件 OUT5.DAT 中。例如:原文:You can create an i
6、ndex on any fieldyou have the correct record.结果:n any fieldYu can create an indexrd. yu have the crreet res原始数据文件存放的格式是:每行的宽度均小于 80个字符,含标点符号和空格。【函数】#include “stdio.h“#include “string.h“#include “conio.h“#include “ctype.h“#include “mem.h“unsigned char xx50 80int maxline=0;int readdat(void);void write
7、dat(void)*将题目要求的字符串中所有小写字母 o左边的字符串内容移到谊串的右边存放,即将串中“最后”一个字母 o左右两侧的内容互换*void StrOR(void)inti;char*p1,* p2,t80;for(i=0;imaxline;i+)t0=/0;p2=xxi;while(*p2) /*找到最后一个别o*/if( (1) )p1=p2;p2+;strcat(t,p1+1);*p1=/0;strcat(t,xxi);p1=xxi;p2=t;while(*p2) /*删去字符o*/if( (2) ) (3) =*p2;p2+;(4) ;void main()clrscr();i
8、f(readdat()printf(“Cant open the file IN. DAT!/n“);return;StrOR();writedat();int readdat(void)FILE * fp;int i=0;char * p;if(fp=fopen(“in.dat“,“r“ )=NULL)return 1;while(fgets(xxi,80, fp)!=NULL)p=strchr(xxi,/n);if(p)*p=0;i+;maxline: (5) ;fclose(fp);return 0;void writedat (void)FILE * fp;int i;fp=fopen
9、(“in.dat,“w“);for(i=0;imaxline;i+)printf(“%s/n“,xxi);fprintf(fp,“ %s/n“,xxi);fclose(fp);(分数:15.00)填空项 1:_五、试题五(总题数:1,分数:15.00)5.【说明】在窗体上画一个名称为 Combo1的组合框,画两个名称分别 Labe11、Labe12 及 Caption属性分别为“城市名称”和空白的标签。程序运行后,当在组合框中输入一个新项后按回车键 (ASCII 码为 13)时,如果输入的项在组合框的列表中不存在,则自动添加到组合框的列表中,并在 Labe12中给出提示“已成功添加输入项”;如
10、果存在,则在 Labe12中给出提示“输入项已在组合框中”。【程序】Private Sub Combo1 (1) (KeyAscii As Integer)If KeyAscii= (2) ThenFor i=0 To (3) If Combo1. Text= (4) ThenLabe12. Caption =“输入项已在组合框中“Exit SubEnd IfNext iLabel2. Caption =“已成功添加输入项“Combo1. (5) Combo1.TextEnd IfEnd Sub(分数:15.00)填空项 1:_六、试题六(总题数:1,分数:15.00)6.【说明】以下程序的功
11、能是计算三角形、矩形和正方形的面积并输出。程序由 4个类组成:类 Triangle、Rectangle 和 Square分别表示三角形、矩形和正方形;抽象类 Figure提供了一个纯虚拟函数 getArea(),作为计算上述 3种图形面积的通用接口。【C+程序】#includeiostream.h#includemath.hclass Figure public:virtual double getArea()=0; /纯虚拟函数;class Rectangle: (1) protected:double height;double width;public:Rectangle() ;Rect
12、angle(double height,double width) this-height=height;this-width=width;double getArea() return (2) ;class Square: (3) public:Square(double width)(4) ;class Triangle: (5) double la;double lb;double lc;Public:Triangle(double la, double lb, double lc) This-la=la; this-lb=lb; this-lc=lc;double getArea()
13、double s = (la+lb+c)/2.0;return sqrt(s,(s-l a)*(s-l b)*(s-I c);void main() Figure*figures3=new Triangle(2,3,3), new Rectangle(5,8), new SqUare(5);for(int i=0;i3;i+)cout“figures“i“area=“(figuresi)-getArea()endl;(分数:15.00)填空项 1:_七、试题七(总题数:1,分数:15.00)7.【说明】下面程序的功能是找出所有三位数中,个、十、百位数字的立方和等于该数本身的三位数并显示。在程序
14、的每条横线处填写一个适当的词或语句,使程序的功能完整。public (1) class cube_Root public static void (2) main(String args) System. out. println (“个、十、百位数字的立方和等于该数本身的三位数有:“);for(int n=100;n1000;n+)int a,b,c;(3) b=n/10%10;(4) if( (5) )System.out.println(n);(分数:15.00)填空项 1:_八、试题八(总题数:1,分数:15.00)8.【说明】本程序是一个可进行数制转换的应用程序,图 1所示是其运行界
15、面。txtDec 为 TextBox控件名,Lblkes为转换结果 label控件名。(分数:15.00)填空项 1:_初级程序员下午试题-63 答案解析(总分:120.00,做题时间:90 分钟)一、试题一(总题数:1,分数:15.00)1.【说明】为了减少直接插入排序关键字的比较次数,本算法使用了二分(折半)插入法对一个无序数组 R1.n进行排序。排序思想是对一个待插入元素,先通过二分法(折半)找到插入位置,后移元素后将该元素插入到恰当位置(假设 R中的元素互不相同)。【算法】1变量声明X:DataTypei,j,low,high,mid,R0n)2每循环一次插入一个 Ri循环:i 以 1
16、为步长,从 2到 n,反复执行准备X-Ri; (1) ;high-i-1;找插入位置循环:当 (2) 时,反复执行(3) ;若 X.keyRmid.key则 high-mid-1否则 (4) 后移循环:j 以-1 为步长,从 (5) ,反复执行Rj+1-Rj插入Rlow-X3算法结束(分数:15.00)填空项 1:_ (正确答案:low-1 (2) lowhigh (3)mid-int(low+high)/2) (4)low-mid+1(5)i-1 到 low)解析:解析 这是一个通过自然语言描述二分插入排序的过程。整个过程由一个大循环来完成,在大循环中又包含两个循环,第一个循环是一个二分查找
17、过程,第二循环是后移过程。查找过程是在有序序列 R1Ri-1中查找 Ri的过程,这是一个典型的折半查找过程。初始时指针low指向第一个元素,即 R 1,指针 hish指向第后一个元素,因此(1)空处应填写“low-1”。要查找Ri,先与中间元素进行比较,中间元素使用 mid指向,因此,(3)空处应填入“mid-int(low+high)/2)”。当 RiRmid时,则在前半部分查找,将 high-mid-1,如果 RiRmid时,则在后半部分查找,因此(4)空处应填“low-mid+1”。那什么时候结束呢?显然,一种情况是已经找该元素,由于题目中已经假设元素互不相同,这种情况不会发生,二是没有
18、找到该元素,即指针 low和指针 high之间的没有元素了,所以(2)空处应填写“lowhigh”。(5)空所在循环是进行数据移动,结合下面语句,可以判断循环是从 i-1开始,到什么时候结束呢?通过分析,可以知道,最终要把 Ri放在 Rlow的位置,循环要到 low时结束,因此(5)空处应填写“i-1 到 low”。二、试题二(总题数:1,分数:15.00)2.1说明】【函数 2.1说明】函数 stremp()是比较两个字符串 s和 t的大小。若 st 函数返回负数;若 s=t函数返回 0;若 st,函数返回正数。【函数 2.1】int strcmp(char * s,char * t)whi
19、le(* st+;return (2) ;【程序 2.2说明】在 n行 n列的矩阵中,每行都有最大的数,本程序求这 n个最大数中的最小一个。【程序 2.2】#includestdio.h#define N 100int aN N;void main()int row ,col,max,min,n;/* 输入合法 n(n100),和输入 nn个整数到数组 a的代码略*/for (row =0;rown;row+) for(max=arow 0,col=1;coln;col+)if( (3) )max=arowcol;if( (4) )min=max;else if( (5) )min=max;p
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 初级 程序员 下午 试题 63 答案 解析 DOC
