2009程序员考试下午[1]

上传人:wm****3 文档编号:47228445 上传时间:2018-07-01 格式:PDF 页数:9 大小:345.89KB
返回 下载 相关 举报
2009程序员考试下午[1]_第1页
第1页 / 共9页
2009程序员考试下午[1]_第2页
第2页 / 共9页
2009程序员考试下午[1]_第3页
第3页 / 共9页
2009程序员考试下午[1]_第4页
第4页 / 共9页
2009程序员考试下午[1]_第5页
第5页 / 共9页
点击查看更多>>
资源描述

《2009程序员考试下午[1]》由会员分享,可在线阅读,更多相关《2009程序员考试下午[1](9页珍藏版)》请在金锄头文库上搜索。

1、 2009 年上半年 程序员 下午试卷 第 1 页 (共 9 页) 全国计算机技术与软件专业技术资格全国计算机技术与软件专业技术资格全国计算机技术与软件专业技术资格全国计算机技术与软件专业技术资格(水平水平水平水平)考试考试考试考试 2009 年上半年年上半年年上半年年上半年 程序员程序员程序员程序员 下午试卷下午试卷下午试卷下午试卷 (考试时间 14:0016:30 共 150 分钟) 请按下述要求正确填写答题纸请按下述要求正确填写答题纸请按下述要求正确填写答题纸请按下述要求正确填写答题纸 1. 在答题纸的指定位置填写你所在的省、自治区、直辖市、计划单列市的名称。 2. 在答题纸的指定位置填

2、写准考证号、出生年月日和姓名。 3. 答题纸上除填写上述内容外只能写解答。 4. 本试卷共 6 道题,试题一至试题四是必答题,试题五至试题六选答 1 道。每题 15 分,满分 75 分。 试题号 一四 五六 选择方法 必答题 选答 1 题 5. 解答时字迹务必清楚,字迹不清时,将不评分。 6. 仿照下面例题,将解答写在答题纸的对应栏内。 例题例题例题例题 2009 年上半年全国计算机技术与软件专业技术资格(水平)考试日期是(1)月(2)日。 因为正确的解答是 “5 月 23 日” , 故在答题纸的对应栏内写上 “5” 和 “23”(参看下表) 。 例题 解答栏 (1) 5 (2) 23 200

3、9 年上半年 程序员 下午试卷 第 2 页 (共 9 页) 试题一试题一试题一试题一(共共共共15分分分分) 阅读以下说明和流程图,填补流程图中的空缺(1)(5) ,将解答填入答题纸的 对应栏内。 【说明说明说明说明】 下面的流程图采用公式ex = 1+ x + x2/2! + x3/3! + x4/4! + + xn/n! + 计算 ex的近似值。 设x位于区间 (0,1) , 该流程图的算法要点是逐步累积计算每项xn/n!的值 (作为T) , 再逐步累加T值得到所需的结果S。当T值小于10-5时,结束计算。 【流程图流程图流程图流程图】 (3),1 n,1 T,1 (1) ,输入xT *

4、(2) T(4) SNoYes输出S(5),2009 年上半年 程序员 下午试卷 第 3 页 (共 9 页) 试题二试题二试题二试题二(共共共共15分分分分) 阅读以下说明和C函数,将应填入 (n) 处的字句写在答题纸的对应栏内。 【说明说明说明说明】 C语言常用整型(int)或长整型(long)来说明需要处理的整数,在一般情况下可 以满足表示及运算要求,而在某些情况下,需要表示及运算的整数比较大,即使采用更 长的整型(例如,long long类型,某些C系统会提供)也无法正确表示,此时可用一维 数组来表示一个整数。 假设下面要处理的大整数均为正数,将其从低位到高位每4位一组进行分组(最后 一

5、组可能不足4位) ,每组作为1个整数存入数组。例如,大整数2543698845679015847 在数组A中的表示如下(特别引入-1表示分组结束) : A0 .-12543698845679015847A1A2A3A4A5A6An在上述表示机制下, 函数add_large_number(A,B,C)将保存在一维整型数组A和B中 的两个大整数进行相加,结果(和数)保存在一维整型数组C中。 【C函数函数函数函数】 void add_large_number(int A, int B, int C) int i, cf ; /*cf存放进位*/ int t, *p; /*t为临时变量,p为临时指针*

6、/ cf = (1) ; for(i = 0; Ai-1 i+) /*将数组A、B对应分组中的两个整数进行相加*/ t = (2) ; Ci = t % 10000; cf = (3) ; if ( (4) ) p = B; else p = A; for( ; pi-1; i+) /*将分组多的其余各组整数带进位复制入数组C*/ Ci = (pi + cf) %10000; cf = (pi + cf) /10000; if ( cf 0 ) Ci+ = cf; (5) = -1; /*标志“和数“的分组结束*/ 2009 年上半年 程序员 下午试卷 第 4 页 (共 9 页) 试题三试题三

