[计算机类试卷]2009年上半年软件水平考试(初级)程序员下午(应用技术)试题真题试卷及答案与解析.doc
《[计算机类试卷]2009年上半年软件水平考试(初级)程序员下午(应用技术)试题真题试卷及答案与解析.doc》由会员分享,可在线阅读,更多相关《[计算机类试卷]2009年上半年软件水平考试(初级)程序员下午(应用技术)试题真题试卷及答案与解析.doc(9页珍藏版)》请在麦多课文档分享上搜索。
1、2009年上半年软件水平考试(初级)程序员下午(应用技术)试题真题试卷及答案与解析 1 阅读以下说明和流程图,填补流程图中的空缺 (1)一 (5),将解答填入答题纸的对应栏内。【说明】下面的流程图采用公式 ex=1+x+x2 2 1+x3 3 1+x4 4 1+x n n!+计算 ex的近似值。设 x位于区间 (0, 1),该流程图的算法要点是逐步累积计算每项 xx n!的值 (作为 T),再逐步累加 T值得到所需的结果 s。当 T值小于 10-5时,结束计算。【流程图】 2 阅读以下说明和 c函数,将应填入 (n) 处的 字句写在答题纸的对应栏内。【说明】 c语言常用整型 (int)或长整型
2、 (1ong)来说明需要处理的整数,在一般情况下可以满足表示及运算要求,而在某些情况下,需要表示及运算的整数比较大,即使采用更长的整型 (例如, long long类型,某些 c系统会提供 )也无法正确表示,此时可用一维数组来表示一个整数。假设下面要处理的大整数均为正数,将其从低位到高位每 4位一组进行分组 (最后一组可能不足 4位 ),每组作为 1个整数存人数组。例如,大整数 2543698845679015847在数组 A中的表示如下 (特别引入 -1表示分组结束 ): 在上述表示机制下,函数 add_large_number(A, B, c)将保存在一维整型数组 A和 B中的两个大整数进
3、行相加,结果 (和数 )保存在一维整型数组 c中。【 c函数】 Void add_large_number(int A, int B, int c)int i, cf; *cf存放进位 * int t,*p; *t为临时变量, p为临时指针 * cf= ( 1) ; for(i=0 ; Ai-l Bi-1;i+) *将数组 A、 B对应分组中的两个整数进行相加 * t=(2) ; Ci=t i0000;cf= (3) ; if( (4)P=B; else P=A; for(; Pi-1; i+) *将分组多的其余各组整数带进位复制入数组 C* Ci=(pi+cf) i0000; cf=(pi+
4、cf) 10000; if(cf0) Ci+=cf; (5)=-1; *标志 ”和数 ”的分组结束 * 3 阅读以下说明、 C函数和问题,将解答填入答题纸的对应栏内。 【说明】 二叉查找树又称为二叉排序树,它或者是一棵空树,或者是具有如下性质的二叉树: 若它的左子树非空,则其 左子树上所有结点的键值均小于根结点的键值; 若它的右子树非空,则其右子树上所有结点的键值均大于根结点的键值; 左、右子树本身就是二叉查找树。 设二叉查找树采用二叉链表存储结构,链表结点类型定义如下: typedef struct BiTnode int key_value; *结点的键值,为非负整数 * struct B
5、iTnode*left, *right; *结点的左、右子树指针 * *BSTree; 函数 findkey(root, key)的功能是用递归方式在给定的二叉查找树 (root指向根结点 )中查找键值为 key的结点并返回结点的指针;若找不到,则返回空指针。 【 C函数】 BSTree find_key(BSTree root, int key) if ( (1) ) return NULL; else if(key=root-key_valuel return (2) ; else if(keyname=name; this-phoneNumber=phoneNumber ; this-a
6、ddress=address; string name; string phoneNumber; string address; ); int main()mapemployeeMap; typedef pairemployeeNo; 从标准输入获得员工编号 map: const_iterator it; it= (5) find(employeeNo); 根据员工编号查找员工信息if(it=employeeMap end()coutfirstsecond一 nafae(phoneNumbersecond-address 6 阅读以下说明和 Java代码,将应填人 (n) 处的字句写在答题纸的
7、对应栏内。【说明 】 Java.util包中提供了 HashMap模板类,该模板类可以表示多个 “键一值 ”对的集合,其中 “键 ”的作用与普通数组中的索引相当,而 “值 ”用作待存储和检索的数据。HashMap实现了 Map接口。在 Map接口中定义了 put和 get方法, put方法表示Map对象中加入一个 “键 -值 ”对, get方法则通过 “键 ”来获取其对应的 “值 ”。下面的Java代码中使用了 HashMap模板类,将编号为 1001、 1002、 1003的员工信息插入到 HashMap对象中,然后输入一个指定的员工编号,通过员工编号来获取员工的基本信息。 员工编号为整型编
8、码,而员工的基本信息定义为类 employee。HashMap对象与员工对象之间的关系及存储结构如图 52所示。【 Java代码】import Java.util *; class employeeemployee(String name, String phoneNumber,String address)this name=name; thi s phoneNumber=phoneNumber ;this address=address; String name; String phoneNumber; String address; ; publ ic class jaVaMainpub
9、lic static void main(Stringargs)MapemployeeMap=new HashMap(Integer, employee(); for(Integer employIndex=1001; employIndex 2009年上半年软件水平考试(初级)程序员下午(应用技术)试题真题试卷答案与解析 1 【正确答案】 (1)S (2)x n (3)Tn 【试题解析】 在题目中已经给出了指数函数 ex的公式,即基本算法,另外也给出了计算过程中控制误差终止计算的方法。本题主要的重点是如何设计计算流程,实现级数前若干项的求和,以及判断计算终止的条件。级数求和一般都是采用逐项累
10、加的方法。从流程图我们可以看出 s为累加结果, T为动态的项值,最后通过s+T-S 来完成各项的累加。已知 T=xnx n!,如果每次都直接计算 T 的值,计算量会比较大。从 ex的公式中我们可以看出每一项都一个共同点,就是后一项和前一项有简单的关系 Tn=T(n-i)*x n,我们可以充分利用前项的计算结果来计算后一项,这样就会大大减少计算量。这也是程序员需要掌握的基本技巧。在流程图中,一开始先输入变量 x,接着对其他变量赋初值。级数项号 n 的初始值为 1,逐次进行累积的 T 的初始值为 1,根据后面的流程推断可以看出逐次进行累加的 s应该有初始值 l的 (在输入的 x满足条件直接退出循环
11、的时候根据公式输出的值为D,所以空 (1)的答案为 “S”。从前面分析直到 e。的公式中后一项和前一项有简单的关系 Tn=T(n-i)*x n,所以空 (2)的答案为 “x n”。空 (3)处是判断计算过程结束的条件,按照题目中的要求 “当 T值小于 lO-5时,结束计算。 ”所以空 (3)的答案为“Ts,所以空 (4)的答案为 “S+T”。流程走到空 (5)的时候已经求出第 n项的值 Tn,并累加到 s中,根据算法下一步应该计算第 n+1项的值,所以这里需要对级数的项号 n进行自增,空 (5)的答案可以为 “n+=1”或者 n+,但是根据流程图以上的书写风格写为 “n+1-n”应该是最佳答案
12、。 2 【正确答案】 (1)0 (2)Ai+Bi+cf (3)t 10000 (4)Ai=-l或 Bi-1(5)Ci 【试题解析】 题目用整型数组表示大数组,一个数组元素表示 4位的整数。在这种表示方式下进行两个大整数的相加运算时,需要对进位的处理多加考虑。已知cf 表示进位情况,那么在开始进行相加之前, cf 的初始值应该为 O,所以空 (1)的答案为 “O”。大家都知道在进行加法操作的时候,需要从个位开始进行对齐然后从末位进行相加。对于保存在整型数组中的大整数,我们从最低位 A0和 B0开始相加,并且根据程序中 ci=t 10000对 t的使用,可以推断出 空 (2)的答案为“Ai+Bi+
- 1.请仔细阅读文档,确保文档完整性,对于不预览、不比对内容而直接下载带来的问题本站不予受理。
- 2.下载的文档,不会出现我们的网址水印。
- 3、该文档所得收入(下载+内容+预览)归上传者、原创作者;如果您是本文档原作者,请点此认领!既往收益都归您。
下载文档到电脑,查找使用更方便
2000 积分 0人已下载
下载 | 加入VIP,交流精品资源 |
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 计算机 试卷 2009 上半年 软件 水平 考试 初级 程序员 下午 应用技术 试题 答案 解析 DOC

链接地址:http://www.mydoc123.com/p-492813.html