【计算机类职业资格】初级程序员下午试题-51及答案解析.doc
《【计算机类职业资格】初级程序员下午试题-51及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】初级程序员下午试题-51及答案解析.doc(16页珍藏版)》请在麦多课文档分享上搜索。
1、初级程序员下午试题-51 及答案解析(总分:105.00,做题时间:90 分钟)一、B试题一/B(总题数:1,分数:15.00)阅读以下标准书号校验码的技术说明和程序流程图,根据要求回答问题 1至问题 3。说明为实现图书的国际统一编码,便于实现计算机化的图书管理,每本正式出版的图书都印有国际标准书号。标准书号由“ISBN”、10 个数字(0-9)组成,其格式如下。ISBN 组号-出版者号-书名号-校验码其中,校验码是根据前面 9个数字计算得到的,用于计算机自动校验。假设标准书号的 10个数字依次是a(1),a(2),a(10),则校验码 a(10)的设置应使 S=1O*a(1)+9*a(2)+
2、8*a(3)+1*a(10)能被 11整除。如果校验码 a(10)应设置成 10,则规定以“X”表示之。例如,软件设计师考试考前冲刺预测卷及考点解析的标准书号为:ISBN 7-121-05027-5。第 1段上的数字“7”是国际 ISBN中心分配给中国 ISBN中心管理的组号;第 2段上的“121”表示电子工业出版社。标准书号的校验过程如图 3-16所示,计算校验码的过程如图 3-17所示。其中,Mod(S,11)表示 S除以 11得到的余数。图 3-16 标准书号的校验过程(分数:15.00)(1).问题 1请根据标准书号校验码的说明,将图 3-16和图 3-17程序流程图中(1)-(4)空
3、缺处的内容填补完整。(分数:5.00)_(2).问题 2图 3-16(或图 3-17)中 Mod(S,11)表示 S除以 11得到的余数。以下C 程序实现不使用求余计算符号“%”,求取被除数 p和除数 q之间的余数。C程序static int fun(int p,int q) int x=0;while (x=p) if (x = p)return 0;U (5) /Ureturn U(6) /U(分数:5.00)_(3).问题 3假设应试捷径典型考题解析与考点贯通(系统分析师考试)书籍标准书号前 9个数字为 7-121-04715,请写出其对应的校验码。(分数:5.00)_二、B试题二/B(
4、总题数:1,分数:15.00)1.说明打保龄球是用一个滚球去打出 10个站立的柱,将柱击倒。一局分 10轮,每轮可滚球一次或多次,以击倒的柱数为依据计分。一局得分为 10轮得分之和,而每轮的得分不仅与本轮滚球情况有关,还可能与后续一两轮的滚球情况有关。即某轮某次滚球击倒的柱数不仅要计入本轮得分,还可能会计入前一两轮得分。具体的滚球击柱规则和计分方法如下:1) 若某一轮的第一次滚球击倒全部 10个柱,则本轮不再滚球(若是第 10轮则还需另加两次滚球)。该轮得分为本次倒柱数(即 10)与以后两次滚球所击倒柱数之和。2) 若某一轮的第一次滚球未击倒 10个柱,则可对剩下未倒的柱再滚球一次。如果这两次
5、滚球击倒全部10个柱,则本轮不再滚球(若是第 10轮则还需另加一次滚球),该轮得分为本次倒柱数 10与以后一次滚球所击倒柱数之和。3) 若某一轮的两次滚球未击倒全部 10个柱,则本轮不再继续滚球,该轮得分为这两次滚球击倒的柱数之和。总之,若一轮中一次滚球或两次滚球击倒 10个柱,则本轮得分是本轮首次滚球开始的连续 3次滚球击倒柱数之和(其中有一次或两次不是本轮滚球)。若一轮内二次滚球击倒柱数不足 10个,则本轮得分即为这两次击倒柱数之和。表 3-15是打保龄球计分的某个实例说明。B表 3-15 某保龄球计分实例表/B 轮 1 2 3 4 5 6 7 8 9 10 附加各轮第 1次得分 10 1
6、0 10 7 9 8 8 10 9 10 8各轮第 2次得分 2 1 1 2 1 2各轮得分 30 27 19 9 18 9 20 20 20 20累计总分 30 57 76 85 103 112 132 152 172 192以下C 程序是模拟打一局保龄球的过程,统计各轮得分和累计总分。程序交互地逐轮逐次输入一次滚球击倒的柱数,计算该轮得分和累计总分。为记录一轮内击倒 10柱,但还暂不能计算该轮得分和累计总分的情况,程序引入变量 ok,用来记录当前已完成完整计算的轮次。程序每输入一次滚球击倒柱数,就检查还未完成完整计算的轮次,并计算。C程序#includestdio.h#define N 1
7、3struct int n; /* 一轮内滚球次球 */int f; /* 第一次击倒柱数 */int s; /* 第一次击倒柱数 */int score; /* 本轮得分 */int total; /* 至本轮累计总分 */int m; /* 完成本轮得分计算,还需滚球次数 */ aN;int ok = 0; /* 已完成完整计算的轮次数 */int ball(int i, int n, int max) /* 完成一次滚球,输入正确击倒柱数 */ int d, j, k;static c=1;while (1) if(i = 10)printf(“ 输入第%d 轮的第%d 次滚球击倒柱数。
8、(=%d)/n“, i, n, max );elseprintf(“ 输入附加的第%d 次滚球击倒柱数。(=%d)/n“, C+, max);scanf(“%d , if (d =0 printf(“ 不合理的击倒柱数,请重新输入。/n“)if (ok U(1) /U) /* 对以前未完成计算的轮次分别计算得分与累计总分*/for(j = ok+1; U(2) /U; j+) aj.score += d;if (-aj.m = 0) aj.total = (U (3) /U) + aj.score;ok = U(4) /U;return d;main ( ) int i, first, sec
9、ond, k; /* i表示轮次 */for ( i = 1 ; ok 10 ; i+)ai.score = ai.f = first = ball(i,1,10);if ( first = 10)ai.m = 2;ai.n = 1;if (first 10 if (first + second = 10)ai.m = 1;U(6) /U;if (i = 10 U (7) /U;printf( “各轮处 1次得分“);for(k 1; k = 1; k+)printf(“%5d“, ak.f);printf(“/n 各轮第 2次得分“);for(k=1; k = i; k+)if (ak.n
10、2)printf(“ /“);elseprintf(“%5d“, ak.s);printf(“/n 各轮得分“);for(k = 1; k = ok; k+)printf(“%5d“, ak.score);printf(“/n 累计总分“);for(k = 1; k = ok; k+)printf(“%5d“, ak.total);printf(“/n“);(分数:15.00)_三、B试题三/B(总题数:1,分数:15.00)2.说明 以下C 程序所完成的功能是在 3X3方格中填入数字 1N(N10)内的某 9个互不相同的整数,使所有相邻两个方格内的两个整数之和为质数。系统输出满足该要求的所有
11、填法。系统的部分输出结果如图 3-18所示。 (分数:15.00)_四、B试题四/B(总题数:1,分数:15.00)3.说明 函数 DelA - InsB ( LinkedList La, LinkedList Lb, int key 1,int key 2,int len)的功能是,将线性表 A中关键码为 key 1的节点开始的 len个节点,按原顺序移至线性表 B中关键码为 key 2的节点之前。若移动成功,则返回 0;否则返回-1。 线性表的存储结构为带头节点的单链表,La 为表 A的头指针,Lb 为表 B的头指针。单链表节点的类型定义如下。 typedef struct node in
12、t key; struct node*next; *LinkedList; C程序 int DelA_InsB (LinkedLiSt La, LinkedList Lb, int key1,int key2,int len LinkedList p, q, S, prep, pres; int k; if (!La -next | !Lb -next | len=0) return-l; p = La-next; prep = La; while (p p = p-next; if (!p) return -1; /* 表 A中不存在键值为 key1的节点 */ q = p; k = 1;
13、while (q k+; if (!q) return -1; /* 表 A中不存在要被删除的 len个节点 */ S = Lb -next; U (3) /U; while (s s = e-next; if (!s) return -1; /* 表 B中不存在键值为 key2的节点 */ U (4) /U q-next; /* 将表 A中的 len个节点删除 */ q-next= U(5) /U pres-next = p; /* 将 len个节点移至表 B */ return 0; (分数:15.00)_五、B试题五/B(总题数:1,分数:15.00)从下列 3道试题(试题 5至试题 7
14、)中任选 1道解答。如果解答的试题数超过 1道,则题号小的 1道解答有效。阅读以下应用说明及 Visual Basic程序代码,根据要求回答问题 1至问题 4。说明某文件管理系统的图片浏览器如图 3-19所示。运行程序时,用户只要通过驱动器列表框、目录列表框和文件列表框,选择文本文件所在的驱动器、文件夹及相应的文件名后,在图像框中将显示出相应的文件图像。在开发过程中,假设驱动器列表框名为 drvFile,目录列表框名为 dirFile,文件列表框名为 filFile,选择文件类型组合框名为 cboFile,图像框名为 IMG onClick=over(this) title=放大 Show。(
15、分数:15.00)(1).问题 1请根据说明和图 3-19的显示结果,从以下备选答案中为程序(1)(7)空缺处选择正确的答案。备选答案A. filFile.path B. dirFile.Path=drvFile.DriveCRight(filFile.Path,1) = “/“ DfilFile.Pattern =“*.bmp“EfilFile.Path = dirFile.Path FfilFile.FileNameGSelect Case cboFile.ListIndex(分数:3.75)_(2).问题 2filFile.Pattern属性用于指定文件列表框中所显示的文件类型。若要同时
16、显示*.jpg 和*.gif 两种文件类型,filFile.Pattern 的属性值应如何设置?(分数:3.75)_(3).问题 3若要在图 3-19窗口(窗体名为 frm001)中新增一个命令按钮,单击该命令按钮后,图像框所显示的图像就会成为此窗口的背景图像。请写出该命令按钮单击事件过程内的程序代码。(分数:3.75)_(4).问题 4假设某应用程序开发工程(默认的工程名为“工程 1”)已先后创建了名为Form01和 Form02的两个窗体。为使窗体 Form02成为运行该工程时的启动窗体,在开发过程应进行的操作过程如下。在工程对话框中,用鼠标右键单击“工程 1(工程 1)”,在选择U (8
17、) /U命令,系统弹出如图 3-20所示的对话框。切换至图 3-20的“通用”选项,在“U (9) /U”下拉列表框中,选择“U (10) /U”。图 3-20 “工程 1”属性对话框(分数:3.75)_六、B试题六/B(总题数:1,分数:15.00)4.说明 C+语言本身不提供对数组下标越界的判断。为了解决这一问题,在以下C+程序中定义了相应的类模板,使得对于任意类型的二维数组,可以在访问数组元素的同时,对行下标和列下标进行越界判断,并给出相应的提示信息。 C+程序 #include iostream.h template class T class Array; template Clas
18、s T class ArrayBody friend U(1) /U; T* tpBody; int iRows,iColumns, iCurrentRow; ArrayBody(int IRsz, int iCsz) tpBody = U(2) /U; iRows = iRsz; iColumns = iCsz; iCurrentRow = -1; Public: T row_error = column_error =false; try if (iCurrentRow 0 | iCurrentRow = iRows) row_error = true; if (j0 | j= iColu
19、mns) column_error = true; if (row_error = true | column_error = true) U (3) /U; catch(char) if (row_error = true) cerr “行下标越界“ iCurrentRow “; if (column_error = true) cerr “列下标越界“ j “; cout “/n“; return tpBodyiCurrentRow * iColumns + j; Arraygody()deletetpBody; ; template class T class Array ArrayBo
20、dyT tBody; Public; ArrayBodyT return tBody; Array(int iRsz, int iCsz) : U(5) /U ; void main() Arrayint a1(10,20); Arraydouble a2(3,5); int b1; double b2; b1 = a1-510; /有越界提示:行下标越界-5 b1 = a11015; /有越界提示:行下标越界10 b1 = a114; /没有越界提示 b2 = a226; /有越界提示:列下标越界6 b2 = a21020; /有越界提示:行下标越界10列下标越界20 b2 = a214;
21、/没有越界提示 (分数:15.00)_七、B试题七/B(总题数:1,分数:15.00)5.说明某订单管理系统的部分 UML类图如图 3-21所示。(分数:15.00)_初级程序员下午试题-51 答案解析(总分:105.00,做题时间:90 分钟)一、B试题一/B(总题数:1,分数:15.00)阅读以下标准书号校验码的技术说明和程序流程图,根据要求回答问题 1至问题 3。说明为实现图书的国际统一编码,便于实现计算机化的图书管理,每本正式出版的图书都印有国际标准书号。标准书号由“ISBN”、10 个数字(0-9)组成,其格式如下。ISBN 组号-出版者号-书名号-校验码其中,校验码是根据前面 9个
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 初级 程序员 下午 试题 51 答案 解析 DOC
