2004年上半年软件设计师试题及答案

2020-08-26  本文已影响0人  flamez57

●在面向对象技术中,类属是一种__(1)__机制。一个类 属类是关于一组类的一个特性抽象,它强调的是这些类的成员特征中与__(2)__的那些部分,而用变元来表示与__(3)__的那些部分。

(1)A.包含多态   B.参数多态   C.过载多态   D.强制多态

(2)A.具体对象无关 B.具体类型无关 C.具体对象相关 D.具体类型相关

(3)A.具体对象无关 B.具体类型无关 C.具体对象相关 D.具体类型相关

●_(4)_的特点是数据结构中元素的存储地址与其关键字之间存在某种映射关系。

(4)A.树形存储结构 B.链式存储结构 C.索引存储结构 D.散列存储结构

●若循环队列以数组 Q[O..m-1] 作为其存储结构叭变量 rear 表示循环队列中队尾元素的实际位置,其移动按 rear=(rear+1) mod m 进行,变量 length 表示当前循环队列中的元素个数,则循环队列的队首元素的实际位置是__(5)__。

(5)A.rear-length        B.(rear-length+m) mod m

C.(1+rear+m-length) mod m  D.m-length

●一个含有n个顶点和e条边的简单无向图,在其邻接矩阵存储结构中共有_(6)_个零元素。

(6)A.e   B.2e   C.n2-e  D.n2-2e

●若一棵哈夫曼(Huffman)树共有9个顶点,则其叶子结点的个数为__(7)__。

(7)A.4   B.5    C.6    D.7

●若采用邻接矩阵来存储简单有向图,则其某一个顶点i的入度等于该矩阵(8)。

(8)A.第i行中值为1的元素个数      B.所有值为1的元素总数

C.第i行及第i列中值为1的元素总个数 D.第i列中值为1的元素个数

●在—棵度为3的树中,若有2个度为3的结点,有1个度为2的结点,则有__(9)__个度为0的结点。

(9)A.4   B.5    C.6   D.7

●设结点x和y是二叉树中任意的两个结点,在该二叉树的先根遍历序列中x在y之前,而在其后根遍历序列中x在y之后,则x和y的关系是__(10)__。

(10)A.x是y的左兄弟 B.x是y的右兄弟 C.x是y的祖先D.x是y的后裔

●设顺序存储的某线性表共有123个元素,按分块查找的要求等分为3块。若对索引表采用顺序查找方法来确定子块,且在确定的子块中也采用顺序查找方法,则在等概率的情况下,分块查找成功的平均查找长度为__(11)__。

(11)A.21  B.23   C.41   D.62

●下图为一确定有限自动机(DFA)的状态转换图,与该自动机等价的正规表达式是__(12)__,图中的__(13)__是可以合并的状态·

(12)A.(a|b)*bb(a*b*)*  B.(a|b)*bba*|b*  C.(a*b*)bb(a|b)*  D.(a|b)*bb(a*|b*)*

(13)A.0和1  B.2和3  C.1和2  D.0和3

●已知有一维数组A[0..m*n-1],若要对应为 m 行、n 列的矩阵,则下面的对应关系__(14)__可将元素A[k](0≤k<m*n)表示成矩阵的第 i 行、第j列的元素(0≤i<m,0≤j<n)。

(14)A.i=k/n,j=k%m B.i=k/m,j=k%m C.i=k/n,j=%n D.i=k/m,j=k%n

●编译的优化工作对于下面程序段构造的控制流程图有__(15)__个基本块。

(15)A.1  B.2  C.3  D.4

●文法G[S]:S→xSx|y所描述的语言是__(16)__(n≥O)。

(16)A.(xyx)n  B.xyxn  C.xynx  D.xnyxn 

●已知关系R如下表所示,关系R的主属性为__(17)__,候选关键字分别为__(18)__。

(17)A.ABC  B.ABD   C.ACD     D.ABCD

(18)A.ABC  B.AB、AD  C.AC、AD和CD  D.AB、AD、BD和CD

●设供应商供应零件的关系模式为SP(Sno,Pno,Qty),其中Sno表示供应商号,Pno表示零件号,Qty表示零件数量。查询至少包含了供应商“168”所供应的全部零件的供应商号的SQL语句如下:

SELECT Sno   FROM SP SPX   WHERE __(19)__   (

        SELECT *    FROM SP SPY    WHERE __(20)__ AND NOTEXISTS    (

                SELECT *     FROM SP SPZ     WHERE __(21)__

        )

);

