【计算机类职业资格】计算机水平考试初级程序员2012年下半年下午真题及答案解析.doc
《【计算机类职业资格】计算机水平考试初级程序员2012年下半年下午真题及答案解析.doc》由会员分享,可在线阅读,更多相关《【计算机类职业资格】计算机水平考试初级程序员2012年下半年下午真题及答案解析.doc(5页珍藏版)》请在麦多课文档分享上搜索。
1、计算机水平考试初级程序员 2012 年下半年下午真题及答案解析(总分:90.00,做题时间:150 分钟)一、问答题(总题数:6,分数:90.00)1.试题一(共 15 分) 阅读以下说明和流程图,填补流程图中的空缺(1)(5),将解答填入答题纸的对应栏内。 说明 本流程图用于计算菲波那契数列a11,a2l,anan-1+an-2|n=3,4,)的前 n 项(n2)之和 S。例如,菲波那契数列前 6 项之和为 20。计算过程中,当前项之前的两项分别动态地保存在变量 A 和 B 中。 流程图 (分数:15.00)_2.试题二(共 15 分) 阅读以下说明和 C 函数,填充函数中的空缺,将解答填入
2、答题纸的对应栏内。 说明 如果矩阵 A 中的元素 Ai,j满足条件:Ai,j是第 i 行中值最小的元素,且又是第 j 列中值最大的元素,则称之为该矩阵的一个马鞍点。 一个矩阵可能存在多个马鞍点,也可能不存在马鞍点。下面的函数求解并输出一个矩阵中的所有马鞍点,最后返回该矩阵中马鞍点的个数。 C 函数 (分数:15.00)_3.试题三(共 15 分) 阅读以下说明和 C 函数,填充函数中的空缺,将解答填入答题纸的对应栏内。 说明 函数 Insert_key(*root,key)的功能是将键值 key 插入到*root 指向根结点的二叉查找树中(二叉查找树为空时*root 为空指针)。若给定的二叉查
3、找树中已经包含键值为 key 的结点,则不进行插入操作并返回0;否则申请新结点、存入 key 的值并将新结点加入树中,返回 1。 提示: 二叉查找树又称为二叉排序树,它或者是一棵空树,或者是具有如下性质的二叉树: 若它的左子树非空,则其左子树上所有结点的键值均小于根结点的键值; 若它的右子树非空,则其右子树上所有结点的键值均大于根结点的键值;左、右子树本身就是二叉查找树。 设二叉查找树采用二叉链表存储结构,链表结点类型定义如下: C 函数 (分数:15.00)_4.试题四(共 15 分) 阅读以下说明和 C 函数,填充函数中的空缺,将解答填入答题纸的对应栏内。 说明 已知两个整数数组 A 和
4、B 中分别存放了长度为 m 和 n 的两个非递减有序序列,函数Adjustment(A,B,m,n)的功能是合并两个非递减序列,并将序列的前 m 个整数存入 A 中,其余元素依序存入 B 中。 例如: 合并过程如下:从数组 A 的第一个元素开始处理。用数组 B 的最小元素 B0与数组 A 的当前元素比较,若 A 的元素较小,则继续考查 A 的下一个元素;否则,先将 A 的最大元素暂存入temp,然后移动 A 中的元素挪出空闲单元并将 B0插入数组 A,最后将暂存在 temp 中的数据插入数组 B的适当位置(保持 B 的有序性)。如此重复,直到 A 中所有元素都不大于 B 中所有元素为止。 C
5、函数 (分数:15.00)_5.试题五(共 15 分) 阅读以下说明和 C+代码,填充代码中的空缺,将解答填入答题纸的对应栏内。 说明 下面的程序用来计算并寻找平面坐标系中给定点中最近的点对(若存在多对,则输出其中的一对即可)。程序运行时,先输入点的个数和一组互异的点的坐标,通过计算每对点之间的距离,从而确定出距离最近的点对。例如,在图 5-1 所示的 8 个点中,点(1,1)与(2,05)是间距最近的点对。 C+代码 (分数:15.00)_6.试题六(共 15 分) 阅读以下说明和 Java 程序,填充程序中的空缺,将解答填入答题纸的对应栏内。 说明 下面的程序用来计算并寻找平面坐标系中给定
6、点中最近的点对(若存在多对,则输出其中的一对即可)。程序运行时,先输入点的个数和一组互异的点的坐标,通过计算每对点之间的距离,从而确定出距离最近的点对。例如,在图 6-1 所示的 8 个点中,点(1,1)与(2,05)是间距最近的点对。 java 代码 (分数:15.00)_计算机水平考试初级程序员 2012 年下半年下午真题答案解析(总分:90.00,做题时间:150 分钟)一、问答题(总题数:6,分数:90.00)1.试题一(共 15 分) 阅读以下说明和流程图,填补流程图中的空缺(1)(5),将解答填入答题纸的对应栏内。 说明 本流程图用于计算菲波那契数列a11,a2l,anan-1+a
7、n-2|n=3,4,)的前 n 项(n2)之和 S。例如,菲波那契数列前 6 项之和为 20。计算过程中,当前项之前的两项分别动态地保存在变量 A 和 B 中。 流程图 (分数:15.00)_正确答案:( (1)2 或 A+B (2)n (3)A+B (4)B-A (5)S+B)解析: 菲波那契数列的特点是首 2 项都是 1,从第 3 项开始,每一项都是前两项之和。该数列的前几项为 1,1,2,3,5,8,。 在流程图中,送初始值 1A,2B 后,显然前 2 项的和 S 应等于 2,所以(1)处应填 2(或 A+B)。此时 2i(i 表示动态的项编号),说明已经计算出前 2 项之和。接着判断循
8、环的结束条件。显然当 i=n 时表示已经计算出前 n 项之和,循环可以结束了。因此(2)处填 n。判断框中用“”或“”的效果是一样的,因为随着 i 的逐步增 1,只要有 in 结束条件,就不会遇到 in 的情况。不过编程的习惯使循环结束条件扩大些,以防止逻辑出错时继续循环。 接下来 i+1i 表示数列当前项的编号增 1,继续往下计算。原来的前两项值(分别在变量 A 和 B 中)将变更成新的前两项再放到变量 A 和 B 中。 2.试题二(共 15 分) 阅读以下说明和 C 函数,填充函数中的空缺,将解答填入答题纸的对应栏内。 说明 如果矩阵 A 中的元素 Ai,j满足条件:Ai,j是第 i 行中
9、值最小的元素,且又是第 j 列中值最大的元素,则称之为该矩阵的一个马鞍点。 一个矩阵可能存在多个马鞍点,也可能不存在马鞍点。下面的函数求解并输出一个矩阵中的所有马鞍点,最后返回该矩阵中马鞍点的个数。 C 函数 (分数:15.00)_正确答案:( (1)M (2)minElemarow0或其等价形式 (3)N (4)aik 或其等价形式 (5)M)解析: 本题考查 C 程序设计基本技术。 题目中涉及的主要知识点为二维数组和程序控制逻辑。首先应认真阅读题目的说明部分,以了解函数代码的功能和大致的处理思路,然后理清代码的框架,明确各个变量(或数组元素)所起的作用,并以语句组分析各段代码的功能,从而完
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
5000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 职业资格 计算机水平 考试 初级 程序员 2012 年下 半年 下午 答案 解析 DOC
