在程序执行过程中,Cache与主存的地址映像由(1)。
(1)A.硬件自动完成 B.程序员调度
C.操作系统管理 D.程序员与操作系统协同完成
【答案】A
【解析】本题考查计算机系统基础知识。
Cache的工作是建立在程序与数据访问的局部性原理上。即经过对大量程序执行情况的结果分析:在一段较短的时间间隔内程序集中在某一较小的内存地址空间执行,这就是程序执行的局部性原理。同样,对数据的访问也存在局部性现象。为了提高系统处理速度才将主存部分存储空间中的内容复制到工作速度更快的Cache中,同样为了提高速度的原因,Cache系统都是由硬件实现的。
指令寄存器的位数取决于(2)。
(2)A.存储器的容量 B.指令字长 C.数据总线的宽度 D.地址总线的宽度
【答案】B
【解析】本题考查计算机系统基础知识。
指令寄存器是CPU中的关键寄存器,其内容为正在执行的指令,显然其位数取决于指令字长。
若计算机存储数据采用的是双符号位(00表示正号、11表示负号),两个符号相同的数相加时,如果运算结果的两个符号位经(3)运算得1,则可断定这两个数相加的结果产生了溢出。
(3)A.逻辑与 B.逻辑或 C.逻辑同或 D.逻辑异或
【答案】D
【解析】本题考查计算机系统基础知识。
当表示数据时规定了位数后,其能表示的数值的范围就确定了,在两个数进行相加运算的结果超出了该范围后,就发生了溢出。在二进制情况下,溢出时符号位将变反,即两个正数相加,结果的符号位是负数,或者两个负数相加,结果的符号位是正数。采用两个符号位时,溢出发生后两个符号位就不一致了,这两位进行异或的结果一定为1。
某指令流水线由4段组成,各段所需要的时间如下图所示。连续输入指令时的吞吐率(单位时间内流水线所完成的任务数或输出的结果数)为(4)。
(4)A.8/56 △t B.8/32 △t C.8/28 △t D.8/24 △t
【答案】C
【解析】本题考查计算机系统基础知识。
流水线的吞吐率指的是计算机中的流水线在特定的时间内可以处理的任务或输出数据的结果的数量。流水线的吞吐率可以进一步分为最大吞吐率和实际吞吐率。该题目中要求解的是实际吞吐率,以流水方式执行指令的指行时间是(1+2+3+1)Δt +(8-1)*3Δt =28 △t,因此吞吐率为8/28△t。
(5)不是RISC的特点。
(5)A.指令种类丰富 B.高效的流水线操作
C.寻址方式较少 D.硬布线控制
【答案】A
【解析】本题考查计算机系统基础知识。
RISC的特点是:指令数量少,使用频率接近,定长格式,大部分为单周期指令,操作寄存器,只有Load/Store操作内存;寻址方式少;并增加了通用寄存器;硬布线逻辑控制为主;适合采用流水线。
CISC的特点是:指令数量多,使用频率差别大,可变长格式;寻址方式多;常常采用微程序控制技术(微码)。
程序运行过程中常使用参数在函数(过程)间传递信息,引用调用传递的是实参的(6)。
(6)A.地址 B.类型 C.名称 D.值
【答案】A
【解析】本题考查程序语言基础知识。
进行函数调用时,常需要在调用环境中的数据传递给被调用函数,作为输入参数由被调用函数处理,基本的调用方式为值调用(或传值调用)和引用调用。其中,值调用方式下是将实参的值单向地传递给被调用函数的形参,引用调用方式下通过将实参的地址传递给形参,在被调用函数中通过指针实现对实参变量数据的间接访问和修改,从而达到将修改后的值“传回来”的效果。
(7)不是单元测试主要检查的内容。
(7)A.模块接口 B.局部数据结构 C.全局数据结构 D.重要的执行路径
【答案】C
【解析】本题考查软件测试的基础知识。
单元测试又称为模块测试,是针对软件设计的最小单元—程序模块,进行正确性检验的测试。其目的在于发现各模块内不可能存在的各种问题和错误。单元测试需要从程序的内部结构出发设计测试用例。模块可以单独进行单元测试。单元测试测试以下几个方面:模块接口、局部数据结构、执行路径、错误处理和边界。
PKI中,保证数字证书不被篡改的方法是(8)。
(8)A.用CA的私钥对数字证书签名 B.用CA的公钥对数字证书签名
C.用证书主人的私钥对数字证书签名 D.用证书主人的公钥对数字证书签名
【答案】A
【解析】本题考查PKI。
PKI中,为保障数字证书不被篡改而且要发送到证书主人手中,需要用CA的私钥对数字证书签名,防伪造,不可抵赖。
下列算法中,不属于公开密钥加密算法的是(9)。
(9)A.ECC B.DSA C.RSA D.DES
【答案】D
【解析】本题考查加密算法的基础知识。
常用的公钥加密算法有RSA、DSA、ElGamal和ECC。 常用的对称加密算法有DES、3DES、IDEA、AES、Blowfish、Twofish和RSA公司的RC系列算法(如RC2、RC4、RC5、RC6)等。
为说明某一问题,在学术论文中需要引用某些资料。以下叙述中,(10)是不正确的。
(10)A.既可引用发表的作品,也可引用未发表的作品
B.只能限于介绍、评论作品
C.只要不构成自己作品的主要部分,可适当引用资料
D.不必征得原作者的同意,不需要向他支付报酬
【答案】A
【解析】本题考查知识产权方面的基础知识。
我国《著作权法》第二十二条规定,在其列举的12种情况下使用作品,可以不经著作权人许可,不向其支付报酬,但应当指明作者姓名、作品名称,并且不得侵犯著作权人依照著作权法享有的其他权利。例如:为个人学习、研究或欣赏,使用他人已经发表的作品;为介绍、评论某一作品或说明某一问题,在作品中适当引用他人已经发表的作品;为学校课堂教学或科学研究,翻译或少量复制已经发表的作品,供教学或科研人员使用,但不得出版发行。 对于“合理使用”的范围、具体方式的理解,主要有(但不限于):
①引用的目标地是为了介绍、评论某一作品或说明某一问题:
②引用的比例必须适当,即一般而言,引用不应当比评论、介绍或者说明还长;
③引用的作品必须是已经发表的作品;
④引用他人的作品,应当指明作者的姓名,作品的名称,并且不得侵犯著作权人按照著作权法享有的其他权利。
以下作品中,不适用或不受著作权法保护的是(11)。
(11)A.某教师在课堂上的讲课
B.某作家的作品《红河谷》
C.最高人民组织编写的《行政诉讼案例选编》
D.颁布的《计算机软件保护条例》
【答案】D
【解析】本题考査应试者知识产权方面的基础知识。
选项D“颁布的《计算机软件保护条例》”的说法显然是错误的。因为,颁布的《计算机软件保护条例》〉是国家为了管理需要制定的法规,故不适用著作权法保护。
己知文法G:S→A0|B1,A→S1|1,B→S0|0,其中S是开始符号。从S出发可以推导出(12)。
(12)A.所有由0构成的字符串 B.所有由1构成的字符串
C.某些0和1个数相等的字符串 D.所有0和1个数不同的字符串
【答案】C
【解析】本题考查程序语言基础知识。
用文法表示语言的语法规则时,推导是产生语言句子的基本方式。以题目中的文法为例,推导出1010的过程为S=>A0=>S10=>A010=>10|0,推导出0110的过程为S=>A0=>S10=>B110=>0110,对于0000、1111、1100、0011等则推导不出。因为由S先推导出A0后,再去推导A则必然产生一个与0相邻(在0的左边)的1,而由S先推导出B1,则下一步必然要推导出一个与1相邻(在1的左边)的0。这保证了当1出现时,马上就会出现0,或者反之,且0和1的距离很近。分析更多的例子发现,仅有“某些0和1个数相等的字符串”是正确的。
算术表达式a+(b-c)*d的后缀式是(13)(-、+、*表示算术的减、加.乘运算,运算符的优先级和结合性遵循惯例)。
(13)A.bc-d*a+ B.abc-d*+
C.ab+c-d* D.abcd-*+
【答案】B
【解析】本题考查程序语言基础知识。
后缀式的特点是将运算符号写在运算数的后面。对于表达式,其计算次序是相减、相乘、相加,其后缀式为“abc-d*+”。
将高级语言程序翻译为机器语言程序的过程中,常引入中间代码,其好处是(14)。
(14)A.有利于进行反编译处理 B.有利于进行与机器无关的优化处理
C.尽早发现语法错误 D.可以简化语法和语义分析
【答案】B
【解析】本题考查程序语言基础知识。
“中间代码”是一种简单且含义明确的记号系统,可以有若干种形式,它们的共同特征是与具体的机器无关,此时所作的优化一般建立在对程序的控制流和数据流分析的基础之上,与具体的机器无关。
假设某公司营销系统有营销点关系S(营销点,负责人姓名,联系方式)、商品关系P(商品名,条形码,型号,产地,数量,价格),其中,营销点唯一标识S中的每一a元组。每个营销点可以销售多种商品,每一种商品可以由不同的营销点销售。关系S和P的主键分别为(15),S和P的之间联系类型属于(16)。
(15)A.营销点、商品名 B.营销点、条形码
C.负责人姓名、商品名 D.负责人姓名、条形码
(16)A.1:1 B.1:n C.n:1 D.n:m
【答案】B D
【解析】本题考查对数据库基本概念和SQL语言的掌握。
(15)根据题意,营销点唯一标识S中的每一个元组,所以营销点可以作为S的主键,商品关系P(商品名,条形码,型号,产地,数量,价格)中的条形码属性可以作为该关系的主键,因为,条形码是由宽度不同、反射率不同的条和空,按照一定的编码规则(码制)编制成的,用以表达一组数字或字母符号信息的图形标识符。利用条形码可以标出商品的生产国、制造厂家、商品名称、生产日期、图书分类号、邮件起止地点、类别、日期等信息,所以,条形码在商品流通、图书管理、邮电管理、银行系统等许多领域都得到了广泛的应用。显然,本题的正确答案是“营销点、条形码”。
(16)根据题意“每个营销点可以销售多种商品,每一种商品可以由不同的营销点销售”,故S和P的之间联系类型属于n:m。
若有关系 R(A,B,C,D,E)和S(B,C,F,G),则R与S自然联结运算后的属性列有(17)个,与表达式π1,3,6,7(σ3<6 (RS))等价的SQL语句如下:
SELECT (18) FROM (19) WHERE (20);
(17)A.5 B.6 C.7 D.9
(18)A.A,R.C,F,G B.A,C,S.B,S.F
C.A,C,S.B,S.C D.R.A,R.C,S.B,S.C
(19)A.R B.S C.RS D.R,S
(20)A.R.B=S.B AND R.C=S.C AND R.C 【解析】本题考查关系代数运算与SQL查询方面的基础知识。 (17)在π1,3,6,7(σ3<6(RS))中,自然联结RS运算后去掉右边重复的属性列名S.B、S.C后为:R.A、R.B、R.C、R.D、R.E、S.F和S.G。 (18/19)π1,3,6,7(σ3<6 (RS))的含义是从RS结果集中选取R.C (21)A.页的大小为4K,每个段的大小均为4096个页,最多可有255个段 B.页的大小为4K,每个段最大允许有4096个页,最多可有256个段 C.页的大小为8K,每个段的大小均为2048个页,最多可有128个段 D.页的大小为8K,每个段最大允许有2048个页,最多可有128个段 【答案】B 【解析】本题考查操作系统页式存储管理方面的基础知识。 从图中可见,页内地址的长度是12位,212=4096,即4K;页号部分的地址长度是12位,每个段最大允许有4096个页;段号部分的地址长度是8位,28=256,最多可有256个段。 假设系统中有三类互斥资源R1、R2和R3,可用资源数分别为10、5和3。在T0时刻系统中有P1、P2、P3、P4和P5五个进程,这些进程对资源的最大需求量和已分配资源数如下表所示,此时系统剩余的可用资源数分别为(22)。如果进程按(23)序列执行,那么系统状态是安全的。 资源 R1 R2 R3 R1 R2 R3 (23)A.P1→P2→P4→P5→P3 B.P5→P2→P4→P3→P1 C.P4→P2→P1→P5→P3 D.P5→P1→P4→P2→P3 【答案】D B 【解析】 (22)初始时系统的可用资源数分别为10、5和3。在T0时刻已分配资源数分别为8、5和2,因此系统剩余的可用资源数分别为2、0和1。 (23)接下来分析按什么样的序列执行,系统状态是安全的,所谓系统状态安全是指不产生死锁。在进行该分析时,需要先了解每个进程各类资源还需要多少个,此信息可以通过最大需求量-已分配资源数获得,情况如表所示。 某文件管理系统采用位示图(bitmap)记录磁盘的使用情况。如果系统的字长为32位,磁盘物理块的大小为4MB,物理块依次编号为:0、1、2、…,位示图字依次编号为:0、1、2、…,那么16385号物理块的使用情况在位示图中的第(24)个字中描述:如果磁盘的容量为1000GB,那么位示图需要(25)个字来表示。 (24)A.128 B.256 C.512 D.1024 (25)A.1200 B.3200 C.00 D.8000 【答案】C D 【解析】本题考查操作系统文件管理方面的基础知识。 由于物理块是从0开始编号的,所以16385号物理块是第16386块。16386/32=512.0625,所以16385号物理块的使用情况在位示图中的第513个字中描述。由于字从0开始编号,所以对应的字的编号为512 磁盘的容量为1000GB,物理块的大小为4MB,则磁盘共1000×1024/4个物理块,一个字对应32个物理块,位示图的大小为1000×1024/(32×4) =8000个字。 某单位局域网配置如下图所示,PC2发送到Internet上的报文的源IP地址为(26)。 (26)A.192.168.0.2 B.192.168.0.1 C.202.117.112.1 D.202.117.112.2 【答案】D 【解析】本试题考查局域网配置中IP地址设置相关问题。 PC2发送到Internet上的报文经代理服务器转换后,源IP地址变成代理服务器的出口IP地址,即202.117.112.2。 在IPv4向IPv6的过渡期间,如果要使得两个IPv6结点可以通过现有的IPv4网络进行通信,则应该使用(27);如果要使得纯IPv6结点可以与纯IPv4结点进行通信,则需要使用(28)。 (27)A.堆栈技术 B.双协议栈技术 C.隧道技术 D.翻译技术 (28)A.堆栈技术 B.双协议栈技术 C.隧道技术 D.翻译技术 【答案】C D 【解析】本题考查的是IPv4和IPv6。 IPv4和IPv6的过渡期间,主要采用三种基本技术。 (1)双协议栈:主机同时运行IPv4和IPv6两套协议栈,同时支持两套协议 (2)隧道技术:这种机制用来在IPv4网络之上连接IPv6的站点,站点可以是一台主机,也可以是多个主机。隧道技术将IPv6的分组封装到IPv4的分组中,封装后的IPv4分组将通过IPv4的路由体系传输,分组报头的“协议”域设置为41,指示这个分组的负载是一个IPv6的分组,以便在适当的地方恢复出被封装的IPv6分组并传送给目的站点。 (3)NAT-PT :利用转换网关来在IPv4和IPv6网络之间转换IP报头的地址,同时根据协议不同对分组做相应的语义翻译,从而使纯IPv4和纯IPv6站点之间能够透明通信。 第1小题由于两个IPv6的结点通信需要经过IPv4的网络:两个结点之间通信使用的是IPv6的数据报文,但需要经过IPv4的网络,可以使用隧道机制将Ipv6的数据报文封装在一个IPv4的报文中,作为IPv4的数据载荷部分,从而 实现在IPv4网络中传输Ipv6。 第2小题由于两个结点一个是纯Ipv6,另一个是IPv4,由于IPv4和IPv6是两种不同地址长度和报头格式的协议,因此它们之间的通信需要使用翻译技术进行地址转换。 POP3协议采用(29)模式进行通信,当客户机需要服务时,客户端软件与POP3服务器建立(30)连接。 (29)A.Browser/Server B.Client/Server C.PeertoPeer D.PeertoServer (30)A.TCP B.UDP C.PHP D.IF 【答案】B A 【解析】本题考查的是POP3协议。 POP3 (Post Office Protocol 3)即邮局协议的第3个版本,它是规定个人计算机如何连接到互联网上的邮件服务器进行收发邮件的协议。它是因特网电子邮件的第一个离线协议标准,POP3协议允许用户从服务器上把邮件存储到本地主机(即自己的计算机)上,同时根据客户端的操作删除或保存在邮件服务器上的邮件,而POP3服务器则是遵循POP3协议的接收邮件服务器,用来接收电子邮件的。POP3协议采用Client/Server模式进行通信,当客户机需要服务时,客户端软件与POP3服务器建立TCP连接。 采用插入排序算法对n个整数排序,其基本思想是:在插入第i个整数时,前i-1个整数已经排好序,将第i个整数依次和第i-1,i-2,…个整数进行比较,找到应该插入的位置。现采用插入排序算法对6个整数{5,2,4,6,1,3}进行从小到大排序,则需要进行(31)次整数之间的比较。对于该排序算法,输入数据具有(32)特点时,对整数进行从小到大排序,所需的比较次数最多。 (31)A.9 B.10 C.12 D.13 (32)A.从小到大 B.从大到小 C.所有元素相同 D.随机分布 【答案】C B 【解析】本题考查的是复杂度。 采用插入排序算法对6个整数{5,2,4,6,1,3}进行从小到大排序的过程如表所示。 软件工程的基本目标是(33)。 (33)A.消除软件固有的复杂性 B.开发高质量的软件 C.努力发挥开发人员的创造性潜能 D.推动软件理论和技术的发展 【答案】B 【解析】本题考查软件工程的基础知识。 软件工程是指导计算机软件开发和维护的工程学科,其最根本的目标就是开发出高质量的软件并有效地维护它。 (34)过程模型明确地考虑了开发中的风险。 (34)A.瀑布 B.快速原型 C.V D.螺旋 【答案】D 【解析】本题考查软件过程模型的基础知识。 螺旋模型将瀑布模型和演化模型结合起来,加入了两种模型均忽略的风险分析,弥补了这两种模型的不足。螺旋模型将开发过程分为几个螺旋周期,每个螺旋周期大致和瀑布模型相符合。在每个螺旋周期分为如下4个工作步。 1、制定计划。确定软件的目标,选定实施方案,明确项目开发的条件 2、风险分析。分析所选的方案,识别风险,消除风险 3、实施工程。实施软件开发,验证阶段性产品 4、用户评估。评价开发工作,提出修正建议,建立下一个周期的开发计划 在开发一个字处理软件时,首先快速发布了一个提供基本文件管理、编缉和文档生成功能的版本,接着发布提供更完善的编辑和文档生成功能的版本,最后发布提供拼写和语法检查功能的版本,这里采用了(35)过程模型。 (35)A.瀑布 B.快速原型 C.增量 D.螺旋 【答案】C 【解析】本题考查软件过程模型的基础知识。 瀑布模型从一种非常高层的角度描述了软件开发过程中进行的活动,并且提出了要求开发人员经过的事件序列; 原型模型允许开发人员快速地构造整个系统或系统的一部分以理解或澄清问题; 增量开发是把软件产品作为一系列的增量构件来设计、编码、集成和测试,系统功能在增量中不断完善或者增加; 螺旋模型把开发活动和风险管理结合起来,以将风险减到最小并控制风险。 在各种不同的软件需求中,(36)描述了用户使用产品必须要完成的任务,可以用UML建模语言的(37)表示。 (36)A.功能需求 B.非功能需求 C.过程约束 D.设计约束 (37)A.用例图 B.类图 C.状态图 D.序列图 【答案】A A 【解析】本题考查软件需求的基础知识。 功能需求描述了用户使用产品必须要完成的任务,UML的用例图可以用来对功能需求建模。非功能需求描述软件解决方案必须具有的质量特性,如性能、安全等。过程约束是对用于构建系统的技术和资源的。设计约束是己经做出的设计决策或问题解决方案集的设计决策。 在结构化分析方法中,数据流图描述数据在系统中如何被传送或变换,反映系统必须完成的逻辑功能,用于(38)建模。在绘制数据流图时,(39)。 (38)A.数据 B.功能 C.结构 D.行为 (39)A.每个加工至少有一个输入数据流,可以没有输出数据流 B.不允许一个加工有多条数据流流向另一个加工 C.不允许一个加工有两个相同的输出数据流流向两个不同的加工 D.必须保持父图与子图平衡 【答案】B D 【解析】本题考查软件工程需求分析的基础知识。 (38)在结构化分析方法中,存在几种重要的模型:数据流图描述数据在系统中如何被传送或变换,反映系统必须完成的逻辑功能,用于功能建模;实体-联系图用于数据建模;状态-迁移图用于行为建模。 (39)数据流图包含外部实体(数据源)、加工、数据存储和数据流。每个加工必须既有输入流又有输出流;一个加工可以有多个数据流流向另一个加工,一个加工可以有两个相同的输出数据流流向两个不同的加工。在将父图分解为子图时,必须要保持数据流的平衡。 确定采用哪种软件体系结构是在(40)阶段进行的。 (40)A.需求分析 B.概要设计 C.详细设计 D.软件实现 【答案】B 【解析】本题考查软件设计的基础知识。 系统分析阶段:确定系统逻辑模型,形成系统分析报告,在调查和分析中得出新系统的功能需求,并给出明确地描述。根据需要与实现可能性,确定新系统的功能,用一系列图表和文字给出新系统功能的逻辑描述,进而形成系统的逻辑模型。 概要设计:主要任务是完成对系统总体结构和基础框架的设计 软件设计:是以系统的软件体系结构为目标的软件开发者所执行的活动,是在功能属性和非功能属性内指定软件系统的组件和组件之间的关系;软件设计可分为概要设计和详细设计两个阶段。 软件体系结构是描述软件的部分及其部分之间的关系,软件体系结构应该尽早确定,一般在软件开发的概要设计阶段进行。 以下关于模块化的叙述中,正确的是(41)。 (41)A.每个模块的规模越小越好,这样开发每个模块的成本就可以降低了 B.每个模块的规模越大越好,这样模块之间的通信开销就会降低了 C.应具有高内聚和低耦合的性质 D.仅适用于结构化开发方法 【答案】C 【解析】本题考查软件设计的基础知识。 模块化设计是软件设计的一个重要方面,不仅仅适用于结构化开发方法,面向对象开发方法也适用。模块的规模应该适中,过小可能会增加耦合性,过大可能会降低内聚性。在分解模块时,应该充分考虑模块之间的,低耦合和模块内的高内聚的性质。 当一个模块直接使用另一个模块的内部数据,或者通过非正常入口转入另一个模块内部,这种模块之间的耦合为(42)。 (42)A.数据耦合 B.标记耦合 C.公共耦合 D.内容耦合 【答案】D 【解析】本题考查软件设计的基础知识。 模块性是创建良好设计的一个重要原则,一般采用模块间的耦合和模块的内聚两个准则来进行度量。耦合是模块之间的相对性的度量,模块之间的连接越紧密,联系越多,耦合性就越高,而其模块性越弱。存在多种耦合关系: 数据耦合:若一个模块访问另一个模块时,彼此之间是通过数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的,则称这种耦合大数据耦合。 标记耦合:若一组模块通过参数表传递记录信息,则这种耦合称为标记耦合。 公共耦合:若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。 内容耦合:若一个模块直接访问另一个模块内部数据;一个模块不通过正常入口转到另一模块内部;两个模块有一部分程序代码重叠;一个模块有多个入口。存在上述情况之一,则这种耦合称为内容耦合。 在面向对象技术中,(43)是一组具有相同结构、相同服务、共同关系和共同语义的(44)集合,其定义包括名称、属性和操作。 (43)A.类 B.对象 C.实例 D.属性 (44)A.类 B.对象 C.实例 D.属性 【答案】A B 【解析】本题考查面向对象技术的基础知识。 类是一组具有相同结构、相同服务、共同关系和共同语义的对象集合,其定义包括名称、属性和操作。类创建对象,对象是类的一个实例。属性用于刻画类和对象。 下图中,类 Product 和 ConcreteProduct 的关系是(45),类 ConcreteCreator 和 ConcreteProduct 的关系是(46)。 (45)A.继承 B.关联 C.组合 D.依赖 (46)A.继承 B.关联 C.组合 D.依赖 【答案】A D 【解析】本题考查面向对象技术的基础知识。 类之间的关系主要有几种:继承关系是指子类自动地具有其父类的全部属性与操作,也称为父类对子类的泛化;关联关系是指两个或多个类之间的一种静态关系,表现为一个类是另一个类的成员变量。若一个类由若干个其他类作为其构成部分,则这样的关系是组合关系。依赖关系也是类之间的一种静态关系,表现为一个类是另一个类的局部变量。上图中,Product与ConcreteProduct以及Creator与ConcreteCreator之间的关系是继承关系,在UML建模语言中,米用空心三角形表示,从子类指向父类;ConcreteProduct与ConcreteCreator之间是依赖关系,类ConcreteCreator依赖类ConcreteProduct。 以下关于建立良好的程序设计风格的叙述中,正确的是(47)。 (47)A.程序应简单、清晰、可读性好 B.变量的命名要符合语法 C.充分考虑程序的执行效率 D.程序的注释可有可无 【答案】A 【解析】本题考查软件实现的基础知识。 在编写程序时,变量的命名必须符合语法要求,这是正确性要求,不是程序设计风格的范畴。程序的执行效率是软件性能方面的要求,也不属于程序设计风格的范畴。良好的程序设计风格,包括程序的简单性、清晰性和可读性等方面,还包括有清晰的注释。 由于硬件配置的变化,如机型、终端或打印机等导致软件系统需要进行修改维护,这类维护属于(48)。 (48)A.改正性 B.适应性 C.完善性 D.预防性 【答案】B 【解析】本题考查软件维护技术。 在软件开发完成交付用户使用后,就进入软件运行/维护阶段。软件维护活动根据其内容可以分为四种类型: 改正性维护是指为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的误使用,应进行的诊断和改正错误的过程; 适应性维护是指由于信息技术飞速发展,软件运行的外部环境或数据环境可能发生变化,为了使软件适应这种变化,而修改软件的过程; 完善性维护是指在软件使用过程中,用户往往会对软件提出新的功能与性能要求,为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性而进行的维护活动; 预防性维护是为了提高软件的可维护性和可靠性等,为以后进一步改进软件打下良好基础而进行的维护工作。 下图是一个软件项目的活动图,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,则里程碑(49)没有按时完成会影响整个项目的进度。若活动0→2完成后,停止3天才开始活动2→6,则完成整个项目的最少时间是(50)天。 (49)A.1 B.2 C.3 D.4 (50)A.53 B.55 C.56 D.57 【答案】B C 【解析】本题考查软件项目管理的基础知识。 根据关键路径法,计算出关键路径为0→2→5→7→8→9,关键路径长度为55。因此里程碑2在关键路径上,而里程碑1、3和4不在关键路径上。 若活动0→2完成后,停止3天才开始活动2→6,则相当于0→2→6→9是一个关键路径,此时,完成项目的最短时间应该是56天。 某软件系统无需在线容错,也不能采用冗余设计,如果对可靠性要求较高,故障有可能导致严重后果,一般采用(51)。 (51)A.恢复块设计 B.N版本程序设计 C.检错技术 D.降低复杂度设计 【答案】C 【解析】本题考查软件的可靠性设计。 故障的恢复策略一般有前向恢复和后向恢复两种。所谓前向恢复是指使当前的计算继续下去,把系统恢复成连贯的正确状态,弥补当前状态的不连贯情况,这需要有错误的详细说明。所谓后向恢复是指系统恢复到前一个正确状态,继续执行。 恢复块方法采用后向恢复策略。它提供具有相同功能的主块和几个后备块,主块首先投入运行,结束后进行验收测试,如果没有通过验收测试,系统经现场恢复后由一后备块运行。这一过程可以重复到耗尽所有的后备块,或者某个程序故障行为超出了预料,从而导致不可恢复的后果。设计时应保证实现主块和后备块之间的性,避免相关错误的产生,使主块和后备块之间的共性错误降到最低限度。验收测试程序完成故障检测功能,它本身的故障对恢复块方法而言是共性,因此,必须保证它的正确性。 N版本程序设计是一种静态的故障屏蔽技术,采用前向恢复的策略,其设计思想是用N个具有相同功能的程序同时执行一项计算,结果通过多数表决来选择。 本题目中的故障可能导致严重后果,所以应采取检测技术预防故障的产生。 软件可靠性管理把软件可靠性活动贯穿于软件开发的全过程,成为软件工程管理的一部分。确定软件可靠性度量活动属于(52)阶段。 (52)A.需求分析 B.概要设计 C.详细设计 D.测试阶段 【答案】B 【解析】本题考查软件可靠性概念。 对于软件可靠性度量活动的确定是概要设计阶段的工作。 软件测试的对象不包括(53)。 (53)A.软件代码 B.软件开发过程 C.文档 D.数据 【答案】B 【解析】本题考查软件测试的对象。 根据软件定义,软件包括程序、数据和文档,所以软件测试的对象也应该为程序、数据、文档 以下关于测试计划的叙述中,不正确的是(54)。 (54)A.测试计划能使测试工作顺利进行 B.测试计划能使项目参与人员沟通顺畅 C.测试计划无益于提高软件质量 D.测试计划是软件过程规范化的要求 【答案】C 【解析】本题考查软件测试计划相关知识。 《ANSI/IEEE软件测试文档标准829-1983》将测试计划定义为:“一个叙述了预定的测试活动的范围、途径、资源及进度安排的文档。它确认了测试项、被测特征、测试任务、人员安排,以及任何偶发事件的风险。”软件测试计划是指导测试过程的纲领性文件,包含了产品概述、测试策略、测试方法、测试区域、测试配置、测试周期、测试资源、测试交流、风险分析等内容。借助软件测试计划,参与测试的项目成员,尤其是测试管理人员,可以明确测试任务和测试方法,保持测试实施过程的顺畅沟通,跟踪和控制测试进度,应对测试过程中的各种变更。 根据上述描述,测试技术显然有益于提高软件质量。 以下关于软件测试原则的叙述中,正确的是(55)。 (55)A.测试用例只需选用合理的输入数据,不需要选择不合理的输入数据 B.应制定测试计划并严格执行,排除随意性 C.穷举测试是可能的 D.程序员应尽量测试自己的程序 【答案】B 【解析】本题考查软件测试的原则。 软件测试应遵循的原则包括:应当把“尽早和不断地测试”作为开发者的座右铭;程序员应该避免检查自己的程序,测试工作应该由的专业的软件测试机构来完成;设计测试用例时,应该考虑到合法的输入和不合法的输入,以及各种边界条件;一定要注意测试中的错误集中发生现象,应对错误群集的程序段进行重点测试;对测试错误结果一定要有一个确认的过程;制定严格的测试计划,并把测试时间安排得尽量宽松,不要希望在极短的时间内完成一个高水平的测试;回归测试的关联性一定要引起充分的注意,修改一个错误而引起更多错误出现的现象并不少见;妥善保存一切测试过程文档;穷举测试是不能实现的。 根据上述描述,测试过程中需要制定测试计划并严格执行。 以下关于测试时机的叙述中,不正确的是(56)。 (56)A.应该尽可能早地进行测试 B.软件中的错误暴露得越迟,则修复和改正错误所花费的代价就越高 C.应该在代码编写完成后开始测试 D.项目需求分析和设计阶段需要测试人员参与 【答案】C 【解析】本题考查软件测试一些基础知识。 在传统的瀑布模型中,软件项目主要有用户需求分析、概要设计、详细设计、编码和实现、测试以及运行维护几个阶段组成。因此人们一般认为,软件测试只是软件编码后的一个阶段。但随着软件测试业的发展,人们越来越认识到:软件测试不应只是软件项目的收尾工作,而应该在软件生命周期的每一阶段中都包含测试。软件测试是贯穿于整个软件开发生命周期的过程活动,包括软件测试计划、软件测试需求分析、软件测试用例设计、软件测试执行、软件缺陷管理、软件测试风险管理以及其他的一些软件测试相关的活动等等组成。在软件项目的每个阶段,都需要进行不同目的和不同A容的测试活动,以保证各个阶段工作产品输出的正确性。在项目开发的后期,发现一些软件需求阶段和概要设计阶段的错误和问题,修改这些缺陷导致的成本将是非常高的。有资料表明:平均而言,如果在需求阶段修正一个错误的代价是1,那么,在设计阶段就是它的3〜6倍,在编程阶段是它的10倍,在内部测试阶段是它的20〜40倍,在外部测试阶段是它的30〜70倍,而到了产品发布出去,这个数字就是40〜1000倍。 根据上述描述,测试活动贯穿于整个开发生命周期。 以下不属于软件测试工具的是(57)。 (57)A.JMeter B.LoadRunner C.JTest D.JBuilder 【答案】D 【解析】本题考查软件工具的基本知识。 JMeter、LoadRunner 和 JTest 都是软件测试工具。 JBuilder 是一种软件开发工具,不属于软件测试工具。 软件的易用性包括(58)。 ①理解性 ②易学习性 ③易操作性 ④吸引性 ⑤依从性 (58)A.①② B.①②③ C.①②③④ D.①②③④⑤ 【答案】D 【解析】本题考查易用性测试的基础知识。 略 黑盒测试不能发现(59)。 (59)A.功能错误或者遗漏 B.输入输出错误 C.执行不到的代码 D.初始化和终止错误 【答案】C 【解析】本题考查黑盒测试的基础知识。 黑盒测试是把程序看作一个不能打开的黑盒子,在完全不考虑程序内部结构和内部特性的情况下,在程序接口进行测试,它只检查程序功能是否按照需求规格说明书的规定正常使用,程序是否能适当地接收输入数据而产生正确的输出信息。黑盒测试着眼于程序外部结构,不考虑内部逻辑结构,主要针对软件界面和软件功能进行测试。黑盒测试能发现功能错误或者遗漏、输入输出错误以及初始化和终止错误。 由于黑盒测试不考虑程序内部结构,所以该方法不能检测到执行不到的代码。 以下关于边界值测试法的叙述中,不正确的是(60)。 (60)A.边界值分析法不仅重视输入域边界,而且也必须考虑输出域边界 B.边界值分析法是对等价类划分方法的补充 C.发生在输入输出边界上的错误比发生在输入输出范围的内部的错误要少 D.测试数据应尽可能选取边界上的值,而不是等价类中的典型值或仨意值 【答案】C 【解析】本题考查黑盒测试中的边界值测试法。 边界值测试法就是对输入或输出的边界值进行测试的一种黑盒测试方法。边界值测试法是作为对等价类划分法的补充,这种情况下,其测试用例来自等价类的边界。长期的测试工作经验告诉我们,大量的错误是发生在输入或输出范围的边界上,而不是发生在输入输出范围的内部。因此针对各种边界情况设计测试用例,可以查出更多的错误。边界值测试不是从某等价类中随便挑一个作为代表,而是使这个等价类的每个边界都要作为测试条件。边界值测试不仅考虑输入条件,还要考虑输出空间产生的测试情况。用边界值测试方法设计测试用例,首先应确定边界情况。通常输入和输出等价类的边界,就是应着重测试的边界情况。应当选取正好等于,刚刚大于或刚刚小于边界的值作为测试数据,而不是选取等价类中的典型值或任意值作为测试数据。 根据上述描述,发生在输入输出边界上的错误比发生在输入输出范围的内部的错误要多。 白盒测试不能发现(61)。 (61)A.代码路径中的错误 B.死循环 C.逻辑错误 D.功能错误 【答案】D 【解析】本题考查白盒测试的基础知识。 白盒测试也称结构测试或逻辑驱动测试,它是知道产品内部工作过程,按照程序内部的结构测试程序,检验程序中的每条通路是否都有能按预定要求正确工作,而不考虑其功能,白盒测试的主要方法有静态结构分析法、逻辑覆盖法、基本路径测试法等。白盒测试完全基于代码,能发现代码路径中的错误、程序中的死循环以及逻辑错误。白盒测试不关心功能需求,因此无法确定功能正确与否。 对于逻辑表达式((a&&b)||c),需要(62)个测试用例才能完成条件组合覆盖。 (62)A.2 B.4 C.8 D.16 【答案】C 【解析】本题考查白盒测试中逻辑覆盖法的条件组合覆盖。 条件组合覆盖的含义是:选择足够的测试用例,使得每个判定中条件的各种可能组合都至少出现一次。 本题中有三个条件,组合之后需要的用例数是8。 为检测系统在长时间运行下是否存在性能瓶颈,应进行(63)。 (63)A.负载测试 B.压力测试 C.疲劳强度测试 D.大数据量测试 【答案】C 【解析】本题考查负载测试、压力测试、疲劳强度测试、大数据量测试的基本知识。 负载测试是通过逐步增加系统负载,测试系统性能的变化,并最终确定在满足性能指标的情况下,系统所能承受的最大负载量的情况。压力测试是通过逐步增顶系统负载,测试系统性能的变化,并最终确定在什么负载条件下系统性能处于失效状态,并以此来获得系统能提供的最大服务级别的测试。疲劳强度测试是采用系统稳定运行情况F能够支持的最大并发用户数,或者日常运行用户数,持续执行一段时间业务,保证达到系统疲劳强度需求的业务量,通过综合分析交易执行指标和资源监控指标,来确定系统处理最大工作量强度性能的过程。大数据量测试包括的数据量测试和综合数据量测试,数据量测试是指针对系统存储、传输、统计、查询等业务进行的大数据量测试;综合数据量测试是指和压力测试、负载测试、疲劳强度测试相结合的综合测试。 本题的目标是检测系统在长时间运行下的表现,应进行疲劳强度测试。 以下关于负载压力测试的叙述中,不正确的是()。 ()A.负载压力测试用于确认系统是否支持性能需求 B.负载压力测试能得到系统可承受的业务量增长 C.负载压力测试是在一定约束条件下测试系统所能承受的最大负载压力 D.负载压力测试不用于发现不同负载场景下的速度变慢、内存泄露等问题 【答案】D 【解析】本题考查负载压力测试的基础知识。 负载压力测试是在一定约束条件下测试系统所能承受的并发用户量、运行时间、数据量,以确定系统所能承受的最大负载压力。负载压力测试有助于确认被测系统是否能够支持性能需求,以及预期的负载增长等。负载压力测试不只是关注不同负载场景下的响应时间等指标,它也要通过测试来发现在不同负载场景下会出现的,例如速度变慢、内存泄漏等问题的原因。负载压力测试是性能测试的重要组成部分。 根据上述描述,负载压力测试可以发现不同负载场景下的速度变慢、内存泄露等问题。 测试过程中,正确的测试顺序应该是(65)。 ①单元测试 ②集成测试 ③系统测试 (65)A.①②③ B.③①② C.②③① D.③②① 【答案】A 【解析】本题考查软件测试的过程。 测试过程应该是从模块层开始,然后扩大延伸到整个基于计算机的系统集今中。因此正确的测试顺序应该是从针对单个模块的单元测试开始,然后逐步集成各个单元,最后进行系统测试。 以下属于静态测试方法的是(66)。 (66)A.分支覆盖率分析 B.复杂度分析 C.系统压力测试 D.路径覆盖分析 【答案】B 【解析】本题考查软件静态测试方法。 静态测试不实际运行被测软件,主要是对软件的编程格式、结构等方面过行评估。本题中分支覆盖率分析、系统压力测试和路径覆盖分析都需要实际运行测试软件才能得到,只有复杂度分析可通过静态分析程序代码实现。 以下关于集成测试的叙述中,不正确的是(67)。 (67)A.在完成软件的概要设计后,即开始制定集成测试计划 B.实施集成测试时需要设计所需驱动和桩 C.桩函数是所测函数的主程序,它接收测试数据并把数据传送给所测试函数 D.常见的集成测试方法包括自顶向下、自底向上、Big-Bang等 【答案】C 【解析】本题考查集成测试的基础知识。 集成测试是在单元测试的基础上,测试在将所有的软件单元按照概要设计规格说明的要求组装成模块、子系统或系统的过程中各部分工作是否达到或实现相应技术指标及要求的活动。集成测试的依据是概要设计规格说明,因此在概要设计完成后印开始制定集成测试计划。集成测试需要设计所需的驱动模块和桩模块。驱动模块用来模拟被测试模块的上一级模块,相当于被测模块的主程序,它接收数据,将相关数据传送给被测模块,启动被测模块,并打印出相应的结果。桩模块用来模拟被测模块工作过锃中所调用的模块,它们一般只进行很少的数据处理。常见的集成测试方法包括自顶向f、自底向上、Big-Bang等。 本题中选项C混淆了驱动和桩的概念。 对一段信息生成消息摘要是防止信息在网络传输及存储过程中被篡改的基本手段,(68)不属于生成消息摘要的基本算法。 (68)A.MD5 B.RSA C.SHA-1 D.SHA-256 【答案】B 【解析】本题考查生成消息摘要的基本算法。 对信息生成消息摘要是防止信息在网络传输及存储过程中被篡改的基本手段,生成消息摘要的算法应是不可逆的,即基于消息摘要无法计算出原始消息内容。MD5、SHA-1、SHA-256均属于典型的生成消息摘要的算法,而RSA是常用的公钥加密算法,其加密产生的数据可以被还原,因此不属于生成消息摘要的算法。 软件系统的安全性是信息安全的一个重要组成部分,针对程序和数据的安全性测试与评估是软件安全性测试的重要内容,(69)不属于安全性测试与评估的基本内容。 (69)A.用户认证机制 B.加密机制 C.系统能承受的并发用户量 D.数据备份与恢复手段 【答案】C 【解析】本题考查安全性测试与评估的基本内容。 安全性测试与评估是软件安全性测试的重要内容,其测试与评估的基本内容包括用户认证机制、加密机制、安全防护策略、数据备份与恢复手段、防病毒系统等,而系统能承受的并发用户量属于基本的应用负载压力测试内容。 模拟攻击试验是一种基本的软件安全性测试方法,以下关于模拟攻击试验的叙述中,正确的是(70)。 (70)A.模拟攻击试验必须借助于特定的漏洞扫描器才能完成 B.对安全测试来说,模拟攻击试验是一组特殊的白盒测试案例,必须在充分了解系统安全机制的软件组成基础上,才能进行相应攻击试验的设计与试验 C.缓冲区溢出攻击是一种常见的模拟攻击试验,此类攻击者通常通过截获含有身份鉴别信息或授权请求的有效消息,将该消息进行重演 D.服务拒绝攻击是一种常见的模拟攻击试验,此类攻击者通常通过向服务器发送大量虚假请求,使得服务器功能不能正常执行 【答案】D 【解析】本题考查模拟攻击试验的基本原理。 模拟攻击试验是一组特殊的墨盒测试案例,以模拟攻击来验证软件或信眉系统的安全防护能力,因为是墨盒测试,所以通常可在不借助漏洞扫描器的前提下完成,因此选项A与选项B是均是错误的;而选项C描述的应为模拟重演攻击的基本原理,因此也是错误的;选项D描述的是服务拒绝攻击的基本原理,因此本题正确答案应为D。 There is nothing in this world constant but inconstancy. —SWIFT Project after project designs a set of algorithms and then plunges into cor struction of customer-deliverable software on a schedule that demands delivery of the first thing built. In most projects, the first system built is (71) usable. It may be too slow, too big, awkward to use, or all three. There is no (72) but to start again, smarting but smarter, and build a redesigned version in which these problems are solved. The discard and (73) may be done in one lump, or it may be done piece-by-piece. But all large-system experience shows that it will be done. Where a new system concept or new technology is used, one has to build a system to throw away, for even the best planning is not so omniscient (全知的)as to get it right the first time. The management question, therefore, is not whether to build a pilot system and throw it away. You will do that. The only question is whether to plan in advance to build a (74) , or to promise to deliver the throwaway to customers. Seen this way, the answer is much clearer. Delivering that throwaway to customers buys time, but it does so only at the (75) of agony (极大痛苦)for the user, distraction for the builders while they do the redesign, and a bad reputation for the product that the best redesign will find hard to live down. Hence plan to throw one away; you will, anyhow. (71)A.almost B.often C.usually D.barely (72)A.alternative B.need C.plan D.build (73)A.design B.redesign C.plan D.build (74)A.throwaway B.system C.software D.prcduct (75)A.worth B.value C.cost D.invaluable 【答案】D A B A C 【解析】本题考查对英语资料的阅读理解。 世界上没有一成不变的东西.— — 斯威夫特项目组设计了一套项目算法,在按照约定交付给客户时发现了该软件存在结构性的问题。 在大多数项目中,建立的第一套系统几乎是不可用的,它可能运行太慢、数据太大、使用不方便等,或者这三者都有。除了重新开始之外我们别无选择,虽然很痛苦但是我们可以更加睿智地构建一个重新设计的版本,解决掉存在的问题。可以一次全部丢弃和重构,也可以分批进行。但是从过往的经验来看,所有的大型系统都必然经历这样的过程。 在使用时系统研究新概念或新技术,就必须建立一个系统并抛弃,因为即使最好的规划也不能保证考虑到方方面面,使第一次便获得让人满意的结果。 因此,管理并不是考虑是否需要建立一项试验系统然后又把它扔了,因为这是必须的。问题仅在于是否要计划提前打造产品,或作出承诺,为客户提供这种必然会被替换的产品。如果这样来考虑,答案是很清楚的。为客户提供这类产品需要花费时间,但对用户来说痛苦的代价是巨大的,会使建设者他们重新设计时分心,坏的声誉也会导致最好的重新设计难以落实。所以将舍弃写进你的计划;无论怎样,你都会的。
(22)A.1、1和0 B.1、1和1 C.2、1和0 D.2、0和1进程 最大需求量 已分配资料数 P1 5 3 1 1 1 1 P2 3 2 0 2 1 0 P3 6 1 1 3 1 0 P4 3 3 2 1 1 1 P5 2 1 1 1 1 0
从表可以看出,当前情况下,能运行的唯有P5,除了P5,其它进程所需要的资源系统均不能满足,所以先执行P5。当P5执行完成时,不仅会释放当前分配给他的资源,还会将原来已分配资源数一并释放,所以此时系统剩余资源变为:3,1,1。这个资源数,可以运行P2,但不能运行P1,所以本题选B。源进程 最大需求量 已分配资源数 还需要资源数 R1 R2 R3 R1 R2 R3 R1 R2 R3 P1 5 3 1 1 1 1 4 2 0 P2 3 2 0 2 1 0 1 1 0 P3 6 1 1 3 1 0 3 0 1 P4 3 3 2 1 1 1 2 2 1 P5 2 1 1 1 1 0 1 0 1
综上,元素间共比较12次。从上表中的第4步可看出,当待插入的元素比已排序部分的所有元素都要小时,需要比较和移动的元素最多,因此当输入数据序列正好从大到小排列,而需要将其从小到大排序时,元素间的比较次数最多。序号 已排序部分 未排序部分 说明 0 {5} {2,4,6,1,3} 初始时 1 {2,5} {4,6,1,3} 将2插入序列{5}时,需要将2与5比较1次,完成插入 2 {2,4,5} {6,1,3} 将4插入序列{2,5}时,需要将4与5、2分别比较1次,完成插入 3 {2,4,5,6} {1,3} 将6插入序列{2,4,5}时,需要将6与5比较1次,完成插入 4 {1,2,4,5,6} {3} 将1插入序列{2,4,5,6}时,需要将1与6、5、4、2分别比较1次,完成插入 5 {1,2,3,4,5,6} {} 将3插入序列{1,2,4,5,6}时,需要将1与6、5、4、2分别比较1次,完成插入