(19)A.EXISTS  B.NOT EXISTS  C.IN   D.NOT IN

(20)A.SPY.Sno='168'  B.SPY.Sno<>'168'  C.SPY.Sno=SPX.Sno D.SPY.Sno<>SPX.Sno

(21)A.SPZ.Sno=SPY.Sno AND SPZ.Pno=SPY.Pno  B.SPZ.Sno=SPX.Sno AND SPZ.Pno=SPX.Pno  C.SPZ.Sno=SPX.Sno AND SPZ.Pno=SPY.Pno  D.SPY.Sno<>'168' AND SPZ.Pno=SPY.Pno

●假设某计算机系统的内存大小为256K,在某一时刻内存的使用情况如图A所示。此时,若进程顺序请求20K、10K和5K的存储空间,系统采用__(22)__算法为进程依次分配内存,则分配后的内存情况如图B所示。

图A 图B

(22)A.最佳适应 B.最差适应 C首次适应 D.循环首次适应

●若有一个仓库,可以存放P1、P2两种产品,但是每次只能存放一种产品.要求:

① w=P1的数量-P2的数量   
② -i<w<k (i、k为正整数)

若用PV操作实现P1和P2产品的入库过程,至少需要__(23)__个同步信号量及__(24)__个互斥信号量,其中,同步信号量的初值分别为__(25)__,互斥信号量的初值分别为__(26)__。

(23)A.0  B.1   C.2    D.3

(24)A.0  B.1   C.2    D.3

(25)A.0  B.i,k,0 C.i,k   D.i-1,k-1 ·

(26)A.1  B.1,1  C.1,1,1  D.i,k

●当在软件工程的环境中考虑风险时,主要基于Charette提出的三个概念。以下选项中不属于这三个概念的是__(27)__。项目风险关系着项目计划的成败,__(28)__关系着软件的生存能力。在进行软件工程风险分析时,项目管理人员要进行四种风险评估活动,这四种活动是__(29)__以及确定风险估计的正确性。

(27)A.关心未来  B.关心变化  C.关心技术  D.关心选择

(28)A.资金风险  B.技术风险  C.商业风险  D.预算风险

(29)A.建立表示风险概率的尺度,描述风险引起的后果,估计风险影响的大小

B.建立表示风险概率的尺度,描述风险引起的后果,确定产生风险的原因

C.确定产生风险的原因,描述风险引起的后果,估计风险影响的大小

D.建立表示风险概率的尺度,确定产生风险的原因,估计风险影响的大小

●软件的互操作性是指__(30)__。

(30)A.软件的可移植性  B.人机界面的可交互性

C.连接一个系统和另一个系统所需的工作量  D.多用户之间的可交互性

●面向对象的测试可分为四个层次,按照由低到高的顺序,这四个层次是_(31)__。

(31)A.类层——模板层——系统层——算法层  B.算法层——类层二—模板层——系统层

C.算法层——模板层——类层——系统层  D.类层——系统层——模板层——算法层

●在选择开发方法时,有些情况不适合使用原型法,以下选项中不能使用快速原型法的情况是__(32)__。

(32)A.系统的使用范围变化很大 B.系统的设计方案难以确定

C.用户的需求模糊不清   D.用户的数据资源缺乏组织和管理

●从信息资源管理的观点出发,信息系统的逻辑结构一般由四部分组成,其中__(33)__利用信息系统提供的信息进行决策和选择,是信息系统服务的对象,

(33)A.信息源 B.信息处理器 C.信息使用者 D.信息管理者

●以下选项中,最适合于用交互式计算机软件解决的问题是__(34)__。

(34)A.非结构化决策问题  B.半结构化决策问题  C.结构化决策问题   D.确定性问题

●CMU/SEI推出的__(35)__将软件组织的过程能力分为五个成熟度级别,每一个级别定义了一组过程能力目标,并描述了要达到这些目标应该具备的实践活动。

(35)A.CMM  B.PSP  C.TSP  D.SSE-CMM

●我国著作权法中对公民作品的发表权的保护期限是__(36)__。

(36)A.作者有生之年加死后50年B.作品完成后50年    C.没有限制D.作者有生之年

●商业秘密是我国__(37)__保护的一项重要内容,它包括技术秘密和经营秘密两项基本内容。

