软考初级程序员09-11下午..doc

  1. 1、本文档共37页,可阅读全部内容。
  2. 2、原创力文档(book118)网站文档一经付费(服务费),不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
  3. 3、本站所有内容均由合作方或网友上传,本站不对文档的完整性、权威性及其观点立场正确性做任何保证或承诺!文档内容仅供研究参考,付费前请自行鉴别。如您付费,意味着您自己接受本站规则且自行承担风险,本站不退款、不进行额外附加服务;查看《如何避免下载的几个坑》。如果您已付费下载过本站文档,您可以点击 这里二次下载
  4. 4、如文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“版权申诉”(推荐),也可以打举报电话:400-050-0827(电话支持时间:9:00-18:30)。
查看更多
软考初级程序员09-11下午.

2009年上半年软考程序员考试下午试卷试题一(共15分)   阅读以下说明和流程图,填补流程图中的空缺(1)~(5),将解答填入答题纸的对应栏内。   【说明】   下面的流程图采用公式计算的近似值。   设x位于区间 (0,1), 该流程图的算法要点是逐步累积计算每项Xn/n!的值 (作为T),再逐步累加T 值得到所需的结果S。当T 值小于10-5 时,结束计算。   【流程图】   试题二(共15分)   【说明】   C 语言常用整型(int)或长整型(long)来说明需要处理的整数,在一般情况下可以满足表示及运算要求,而在某些情况下,需要表示及运算的整数比较大,即使采用更长的整型(例如,long long类型,某些C系统会提供)也无法正确表示,此时可用一维数组来表示一个整数。   假设下面要处理的大整数均为正数,将其从低位到高位每4位一组进行分组(最后一组可能不足4位),每组作为1个整数存入数组。例如,大整数2543698845679015847在数组A 中的表示如下(特别引入-1表示分组结束):   在上述表示机制下,函数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为临时指针*/   cf =???? (1)??? ;   for(i = 0; A[i]-1 B[i]-1; i++) {   /*将数组A、B 对应分组中的两个整数进行相加*/   t =???? (2)??? ;   C[i] = t % 10000;   cf =???? (3)??? ;   }   if (???? (4)????? )??? p = B;   else??? p = A;   for( ; p[i]-1; i++) {????????? /*将分组多的其余各组整数带进位复制入数组C*/   C[i] = (p[i] + cf) %10000;??? cf = (p[i] + cf) /10000;   }   if ( cf 0 )????? C[i++] = cf;   (5)????? = -1;??????????????? /*标志和数的分组结束*/   } 试题三(共15分)   阅读以下说明、C 函数和问题,将解答填入答题纸的对应栏内。   【说明】   二叉查找树又称为二叉排序树,它或者是一棵空树,或者是具有如下性质的二叉树:   ● 若它的左子树非空,则其左子树上所有结点的键值均小于根结点的键值;   ● 若它的右子树非空,则其右子树上所有结点的键值均大于根结点的键值;   ● 左、右子树本身就是二叉查找树。   设二叉查找树采用二叉链表存储结构,链表结点类型定义如下:   typedef struct BiTnode{   int??? key_value;?????????????????? /*结点的键值,为非负整数*/   struct BiTnode *left,*right;??????????? /*结点的左、右子树指针*/   }*BSTree;   函数find_key(root, key)的功能是用递归方式在给定的二叉查找树 (root指向根结点)中查找键值为key的结点并返回结点的指针;若找不到,则返回空指针。   【函数】   BSTree find_key(BSTree root, int key)   {   if (???? (1)????? )   return NULL;   else   if (key == root- key_value)   return???? (2)??? ;   else if (key root - key_value)   return???? (3)??? ;   else   return???? (4)??? ;   }   【问题1】   请将函数find_key中应填入(1)~(4)处的字句写在答题纸的对应栏内。   【问题2】   若某二叉查找树中有n个结点,则查找一个给定关键字时,需要比较的结点个数取决于? (5)? 。试题四(共15 分)   阅读以下两个说明、C 函数和问题,将解答写入答题纸的对应栏内。   【说明1】   函数 main()的功能旨在对输入的一个正整数 n,计算 ,但是对该函数进行测试后没有得到期望的

文档评论(0)

cjbckk + 关注
实名认证
内容提供者

该用户很懒,什么也没介绍

1亿VIP精品文档

相关文档