回 帖 发 新 帖 刷新版面

主题:2009年上半年软考程序员下午试卷[1]

http://www.educity.cn 作者:软考办 来源:希赛教育
 试题一(共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)  。
    [答案讨论] 



回复列表 (共1个回复)

沙发

法蕾雅竹纤维竹元诚

寻找一直寻找机会的人!
一个趋势中的趋势的项目!
一个直销和传销终结者的项目!
一个帮助普通创业者成功的项目!
   我们在互联网上正在拓展一个生意项目,现在正在寻求合作伙伴。我们认为成功的关键是你是什么人?还有你和谁在一起。我们在乎的是--您是否是有激情、有梦想的人。有意者请跟我们联系,我们和您谈谈,给您讲解一些生意概念,或许我们可以合作。一个集即21世纪品质生活、健康生活,生态家纺,网络品牌代理商城,互联网平台项目招商进行中……详情QQ空间资料 http://294355161.qzone.qq.com
网商咨询 法蕾雅竹元诚QQ 294355161 
科技之光传访法蕾雅http://player.youku.com/player.php/sid/XMTc2MzY4MjQ0/v.swf
法蕾雅竹纤维的神奇六大功效新浪博客
http://blog.sina.com.cn/s/blog_6ca0216a0100n7hq.html 
 

我来回复

您尚未登录,请登录后再回复。点此登录或注册