(37)A.《专利法》 B.《著作权法》 C.《商标法》 D.《反不正当竞争法》

●某程序员利用他人已有的财务管理信息系统软件中所用的处理过程和运算方法,为某企业开发出财务管理软件,则该程序员__(38)__。

(38)A.不侵权,因为计算机软件开发所用的处理过程和运算方法不属于著作权法的保护对象

B.侵权,因为处理过程和运算方法是他人已有的

C.侵权,因为计算机软件开发所用的处理过程和运算方法是著作权法的保护对象

D.是否侵权,取决于该程序员是不是合法的受让者

●OSI(Open System Interconnection)安全体系方案X.800将安全性攻击分为两类,即被动攻击和主动攻击。主动攻击包括篡改数据流或伪造数据流,这种攻击试图改变系统资源或影响系统运行。下列攻击方式中不属于主动攻击的为(39)。

(39)A.伪装   B.消息泄漏  C.重放   D.拒绝服务

●安全机制是实现安全服务的技术手段,一种安全机制可以提供多种安全服务,而一种安全服务也可采用多种安全机制。加密机制不能提供的安全服务是_(40)_。

(40)A.数据保密性  B.访问控制  C.数字签名  D.认证

●消息摘要算法MD5(Message Digest)是一种常用的Hash函数。MD5算法以一个任意长数据块作为输入,其输出为一个__(41)__比特的消息摘要。

(41)A.128     B.160     C.256     D.512

●5分钟、双声道、22.05kHz采样、16位量化的声音,经5:1压缩后,其数字音频的数据量约为__(42)__。

(42)A.5.168MB   B.5.047MB   C.26.460MB  D.26.082MB

●在YUV彩色空间中对YUV分量进行数字化,对应的数字化位数通常采用Y:U:V=__(43)__。

(43)A.8:4:2    B.8:4:4    C.8:8:4    D.4:8:8

●若视频图像序列中两帧相邻图像之间存在着极大的相关性,则这种相关性称为__(44)__冗余。

(44)A.空间     B.时间     C.视觉    D.信息熵

●下列关于计算机图形图像的描述中,不正确的是__(45)__。

(45)A.图像都是由一些排成行列的点(像素)组成的,通常称为位图或点阵图

B.图像的最大优点是容易进行移动、缩放、旋转和扭曲等变换

C.图形是用计算机绘制的画面,也称矢量图

D.图形文件中只记录生成图的算法和图上的某些特征点,数据量较小

●若某个计算机系统中,内存地址与I/O地址统一编址,访问内存单元和I/O设备是靠__(46)__采区分的。

(46)A.数据总线上输出的数据       B.不同的地址代码

C.内存与I/O设备使用不同的地址总线  D.不同的指令

●在中断响应过程中,CPU保护程序计数器的主要目的是__(47)__。

(47)A.使CPU能找到中断服务程序的入口地址  B.为了实现中断嵌套

C.为了使CPU在执行完中断服务程序时能回到被中断程序的断点处  D.为了使CPU与I/O设备并行工作

●在32位的总线系统中,若时钟频率为1000MHz,总线上5个时钟周期传送一个32位字,则该总线系统的数据传送速率约为__(48)__兆字节/秒。

(48)A,200  B.600  C.800  D.1000

●现有四级指令流水线,分别完成取指、取数、运算、传送结果四步操作。若完成上述操作的时间依次为9ns、10ns、6ns、8ns。则流水线的操作周期应设计为__(49)__。

(49)A.6   B.8   C.9   D.10

●从基本的CPU工作原理来看,若CPU执行MOV R1,R0指令(即将寄存器R0的内容传送到寄存器R1中),则CPU首先要完成的操作是__(50)__(其中PC为程序计数器;M为主存储器 DR为数据寄存器;IR为指令寄存器:AR为地址寄存器)。

(50)A.(R0)→R1  B.PC→AR  C.M→DR  D.DR→IR

●若磁盘的写电流波形如下图所示:

图中①波形的记录方式是__(51)__;②波形的记录方式是__(52)__。

(51)A.调频制(FM) B.改进调频制(MFM) C.调相制(PE) D.不归零制(NRZ)

(52)A.调频制(FM) B.改进调频制(MFM) C.调相制(PE) D.不归零制(NRZ)

●关于RS-232C,以下叙述中正确的是__(53)__。

