005年上半年程序员下午试题答案.pdfVIP

  • 2
  • 0
  • 约6.94千字
  • 约 7页
  • 2017-08-20 发布于湖北
  • 举报
《铁机》2005年上半年程序员下午试题答案

2005 年上半年程序员下午试题答案 试题一答案: (1)0 (2 )1,7,1 (3 )Bi (4 )B0 (5 )1 解析:“异域”运算就是“按位加”运算,俗称不进位的二进制加法i 。符号“+”反映了这种特点, 便于记忆。偶数个1“按位加”得0,奇数个1“按位加”得1。正是这个特点,计算机内部常用 “异或”运算来计算出校验位,从而可以用逻辑电路来实现奇偶校验。 对于B1 、B2、∙∙∙、B6 、B7 这7 个二进制位,采用偶校验时,要求B0—B7 中“1”的个数为 偶数。因此,若B1—B7 中有偶数个“1”,则校验位B0 等于0,否则B0 等于 1。B0 的初始 值为0 时,正好反映了B1—B7 的偶校验结果。因此,空(1)处填入“0” 。循环中应使每个 二进制位参与“异或”运算并把结果保存在B0 中,因此,空(3 )处填入“B0”,空(2 )处的 循环描述为“i :1,7,1”。 若采用奇校验,则B0 的初始值应为1。 试题二答案: (1)m !=n ,及其等价式 (2 )return m ,或return n (3 )i8,或i=7,及其等价形式 (4 )k*10 (5 )p++, 或++p, 或 p+=1 ,或p=p+1 解析:由函数2.1 的说明可知,该函数的功能是计算并返回正整数m 和n 的最大公约数. 由于 函数体重只有变量m 和n, 因此空(1)所在的循环条件只能是关于m 和n 关系的表达式,且最 大公约数保存在m 和n 的值会相等。同时从while 的循环体可知,反复从较大者中减去较小 者后,最后m 和n 的值会相等,因此循环条件为m!=n 或其等价形式。 函数long fun2(char *str) 的功能是:自左至右顺序取出非空字符串str 中最大8 位数字字符形 成一个十进制整数。从函数的功能描述和函数体育局可知,变量i 是用于计算机的得到的数 字字符个数的,由于i 的初始值为0,因此空(1)处应填“i8”或其等价形式。8 位长度的十 1 / 7 本试题及答案仅供参考,疏漏之处不断改进 进制整数a1a2a3a4a5a6a7a8 表示为: a1a2a3a4a5a6a7a8=a1*107+a2*106+a3*105+a4*104+a5*103+a6*102+a7*101+a8=(((((((0*10+a 1)*10+a2)*10+a3)*10+a4)*10+a5)*10+a6)*10+a7)*10+a8 因此有:k0=0,ki=ki-1*10+ai(1≤i≤8),k8 就是计算结果。 试题三答案: (1) p=root-rch (2) pre=root (3) p 一lch (4) pre (5) pre 一lch 解析:根据题目中的说明,函数BSTree Find DeI ( BStree root) 的功能是:若root 指向一棵二 叉树的根结点,则找出该结点的右子树上的“最左下”结点+p ,并从树中删除以 “p”为根的子 树,函数返回被删除子树的根结点指针;若该树根的右子树上不存在“最左下”结点,则返回 空指针。而一棵非空二叉树中“最左下”结点定义为:若树根的左子树为空,则树根为“最左 下”结点;否则,从树根的左子树根出发,沿结点的左子树分支向下查找,直到某个结点不 存在左子树时为止,该结点即为此二叉树的“最左下”结点。 因此,给定一棵非空二叉树后,其右子树上的“最左下”结点要么为右子树根结点自己, 要么为右子树根的左子树结点。 当二叉树非空时,root 指向的结点是存在的,因此,令 p 指向根结点的有子树表示为 “p=root-rch” 。在二叉树上删除结点的操作实质上是重置其父结点的某个子树指针,因此查 找被删除结点时,需要保存被删结点的父结点指针,pre 起的就是这个作用。空(2)处应填入 “p=root”,使得指针pre 与p 指向的结点始终保持父子关系。根据“最左 下”结点的定义,空 (3)处应填入“P-lch” 。 当root 的右子树根为“最左下”结点时,pre 指针的指向就不会被修改,因此,空(4)处应 填入“pre” 。若“最左下”结点在root 的右子树的左子树上,则删除以p 指向的“最左下”结点为 根的子树就是将pre(*p 的父结点) 的左子树指针置空,因此,空(

文档评论(0)

1亿VIP精品文档

相关文档