系统分析师试题13Word文档格式.docx
《系统分析师试题13Word文档格式.docx》由会员分享,可在线阅读,更多相关《系统分析师试题13Word文档格式.docx(43页珍藏版)》请在冰点文库上搜索。
2.PROLOG语言属于(3)程序设计范型,该范型将程序设计归结为列举事实,定义逻辑关系等。
A.过程式B.函数式C.面向逻辑D.面向对象
B.
C.
[解析]程序设计语言用来编写计算机程序(指计算任务的处理对象和处理规则的描述),它包括语法、语义、语用三个方面。
语法表示程序的结构或形式,即表示构成语言的各记号间的组合规则,但不涉及这些记号的特定含义,也不涉及使用者。
语义表示程序的含义,即表示按照各种方法所表示的各个记号的特定含义,但不涉及使用者。
语用表示程序与使用者的关系。
程序设计语言的基本成分有数据、运算、控制和传输。
数据成分用以描述程序中所涉及的数据;
运算成分用以描述程序中所包含的运算;
控制成分用以表达程序中的控制构造;
传输成分用以表达程序中数据的传输。
可以从不同的角度对程序设计语言进行分类,从程序设计语言的本质来看,可以分为3类:
机器语言、汇编语言和高级语言。
机器语言是特定计算机系统所固有的语言,用机器语言编写的程序可读性很差,程序员难以修改和维护。
汇编语言用助记符号来表示机器指令中的操作码和操作数,汇编语言是一种和机器语言十分接近的语言,它的书写格式在很大程度上取决于特定计算机的机器指令。
目前已有许多流行的高级语言,如Fortran、Cobol、Pascal、C/C++、Java等。
这类语言与人们的自然语言比较接近,大大提高了程序设计的效率,便于进行交流。
Fortran是第一个被广泛用于科学计算的高级语言。
Algol60是早期研制出来的高级语言,它有严格的文法规则,用巴科斯范式BNF来描述语言,是一个分程序结构的语言。
Cobol是一种面向事务处理的高级语言。
Pascal语言提供的为数不多而又相当紧凑的机制使其有相当强的表达能力。
C是一种通用程序设计语言,作为一种较低级的语言,C提供了指针和地址操作的功能,以及书写结构良好的程序所需的控制结构。
C与UNIX操作系统紧密相关,UNIX操作系统及其上的许多软件都是用C编写的。
(1)过程性语言。
过程性语言就是指传统的程序设计语言。
在使用传统的程序设计语言时,程序员不仅要说明信息结构,而且要描述程序的控制流程,因此它被称为过程性语言。
过程性语言是相对于新型程序设计语言(函数式、逻辑式、面向对象)和第四代语言(4GL)而言的,其特点是通过使用赋值语句改变变量的状态来完成各种任务。
(2)面向对象语言。
simula是最早提出类的概念的语言,完备地体现面向对象并提出继承概念的程序设计语言是Smalltalk80。
C++和Java是目前用得最多的面向对象的语言。
(3)逻辑型语言。
逻辑型语言是一类以形式逻辑为基础的语言,其理论基础是一阶谓词演算。
Prolog是典型的逻辑式语言,具有和传统的命令型程序设计完全不同的风格。
组成Prolog程序语句的基本形式是Horn子句,Prolog程序由围绕某一主题的事实、规则和询问3类语句组成,这3类语句分别用来陈述事实、定义规则和提出问题。
Prolog具有很强的推理功能,适用于书写自动定理证明、专家系统、自然语言理解等人工智能问题的程序。
归约方法是逻辑式语言的主要方法之一。
它是把一簇命题转换成标准的子句集形式,采用匹配和合一的算法,消除冗余,以获得新命题正确性的证明或命题集一致性的验证。
(4)函数型语言。
函数型语言是一类以λ演算为基础的语言。
Lisp是典型的函数型程序语言。
函数是一种对应规则(映射),它使其定义域中每一个值和值域中唯一的值相对应。
函数型程序设计语言的优点在于它是一种面向值的语言,无状态,无副作用,具有引用透明性,函数值只取决于变元值,具有同一组变元的函数,其值唯一。
对表达式中出现的任何函数都可以用其他函数来代替,只要这些函数调用产生相同的值。
这些特点有助于程序模块化的实现。
函数型程序设计语言和逻辑型程序设计语言都属于申述型语言。
(5)可视化开发工具。
目前,比较热门的软件开发工具都是可视化的,例如VisualBasic、VisualC++、Delphi、PowerBuilder和JBuilder等。
这些工具都是一种事件驱动程序语言,编程时,必须在程序内设计各种事件的处理程序代码。
当事件发生时,随即驱动执行相应的程序段。
这些开发工具都提供了良好的控件工具,可供用户很方便地建立用户界面,大大提高了稗序设计的效率。
人工智能又称机器智能,是研究如何用计算机来实现人类智能的一门学科。
它包括自然语言理解、感知与认知、定理自动证明、模式识别、计算机视觉、知识工程与专家系统等。
人工智能主要是用计算机来模拟人的思维,包括知识的表示、存储、传输、处理、推断、联想等。
其中,知识的表示与推理是核心内容。
而一般的计算机语言不适于知识的表示与推理。
因此科学家们推出了与一般算法语言有较大差异的、有强大的知识处理能力的计算机语言(如Lisp、Prolog和OPS等),人们把这类语言称为人工智能语言。
人工智能语言按知识表示和处理方式的不同分成逻辑式与函数式两大类。
Lisp语言是函数式的,Prolog语言是逻辑式的,此外还有混合型的。
3.需求工程活动产生软件运行特征的规约,指明软件和其他系统元素的接口并建立(22)。
A.数据流图和数据字典B.程序流程图
C.体系结构模型D.软件必须满足的约束条件
D.
[解析]需求工程活动产生软件运行特征的规约,指明软件和其他系统元素的接口并建立软件必须满足的约束条件。
数据流图和数据字典只是这些约束条件的表示方法,而程序流程图和体系结构模型是设计阶段的工作。
原型化方法是一类动态定义需求的方法,______不是原型化方法所具有的特征。
与结构化方法相比,原型化方法更需要______。
衡量原型开发人员能力的重要标准是______。
3.00)
(1).A.熟练的开发人员B.完整的生命周期
C.较长的开发时间D.明确的需求定义(分数:
(2).A.提供严格定义的文档B.加快需求的确定
C.简化项目管理D.加强用户参与和决策(分数:
A.
(3).A.丰富的编程技巧B.灵活使用开发工具
C.很强的协调组织能力D.快速获取需求(分数:
[解析]原型化方法实际是一种快速确定需求的策略,对用户的需求进行提取、求精,快速建立最终系统工作模型的方法。
原型化方法与结构化方法不同,它不是追求也不可能要求对需求的严格定义、较长的开发时间和熟练的工作人员,但是该方法要求完整的生命周期。
为了加快模型的建立,它需要加强用户的参与和决策,以求尽快地将需求确定下来,采用这样一个相对简化的模型就可以简化项目的管理。
原型化是一种动态设计过程,衡量原型化人员能力的重要标准是他能快速获得需求的能力,至于是否有熟练的程序编制测试能力、很强的协调组织能力以及灵活使用工具软件的能力都不是最重要的。
4.在以下关于类的相关描述中,不正确的是______。
A.同一个类的对象具有不同的对象自身引用值
B.同一个类的对象具有不同的静态数据成员值
C.一个类的静态方法只能访问该类的静态成员变量
D.一个类的静态成员变量可被该类的所有方法访问
[解析]类允许开发者自定义一种新的类型及其相关的操作。
类是对象的模板,对象是类的实例。
选项A的“对象自身引用值”是面向对象程序设计语言中特有的、十分重要的机制。
每个对象都有属于自己的对象自身引用值。
选项B的“静态数据成员”用来实现同一个类的不同对象之间的数据共享,它不属于某个对象。
同一个类的不同对象共享静态数据成员值。
如该值被类中某一对象修改时,同类的其他对象也可看到此次修改。
注意:
“不同的类的对象具有相同的静态数据成员值”的表述也是错误的。
静态成员可分为静态成员变量和静态方法。
只要对静态成员变量的值更新一次,所有对象的该静态成员变量值都会被更新。
静态成员函数可以直接访问静态成员,但不能直接访问非静态成员。
5.某车间需要用一台车床和一台铣床加工A、B、C、D四个零件。
每个零件都需要先用车床加工,再用铣床加工。
车床和铣床加工每个零件所需的工时(包括加工前的准备时间以及加工后的处理时间)如表所示。
车床和铣床加工每个零件所需的工时
工时(小时)
A
B
C
D
车床
8
4
6
铣床
7
2
5
若以A、B、C、D零件顺序安排加工,则共需29小时。
适当调整零件加工顺序,可产生不同实施方案,在各种实施方案中,完成四个零件加工至少共需(30)小时。
A.25B.26C.27D.28
已知某高速缓存cache采用组相联映像方式,即组间直接映像,组内全相联映像。
假设主存容量为4096块,每块256B,高速缓存包含32块,分8组,每组4块。
高速缓存的地址变换表应包含(14)个存储单元;
每个存储单元应能存放(15)位二进制数;
每次参与相联比较的是(16)个存储单元。
(1).A.8B.16C.32D.48(分数:
(2).A.7B.8C.9D.10(分数:
(3).A.4B.8C.12D.16(分数:
[解析]在本题中,已知主存容量为4096×
256B=1MB,由于220=1M,所以主存地址应为20位。
主存分为4096/32=128个区,每个区分为8组,每组4块。
因为27=128,所以区号需要7位地址,组内块号地址为2位。
高速缓存的地址变换表(块表)应包含32个存储单元,每个存储单元的长度为主存地址区号长度加上组内块号地址长度,即9位二进制数。
因为主存中的各页与cache的组号有固定的映像关系,但可自由映像到对应的cache组中的任一块,所以每次参与相联比较的是4个存储单元。
6.在开发一个系统时,如果用户对系统的目标不很清楚,难以定义需求,这时最好使用——。
A.原型法B.瀑布模型C.V-模型D.螺旋模型
[解析]
在开发一个系统时,如果用户对系统的目标不很清楚,难以定义需求,这时最好使用原型法的系统开发方法。
应用原型法的主要目的就是获取需求。
使用原型法,在用户的共同参与下可以改善和加快需求获取过程。
其第一步是建造一个快速原型,实现客户或未来的用户与系统的交互,用户或客户对原型进行评价,进一步细化待开发软件的需求。
通过逐步调整原型使其满足客户的要求,开发人员可以确定客户的真正需求是什么。
第二步则在第一步的基础上开发客户满意的软件产品。
显然,快速原型方法可以克服瀑布模型的缺点,减少由于软件需求不明确带来的开发风险,具有显著的效果。
选项B的“瀑布模型”,是一种将按软件生命周期划分为制定计划、需求分析、软件设计、程序编写、软件测试和运行维护等6个基本活动,并且规定了它们自上而下、相互衔接的固定次序的系统开发方法。
瀑布模型强调文档的作用,并要求每个阶段都要仔细验证。
选项C的“V-模型”,是一种典型的测试模型。
该模型通常会在其开始部分对软件开发过程进行描述,其中通过单元测试检测代码的开发是否符合详细设计的要求;
集成测试检测各单元代码是否能完好地结合到一起,是否符合概要设计阶段提出的要求;
系统测试检测已集成在一起的产品是否符合系统规格说明书的要求;
而验收测试则检测产品是否符合最终用户的需求。
对于选项D的“螺旋模型”,是指将瀑布模型和快速原型模型结合起来,强调风险分析的一种开发模型。
7.(19)不是操作系统关心的主要问题。
A.管理计算机裸机B.设计、提供用户程序与计算机硬件系统的界面
C.管理计算机系统资源D.高级程序设计语言的编译器
[解析]操作系统有两个重要的功能:
一是通过资源管理,提高计算机系统的效率;
二是改善人机界面,向用户提供友好的工作环境。
因此,在所给的选项中,显然只有D不是操作系统关心的主要问题。
8.面向对象技术中,______的基本功能,是将一个对象的工作分配到与之相关的更为特殊的对象上,它既可静态定义也可动态定义。
A.继承B.分类C.多态D.委托
[解析]在面向对象技术中,对已有实例的特征稍作改变就可生成其他的实例的方式称为继承。
继承的基本功能是将一些功能相关的对象进行归类表示,使得子对象具有其父对象属性的能力。
分类(Classification)是指对象及其类型之问的关系。
多态是指作用于不同的对象的同一个操作可以有不同的解释,从而产生不同的执行结果。
委托是一种既可静态定义也可动态定义的复杂关系,其基本功能是将一个对象的工作分配到与之相关的更为特殊的对象上。
可见,委托使一个对象可以依赖其他对象为它完成某些操作。
9.某软件开发从详细设计到集成测试各阶段所需工作量估计(按软件工程师人月数估计)如表1所示,这几个阶段分配的软件工程师和程序员人数如表2所示。
假设编码与单元测试阶段,软件工程师的生产率是程序员的2倍。
若在该项目的这几个阶段都增加一名软件工程师,则这几个阶段可以缩短(111)个月完成任务(假定各个开发阶段串行工作)。
表1所需工作量估计
开发阶段
估计所需人月数
详细设计
编码与单元测试
12
集成测试
合计
30
表2 分配的软件工程师和程序员人数
分组人数
软件工程师
程序员
A.1B.2C.3D.4
[解析]因为试题已经假定各开发阶段串行工作,所以只要根据表1和表2,逐阶段计算就可以了。
(1)详细设计需要6软件工程师人月,但只分配2名软件工程师,所以需要3个月。
(2)编码与单元测试需要12软件工程师人月,但只分配2名软件工程师和2名程序员。
因为在编码与单元测试阶段,软件工程师的生产率是程序员的2倍,即2名程序员相当于1名软件工程师,因此共需4个月。
(3)集成测试需要12软件工程师人月,但只分配2名软件工程师,所以需要6个月。
以上三个阶段合计13个月。
若在该项目的这几个阶段都增加一名软件工程师,则
(1)详细设计需要6软件工程师人月,分配3名软件工程师,所以需要2个月。
(2)编码与单元测试需要12软件工程师人月,分配3名软件工程师和2名程序员。
因为在编码与单元测试阶段,软件工程师的生产率是程序员的2倍,即2名程序员相当于1名软件工程师,因此共需3个月。
(3)集成测试需要12软件工程师人月,分配3名软件工程师,所以需要4个月。
以上合计9个月,即这几个阶段可以缩短4个月完成任务。
10.在CORBA体系结构中,(13)属于客户端接口。
在CORBA体系结构中,(13)属于客户端接口。
A.静态IDLSkeletonsB.POA
C.静态IDLStubsD.动态Skeletons(分数:
A.静态IDLSkeletons
B.POA
C.静态IDLStubs
D.动态Skeletons
在CORBA体系结构中,ORB(ObjectRequestBroker,对象请求代理)负责处理底层网络细节,它可以运行在各种不同的底层网络协议上,例如TCP/IP、IPX和SS7等。
在此基础上,ORB实现了一系列的功能,例如对象定位、编组与解组、初始化服务和接口库等。
它为客户端和服务器端提供标准API,使得客户不用考虑底层网络细节,通过对象引用来实现对远程对象的请求调用。
IDL(InterfaceDefinitionLm9uage,接口定义语言)定义客户机和服务器之间的静态接口,通过它实现了对象接口与对象实现的分离,屏蔽了语言和系统软件带来的异构件。
通过标准的IDL编译器,可生成客户机端的IDL存根(Stubs)和服务器端的骨架(Skeletons),这两者就如同客户机端程序和服务器端程序连接ORB的粘着剂,IDL存根提供了访问对象服务的静态接口,而骨架则包含了服务对象的静态接口并负责实现与对象实现中具体方法的连接。
IDL存根被称为静态调用接口,由IDL编译器编译目标对象的IDL接口描述文件而自动产生,客户程序与它直接相连。
IDL存根的作用相当于本地调用,由存根向ORB透明地提供一个接口,以实现对操作参数的编码和解释。
IDL存根把请求从特定的编程语言的表示形式转换为适于传递到目标对象的形式进行通信传输。
存根为客户提供了一种机制,使得客户能够不关心ORB的存在,而把请求交给存根,由存根负责对请求参数的封装和发送,以及对返回结果的接收和解封装。
静态IDL骨架是静态IDL存根在服务器端的对应,在请求的接收端提供与存根类似的服务。
当ORB接收到请求时,由骨架将请求参数解封装,识别客户所请求的服务,(向上)调用服务器中的对象实现,当服务器完成了对请求的处理后,骨架把执行结果封装,并将结果返回给客户程序。
由于存根和骨架都是从用户的接口定义编译而来,所以它们都和具体的接口有关,并且,在请求发生前,存根和骨架早已分别被直接连接到客户程序和对象实现中去。
为此,通过存根和骨架的调用被通称为静态调用。
IDL存根和IDL骨架之间没有必须配对的限制。
动态骨架接口(DynamicSkeletonInterface,DSI)允许动态调用对象,对象实现需要实现动态调用例程的接口。
DSI是DII(IDL动态调用接口)在服务器方的对应。
与DII允许客户不通过存根就可以调用请求类似,DSI允许用户在没有静态骨架信息的条件下来获得对象实现。
DSI从进入的消息找出调用的目标对象及相应的方法,并提供运行时的连接机制。
POA(PortableObjectAdapter,可携带对象适配器)是一个引导客户端的请求到具体的对象应用的机制。
POA提供了标准的API去登记对象应用,或激活对象应用。
POA是灵活的CORBA编程模型模块,并且提供了大量的规则配置它的行为。
假设信源是由g个离散符号S1,S2,…,Si,…,Sq所组成的符号集合,集合中的每个符号是独立的,其中任一个符号Si出现的概率为P(Si),并满足∑P(Si)=1。
那么符号Si含有的信息量:
I(Si)等于(17),单位是(18)。
2.00)
(1).A.-logqP(Si)B.logqP(Si)C.-log2P(Si)D.log2P(Si)(分数:
(2).A.比特B.信息熵C.dbD.无单位(分数:
[解析]信息与“不确定性”紧密相关,是对于接收者来说事先不知道的消息。
在有效的通信中,信源将要发送的信号是不确定的,接收者在接收到信号后不确定性减小或消失,那么接收者从不知到知而获得信息。
信息量的定义如下:
假设信源是由q个离散符号S1,S2,…,Si,…,Sq所组成的符号集合,集合中的每个符号是独立的,其中任一个符号Si出现的概率为P(Si),并满足∑P(Si)=1。
那么,符号Si含有的信息量I(Si)等于log2(1/P(Si)),单位为比特(bit)。
直观上可以理解为信号出现的概率越小,信息量就越大,信号出现的概率越大,信息量就越小。
如果信号出现的概率是1(没有任何不确定性),信息量就是0。
将信息的测度纳入概率的范畴,符合人们对信息量的理解。
11.用户界面设计中,设计原则不正确的是(20)。
A.为用户提供更多的信息和功能B.减少用户的记忆负担
C.保持界面一致性D.置用户于控制之下
[解析]用户界面设计是一项复杂的任务,它必须遵循一些“良好设计”的指导原则,以下介绍一些关键的用户界面设计原则:
(1)用户控制。
人机界面设计首先要确立用户类型。
划分类型可以从不同的角度,视实际情况而定。
确定类型后要针对其特点预测他们对不同界面的反应。
这就要从多方面设计分析。
用户应当感觉系统的运行在自己的控制之下。
在图形界面或基于Web的界面中,用户指导程序的每一步执行;
即使在程序进行某些处理或用户等待输出结果时,用户同样保持对控制的敏感度。
(2)信息最小量。
人机界面设计要尽量减少用户记忆负担,采用有助于记忆的设计方案。
(3)帮助和提示。
要对用户的操作命令做出反应,帮助用户处理问题。
系统要设计有恢复出错现场的能力,在系统内部处理工作要有提示,尽量把主动权让给用户。
(4)媒体最佳组合。
多媒体界面的成功并不在于仅向用户提供丰富的媒体,而应在相关理论指导下,注意处理好各种媒体间的关系,恰当选用。
(5)界面一致性。
一致性要求用户界面遵循标准和常规的方式,让用户处在一个熟悉的和可预见的环境之中,这主要体现在命名、编码、缩写、布局以及包括菜单、按钮和键盘功能在内的控制使用等。
(6)界面容错性。
一个好的界面应该以一种宽容的态度允许用户进行实验和出错,使用户在出现错误时能够方便地从错误中恢复。
(7)界面美观性。
界面美观性是视觉上的吸引力,主要体现在具有平衡和对称性