(53)A.能提供最高传输率9600bps  B.能作为计算机与调制解调器之间的一类接口标准

C.可以用菊花链式连接  D.属于一类并行接口

●某网络的拓扑结构如下图所示,网络A中A2主机的P地址可以为__(54)__;如果网络B中有1000台主机,那么需要为网络B分配__(55)__个C类网络地址,其中B1主机的IP地址可以为__(56)__,网络B的子网掩码应为__(57)__。

(54)A.192.60.80.0  B.192.60.80.2  C.192.60.80.3  D.192.60.80.4

(55)A.1       B.2       C.3       D.4

(56)A.192.60.16.1  B.192.60.16.2  C.192.60.16.5  D.192.60.16.255

(57)A.255.255.255.0 B.255.255.254.0 C.255.255.253.0 D.255.255.252.0

●FTP默认的数据端口号是__(58)__。HTTP默认的端口号是__(59)__。

(58)A.20   B.21   C.22   D.23

(59)A.25   B.80   C.1024  D.8080

●某个计算机中心有28台微机,每台微机有24个应用,每个应用占用1个端口地址,则这个计算机中心所有应用的地址总数为__(60)__。

(60)A.24   B.28   C.52   D.672

●设f表示某个二元逻辑运算符,PfQ的真值表如下表所示,则PfQ等价于_(61)_。

(61)A.P∨┐Q   B.┐P∧Q  C.┐P∧┐Q  D.┐P∨┐Q

●设∪表示集合的并运算,∩表示集合的交运算,A表示集合A的绝对补,A-B表示集合A与B的差,则A-B=__(62)__。

(62)A.A∪(A∩B)  B.A∪B   C.A∩(A∪B)  D.A∩B

●设集合Z26{0,1,…,25}, 乘法密码的加密函数为Ek:Z26→Z26,Zki=(ki)mod 26,密钥k∈Z26-{0),则加密函数K7(i)=(7i)mod 26是一个__(63)__函数。

(63)A.单射但非满射 B.满射但非单射 C.非单射且非满射 D.双射

●类比二分搜索算法,设计k分搜索算法(k为大于2的整数)如下:首先检查n/k处(n为被搜索集合的元素个数)的元素是否等于要搜索的值,然后检查2n/k处的元素,…,这样,或者找到要搜索的元素,或者把集合缩小到原来的1/k;如果未找到要搜索的元素,则继续在得到的集合上进行k分搜索;如此进行,直到找到要搜索的元素或搜索失败。此k分搜索算法在最坏情况下搜索成功的时间复杂度为__(64)__,在最好情况下搜索失败的时间复杂度为__(65)__。

(64) A. O(logn)  B. O(nlogn)  C. O(logkn)  D. O(nlogkn)

(65) A. O(logn)  B. O(nlogn)  C. O(logkn)  D. O(nlogkn)

●__(66)__data effectively is crucial for success in today's competitive environment. Managers must know how to use a variety of tools. Integrated data takes information from different sources and puts it together in a meaningful and useful way. One of the difficulties of this is the __(67)__ in hardware and software.__(68)__ integration uses a base document that contains copies of other objects.__(69)__ integration uses a base document that contains the current or most recent version of the source document it contains.  __(70)__ provides an overview of the program written in "plain". English, without thecomputer syntax.

(66) A. Generalizing B. Sharing   C. General-using D. Globalizing

(67) A. similarity  B. interoperability  C. diversity D. interaction

(68) A. Simulated   B. Duplicated     C. Dynamic    D. Static

(69) A. Linked    B. Pointed       C. Dynamic         D. Static

(70) A. High-level language B. Decision tree   C. Pseudocode      D. Flowchart

●Traditional structured analysis techniques focus upon the flow of __(71)__ within a system. Object-oriented analysis emphasizes the building of real-world models. It examines requirements from the perspective of the classes and objects found in the vocabulary of the __(72)__ domain.  Traditional system design method emphasizes the proper and effective structure of a complex system. Object-oriented design method encompasses the process of object-oriented decomposition and a __(73)__ for depicting both logical and physical as well as static and dynamic models of the system under design.  Object-oriented programming is a method of implementation in which programs are organized as cooperative collections of objects, each of which represents an __(74)__ of some class, and whose classes are all members of a hierarchy of classes united via __(75)__ relationships.

(71) A. control  B. program   C. data   D. reference

(72) A. problem  B. solution   C. data   D. program