7、试题三试题三(共共共共15分分分分) 阅读以下说明、C函数和问题,将解答填入答题纸的对应栏内。 【说明说明说明说明】 二叉查找树又称为二叉排序树, 它或者是一棵空树, 或者是具有如下性质的二叉树: 若它的左子树非空,则其左子树上所有结点的键值均小于根结点的键值; 若它的右子树非空,则其右子树上所有结点的键值均大于根结点的键值; 左、右子树本身就是二叉查找树。 设二叉查找树采用二叉链表存储结构,链表结点类型定义如下: typedef struct BiTnode int key_value; /*结点的键值,为非负整数*/ struct BiTnode *left,*right; /*结点的左、

8、右子树指针*/ *BSTree; 函数find_key(root, key)的功能是用递归方式在给定的二叉查找树 (root指向根结点) 中查找键值为key的结点并返回结点的指针;若找不到,则返回空指针。 【C函数函数函数函数】 BSTree find_key(BSTree root, int key) if ( (1) ) return NULL; else if (key = root- key_value) return (2) ; else if (key key_value) return (3) ; else return (4) ; 【问题问题问题问题1】 请将函数find_ke

9、y中应填入(1)(4)处的字句写在答题纸的对应栏内。 【问题问题问题问题2】 若某二叉查找树中有n个结点,则查找一个给定关键字时,需要比较的结点个数取 决于 (5) 。 2009 年上半年 程序员 下午试卷 第 5 页 (共 9 页) 试题四试题四试题四试题四(共共共共15分分分分) 阅读以下两个说明、C函数和问题,将解答写入答题纸的对应栏内。 【说明说明说明说明1】 函数main()的功能旨在对输入的一个正整数n,计算12+22+32+n2,但是对该函 数进行测试后没有得到期望的结果。 【C函数函数函数函数1】 行号 代码 1 2 3 4 5 6 7 8 void main( ) int k

10、, n, sum; printf(“input an integer:“); scanf(“%d“, n); for( k = 1; k #include #include using namespace std ; class employee (1) : employee(string name,string phoneNumber, string address) employee-1002 85523927-1002 address-1002 employee-1001 85523927-1001 address-1001 employee-1003 85523927-1003 add

11、ress-1003 员工编号(employeeNo) 员工信息对象指针 (employee) 员工信息对象 (employee) map 对象 1001 1002 1003 从下列2道试题(试题五至试题六)中任选1道解答。如 果解答的试题数超过1道,则题号小的1道解答有效。 2009 年上半年 程序员 下午试卷 第 7 页 (共 9 页) this-name = name; this-phoneNumber = phoneNumber; this-address = address; string name; string phoneNumber; string address; ; int

12、main( ) map employeeMap; typedef pair employeePair; for (int employIndex = 1001; employIndex employeeNo; /从标准输入获得员工编号 map:const_iterator it; it = (5) .find(employeeNo); /根据员工编号查找员工信息 if (it = employeeMap.end() cout first second-name second-phoneNumber second-address employeeMap = new HashMap(); for

13、(Integer employIndex = 1001; employIndex = 1003; employIndex+) String tmp = employIndex. (1) (); employeeMap. (2) (employIndex, (3) (“employee-“+tmp, “85523927-“+tmp, “address-“+tmp ) ); /将员工编号和员工信息插入到employeeMap对象中 int employeeNo = 0; System.out.print(“请输入员工编号:“); Scanner s= new Scanner(System.in);

14、 employeeNo = s.nextInt(); /从标准输入获得员工编号 employee result = employeeMap. (4) (employeeNo); if ( (5) = null) System.out.println(“该员工编号不存在 !“); return; System.out.println(“你所查询的员工编号为:“ + employeeNo); System.out.println(“该员工姓名:“ + result.name); System.out.println(“该员工电话:“ + result.phoneNumber); System.out.println(“该员工地址:“ + result.address );

展开阅读全文
相关资源
相关搜索

当前位置:首页 > 生活休闲 > 社会民生

电脑版 |金锄头文库版权所有
经营许可证:蜀ICP备13022795号 | 川公网安备 51140202000112号