200911软设上午真题
第 1 题
以下关于CPU的叙述中,错误的是( )。
- (A) CPU产生每条指令的操作信号并将操作信号送往相应的部件进行控制
- (B) 程序计数器PC除了存放指令地址,也可以临时存储算术/逻辑运算结果
- (C) CPU中的控制器决定计算机运行过程的自动化
- (D) 指令译码器是CPU控制器中的部件
答案与解析
- 试题难度:一般
- 知识点:计算机组成与体系结构>CPU的组成(运算器与控制器)
- 试题答案:[[B]]
- 试题解析:
本题考查计算机硬件组成基础知识。
CPU是计算机的控制中心,主要由运算器、控制器、寄存器组和内部总线等部件组成,控制器由程序计数器、指令寄存器、指令译码器、时序产生器和操作控制器组成,它是发布命令的“决策机构”,即完成协调和指挥整个计算机系统的操作。它的主要功能有:从内存中取出一条指令,并指出下一条指令在内存中的位置;对指令进行译码或测试,并产生相应的操作控制信号,以便启动规定的动作;指挥并控制CPU、内存和输入输出设备之间数据的流动。
程序计数器(PC)是专用寄存器,具有寄存信息和计数两种功能,又称为指令计数器,在程序开始执行前,将程序的起始地址送入PC,该地址在程序加载到内存时确定,因此PC的初始内容即是程序第一条指令的地址。执行指令时,CPU将自动修改PC的内容,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序执行的,因此修改的过程通常只是简单地对PC加1。当遇到转移指令时,后继指令的地址根据当前指令的地址加上一个向前或向后转移的位移量得到,或者根据转移指令给出的直接转移的地址得到。
第 2 题
以下关于CISC(Complex Instruction Set Computer,复杂指令集计算机)和RISC(Reduced Instruction Set Computer,精简指令集计算机)的叙述中,错误的是( )。
- (A) 在CISC中,其复杂指令都采用硬布线逻辑来执行
- (B) 采用CISC技术的CPU,其芯片设计复杂度更高
- (C) 在RISC中,更适合采用硬布线逻辑执行指令
- (D) 采用RISC技术,指令系统中的指令种类和寻址方式更少
答案与解析
- 试题难度:一般
- 知识点:计算机组成与体系结构>CISC与RISC
- 试题答案:[[A]]
- 试题解析:
本题考查指令系统和计算机体系结构基础知识。
CISC(Complex Instruction Set Computer,复杂指令集计算机)的基本思想是:进一步增强原有指令的功能,用更为复杂的新指令取代原先由软件子程序完成的功能,实现软件功能的硬件化,导致机器的指令系统越来越庞大而复杂。CISC计算机一般所含的指令数目至少300条以上,有的甚至超过500条。
RISC(Reduced Instruction Set Computer,精简指令集计算机)的基本思想是:通过减少指令总数和简化指令功能,降低硬件设计的复杂度,使指令能单周期执行,并通过优化编译提高指令的执行速度,采用硬布线控制逻辑优化编译程序。在20世纪70年代末开始兴起,导致机器的指令系统进一步精炼而简单。
第 3 题
浮点数的一般表示形式为N=2E×F,其中E为阶码,F为尾数。以下关于浮点表示的叙述中,错误的是( )。两个浮点数进行相加运算,应首先( )。
- (A) 阶码的长度决定浮点表示的范围,尾数的长度决定浮点表示的精度
- (B) 工业标准IEEE754浮点数格式中阶码采用移码、尾数采用原码表示
- (C) 规格化指的是阶码采用移码、尾数采用补码
- (D) 规格化表示要求将尾数的绝对值限定在区间[0.5,1)
- (A) 将较大的数进行规格化处理
- (B) 将较小的数进行规格化处理
- (C) 将这两个数的尾数相加
- (D) 统一这两个数的阶码
答案与解析
- 试题难度:一般
- 知识点:计算机组成与体系结构>浮点数的表示
- 试题答案:[[C],[D]]
- 试题解析:
本题考查数据表示基础知识。
为了提高运算的精度,需要充分地利用尾数的有效数位,通常采取浮点数规格化形式,即规定尾数的最高数位必须是一个有效值,即1/2≤|F|<1。在尾数用补码表示时,规格化浮点数应满足尾数最高数位与符号位不同,即当1/2≤F<1时,应有0.1xx...x形式;当-1≤M<-1/2时,应有1.0xx...x形式。
需要注意的是,当M=-1/2时,对于原码来说是规格化数,而对于补码来说不是规格化数。
两个浮点数进行相加运算时,首先需要对阶(使它们的阶码一致),然后再进行尾数的相加处理。
第 4 题
以下关于校验码的叙述中,正确的是( )。
- (A) 海明码利用多组数位的奇偶性来检错和纠错
- (B) 海明码的码距必须大于等于1
- (C) 循环冗余校验码具有很强的检错和纠错能力
- (D) 循环冗余校验码的码距必定为1
答案与解析
- 试题难度:一般
- 知识点:计算机组成与体系结构>海明校验码
- 试题答案:[[A]]
- 试题解析:
本题考查校验码基础知识。
一个编码系统中任意两个合法编码(码字)之间不同的二进数位数称为这两个码字的码距,而整个编码系统中任意两个码字的最小距离就是该编码系统的码距。为了使一个系统能检查和纠正一个差错,码间最小距离必须至少是3。
海明码是一种可以纠正一位差错的编码,是利用奇偶性来检错和纠错的校验方法。海明码的基本意思是给传输的数据增加r个校验位,从而增加两个合法消息(合法码字)的不同位的个数(海明距离)。假设要传输的信息有m位,则经海明编码的码字就有n=m+r位。
循环冗余校验码(CRC)编码方法是在k位信息码后再拼接r位的校验码,形成长度为n位的编码,其特点是检错能力极强且开销小,易于用编码器及检测电路实现。
在数据通信与网络中,通常k相当大,由一千甚至数千数据位构成一帧,而后采用CRC码产生r位的校验位。它只能检测出错误,而不能纠正错误。一般取r=16,标准的16位生成多项式有CRC-16=x16+x15+x2+1和CRC-CCITT= x16+x12+x5+1。一般情况下,r位生成多项式产生的CRC码可检测出所有的双错、奇数位错和突发长度小于等于r的突发错。用于纠错目的的循环码的译码算法比较复杂。
第 5 题
以下关于Cache的叙述中,正确的是( )。
- (A) 在容量确定的情况下,替换算法的时间复杂度是影响Cache命中率的关键因素
- (B) Cache的设计思想是在合理成本下提高命中率
- (C) Cache的设计目标是容量尽可能与主存容量相等
- (D) CPU中的Cache容量应大于CPU之外的Cache容量
答案与解析
- 试题难度:一般
- 知识点:计算机组成与体系结构>Cache
- 试题答案:[[B]]
- 试题解析:
本题考查高速缓存基础知识。
Cache是一个高速小容量的临时存储器,可以用高速的静态存储器(SRAM)芯片实现以集成到CPU芯片内部,或者设置在CPU与内存之间,用于存储CPU最经常访问的指令或者操作数据。Cache的出现是基于两种因素:首先是由于CPU的速度和性能提高很快而主存速度较低且价格高,其次是程序执行的局部性特点。因此,才将速度比较快而容量有限的SRAM构成Cache,目的在于尽可能发挥CPU的高速度。很显然,要尽可能发挥CPU的高速度,就必须用硬件实现其全部功能。
第 6 题
网络安全体系设计可从物理线路安全、网络安全、系统安全、应用安全等方面来进行。其中,数据库容灾属于( )。
- (A) 物理线路安全和网络安全
- (B) 物理线路安全和应用安全
- (C) 系统安全和网络安全
- (D) 系统安全和应用安全
答案与解析
- 试题难度:一般
- 知识点:信息安全>系统安全分级
- 试题答案:[[D]]
- 试题解析:
网络安全体系设计是逻辑设计工作的重要内容之一,数据库容灾属于系统安全和应用安全考虑范畴。
第 7 题
包过滤防火墙对数据包的过滤依据不包括( )。
- (A) 源IP地址
- (B) 源端口号
- (C) MAC地址
- (D) 目的IP地址
答案与解析
- 试题难度:一般
- 知识点:信息安全>防火墙技术
- 试题答案:[[C]]
- 试题解析:
本题考查防火墙相关知识。
包过滤防火墙对数据包的过滤依据包括源IP地址、源端口号、目标IP地址和目标端口号。
第 8 题
某网站向CA申请了数字证书,用户通过( )来验证网站的真伪。
- (A) CA的签名
- (B) 证书中的公钥
- (C) 网站的私钥
- (D) 用户的公钥
答案与解析
- 试题难度:一般
- 知识点:信息安全>数字证书
- 试题答案:[[A]]
- 试题解析:
本题考查数字证书相关知识点。
数字证书是由权威机构——CA证书授权(Certificate Authority)中心发行的,能提供在Internet上进行身份验证的一种权威性电子文档,人们可以在因特网交往中用它来证明自己的身份和识别对方的身份。
数字证书包含版本、序列号、签名算法标识符、签发人姓名、有效期、主体名和主体公钥信息等并附有CA的签名,用户获取网站的数字证书后通过验证CA的签名来确认数字证书的有效性,从而验证网站的真伪。
在用户与网站进行安全通信时,用户发送数据时使用网站的公钥(从数字证书中获得)加密,收到数据时使用网站的公钥验证网站的数字签名,网站利用自身的私钥对发送的消息签名和对收到的消息解密。
第 9 题
下列智力成果中,能取得专利权的是( )。
- (A) 计算机程序代码
- (B) 游戏的规则和方法
- (C) 计算机算法
- (D) 用于控制测试过程的程序
答案与解析
- 试题难度:一般
- 知识点:法律法规与标准化>保护范围与对象
- 试题答案:[[D]]
- 试题解析:
专利法明确规定,智力活动的规则和方法不取得专利权。智力活动规则和方法是直接作用于人的思维,与产业生产中的技术活动不发生直接关系,并不是对自然规律的利用,不属于技术方案。通常,智力活动规则和方法是一些人为的规则,如管理规则、游戏规则、统计方法、分类方法和计算方法等。
算法被认为是一种数学公式,反映的是自然法则和逻辑思维过程,属于智力活动规则和方法,不能受到专利法的保护。算法对于计算机软件而言极其重要,是计算机程序的基础,计算机软件总是离不开算法。因此,计算机软件本身属于智力活动规则和方法的范畴,不能够授予专利权。无论是源程序还是目标程序,它体现的是智力活动的规则和方法。因此仅以单纯的计算机程序为主题的发明创造是不能获得专利权的。
随着计算机技术的发展,不能授予专利权的智力活动规则和方法与能够授予专利权的方法之间的界线比较模糊了。例如,抽象出一种生产过程的数学模式,设计一种算法,通过予以运行用于控制该生产过程就能够获得专利保护。也就是说,智力活动规则和方法本身不被授予专利权,但进行智力活动的机器设备、装置或者根据智力活动规则和方法而设计制造的仪器、装置等都可以获得专利保护。即软件和硬件或者工业产品结合并表现为机器、装置或者为达到某种结果表现为方法时,软件可成为专利保护的对象。
第 10 题
软件权利人与被许可方签订一份软件使用许可合同。若在该合同约定的时间和地域范围内,软件权利人不得再许可任何第三人以此相同的方法使用该项软件,但软件权利人可以自己使用,则该项许可使用是( )。
- (A) 独家许可使用
- (B) 独占许可使用
- (C) 普通许可使用
- (D) 部分许可使用
答案与解析
- 试题难度:一般
- 知识点:法律法规与标准化>其它
- 试题答案:[[A]]
- 试题解析:
软件许可使用一般有独占许可使用、独家许可使用和普通许可使用三种形式。独占许可使用,许可的是专有使用权,实施独占许可使用后,软件著作权人不得将软件使用权授予第三方,软件著作权人自己不能使用该软件;独家许可使用,许可的是专有使用权,实施独家许可使用后,软件著作权人不得将软件使用权授予第三方,软件著作权人自己可以使用该软件;普通许可使用,许可的是非专有使用权,实施普通许可使用后,软件著作权人可以将软件使用权授予第三方,软件著作权人自己可以使用该软件。
第 11 题
多媒体中的“媒体”有两重含义,一是指存储信息的实体;二是指表达与传递信息的载体。( )是存储信息的实体。
- (A) 文字、图形、磁带、半导体存储器
- (B) 磁盘、光盘、磁带、半导体存储器
- (C) 文字、图形、图像、声音
- (D) 声卡、磁带、半导体存储器
答案与解析
- 试题难度:容易
- 知识点:多媒体基础>媒体的种类(显示媒体)
- 试题答案:[[B]]
- 试题解析:
通常所说的“媒体(Media)”包括两重含义:一是指信息的物理载体,即存储和传递信息的实体,如手册、磁盘、光盘、磁带以及相关的播放设备等(本题只涉及存储信息);二是指承载信息的载体,即信息的表现形式(或者说传播形式),如文字、声音、图像、动画和视频等,即CCITT定义的存储媒体和表示媒体。表示媒体又可以分为三种类型:视觉类媒体(如位图图像、矢量图形、图表、符号、视频和动画等)、听觉类媒体(如音响、语音和音乐等)和触觉类媒体(如点、位置跟踪,力反馈与运动反馈等)。视觉和听觉类媒体是信息传播的内容,触觉类媒体是实现人机交互的手段。
第 12 题
RGB8:8:8表示一帧彩色图像的颜色数为( )种。
- (A) 23
- (B) 28
- (C) 224
- (D) 2512
答案与解析
- 试题难度:一般
- 知识点:多媒体基础>多媒体相关计算问题
- 试题答案:[[C]]
- 试题解析:
本题考查多媒体基础知识(图像深度)。
图像深度是指存储每个像素所用的位数,也是用来度量图像分辨率的。像素深度确定彩色图像的每个像素可能有的颜色数,或者确定灰度图像的每个像素可能有的灰度级数。如一幅图像的图像深度为b位,则该图像的最多颜色数或灰度级为2b种。显然,表示一个像素颜色的位数越多,它能表达的颜色数或灰度级就越多。例如,只有1个分量的单色图像,若每个像素有8位,则最大灰度数目为28=256;一幅彩色图像的每个像素用R、G、B三个分量表示,若3个分量的像素位数分别为4、4、2,则最大颜色数目为24+4+2=210=1024,就是说像素的深度为10位,每个像素可以是210种颜色中的一种。表示一个像素的位数越多,它能表达的颜色数目就越多,它的深度就越深。
第 13 题
位图与矢量图相比,位图( )。
- (A) 占用空间较大,处理侧重于获取和复制,显示速度快
- (B) 占用空间较小,处理侧重于绘制和创建,显示速度较慢
- (C) 占用空间较大,处理侧重于获取和复制,显示速度较慢
- (D) 占用空间较小,处理侧重于绘制和创建,显示速度快
答案与解析
- 试题难度:较难
- 知识点:多媒体基础>多媒体技术基本概念
- 试题答案:[[A]]
- 试题解析:
矢量图形是用一系列计算机指令来描述和记录一幅图的内容,即通过指令描述构成一幅图的所有直线、曲线、圆、圆弧、矩形等图元的位置、维数和形状,也可以用更为复杂的形式表示图像中曲面、光照和材质等效果。矢量图法实质上是用数学的方式(算法和特征)来描述一幅图形图像,在处理图形图像时根据图元对应的数学表达式进行编辑和处理。在屏幕上显示一幅图形图像时,首先要解释这些指令,然后将描述图形图像的指令转换成屏幕上显示的形状和颜色。编辑矢量图的软件通常称为绘图软件,如适于绘制机械图、电路图的AutoCAD软件等。这种软件可以产生和操作矢量图的各个成分,并对矢量图形进行移动、缩放、叠加、旋转和扭曲等变换。编辑图形时将指令转变成屏幕上所显示的形状和颜色,显示时也往往能看到绘图的过程。由于所有的矢量图形部分都可以用数学的方法加以描述,从而使得计算机可以对其进行任意放大、缩小、旋转、变形、扭曲、移动和叠加等变换,而不会破坏图像的画面。但是,用矢量图形格式表示复杂图像(如人物、风景照片),并且要求很高时,将需要花费大量的时间进行变换、着色和处理光照效果等。因此,矢量图形主要用于表示线框型的图画、工程制图和美术字等。
位图图像是指用像素点来描述的图。图像一般是用摄像机或扫描仪等输入设备捕捉实际场景画面,离散化为空间、亮度、颜色(灰度)的序列值,即把一幅彩色图或灰度图分成许许多多的像素(点),每个像素用若干二进制位来指定该像素的颜色、亮度和属性。位图图像在计算机内存中由一组二进制位组成,这些位定义图像中每个像素点的颜色和亮度。图像适合于表现比较细腻,层次较多,色彩较丰富,包含大量细节的图像,并可直接、快速地在屏幕上显示出来。但占用存储空间较大,一般需要进行数据压缩。
第 14 题
在采用结构化方法进行系统分析时,根据分解与抽象的原则,按照系统中数据处理的流程,用( )来建立系统的逻辑模型,从而完成分析工作。
- (A) ER图
- (B) 数据流图
- (C) 程序流程图
- (D) 软件体系结构
答案与解析
- 试题难度:一般
- 知识点:软件工程>需求分析相关概念
- 试题答案:[['B']]
- 试题解析:
本题考查结构化分析方法中图形工具的作用。数据流图摆脱系统的物理内容,在逻辑上描述系统的功能、输入、输出和数据存储等,是系统逻辑模型的重要组成部分。
第 15 题
面向对象开发方法的基本思想是尽可能按照人类认识客观世界的方法来分析和解决问题,( )方法不属于面向对象方法。
- (A) Booch
- (B) Coad
- (C) OMT
- (D) Jackson
答案与解析
- 试题难度:一般
- 知识点:软件工程>软件开发方法
- 试题答案:[[D]]
- 试题解析:
本题考查面向对象开发方法。面向对象开发方法有Booch方法、Coad方法和OMT方法。Jackson方法是一种面向数据结构的开发方法。
第 16 题
确定构建软件系统所需要的人数时,无需考虑( )。
- (A) 系统的市场前景
- (B) 系统的规模
- (C) 系统的技术复杂性
- (D) 项目计划
答案与解析
- 试题难度:容易
- 知识点:项目管理>其它
- 试题答案:[[A]]
- 试题解析:
本题考查项目管理内容。在对软件开发资源进行规划时,为了确定构建软件系统所需的人数,需要考虑软件系统的规模、系统的技术复杂性、项目计划和开发人员的技术背景等方面,而与系统是否有市场前景无关。
第 17 题
一个项目为了修正一个错误而进行了变更。但这个错误被修正后,却引起以前可以正确运行的代码出错。( )最可能发现这一问题。
- (A) 单元测试
- (B) 接受测试
- (C) 回归测试
- (D) 安装测试
答案与解析
- 试题难度:容易
- 知识点:软件工程>测试阶段任务及其他测试
- 试题答案:[['C']]
- 试题解析:
本题考查软件测试知识。回归测试是在软件发生变更之后进行的测试,以发现在变更时可能引起的其他错误。
第 18 题
风险预测从两个方面评估风险,即风险发生的可能性以及( )。
- (A) 风险产生的原因
- (B) 风险监控技术
- (C) 风险能否消除
- (D) 风险发生所产生的后果
答案与解析
- 试题难度:容易
- 知识点:项目管理>风险管理
- 试题答案:[[D]]
- 试题解析:
本题考查风险预测知识。风险预测从风险发生的可能性大小以及风险发生所产生的后果是否严重两个方面评估风险。
第 19 题
许多程序设计语言规定,程序中的数据都必须具有类型,其作用不包括( )。
- (A) 便于为数据合理分配存储单元
- (B) 便于对参与表达式计算的数据对象进行检查
- (C) 便于定义动态数据结构
- (D) 便于规定数据对象的取值范围及能够进行的运算
答案与解析
- 试题难度:一般
- 知识点:程序设计语言基础>编译器工作过程
- 试题答案:[[C]]
- 试题解析:
本题考查程序语言基础知识。
数据具有类型,便于编译程序在基础机器中完成对值的布局,同时还可用于检查表达式中对运算的应用是否正确。
第 20 题
以下关于C/C++语言指针变量的叙述中,正确的是( )。
- (A) 指针变量可以是全局变量也可以是局部变量
- (B) 必须为指针变量与指针所指向的变量分配相同大小的存储空间
- (C) 对指针变量进行算术运算是没有意义的
- (D) 指针变量必须由动态产生的数据对象来赋值
答案与解析
- 试题难度:一般
- 知识点:程序设计语言基础>多种程序语言特点
- 试题答案:[[A]]
- 试题解析:
本题考查程序语言基础知识。
变量是内存单元的抽象,用于在程序中表示数据。当变量存储的是内存单元地址时,称为指针变量,或者说指针变量指向了另一个变量。指针变量可以定义在函数或复合语句内,也可以定义在所有的函数之外,即可以是全局变量,也可以是局部变量。需要区分指针变量与指针所指向的变量,无论指针变量指向何种变量,其存储空间大小都是一样的。当指针变量指向数组中的一个元素时,对指针变量进行算术运算可以使其指向同一个数组中的其他元素。
第 21 题
将高级语言源程序翻译为机器语言程序的过程中常引入中间代码。以下关于中间代码的叙述中,错误的是( )。
- (A) 不同的高级程序语言可以产生同一种中间代码
- (B) 使用中间代码有利于进行与机器无关的优化处理
- (C) 使用中间代码有利于提高编译程序的可移植性
- (D) 中间代码与机器语言代码在指令结构上必须一致
答案与解析
- 试题难度:一般
- 知识点:程序设计语言基础>中间代码
- 试题答案:[['D']]
- 试题解析:
本题考查程序语言基础知识。
“中间代码”是一种简单且含义明确的记号系统,与具体的机器无关,可以有若干种形式。可以将不同的高级程序语言翻译成同一种中间代码。由于与具体机器无关,使用中间代码有利于进行与机器无关的优化处理,以及提高编译程序的可移植性。
第 22 题
操作系统是裸机上的第一层软件,其他系统软件(如( )等)和应用软件都是建立在操作系统基础上的。下图①②③分别表示( )。
- (A) 编译程序、财务软件和数据库管理系统软件
- (B) 汇编程序、编译程序和Java解释器
- (C) 编译程序、数据库管理系统软件和汽车防盗程序
- (D) 语言处理程序、办公管理软件和气象预报软件
- (A) 应用软件开发者、最终用户和系统软件开发者
- (B) 应用软件开发者、系统软件开发者和最终用户
- (C) 最终用户、系统软件开发者和应用软件开发者
- (D) 最终用户、应用软件开发者和系统软件开发者
答案与解析
- 试题难度:一般
- 知识点:操作系统>操作系统概述及作用
- 试题答案:[['B'],['D']]
- 试题解析:
本题考查操作系统基本概念。
财务软件、汽车防盗程序、办公管理软件和气象预报软件都属于应用软件,而选项A、C和D中含有这些软件。选项B中汇编程序、编译程序和数据库管理系统软件都属于系统软件。
计算机系统由硬件和软件两部分组成。通常把未配置软件的计算机称为裸机,直接使用裸机不仅不方便,而且将严重降低工作效率和机器的利用率。操作系统(Operating System)的目的是为了填补人与机器之间的鸿沟,即建立用户与计算机之间的接口而为裸机配置的一种系统软件。由图1可以看出,操作系统是裸机上的第一层软件,是对硬件系统功能的首次扩充。它在计算机系统中占据重要而特殊的地位,所有其他软件,如编辑程序、汇编程序、编译程序和数据库管理系统等系统软件,以及大量的应用软件都是建立在操作系统基础上的,并得到它的支持和取得它的服务。从用户角度看,当计算机配置了操作系统后,用户不再直接使用计算机系统硬件,而是利用操作系统所提供的命令和服务去操纵计算机,操作系统已成为现代计算机系统中必不可少的最重要的系统软件,因此把操作系统看作是用户与计算机之间的接口。因此,操作系统紧贴系统硬件之上,所有其他软件之下(是其他软件的共同环境)。
第 23 题
进程P1、P2、 P3和P4的前趋图如下:
若用PV操作控制这几个进程并发执行的过程,则需要设置4个信号量S1、S2、S3和S4,且信号量初值都等于零。下图中a和b应分别填写( ),c和d应分别填写( )。
- (A) P(S1)P(S2)和 P(S3)
- (B) P(S1)P(S2)和 V(S1)
- (C) V(S1)V(S2)和P(S1)
- (D) V(S1)V(S2)和 V(S3)
- (A) P(S1)P(S2)和P(S4)
- (B) P(S2)P(S3)和P(S4)
- (C) V(Sl)V(S2)和V(S4)
- (D) V(S2)V(S3)和 V(S4)
答案与解析
- 试题难度:一般
- 知识点:操作系统>前趋图与PV操作
- 试题答案:[['C'],['B']]
- 试题解析:
本题考查操作系统进程管理中PV操作方面的基本知识。
根据题意,进程P2、P3等待P1的结果,因此当P1执行完毕需要使用V操作通知P2、P3,即a处填V(S1)V(S2),b处应填P(S1)。
根据题意,进程P3要执行需要测试P1、P2有没有消息,故应该在c处填P(S2)、P(S3)。当P3执行完毕需要使用V操作通知P4,即在d处填P(S4)。
第 24 题
若系统正在将( )文件修改的结果写回磁盘时系统发生崩溃,则对系统的影响相对较大。
- (A) 空闲块
- (B) 目录
- (C) 用户数据
- (D) 用户程序
答案与解析
- 试题难度:一般
- 知识点:操作系统>其它
- 试题答案:[[B]]
- 试题解析:
本题考查操作系统文件管理可靠性方面的基础知识。
影响文件系统可靠性因素之一是文件系统的一致性问题。很多文件系统是先读取磁盘块到主存,在主存进行修改,修改完毕再写回磁盘。例如读取某磁盘块,修改后再将信息写回磁盘前系统崩溃,则文件系统就可能会出现不一致性状态。如果这些未被写回的磁盘块是索引节点块、目录块或空闲块,特别是系统目录文件,那么对系统的影响相对较大,且后果也是不堪设想的。通常解决方案是采用文件系统的一致性检查,一致性检查包括块的一致性检查和文件的一致性检查。
第 25 题
UNIX系统采用直接、一级、二级和三级间接索引技术访问文件,其索引结点有13个地址项(i_addr[0]~i_addr[12])。如果每个盘块的大小为1 KB,每个盘块号占4B,则进程A访问文件F中第11264字节处的数据时,( )。
- (A) 可直接寻址
- (B) 需要一次间接寻址
- (C) 需要二次间接寻址
- (D) 需要三次间接寻址
答案与解析
- 试题难度:一般
- 知识点:操作系统>索引文件
- 试题答案:[[B]]
- 试题解析:
本题考查UNIX文件系统管理中目录结构方面的基础知识。
UNIX系统采用直接、一级、二级和三级间接索引技术访问文件,其索引结点有13个地址项(i_addr[0]~i_addr[12])。其中i_addr[0]~i_addr[9]采用直接索引技术访问文件,i_addr[10]采用一级间接索引技术访问文件,i_addr[11]采用二级间接索引技术访问文件i_addr[12]采用三级间接索引技术访问文件。如下图所示。根据题意,每个盘块的大小为1KB,每个盘块号占4B,那么,一个盘块可以存放256个盘块号。又因为进程A访问文件F中第11264字节处的数据,该数据应该放在11264/1024=11号逻辑盘块中,从上图中可以看出11号逻辑盘块应采用一级间接索引。
第 26 题
软件能力成熟度模型(CMM)的第4级(已管理级)的核心是( )。
- (A) 建立基本的项目管理和实践来跟踪项目费用、进度和功能特性
- (B) 组织具有标准软件过程
- (C) 对软件过程和产品都有定量的理解和控制
- (D) 先进的新思想和新技术促进过程不断改进
答案与解析
- 试题难度:一般
- 知识点:软件工程>软件过程改进
- 试题答案:[[C]]
- 试题解析:
本题考查成熟度等级(CMM)知识。在CMM的不同等级有不同的核心。在可重复级,建立了基本的项目管理过程和实践来跟踪项目费用、进度和功能特性。在已定义级,所有项目都采用根据实际情况修改后得到的标准软件过程来开发和维护软件。在已管理级,收集对软件过程和产品质量的详细度量,对软件过程和产品都有定量的理解与控制。在优化级,过程的量化反馈和先进的新思想、新技术促使过程不断改进。
第 27 题
软件系统设计的主要目的是为系统制定蓝图,( )并不是软件设计模型所关注的。
- (A) 系统总体结构
- (B) 数据结构
- (C) 界面模型
- (D) 项目范围
答案与解析
- 试题难度:一般
- 知识点:软件工程>概要设计与详细设计
- 试题答案:[[D]]
- 试题解析:
本题考查软件系统设计知识。系统设计为系统制定蓝图,软件设计模型关注新系统总体结构、代码设计、处理过程、数据结构和界面模型等。对项目范围的关注在软件设计之前。
第 28 题
ISO/IEC 9126软件质量模型中,可靠性质量特性包括多个子特性。一软件在故障发生后,要求在90秒内恢复其性能和受影响的数据,与达到此目的有关的软件属性为( )子特性。
- (A) 容错性
- (B) 成熟性
- (C) 易恢复性
- (D) 易操作性
答案与解析
- 试题难度:容易
- 知识点:软件工程>软件质量特性
- 试题答案:[[C]]
- 试题解析:
本题考查软件质量模型知识。ISO/IEC 9126软件质量模型中可靠性质量特性是指在规定的一段时间内和规定的条件下,软件维护其性能水平有关的能力。包括的子特性有成熟性、容错性和易恢复性。其中易恢复性是与在故障发生后,重新建立其性能水平并恢复直接受影响数据的能力,以及与为达到此目的所需的时间和工作有关的软件属性。软件故障发生后,要在90秒内恢复其性能和受影响的数据,达到这一目的有关的属性即为易恢复性子特性。
第 29 题
某程序的程序图如下所示,运用McCabe度量法对其进行度量,其环路复杂度是( )。
- (A) 2
- (B) 3
- (C) 4
- (D) 5
答案与解析
- 试题难度:一般
- 知识点:软件工程>McCabe复杂度计算
- 试题答案:[[D]]
- 试题解析:
本题考查McCabe度量法。McCabe度量法是通过定义环路复杂度,建立程序复杂性的度量,它基于一个程序模块的程序图中环路的个数。计算有向图G的环路复杂性的公式为V(G)=m-n+2,其中V(G)是有向图G中的环路个数,m是G中的有向弧数,n是G中的节点数。要采用McCabe度量法度量程序复杂度,需要先画出程序图,识别有向图中节点数n=7和有向弧数m=10,然后利用环路复杂性计算公式V(G)=m-n+2进行计算,得到图中程序图的程序复杂度是5。
第 30 题
系统开发计划用于系统开发人员与项目管理人员在项目期内进行沟通,它包括( )和预算分配表等。
- (A) PERT图
- (B) 总体规划
- (C) 测试计划
- (D) 开发合同
答案与解析
- 试题难度:一般
- 知识点:项目管理>其它
- 试题答案:[[A]]
- 试题解析:
本题考查系统开发计划文档知识。
用于系统开发人员与项目管理人员在项目期内进行沟通的文档主要有系统开发计划,包括工作任务分解表、PERT图、甘特图和预算分配表等。总体规划和开发合同用于与系统分析人员在系统规划和系统分析阶段的沟通。测试计划用于系统测试人员与系统开发人员之间的沟通。
第 31 题
改正在软件系统开发阶段已经发生而系统测试阶段还没有发现的错误,属于( )维护。
- (A) 正确性
- (B) 适应性
- (C) 完善性
- (D) 预防性
答案与解析
- 试题难度:一般
- 知识点:软件工程>软件维护类型
- 试题答案:[[A]]
- 试题解析:
本题考查软件维护知识。
软件维护的内容一般包括准确性维护、适应性维护、完善性维护和预防性维护。正确性维护是指改正在系统开发阶段已发生而系统测试阶段尚未发现的错误。适应性维护是指使应用软件适应信息技术变化和管理需求变化而进行的修改。完善性维护主要是指对已有的软件系统增加一些在系统分析和设计阶段中没有规定的功能与性能特征。预防性维护是指为了适应未来的软硬件环境的变化,主动增加预防性的新功能,以使应用系统适应各类变化而不被淘汰。
第 32 题
某系统重用了第三方组件(但无法获得其源代码),则应采用( )对组件进行测试。
- (A) 基本路径覆盖
- (B) 分支覆盖
- (C) 环路覆盖
- (D) 黑盒测试
答案与解析
- 试题难度:容易
- 知识点:软件工程>黑盒测试
- 试题答案:[['D']]
- 试题解析:
本题考查软件动态测试方法。
软件测试方法分为静态测试和动态测试。静态测试是被测试程序不在机器上运行而采用人工检测和计算机辅助静态分析手段对程序进行检测。动态测试是通过运行程序发现错误,对软件产品进行动态测试时可以采用黑盒测试和白盒测试法。黑盒测试法在完全不考虑软件的内部结构和特性的情况下,测试软件的外部特性。对于无法获得源代码的第三方组件,可采用黑盒对组件进行测试。基本路径覆盖、分支覆盖和环路覆盖需要根据程序的内部结构和逻辑进行测试。
第 33 题
极限编程(XP)由价值观、原则、实践和行为四个部分组成,其中价值观包括沟通、简单性、( )。
- (A) 好的计划
- (B) 不断的发布
- (C) 反馈和勇气
- (D) 持续集成
答案与解析
- 试题难度:一般
- 知识点:软件工程>开发模型
- 试题答案:[[C]]
- 试题解析:
本题考查敏捷开发方法。
极限编程(XP)是敏捷开发的典型方法之一,是一种轻量级(敏捷)、高效、低风险、柔性、可预测的、科学的软件开发方法,它由价值观、原则、实践和行为4个部分组成。其中4大价值观为沟通、简单性、反馈和勇气。
第 34 题
以下关于类和对象的叙述中,错误的是( )。
- (A) 类是具有相同属性和服务的一组对象的集合
- (B) 类是一个对象模板,用它仅可以产生一个对象
- (C) 在客观世界中实际存在的是类的实例,即对象
- (D) 类为属于该类的全部对象提供了统一的抽象描述
答案与解析
- 试题难度:一般
- 知识点:面向对象技术>面向对象的基本概念
- 试题答案:[[B]]
- 试题解析:
本题考查面向对象中类和对象的基本概念。
面向对象中,类是对象的模板,描述了一组对象共有的成员属性和方法。类是一组对象的抽象描述,通过类可以产生一个或多个对象,这些对象具有相同的属性和方法。
第 35 题
( )是把对象的属性和服务结合成一个独立的系统单元,并尽可能隐藏对象的内部细节;( )是指子类可以自动拥有父类的全部属性和服务;( )是对象发出的服务请求,一般包含提供服务的对象标识、服务标识、输入信息和应答信息等。
- (A) 继承
- (B) 多态
- (C) 消息
- (D) 封装
- (A) 继承
- (B) 多态
- (C) 消息
- (D) 封装
- (A) 继承
- (B) 多态
- (C) 消息
- (D) 封装
答案与解析
- 试题难度:容易
- 知识点:面向对象技术>面向对象的基本概念
- 试题答案:[[D],[A],[C]]
- 试题解析:
本题考查面向对象的基本概念。
封装的作用是把属性和服务结合成一个独立的系统单元,并隐藏对象的内部细节;而继承则使得子类可以自动拥有父类的全部属性和服务;消息则是对象发出的服务请求;多态是指面向对象中由重载或过载机制实现的结果。
第 36 题
以下关于面向对象分析的叙述中,错误的是( )。
- (A) 面向对象分析看重分析问题域和系统责任
- (B) 面向对象分析需要考虑系统的测试问题
- (C) 面向对象分析忽略与系统实现有关的问题
- (D) 面向对象分析建立独立于实现的系统分析模型
答案与解析
- 试题难度:较难
- 知识点:面向对象技术>面向对象开发各阶段划分及任务
- 试题答案:[[B]]
- 试题解析:
本题考查面向对象分析的基本概念。
面向对象分析主要回答软件系统需要解决什么问题,在面向对象分析阶段,并不考虑系统实现以及系统的测试问题,强调建立独立于系统实现的系统分析模型,其关注点仍然侧重于问题域。
第 37 题
以下关于面向对象设计的叙述中,错误的是( )。
- (A) 高层模块不应该依赖于底层模块
- (B) 抽象不应该依赖于细节
- (C) 细节可以依赖于抽象
- (D) 高层模块无法不依赖于底层模块
答案与解析
- 试题难度:一般
- 知识点:面向对象技术>面向对象设计原则
- 试题答案:[[D]]
- 试题解析:
本题考查面向对象设计的基本原则。面向对象设计中存在很多原则,其中高层模块不应该依赖于底层模块就是其中一条。传统的结构化设计中,一般的高层模块需要调用或使用底层模块,导致高层模块必须依赖于底层模块,但借助面向对象中的抽象类、接口等一系列机制,可以使得高层模块仅仅和接口耦合,而和实际的底层模块没有直接关联。
第 38 题
采用( )设计模式可保证一个类仅有一个实例:采用( )设计模式可将对象组合成树形结构以表示“部分-整体”的层次结构,使用户对单个对象和组合对象的使用具有一致性;采用( )设计模式可动态地给一个对象添加一些额外的职责。
- (A) 命令(Command)
- (B) 单例(Singleton)
- (C) 装饰(Decorate)
- (D) 组合(Composite)
- (A) 命令(Command)
- (B) 单例(Singleton)
- (C) 装饰(Decorate)
- (D) 组合(Composite)
- (A) 命令(Command)
- (B) 单例(Singleton)
- (C) 装饰(Decorate)
- (D) 组合(Composite)
答案与解析
- 试题难度:容易
- 知识点:面向对象技术>设计模式的应用场景
- 试题答案:[[B],[D],[C]]
- 试题解析:
本题考查面向对象设计中的设计模式。
单例设计模式的目的就是保证一个类仅能够生成一个对象;组合设计模式则用于表示“部分-整体”的层次结构,并且对部分和整体的使用具有一致性;装饰设计模式则动态地给一个对象增加一些额外的职责,无须改变类的设计和实现。
第 39 题
下列UML类图表示的是( )设计模式。该设计模式中,( )。
- (A) 备忘录(Memento)
- (B) 策略(Strategy)
- (C) 状态(State)
- (D) 观察者(Observer)
- (A) 一个Subject对象可对应多个Observer对象
- (B) Subject只能有一个ConcreteSubject子类
- (C) Observer只能有一个ConcreteObserver子类
- (D) 一个Subject对象必须至少对应一个Observer对象
答案与解析
- 试题难度:一般
- 知识点:面向对象技术>设计模式的图
- 试题答案:[[D],[A]]
- 试题解析:
本题考查面向对象设计中的设计模式。
题中的图标是观察者设计模式,在该设计模式中,一个Subject类可以有多个ConcreteSubject子类,一个Observer类也可以有多个ConcreteObserver子类;一个Subject对象可以对应多个Observer对象。
第 40 题
以下关于编译系统对某高级语言进行翻译的叙述中,错误的是( )。
- (A) 词法分析将把源程序看作一个线性字符序列进行分析
- (B) 语法分析阶段可以发现程序中所有的语法错误
- (C) 语义分析阶段可以发现程序中所有的语义错误
- (D) 目标代码生成阶段的工作与目标机器的体系结构相关
答案与解析
- 试题难度:一般
- 知识点:程序设计语言基础>编译器工作过程
- 试题答案:[[C]]
- 试题解析:
本题考查程序语言翻译基础知识。
词法分析是编译过程的第一阶段,其任务是对源程序从前到后(从左到右)逐个字符地扫描,从中识别出一个个的“单词”符号。语法分析的任务是在词法分析的基础上,根据语言的语法规则将单词符号序列分解成各类语法单位,如“表达式”、“语句”和“程序”等。语义分析阶段主要检查源程序是否包含语义错误,并收集类型信息供后面的代码生成阶段使用。只有语法和语义都正确的源程序才能被翻译成正确的目标代码。目标代码生成是编译器工作的最后一个阶段。这一阶段的任务是把中间代码变换成特定机器上的绝对指令代码、可重定位的指令代码或汇编指令代码,这个阶段的工作与具体的机器密切相关。
源程序不可避免地会有一些错误,这些错误大致可分为语法错误和语义错误。语法错误是指语言结构上的使用错误,是指编译时所发现的程序错误,如单词拼写错误、标点符号错、表达式中缺少操作数、括号不匹配等有关语言结构上的错误。
第 41 题
若一个程序语言可以提供链表的定义和运算,则其运行时的( )。
- (A) 数据空间适合采用静态存储分配策略
- (B) 数据空间必须采用堆存储分配策略
- (C) 指令空间需要采用栈结构
- (D) 指令代码必须放入堆区
答案与解析
- 试题难度:一般
- 知识点:程序设计语言基础>其它
- 试题答案:[[B]]
- 试题解析:
本题考查程序语言基础知识。
链表中的结点空间需要程序员根据需要申请和释放,因此,数据空间应采用堆存储分配策略。
第 42 题
由某上下文无关文法M[S]推导出某句子的分析树如下图所示,则错误的叙述是( )。
- (A) 该文法推导出的句子必须以“a”开头
- (B) acabcbdcc是该文法推导出的一个句子
- (C) “S->aAcB”是该文法的一个产生式
- (D) d属于该文法的终结符号集
答案与解析
- 试题难度:一般
- 知识点:程序设计语言基础>文法
- 试题答案:[[A]]
- 试题解析:
本题考查程序语言基础知识。
推导就是从文法的开始符号S出发,反复使用产生式,将产生式左部的非终结符替换为右部的文法符号序列(展开产生式用=>表示),直到产生一个终结符的序列时为止。从题中给出的分析树可得到如下的一个最左推导过程
S=>aAcB=>aAaBcB=>acaBcB =>acabcB=>acabcbScA=>acabcbBdcA=>acabcbdcA=>acabcbdcc,因此,acabcbdcc是该方法推导出的一个句子。其中用到的产生式如下:
S->aAcB S->Bd
A->AaB A->c
B->bScA B->b B->ε
从起始符号S出发也可以如下推导:S=>Bd=>εd=>d,即该文法推导出的句子也可以为d,因此选项A错误。
第 43 题
假设有学生S(学号,姓名,性别,入学时间,联系方式),院系D(院系号,院系名称,电话号码,负责人)和课程C(课程号,课程名)三个实体,若一名学生属于一个院系,一个院系有多名学生;一名学生可以选择多门课程,一门课程可被多名学生选择,则图中(a)和(b)分别为( )联系。假设一对多联系不转换为一个独立的关系模式,那么生成的关系模式( )。
- (A) 1 和1
- (B) 1 和 1
- (C) 1 和 *
- (D) 1和 *
- (A) S中应加入关系模式D的主键
- (B) S中应加入关系模式C的主键
- (C) D中应加入关系模式S的主键
- (D) C中应加入关系模式S的主键
答案与解析
- 试题难度:一般
- 知识点:数据库系统>ER模型
- 试题答案:[[C],[A]]
- 试题解析:
本题考查的是应试者对数据库系统中E-R模型方面的基础知识。
根据题意,学生S关系中一个学生属于一个院系,一个院系有多个学生,因此学生S和部门院系D之间是一个一对多的联系,故(a)应为1 * ;又因为一个学生可以选择多门课程,一门课程可由多名学生选择,所以学生S和课程C关系之间是一个多对多的联系,故(b)应为* * 。
假设一对多联系(a)不转换为一个独立的关系模式,那么按照E-R模型向关系模型转换的规则,应当将一端的主键并入多端。所以,生成的关系模式学生S中应加入关系模式D的主键。
第 44 题
软硬件故障常造成数据库中的数据破坏。数据库恢复就是( )。
- (A) 重新安装数据库管理系统和应用程序
- (B) 重新安装应用程序,并将数据库做镜像
- (C) 重新安装数据库管理系统,并将数据库做镜像
- (D) 在尽可能短的时间内,把数据库恢复到故障发生前的状态
答案与解析
- 试题难度:容易
- 知识点:数据库系统>数据库备份与恢复
- 试题答案:[[D]]
- 试题解析:
本题考查关系数据库事务处理方面的基础知识。为了保证数据库中数据的安全可靠和正确有效,数据库管理系统(DBMS)提供数据库恢复、并发控制、数据完整性保护与数据安全性保护等功能。数据库在运行过程中由于软硬件故障可能造成数据被破坏,数据库恢复就是在尽可能短的时间内把数据库恢复到故障发生前的状态。
第 45 题
设有员工实体Emp(员工号,姓名,性别,年龄,出生年月,联系方式,部门号),其中“联系方式”要求记录该员工的手机号码和办公室电话,部门号要求参照另一部门实体Dept的主码“部门号”。Emp实体中存在派生属性和多值属性:( );对属性部门号应该进行( )约束;可以通过命令( )修改表中的数据。
- (A) 年龄和出生年月
- (B) 年龄和联系方式
- (C) 出生年月和联系方式
- (D) 出生年月和年龄
- (A) 非空主键
- (B) 主键
- (C) 外键
- (D) 候选键
- (A) INSERT
- (B) DELETE
- (C) UPDATE
- (D) MODIFY
答案与解析
- 试题难度:一般
- 知识点:数据库系统>关系模式相关概念
- 试题答案:[[B],[C],[C]]
- 试题解析:
本题考查数据库系统设计的基本概念和SQL基本命令。
概念模式设计阶段是根据对用户信息需要的分析设计E-R图,对于属性的分析,派生属性是指可以由其他属性经过运算得到的属性,因而派生属性产生冗余,通常不存储,如员工实体Emp的年龄;多值属性是指一个实体在该属性上会同时取多个属性值,这些值也都必须存储,如员工实体Emp的联系方式。数据约束也是描述用户信息的,根据参照完整性约束的定义,Emp实体中的部门号属性应为外码,应该用Foreign Key进行外键约束。
标准SQL对数据库对象(基本表、索引和视图等)的创建、修改和删除定义了一组操作分别为CREATE、ALTER和DROP;对基本表和视图中数据的插入、删除和修改定义了操作分别为INSERT、DELETE和UPDATE,这两组操作不能混淆。
第 46 题
已知一个二叉树的先序遍历序列为①、②、③、④、⑤,中序遍历序列为②、①、④、③、⑤,则该二叉树的后序遍历序列为( )。对于任意一棵二叉树,叙述错误的是( )。
- (A) ②、③、①、⑤、④
- (B) ①、②、③、④、⑤
- (C) ②、④、⑤、③、①
- (D) ④、⑤、③、②、①
- (A) 由其后序遍历序列和中序遍历序列可以构造该二叉树的先序遍历序列
- (B) 由其先序遍历序列和后序遍历序列可以构造该二叉树的中序遍历序列
- (C) 由其层序遍历序列和中序遍历序列可以构造该二叉树的先序遍历序列
- (D) 由其层序遍历序列和后序遍历序列不能构造该二叉树的中序遍历序列
答案与解析
- 试题难度:一般
- 知识点:数据结构与算法基础>二叉树的遍历
- 试题答案:[['C'],['B']]
- 试题解析:
本题考查数据结构基础知识。
遍历运算是二叉树的基本运算,主要有先序、中序、后序和层序遍历。
先序遍历的基本方法:对于非空二叉树,先访问根结点,然后先序遍历根的左子树,最后先序遍历根的右子树。因此,若已知某二叉树的先序遍历序列,则可直接得到其树根结点。
中序遍历的基本方法:对于非空二叉树,先中序遍历根的左子树,然后访问根结点,最后中序遍历根的右子树。因此,若已知某二叉树的根结点,则一可根据中序遍历序列将该二叉树左右子树上的结点划分开。
后序遍历的基本方法:对于非空二叉树,首先后序遍历根的左子树,接着后序遍历根的右子树,最后访问根结点。因此,若已知某二叉树的后序遍历序列,则可直接得到其树根结点。
题中给出的先序遍历序列为①、②、③、④、⑤,可知树根结点是①,据此再结合中序遍历序列②、①、④、③、⑤,可知②是根结点①左子树上的结点,由于是左子树上唯一的一个结点,因此②是根结点①的左孩子。对于右子树上的结点④、③、⑤,因右子树的先序遍历序列为③、④、⑤,因此③是根结点①的右孩子。依此类推,可知④是结点③的左孩子,⑤是结点③的右孩子。该二叉树如下图所示。从二叉树的遍历过程可知,从先序遍历序列和后序遍历序列中无法将左子树和右子树上的结点区分开,因此,由某棵二叉树的先序遍历序列和后序遍历序列不能构造出该二叉树的中序遍历序列。
层序遍历二叉树的方法:设二叉树的根结点所在层数为1,则层序遍历二叉树的操作定义为从树的根结点出发,首先访问第一层的结点(根结点),然后从左到右依次访问第二层上的结点,接着是第三层上的结点,依此类推,自上而下、自左至右逐层访问树中各层上的结点。
第 47 题
邻接矩阵和邻接表是图(网)的两种基本存储结构,对于具有n个顶点、e条边的图,( )。
- (A) 进行深度优先遍历运算所消耗的时间与采用哪一种存储结构无关
- (B) 进行广度优先遍历运算所消耗的时间与采用哪一种存储结构无关
- (C) 采用邻接表表示图时,查找所有顶点的邻接顶点的时间复杂度为O(n*e)
- (D) 采用邻接矩阵表示图时,查找所有顶点的邻接顶点的时间复杂度为O (n2)
答案与解析
- 试题难度:一般
- 知识点:数据结构与算法基础>图的遍历
- 试题答案:[[D]]
- 试题解析:
本题考查数据结构基础知识。
设某有向图和无向图如下所示。下面的矩阵A是该有向图的邻接矩阵,B为无向图的邻接矩阵。
上面有向图的邻接链表如下图所示。
图的遍历运算是按照某种策略访问图中的每一个顶点,实质上是通过边或弧找邻接点的过程,因此广度优先搜索遍历图和深度优先搜索遍历图的时间复杂度相同,其不同之处仅仅在于对顶点访问的次序不同。
第 48 题
单向链表中往往含有一个头结点,该结点不存储数据元素,一般令链表的头指针指向该结点,而该结点指针域的值为第一个元素结点的指针。以下关于单链表头结点的叙述中,错误的是( )。
- (A) 若在头结点中存入链表长度值,则求链表长度运算的时间复杂度为O(1)
- (B) 在链表的任何一个元素前后进行插入和删除操作可用一致的方式进行处理
- (C) 加入头结点后,代表链表的头指针不因为链表为空而改变
- (D) 加入头结点后,在链表中进行查找运算的时间复杂度为O(1)
答案与解析
- 试题难度:一般
- 知识点:数据结构与算法基础>顺序表与链表
- 试题答案:[[D]]
- 试题解析:
本题考查数据结构基础知识。
含有头结点的单链表如下图所示。在链表中加入头结点后,查找表中某一元素仍然要从头指针出发,顺序找到目标元素或失败时找到表尾为止,时间复杂度与表长成正比。
第 49 题
对于长度为m (m>1)的指定序列,通过初始为空的一个栈、一个队列后,错误的叙述是( )。
- (A) 若入栈和入队的序列相同,则出栈序列和出队序列可能相同
- (B) 若入栈和入队的序列相同,则出栈序列和出队序列可以互为逆序
- (C) 入队序列与出队序列关系为1:1,而入栈序列与出栈序列关系是1 :n(n≥1)
- (D) 入栈序列与出栈序列关系为1:1,而入队序列与出队序列关系是1 :n(n≥1)
答案与解析
- 试题难度:一般
- 知识点:数据结构与算法基础>队列与栈
- 试题答案:[[D]]
- 试题解析:
队列的特点是先进先出。对于队列,元素的进入次序和出队的次序相同,如,入队的序列为a、b、c,则出队的序列也为a、b、c。对于栈则不同,栈的运算特点是后进先出。若入栈序列为a、b、c,则出栈序列可能为a、b、c,a、c、b,b、a、c,b、c、a或者c、b、a,而c、a、b则不行,因此,入队序列与出队序列关系为1:1,而入栈序列与出栈序列关系为1:n (n≥1)。
第 50 题
字符串采用链表存储方式时,每个结点存储多个字符有助于提高存储密度。若采用结点大小相同的链表存储串,则串比较、求子串、串连接、串替换等串的基本运算中,( )。
- (A) 进行串的比较运算最不方便
- (B) 进行求子串运算最不方便
- (C) 进行串连接最不方便
- (D) 进行串替换最不方便
答案与解析
- 试题难度:一般
- 知识点:数据结构与算法基础>字符串
- 试题答案:[[D]]
- 试题解析:
本题考查数据结构基础知识。
在串比较、求子串、串连接、串替换运算中,除了串替换外,其他运算都不会改变串中的内容,因此,在链表存储方式下进行串替换最不方便。
第 51 题
某算法的时间复杂度表达式为T(n)=an2+bnlgn+cn+d,其中,n为问题的规模,a、b、c和d为常数,用O表示其渐近时间复杂度为( )。
- (A) O(n2)
- (B) O(n)
- (C) O(nlgn)
- (D) O(1)
答案与解析
- 试题难度:一般
- 知识点:数据结构与算法基础>时间复杂度与空间复杂度
- 试题答案:[[A]]
- 试题解析:
本题考查算法分析的基础知识。
在算法分析中,符号O用于表示算法运行时间的上限。从定义上说,对一个函g(n),O(g(n))表示函数集合:
{f(n):存在正常数c和n0,使得对所有的n≥n0,有0≤f(n)≤cg(n)}
根据上述定义,可以知道表达式T(n)=an2+bnlgn+cn+d在函数集合O(n2)中。对此问题,简单的做法是忽略n的低阶项和最高阶项n2的常系数,故答案应为O(n2)。
第 52 题
以下关于快速排序算法的描述中,错误的是( )。在快速排序过程中,需要设立基准元素并划分序列来进行排序。若序列由元素{12,25,30,45,52,67,85}构成,则初始排列为( )时,排序效率最高(令序列的第一个元素为基准元素)。
- (A) 快速排序算法是不稳定的排序算法
- (B) 快速排序算法在最坏情况下的时间复杂度为O(nlgn)
- (C) 快速排序算法是一种分治算法
- (D) 当输入数据基本有序时,快速排序算法具有最坏情况下的时间复杂度
- (A) 45,12,30,25,67,52,85
- (B) 85,67,52,45,30,25,12
- (C) 12,25,30,45,52,67,85
- (D) 45,12,25,30,85,67,52
答案与解析
- 试题难度:一般
- 知识点:数据结构与算法基础>排序
- 试题答案:[[B],[A]]
- 试题解析:
本题考查快速排序算法。
快速排序算法是一种经典的排序算法,其基本思想是选择一个基准元素(通常选择第一个元素或者最后一个元素),通过一趟排序将待排序序列分成两部分,一部分比基准元素小,一部分大于等于基准元素,此时基准元素在其排好序后的正确位置;然后再递归地排序划分的两部分,因此本质上快速排序是一种分治算法。由于在排序的过程中,各元素与基准元素比较大小,若小于基准元素则与基准元素交换位置,因此该算法是不稳定的排序算法。当每一趟排序进行后,选择的基准元素恰好最大或者最小时,就把序列分成极端不均衡的两部分,即一部分为空,另一部分为待排序序列的元素个数减1,此时算法处于最坏情况,其时间复杂度为O(n2)。当输入数据基本有序或者所有元素值相等时,不论选择第一个元素还是最后一个元素作为基准元素,都恰好把序列分成极端不均衡的两部分,快速排序算法具有最坏情况下的时间复杂度。
对于选项A,以45作为基准元素进行第一趟划分,先从后向前找出比45小的元素,67、52、85这三个元素保持不动,找到25,将其与45交换后,第一趟划分完成,序列为25,12,30,45,67,52,85。第二趟先对子序列25,12,30进行划分,使得25与12对调,形成子序列12,25,30;然后对67,52,85进行划分,使得67与52交换,形成子序列52,67,85。至此,整个排序过程完成。期间,第一趟划分中元素的比较次数为6次、交换1次,第二趟划分中元素的比较次数共4次、交换次数为2次,因此,排序过程中比较次数共10次,交换次数为3次。
对于选项B,以85作为基准元素,因12比它小,所以将85与12交换,由于剩下的元素都比85小,因此保持不动,第一趟划分之后的元素序列为12,67,52,45,30,25,85,期间元素比较次数为6次、交换1次,第二趟对85之前的6个元素进行划分,由于67、52、45、30、25都比基准元素12大,因此它们保持不动,完成第二趟划分,形成的子序列为12,67,52,45,30,25,期间比较次数为5、交换次数为0。接下来第三趟对子序列67,52,45,30,25进行划分,以67为基准元素,情况与第一趟相同,进行4次比较、l次交换后,形成子序列25,52,45,30,67。第四趟对子序列25,52,45,30进行划分,情况与第二趟相同。依此类推,完成排序时比较次数为21次(6+5+4+3+2+1)。
对于选项C,以12作为基准元素,因为后面的所有元素都比它大,所以所有元素是持不动,第一趟划分之后的元素序列为12,25,30,45,52,67,85,期间元素比较次数为6次、交换0次。第二趟对子序列25,30,45,52,67,85进行划分,以25作为基准元素,因为后面的所有元素都比它大,所以所有元素保持不动,第一趟划分之后的元素序列为25,30,45,52,67,85,期间元素比较次数为5次、交换0次。接下来对子序列30,45,52,67,85进行划分,同理,元素保持不动,期间元素比较次数为4次、交换0次。依此类推,完成整个排序比较次数为21次、交换0次。
对于选项D,以45作为基准元素进行第一趟划分,先从后向前找出比45小的元素,85、67、52这三个元素保持不动,找到30,将其与45交换后,第一趟划分完成,序列30,12,25,45,85,67,52,期间元素比较次数为6次、交换1次。第二趟先对子序列30,12,25进行划分,以30为基准元素,30与25交换,经过2次比较、1次交换后子序列为25,12,30,需要再次对子序列25,12进行划分;同理,对子序列85,67,52进行划分后,结果为51,67,87,还需对子序列51,67进行划分。排序过程中比较次数共12次。
第 53 题
下列网络互连设备中,属于物理层的是( ),属于网络层的是( )。
- (A) 中继器
- (B) 交换机
- (C) 路由器
- (D) 网桥
- (A) 中继器
- (B) 交换机
- (C) 路由器
- (D) 网桥
答案与解析
- 试题难度:一般
- 知识点:计算机网络>开放系统互连参考模型
- 试题答案:[[A],[C]]
- 试题解析:
中继器是物理层设备,其作用是对接收的信号进行再生放大,以延长传输的距离。网桥是数据链路层设备,可以识别MAC地址,进行帧转发。交换机是由硬件构成的多端口网桥,也是一种数据链路层设备。路由器是网络层设备,可以识别IP地址,进行数据包的转发。
第 54 题
下图是HTML文件test.html在IE中的显示效果,实现图中①处效果的HTML语句是( ),实现图中②处效果的HTML语句是( ),实现图中③处效果的HTML语句是( )。
- (A) <TITLE>我的主页</TITLE>
- (B) <HEAD>我的主页</HEAD>
- (C) <BODY>我的主页</BODY>
- (D) <HI>我的主页</ HI >
- (A) <HR>
- (B) <LINE></LINE>
- (C) <CELL></CELL>
- (D) <TR></TR>
- (A) <B>Welcome</B>
- (B) <UL>Welcome</UL>
- (C) <I>Welcome</I>
- (D) <H>Welcome</H>
答案与解析
- 试题难度:一般
- 知识点:计算机网络>HTML语言
- 试题答案:[[A],[A],[C]]
- 试题解析:
第 55 题
Why is( )fun? What delights may its practitiopect as his reward? First is the sheer joy of making things. As the child delights in his mud pie, so the adult enjoys building things, especially things of his own design. Second is the pleasure of making things that are useful to other people. Third is the fascination of fashioning complex puzzle-like objects of interlocking moving parts and watching them work in subtle cycles, playing out the consequences of principles built in from the beginning. Fourth is the joy of always learning, which springs from the( )nature of the task. In one way or another the problem is ever new, and its solver learns something:sometimes( ), sometimes theoretical, and sometimes both. Finally, there is the delight of working in such a tractable medium. The( ), like the poet, works only slightly removed from pure thought-stuff. Few media of creation are so flexible, so easy to polish and rework, so readily capable of realizing grand conceptual structures.
Yet the program( ), unlike the poet’s words, is real in the sense that it moves and works, producing visible outputs separate from the construct itself. It prints results, draws pictures, produces sounds, moves arms.Programming then is fun because it gratifies creative longings built deep within us and delights sensibilities we have in common with all men.
- (A) programming
- (B) composing
- (C) working
- (D) writing
- (A) repeating
- (B) basic
- (C) non-repeating
- (D) advance
- (A) semantic
- (B) practical
- (C) lexical
- (D) syntactical
- (A) poet
- (B) architect
- (C) doctor
- (D) programmer
- (A) construct
- (B) code
- (C) size
- (D) scale
答案与解析
- 试题难度:一般
- 知识点:专业英语>专业英语
- 试题答案:[[A],[C],[B],[D],[A]]
- 试题解析:
编程为什么有趣?作为回报,其从业者期望得到什么样的快乐?首先是一种创建事物的纯粹快乐。如同小孩在玩泥巴时感到愉快一样,成年人喜欢创建事物,特别是自己进行设计。其次,快乐来自于开发对其他人有用的东西。第三是整个过程体现出魔术般的力量——将相互啮合的零部件组装在一起,看到它们精妙地运行,得到预先所希望的结果。第四是学习的乐趣,来自于这项工作的非重复特性。人们所面临的问题,在某个或其他方面总有些不同,因而解决问题的人可以从中学习新的事物:有时是实践上的,有时是理论上的,或者兼而有之。最后,乐趣还来自于工作在如此易于驾驭的介质上。程序员就像诗人一样,几乎仅仅工作在单纯的思考中,凭空地运用自己的想象来建造自己的“城堡”。很少有这样的介质——创造的方式如此灵活,如此易于精炼和重建,如此容易地实现概念上的设想。
然而程序毕竟同诗歌不同,它是实实在在的东西;可以移动和运行,能独立产生可见的输出;能打印结果,绘制图形,发出声音,移动支架。编程非常有趣,在于它不仅满足了我们内心深处进行创造的渴望,而且还愉悦了每个人内在的情感。