(73) A. mark    B. picture   C. symbol  D. notation

(74) A. instance  B. example   C. existence D. implementation

(75) A. control  B. inheritance C. inference D. connection

试题一  阅读下列说明和数据流图,回答问题1至问题4,将解答填入答题纸的对应栏内。

[说明]  某基于微处理器的住宅安全系统,使用传感器(如红外探头、摄像头等)来检测各种意外情况,如非法进入、火警、水灾等。  房主可以在安装该系统时配置安全监控设备(如传感器、显示器、报警器等),也可以在系统运行时修改配置,通过录像机和电视机监控与系统连接的所有传感器,并通过控制面板上的键盘与系统进行信息交互。在安装过程中,系统给每个传感器赋予一个编号(即id)和类型,并设置房主密码以启动和关闭系统,设置传感器事件发生时应自动拨出的电话号码。当系统检测到一个传感器事件时,就激活警报,拨出预置的电话号码,并报告关于位置和检测到的事件的性质等信息。

住宅安全顶层系统图 加工4的细化图

[问题1]  数据流图1-1(住宅安全系统顶层图)中的A和B分别是什么?

A:传感器: B:报警器

[问题2]  数据流图1-2(住宅安全系统第0层DFD图)中的数据存储“配置信息”会影响图中的哪些加工?

监控传感器、显示信息和状态

[问题3]  将数据流图1—3(加工4的细化图)中的数据流补充完整,并指明加工名称、数据流的方向(输入/输出)和数据流名称.

1、“读传感器”添加输入数据流“传感器状态”  

2、“显示格式”添加输出数据流“TV信号”  

3、“拨号”添加输出数据流“电话拨号”

[问题4]  请说明逻辑数据流图(LogicalDataFlowDiagram)和物理数据流图(PhysicalData Flow Diagram)之间的主要差别。

逻辑数据流图说明应该具有哪些加工,而不关心这些加工是如何实现的:物理数据流图则要说明加工是如何实现的。

试题二  阅读下列说明和算法,回答问题1和问题2,将解答填入答题纸的对应栏内。

[说明]  算法2-1是用来检查文本文件中的圆括号是否匹配。若文件中存在圆括号没有对应的左括号或者右括号,则给出相应的提示信息,如下所示:

在算法2-1中,stack为一整数栈。算法中各函数的说明如下表所示:

[算法2-1]

将栈stack置空,置EOF为false

ch←nextch();

while(not EOF)

        k←kind(ch);

        if (k ==__(1)__)

                push(__(2)__);push(__(3)__);

        elseif( k ==__(4)__)

                if(not empty())

                        pop();pop():

                else

                        显示错误信息(缺少对应左括号或右括号); 显示行号row;显示列号col;

                endif

        endif

        ch←nextch();

endwhile

if(not empty())

        显示错误信息(缺少对应左括号或右括号);

        while(not empty())

                row←pop(); col←pop();    显示行号row;显示列号col;

        endwhile

endif

为了识别更多种类的括号,对算法2-1加以改进后得到算法2-2。算法2-2能够识别圆括号,方括号和花括号(不同类型的括号不能互相匹配)。改进后,函数kind(charch)的参数及其对应的返回值如下表所示:

[算法2-2]

将栈stack置空,置EOF为false

ch←nextch();

while(not EOF)

        k←kind(ch);

        if(k > 0)

                if(判断条件1)

                        push(__(5)__):push(__(6)__);push(__(7)__):

                elseif( 判断条件2 and 判断条件3 )

                        pop(); pop(); pop();

                else

                        显示错误信息(缺少对应左括号或右括号);     显示行号row;显示列号col;

                endif

        endif

        ch←nextch();

endwhile

if(not empty())

        显示错误信息(缺少对应左括号或右括号);

        while(not empty())

                pop();row←pop();col←pop();    显示行号row;显示列号col;

        endwhile

endif

[问题1]  请将[算法2-1]和[算法2-2]中(1)至(7)处补充完整。

(1)l (2)col (3)row (4)2 (5)col (6)row (7)k

[问题2]  请从下面的选项中选择相应的判断逻辑填补[算法2-2]中的“判断条件广至“判断条件3”。注意,若“判断条件2”的逻辑判断结果为假,就无需对“判断条件3”进行判断。  (a)字符是括号 (b)字符是左括号 (c)字符是右括号 (d)栈空 (e)栈不空  (f)栈顶元素表示的是与当前字符匹配的左括号  (g)栈顶元素表示的是与当前字符匹配的右括号

判断条件1:b  判断条件2:e  判断条件3:f

试题三  阅读下列说明以及图3-1和图3-2,回答问题1、问题2和问题3,将解答填入答题纸的对应栏内。

[说明]

某电话公司决定开发一个管理所有客户信息的交互式网络系统。系统的功能如下:

1.浏览客户信息:任何使用Internet的网络用户都可以浏览电话公司所有的客户信息(包括姓名、住址、电话号码等)。 

2.登录:电话公司授予每个客户一个帐号。拥有授权帐号的客户,可以使用系统提供的页面设置个人密码,并使用该帐号和密码向系统注册。

3.修改个.人信息:客户向系统注册后,可以发送电子邮件或者使用系统提供的页面,对个人信息进行修改。

4.删除客户信息:只有公司的管理人员才能删除不再接受公司服务的客户的信息。

系统采用面向对象方法进行开发,在开发过程中认定出的类如下表所示:

图3-1

[问题1]

在需求分析阶段,采用UML的用例图(use case diagram)描述系统功能需求,如图3-1所示。请指出图中的A、B、C和D分别是哪个用例?

A:浏览客户信息 B:修改个人信息 C:登录 D:删除客户信息

[问题2]

在UML 中,重复度(Multiplicity)定义了某个类的一个实例可以与另一个类的多少个实例相关联。通常把它写成一个表示取值范围的表达式或者一个具体的值。例如图 3-2 中的类 InternetClient 和CustomerList,InternetClient 端的“0..*”表示:一个 Custo~erList 的实例可以与 0 个或多个 InternetClient 的实例相关联;CustomerList 端的“1”表示:一个InternetClient的实例只能与一个CustomerList的实例相关。  请指出图3-2中(1)到(4)处的重复度分别为多少?

(1)1 (2)0..* (3)0..1 (4)0..1

[问题3]

类通常不会单独存在,因此当对系统建模时,不仅要识别出类,还必须对类之间的相互关系建模。在面向对象建模中,提供了四种关系:依赖(dependency)、概括(generalization)、关联(aassociation)和聚集(aggregation)。请分别说明这四种关系的含义,并说明关联和聚集之间的主要区别。

(1)4种关系的含义:  

依赖表示类之间的使用关系。  

概括表示一般类和特殊类之间的关系。  

关联和聚集都表示实例之间的结构关系。  

(2)关联和聚集的区别:  

关联指明一个类的对象与另一类的对象间的联系:两个类之间的关联表示了两个同等地位类之间的结构关系,这两个类在概念上是同级别的。  

聚集是一种特殊的关联,它表示整体/部分关系。

试题四

在COMET型计算机上可以使用试卷上所附的CASL汇编语言,阅读程序说明和CASL程序,把应填入__(n)__处的字句写在答卷的对应栏内。[程序4说明] 

本程序将16位无符号二进制数转换为5位十进制数,转换结果用ASCII码表示,并从高位至低位依次存放在首地址为BTASC的连续5个内存单元中。待转换的16位无符号二进制数存放在DATA内存单元中。

[程序4]

        START

PROGBC LD  GRO,DATA

        LEA  GR1,0

        LEA  GR3,48

LOOP1  CPL  GRO,WDT,GR1

        JPZ  LOOP2

        ST  GR3,BTASC,GR1

        LEA  GR1,1,GR1

        LEA  GR2,-4,GR1

        JNZ  LOOP1

        __(1)__

LOOP2  LEA  GR2,48

LOOP3  CPL  GRO,WDT,GR1

        JMI  NEXT

        __(2)__

        LEA  GR2,1,GR2

        JMP LOOP3

NEXT  __(3)__

        LEA  GR1,1,GR1

        LEA  GR2,-4,GR1

        JNZ  LOOP2

LAST  __(4)__         ;处理个位数

        __(5)__

        EXIT

C48   DC  48

WDT   DC  10000

                 DC  1000

                 DC  100

                 DC  10

BTASC  DS  5

DATA  DC  #FA59H

                END

(1)JMP LAST  

(2)SUB GRO,WDT,GR1  

(3)ST GR2,BTASC,GR1  

(4)ADD GR0,C48  

(5)ST GR0,BTASC,GR1

试题五

阅读下列函数说明和C函数,将应填入__(n)__处的字句写在答题纸的对应栏内。

[函数5说明]

函数DeleteNode(Bitree*r,inte)的功能是:在树根结点指针为r的二叉查找(排序)树上删除键值为e的结点,若删除成功,则函数返回0,否则函数返回-1。二叉查找树结点的类型定义为:

typedef struct Tnode{

        int data:            /*结点的键值*/

        struct Tnode *Lchild,*Rchiid; /*指向左、右子树的指针*/

}*Bitree;

在二叉查找树上删除一个结点时,要考虑三种情况:

①若待删除的结点p是叶子结点,则直接删除该结点;

②若待删除的结点p只有一个子结点,则将这个子结点与待删除结点的父结点直接连接,然后删除结点;

③若待删除的结点p有两个子结点,则在其左子树上,用中序遍历寻找关键值最大的结点s,用结点s的值代替结点p的值,然后删除结点s,结点s必属于上述①、②情况之一。

[函数5]

int DeleteNode(Bitree *r,int e) {

Bitree p:*r, pp, S, C:

while(__(1)__ ){       /*从树根结点出发查找键值为e的结点*/

pp=p;

if (e data) p = p->Lchild;

else p = p->Rchild;

}

if(!p) return -1;       /*查找失败*/

if (p->Lchiid && p->Rchild){  /*处理情况③*/

s = __(2)__ ;pp = p;

while(__(3)__) { pp = s;s = s->Rchild;)

p->data = S->data; p = s;

}

/* 处理情况①、②* /

if(__(4)__) c = p->Lchild;

else c=p->Rchild;

if (p == *r) *r = C;

else if (__(5)__) pp->Lchild = c;

else pp->Rchild:C;

free(p);

return 0;

}

(1)p&&p->data !=e 或 p&&(*p).data !=e  

(2)p->Lchild 或 (*p).Lchild  

(3)s->Rchild 或 (*s).Rchild  

(4)p->Lchild 或 (*p).Lchild  

(5)p==pp->Lchild 或 p (*pp).Lchild

试题六

阅读下列说明和C++程序,将应填入__(n)__处的字句写在答题纸的对应栏内.

[程序6说明]

C++语言本身不提供对数组下标越界的判断.为了解决这一问题,在程序6中定义了相应的类模板,使得对于任意类型的二维数组,可以在访问数组元素的同时,对行下标和列下标进行越界判断,并给出相应的提示信息.

[程序6]

#include <iostream.h>

template <class T> class Array;

template <Class T> class ArrayBody {

friend__(1)__;

T* tpBody;

int iRows,iColumns,iCurrentRow;

ArrayBody(int iRsz,int iCsz){

tpBody = __(2)__;

iRows = iRsz;iColumns = iCsz;iCurrentRow = -1:

}

public;

T& operator[](int j){

bool row_error,column_error;

row_error = column_error =false;

try {

if(iCurrentRow < 0 || iCurrentRow >= iRows)

row_error = true;

if(j<0 || j>= iColumns)

column_error = true;

if(row_error == true || column_ error == true)

__(3)__;

}  catch(char){

if(row_error == true)

cerr << "行下标越界[" << iCurrentRow << "]";

if(column_error = true)

cerr << "列下标越界[" << j << "]";

cout << "\n";

}

return tpBody[iCurrentRow * iColumns + j];

}

~Arraygody(){delete[]tpBody:}

};

template <class T> class Array {

ArrayBody tBody;

public;

ArrayBody & operator[](int i) {

__(4)__;

return tBody;

}

Array(int iRsz,int iCsz):__(5)__ { }

};

void main(){

Array a1(10,20);

Array a2(3,5);

int b1;

double b2; ·

b1 = a1[-5][10]; //有越界提示:行下标越界[-5]

b1 = a1[10][15]; //有越界提示:行下标越界[10]

b1 = a1[1][4];  //没有越界提示

b2 = a2[2][6];  //有越界提示:列下标越界[6]

b2 = a2[10][20]; //有越界提示;行下标越界[10]列下标越界[20]

b2 = a2[1][4];  //没有越界提示

}

(1)classArray  

(2)new T[iRsz*iCsz]  

(3)throw 'e'  

(4)tBody,iCurrentRow=i  

(5)tBody(iRsz,iCs2)

上一篇 下一篇

猜你喜欢

热点阅读