购买
下载掌阅APP,畅读海量书库
立即打开
畅读海量书库
扫码下载掌阅APP

模拟试卷一试题分析

上午试题分析

试题 1~3 分析

本题考查在Windows操作系统中的一些常规操作。

在Windows中要查看文件类型的扩展名的步骤是:“工具”→“文件夹选项”→“查看”,然后在这个界面里设置是否要显示已知文件类型的扩展名即可。

删除U盘中的文件时,不同于硬盘,按Delete键删除时,文件不进入回收站,直接被删除了。在硬盘上要直接删除文件而不让文件进入回收站的方法是按Shift+Delete组合键或者右击“回收站”,在属性窗口的“全局”选项卡中勾选“删除时不将文件移入回收站,而是彻底删除”复选框,最后确定,这样也可以直接删除文件。

试题 4 分析

本题考查我们对微型计算机结构的了解。

个人计算机是微机的一种,在我们日常接触的个人计算机中,决定运算速度快慢的是处理器的时钟频率,而运算速度与每秒钟执行程序个数和启动速度没有什么关系。内存访问速度影响的是整个程序的运行速度,不能表示运算速度快慢。

试题 5 分析

本题考查计算机中数制的转化,是程序员考试中常见的一种题型。

十进制数转换成二进制数,一般分成两部分,即整数部分和小数部分。对于整数部分,十进制整数转换成二进制数,最常用的是“除以 2 取余法”。首先将十进制数 29 转换为二进制数:

将所得的余数从低位到高位排列,11101 就是 29 的二进制数。由此我们可以知道本题答案是C。

十进制小数转换为二进制小数的过程是乘 2 取进位。例如,将十进制小数 0.43 转换成二进制小数的过程如下:

假设小数点后取 5 位,那么转化的结果为 0.01101。而题目中的小数部分经过 3 次乘2 后已经变成了 0,转化结果为 0.101。

试题 6~7 分析

本题考查用高级语言编写的程序在计算机中运行的过程。

高级语言是计算机语言上的一个飞跃。高级语言相对于汇编语言而言,非常容易理解,使用的是日常逻辑的关键字,程序员在使用高级语言的时候,不必考虑寄存器、堆栈等和计算机中央处理器直接相关的硬件特性,可以专注于软件的逻辑功能实现。典型的高级语言包括:C、BASIC、Fortran、Pascal、COBOL、LIST、PROLOG等。

用高级语言编写的程序在计算机中运行时,首先被编译成目标程序,然后再解释成能被计算机运行的机器指令代码,再由计算机具体执行。其代码对应的改变是从源程序变到目标程序,再到机器指令代码。

试题 8~9 分析

本题考查指令的结构和执行的一些相关知识。

通常一条指令分为操作码和地址码两部分,前半部分的操作码确定指令的类型,后面的地址码确定指令所要处理的数据,根据地址码的个数可以有四址指令、三址指令,甚至是 0 址指令。

指令译码器:将操作码解码,告诉中央处理器该做什么。

指令寄存器:中央处理器即将执行的操作码表在这里。

程序计数器:存放的是下一条指令的地址。由于多数情况下程序是顺序执行的,所以程序计数器设计成能自动加 1 的装置。当出现转移指令时,就需重填程序计数器。

状态寄存器:是用来标识协处理器中指令执行情况的,它相当于CPU中的标志位寄存器。

试题 10~11 分析

计算机的用途不同,对其不同部件的性能指标要求也有所不同。用作科学计算为主的计算机,其对主机的运算速度要求很高;用作大型数据库处理为主的计算机,其对主机的内存容量、存取速度和外存储器的读写速度要求较高;对于用作网络传输的计算机,则要求有很高的I/O速度,因此应当有高速的I/O总线和相应的I/O接口。

计算机的运算速度常用每秒钟执行的指令数来衡量,单位为每秒百万条指令(MIPS)或者每秒百万条浮点指令(MFPOPS)。影响运算速度的主要因素有如下几个。

(1)CPU的主频。指计算机的时钟频率。它在很大程度上决定了计算机的运算速度。例如,Intel公司的CPU主频最高已达 3.20GHz以上,AMD公司的可达400MHz以上。

(2)字长。GPU进行运算和数据处理的最基本、最有效的信息位长度。PC的字长已由 8088 的准 16 位(运算用 16 位,I/O用 8 位)发展到现在的 32 位、64 位。

(3)指令系统的合理性。每种机器都设计了一套指令,一般均有数十条到上百条,例如,加、浮点加、逻辑与、跳转等,组成了指令系统。

试题 12~14 分析

本题考查操作系统的分类及各类操作系统的工作模式。

操作系统是用户与计算机之间的接口,根据参与操作用户数的不同,操作系统可以分为单用户和多用户操作系统;根据处理任务数的不同,又可以划分为单任务和多任务处理操作系统。

PC-DOS是个人计算机版的DOS操作系统,是单用户单任务的操作系统。

Windows是微软为个人计算机开发的一种多任务的操作系统。

Linux是多用户多任务操作系统。

客户机/服务器模式的网络操作系统的基本特点是服务器以用户进程的形式运行而不是运行于核心态,它们不直接访问硬件,单个服务器的崩溃不会导致整个系统的崩溃。

在第 14 题的选项中,只有Windows 2003 Server是在体系结构上采用了客户机/服务器模式的网络操作系统。

试题 15 分析

本题考查计算机系统校验码的基础知识。

数据在计算机系统中进行输入、存储时,可能产生错误,因此发明了各种校验检错方法,并依据这些方法设置了校验码。

凡设有校验码的代码,由本体码与校验码两部分组成(如组织机构代码),本体码是表示编码对象的号码;校验码则附加在本体码后边,用来校验本体码在输入过程中的准确性。每一个本体码只能有一个校验码,校验码通过规定的数学关系得到。

奇偶校验码是奇校验码和偶校验码的统称,是一种最基本的检错码。在传送字符的各位之外,再传送1位奇/偶校验位。奇校验要求传送的数位(含字符的各数位和校验位)中,“1”的个数为奇数,偶校验要求“l”的个数为偶数。奇偶校验能够检测出信息传输过程中的部分误码(1 位误码能检出,2 位及 2 位以上误码不能检出),同时,它不能纠错。在发现错误后,只能要求重发。但由于其实现简单,仍得到了广泛使用。

循环冗余校验码(CRC)由两部分组成,前一部分是信息码,就是需要校验的信息;后一部分是校验码。如果CRC码共长n位,信息码长k位,就称为(n,k)码。它的编码规则是:首先将原信息码(k位)左移r位(k+r=n),运用一个生成多项式g(x)(也可看成二进制数)模 2 除以上面的式子,得到的余数就是校验码。CRC码是检错码,也就是只能检查出错误而不能自动纠正。

海明校验码是由Richard Hamming于 1950 年提出、目前还被广泛采用的一种很有效的校验方法,只要增加少数几个校验位,就能检测出二位同时出错、也能检测出一位出错并能自动恢复该出错位的正确值,后者被称为自动纠错。其实现原理是在k个数据位之外加上r个校验位,从而形成一个k+r位的新的码字,使新码字的码距比较均匀地拉大。把数据的每一个二进制位分配在几个不同的偶校验位的组合中,当某一位出错后,就会引起相关的几个校验位的值发生变化,这不但可以发现出错,还能指出是哪一位出错,为进一步自动纠错提供了依据。

试题 16 分析

本题考查程序语言基础知识。

变量是程序语言中的一个重要概念,具有类型、存储地址、作用域和生存期等属性。变量的作用域是指一个范围,是从代码空间的角度考虑问题,它决定了变量的可见性,说明变量在程序的哪个区域可用,即程序中哪些行代码可以使用变量。作用域有 3 种:局部作用域、全局作用域和文件作用域,相对应于局部变量(local variable)、全局变量和静态变量(global variable)。在变量的作用域中,可以合法地引用它,设置它的值,或在表达式中使用它;在变量的作用域之外,就不能引用它的名称,这么做会导致一个编译错误。

在程序执行时,所有的变量都有有限的生存期。它们从被声明的那一刻起存在,并在某一刻消失,最迟也要在程序终止时消失。变量生存多长时间取决于属性“存储持续时间”。函数中定义的变量(局部变量)一般在函数被执行时由系统自动在栈区分配存储空间,当函数执行结束时自动撤销其存储空间,这称为变量具有自动的存储持续时间。对于全局变量,其生存期一般从程序运行开始,至程序运行结束,称为变量具有静态的存储持续时间。还有一些变量,其存储空间由程序员根据需要申请或释放,称为具有动态的存储持续时间。

试题 17 分析

本题考查程序语言基础知识。

传统程序设计语言主要是为了构造自足的应用系统,即能接受某种输入、按某种可以理解的方式操作这些输入并产生出适当输出的系统。例如,C/C++、Java等是典型的传统程序设计语言。

在Java、C或其他常规语言里写各种协作代码,倾向于强调效率、可维护性、可移植性,以及静态的错误检查。它们的类型系统通常是围绕着一些硬件的概念构造起来的,如固定大小的整数、浮点数、字符和数组。与此相反,脚本语言倾向于强调灵活性、快速开发、局部用户定制以及动态(运行时)检查。

现代脚本语言的前身主要来自命令解释器或传统批处理和“终端”(命令行)计算的外壳语言,例如IBM的JCL、MS-DOS的command解释器,UNIX的sh和csh外壳族,IBM的RPG,以及UNIX的sedb>和awkb>等。从这些应用中演化出的Rexx,即IBM的“重构的可扩充执行器”,时间可以追溯到 1979 年;还有Perl,由Larry Wall于 24 世纪 80 年代后期开始设计,现在已成为使用最广泛的通用脚本语言。其他通用的脚本语言包括TCL(tickle),Python、Ruby、VBScript(用于Windows)和AppleScript(用于Mac)。

虽然很难精确地定义脚本语言,但它们还是有一些大致的公共特征,如同时支持批处理和交互式使用、经济的表达式、以解释方式运行等。脚本语言与编程语言也有很多相似的地方,其函数与编程语言比较相像一些,其也涉及变量。

试题 18 分析

本题考查数据库系统和文件系统的区别。

数据库系统和文件系统都可以对数据进行保存和操作。但与文件系统相比,数据库技术具有以下特点。

(1)采用复杂的数据模型表示数据结构,数据冗余小,易扩充,实现了数据共享。

(2)具有较高的数据和程序独立性,数据库的独立性有物理独立性和逻辑独立性。

(3)数据库系统为用户提供了方便的用户接口。

(4)数据库系统提供 4 个方面的数据控制功能,分别是并发控制、恢复、完整性和安全性。数据库中各个应用程序所使用的数据由数据库系统统一规定,按照一定的数据模型组织和建立,由系统统一管理和集中控制。

试题 19 分析

本题考查SQL语言的定义和基本特征。

SQL语言是标准化数据库查询语言,集数据定义语言、数据操纵语言、数据控制语言的功能于一体,语言风格统一。SQL语言采用了集合的操作方式,简单易用。

试题 20 分析

本题考查数据库中的关系运算。

关系演算运算是以数理逻辑中的谓词演算为基础,用公式表示关系运算的条件。关系演算按所用到的变量不同,可以分为元组关系演算和域关系演算。题目中给出的是元组关系演算。根据题目给出的演算R,我们很容易可以求得结果为C。

试题 21 分析

本题考查我国《商标法》中有关保护注册商标的相关规定。

商标法主要是保护注册商标,注册商标是指经国家主管机关核准注册而使用的商标,注册人依法对其注册商标享有专用权(商标权)。

在我国,商标权的取得实行的是注册原则,即商标所有人只有依法将自己的商标注册后,商标注册人才能取得商标权,其商标才能得到法律的保护。未注册商标是指未经核准注册而自行使用的商标人不享有法律赋予的专用权。

商标权不包括商标设计人的权利,注重商标所有人的权利,商标设计人的发表权、署名权等人身权在商标的使用中没有反映,它不受商标法保护,商标设计人可以通过其他法律来保护属于自己的权利。例如,可以将商标设计图案作为美术作品通过著作权法来保护,与产品外观关系密切的商标图案还可以申请外观设计专利,通过专利法保护。

试题 22 分析

本题考查《计算机软件保护条例》中关于软件合法复制品的一些相关规定。

《计算机软件保护条例》是我国计算机软件保护的法律依据,它的保护客体是计算机软件。它保护的计算机软件是由开发者独立开发的,并且已经固定在某种有形物体上的。我们在合法使用软件时,可以根据具体的需要对软件进行安装、备份、修改,但是不能将软件的复制品转给别人使用。

试题 23 分析

本题考查频分全双工的概念与作用。

FDD是现代通信中的一种常用技术,其基本特点是在分离的两个对称频率信道上,系统进行接收和传送,用保证频段(保证频段带宽为 190MHz)。允许双向同时传送数据,支持全双工技术。

试题 24 分析

本题考查采用公钥加密和解密的基本知识。

在加密体系中有公钥加密和私钥加密两种。公钥加密体制又称不对称密码体制,其加密和解密使用不同的密钥,其中一个密钥是公开的,另一个密钥则是保密的。如果发送方用接收方的公钥加密报文,则接收方只能用自己的私钥才能对报文进行解密。

试题 25 分析

本题考查网络子网的划分。

对网络进行子网划分一般常用两种方法,一种是按照子网的个数来划分,另一种则是按照每个子网中主机的台数来划分。在做本题时,用第二种方法来分析。由于每个子网上最多配备27台主机,这就要求我们至少要留5位主机号,因此,除了5位主机号以外的全是网络号。而子网掩码则是用来为计算IP地址中的网络号部分和主机号部分提供依据的,它与IP地址是一一对应的,IP地址中的网络号部分对应的子网掩码为1,主机号部分对应的子网掩码为0,因此,该单位使用的子网掩码是255.255.255.224。

试题 26 分析

本题考查FTP协议。

FTP(文件传输协议)允许在Internet上传输任意文件,并且允许文件具有所有权与访问权限。FTP是网络上最常见的文件传输协议,在进行文件传输时,FTP使用两个并行的TCP连接来传送文件,一个是控制连接用来传送控制信号,另一个是数据连接用来传送数据。其中控制连接用的是 21 号端口,而数据连接用的是 20 号端口。

试题 27 分析

本题考查面向对象中多态的基本概念。

面向对象中多态是指一个名字有多个含义,函数重载和函数覆盖都是多态的表现,不论是重载或是覆盖,都代表了一个方法名可以对应多个方法体,在编译或是运行时再决定究竟调用该方法的哪一个方法体。

试题 28 分析

本题考查面向对象中类的基本概念。

面向对象中最重要的概念就是类,它是面向对象方法中最基本的封装单元,决定了现实世界中实体的数据和方法,以及数据和方法是否对外界暴露。

试题 29 分析

本题考查测试过程的内容。

测试是软件开发过程中一个独立且非常重要的阶段,一个规范化的测试过程通常包括如下基本的测试活动:拟定测试计划、编制测试大纲、生成测试用例、实施测试和生成测试报告。拟定测试计划的内容主要有测试的内容、进度安排、测试所需的环境和条件、测试培训安排等。

试题 30 分析

本题考查树的基本结构及度的概念。

度是指一个结点拥有子结点的个数,其中叶子结点的度为 0。由题意我们知道,树中除叶子结点外的总结点数是n 1 + n 2 +…+n k ,而度的总数是n 1 ×1+ n 2 ×2+…+n k ×k个,在树中根结点是没有父结点的,因此,叶子结点的数应该为度的总数-总结点数+1=

试题 31 分析

本题考查数组在计算机存储器中的存储。

题目中给出了二维数组A 6 × 8 ,其中每个元素用相邻的 6 字节存储,这说明数组A是一个 6 行 8 列的二维数组,且每个元素占相邻的 6 字节。那么数组总共要占 6×8×6=288字节。a 13 是数组中的第 13 个元素,在存储它以前已有 12 个元素从起始存储位置按行存储了,12 个元素占 12×6=72 字节。因此,元素a 13 的第一个字节的地址应该为1000+72=1072。

另外,解答此类试题,要看清楚试题的要求,数组的起始是从 0 开始还是从 1 开始。在本题中,没有明确这个问题,我们假设是从 1 开始,即数组的第 1 个元素是A[1][1]。

试题 32 分析

本题考查二叉树的遍历和二叉树的一些性质。

二叉树是一个结点最多只有两个儿子结点的树,二叉树遍历有 3 种形式。

(1)前序遍历:首先访问根结点,然后按前序遍历根结点的左子树,再按前序遍历根结点的右子树。

(2)中序遍历:首先按中序遍历根结点的左子树,然后访问根结点,再按中序遍历根结点的右子树。

(3)后序遍历:首先按后序遍历根结点的左子树,然后按后序遍历根结点的右子树,再访问根结点。

要解答本题,需要一些技巧,我们从后序序列中可以看到A是最后一个,可以确定A是整个二叉树的根结点。再从中序序列CDBEAGHFK可以知道,CDBE是根A的左子树中的结点,而GHFK是根A的右子树中的结点。现在我们来分析左子树中的情况,同样由后序序列DCEB中可以看出B是左子树的根结点,由中序序列CDBE可以看出E是B的右子树的结点。同理,我们可以分析出整个二叉树的结点分布。此二叉树前序遍历的结果为ABCDEFGHK。

试题 33 分析

本题考查有向图的拓扑序列结构。

在有向图中,拓扑序列是通过拓扑排序后得到的所有结点的序列,拓扑排序是指由某个集合上的一个偏序得到该集合上的一个全序。例如,一个软件专业的学生要修课,但有些是基础课,它独立于其他课程,而有些课程必须要在修完某些专业课后才能修,这样各课程之间就形成了一种并立与优先的关系,有向图和它的拓扑序列可以表示这样的关系。

对有向图进行拓扑排序的方法是:

(1)在有向图中任选一个没有前驱的结点且输出。

(2)从图中删除该结点和所有以它为尾的弧。

重复上述两步,直到全部顶点均已输出,或当前图中不存在无前驱的结点为止。

根据上述的说明我们可以知道,有向图的拓扑序列可能有一个或多个,但在有向图中出现有向环时,因为环意味着某项活动应该以自己为先决条件,在拓扑排序时,环中的结点是不能被排在序列中的,因此,不存在此有向图的拓扑序列。所以,对任意一个有向图而言,其拓扑序列可能不存在,也可能有一个或多个。

试题 34 分析

本题考查数据结构中的查找哈希表问题。

哈希表的目的是建立希望不经过任何比较,一次存取便能取得所查的记录。在哈希表存储时,一般是通过在记录的存储位置和它的关键字之间建立一个确定的对应关系,使得每个关键字和结构中的一个唯一的存储位置对应,而这个对应关系就是哈希函数。

所谓的哈希冲突是指对不同的关键字可能得到同一哈希地址。为了不发生哈希冲突,构造哈希函数的方法应该选直接地址法,此方法是取关键字的某个线性函数值作为直接地址。

试题 35 分析

本题考查二叉排序树的查找。

二叉排序树又称二叉查找树,其定义为:二叉排序树或者是一棵空树,或者是具有如下性质(BST性质)的二叉树。

(1)若它的左子树非空,则左子树上所有结点的值均小于根结点。

(2)若它的右子树非空,则右子树上所有结点的值均大于根结点。

(3)左、右子树本身又各是一棵二叉排序树。

在做该题时,首先将表中的 9 个元素放进二叉树中构成二叉排序树,在构造二叉排序树时,我们将表中的元素依次按照构造二叉排序树的规则往树中添加元素,在获得二叉排序树后,计算平均长度就变得简单了,为(1+2+2+3+3+4+5+5+6)/9=31/9。

试题 36 分析

本题考查数组和指针的具体应用。

数组是高级程序语言中常用的一种数据结构。数组有上界和下界,数组的元素在上下界内是连续的。数组名一般对应数组在存储器中的起始地址。

在题目给出的代码中,我们可以看到,声明了一个名为x的数组和一个指针变量ptr,并把数组的首地址赋给了指针变量ptr。要取数组中的第k个元素可以用x[k]、*(x+k)或*(ptr+k);要取数组中第k个元素的地址则用&ptr[k]

试题 37 分析

本题考查对数组元素的相关操作。

题目中给出的是一个二维数组x[3][4],数组名为x,取数组第一行第一列元素的几种方法分别是*(x[1]+1)、x[1][1]、*(*(x+1)+1)、*(x+1)[1]等。

试题 38 分析

本题考查CPU程序与通道的协调执行过程。

通道又称输入/输出处理器,是外围设备和内存之间的常用数据传送控制方式之一。通道与CPU程序并行执行时,它们是通过I/O指令和I/O中断来实现彼此间的通信和同步的。

试题 39 分析

本题考查Cache的概念、作用和特点。

Cache即高速缓冲存储器,具有容量小、速度快的特点。

Cache的作用是为了提高CPU数据输入/输出的速率,解决内存与CPU处理速度不协调问题。一般用于内存和CPU之间。它利用的是程序的局部性原理,将存放在内存中的作业的一部分副本存放在其中。

试题 40 分析

本题考查传送数据的控制方式。

数据在传送时,一般采用同步传输方式或异步传输方式。同步传输是指发送方和接收方的时钟是统一的,字符与字符间的传输是同步无间隔的。而异步传输方式不要求发送方和接收方的时钟完全一样,字符与字符间的传输是异步的。这两种传输方式现在都广泛应用于现代通信中,对于它们的选取与设备速度没有关系。

试题 41 分析

本题考查RISC指令系统和CISC指令系统的特点。

RISC(精简指令集计算机)与CISC(复杂指令集计算机)相比具有以下优点:指令简单、采用硬布线控制逻辑、处理能力强、速度快。在设计RISC时,就已经引领了微处理器设计的一个更深层次的思索,即设计中必须考虑到:指令应该如何较好地映射到微处理器的时钟速度上(在理想情况下,一条指令应在一个时钟周期内执行完)。因此,RISC指令的平均执行时间要比CISC短,这也是RISC执行程序的速度比CISC快的真正原因。

试题 42 分析

本题考查对程序设计语言的了解。

第一个完整、健全的面向对象程序设计的语言是Smalltalk,随后才有C++等其他面向对象程序设计的语言。

试题 43 分析

本题考查面向对象程序设计的基础知识。

OOP是面向对象程序设计的英文简写,其设计的基本原则是计算机程序由单个能够起到子程序作用的单元或对象组合而成。为了实现整体运算,对象必须具有交互能力,即每个对象都能够接收信息和向其他对象发送信息,这正好是面向对象程序设计中消息传递模型所描述的内容。

试题 44 分析

本题考查C++语言的一些相关知识。

要做本题,首先我们应该了解选项中这些函数的概念和作用。

虚函数的作用是允许在派生类中重新定义与基类同名的函数,并且可以通过基类指针或引用来访问基类和派生类中的同名函数。

对于内联函数,系统直接将函数体嵌入在发生内联函数的调用处,而不需要通过控制转移执行函数,这样节省了系统的开销和运行时间,但增加了系统空间方面的开销。

构造函数是类中特殊的成员函数,它的作用是用来创建对象和初始化对象。

试题 45 分析

本题考查程序的基本结构。

程序的3种基本结构是顺序、选择和循环。顺序结构要求程序从前到后有次序地执行;选择结构也称分支结构,根据条件判断的结果来决定执行不同的程序段;循环结构是只要条件满足,就反复执行。

试题 46 分析

本题考查白盒测试方法。

白盒测试又称结构测试。它的前提是可以把程序看成装在一个透明的白盒子里,测试者完全知道程序的结构和处理算法。这种方法按照程序内部逻辑设计测试用例,常用的技术是逻辑覆盖,即考察用测试数据运行被测程序时对程序逻辑的覆盖程度。主要的覆盖标准有 6 种:语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、组合条件覆盖和路径覆盖。

试题 47 分析

本题考查栈的基本特点和操作。

栈是一种特殊的线性表,栈只允许在同一端进行插入和删除运算。允许插入和删除的一端称为栈顶,另一端称为栈底。栈的结点插入为进栈,结点删除为出栈。栈具有后进先出的特征。

A选项可以实现,就是一个元素进栈后立即出栈。而B选项中前面三个可以先进(1,2,3)再出(3,2,1),产生序列 3,2,1,接下来是 6 出栈,4 和 5 肯定已经在栈内了,那么出栈的顺序应该是先 5 后 4,因此,这项有错,是不可能的出栈序列。

试题 48 分析

本题考查类和对象的基本概念。

类是对象的模板,类定义了对象共有的属性和方法。类也可以看做是一组对象共有特性的集合,即一个类中的对象拥有相同的属性和方法,一般而言,从一个类可以产生多个对象。

试题 49 分析

本题考查流媒体技术。

(1)流媒体技术就是把连续的影像和声音信息经过压缩处理之后放到专用的服务器上,让浏览者一边下载一边观看、收听,而不需要等到整个文件下载完成。

(2)超文本是用超链接的方法,将各种不同空间的文字信息组织在一起的网状文本。

(3)超媒体是超文本和多媒体在信息浏览环境下的结合。

(4)平面媒体是报纸、杂志等传统媒体的统称。

试题 50 分析

本题考查软件质量的基础知识。

ISO/IEC 9126 软件质量模型由 3 个层次组成:第 1 层是质量特性,第 2 层是质量子特性,第 3 层是度量指标。每个质量特性和质量子特性有其各自的含义。可移植性质量特性是与软件可从某一环境转移到另一环境的能力有关的一组属性。其中包括与软件适应不同规定环境的处理或手段有关的软件属性,即适应性。

试题 51 分析

本题考查数据压缩技术。

无损压缩也称冗余压缩或熵编码,是去掉或减少了数据中的冗余,但这些冗余值是可以重新插入到数据中的,因此,这种压缩是可逆的,也称无失真压缩。属于无损压缩的方法有RL编码、DM编码和Huffman编码等。

有损压缩也称熵压缩,它压缩了熵,减少了信息量,因为熵定义为平均信息量,而损失的信息是不能再恢复的,因此这种压缩法是不可逆的。有损压缩广泛应用于语音、图像和视频数据的压缩。矢量编码是有损压缩的一种。

试题 52 分析

本题考查语音信号的采集。

对语音信号的采集,一般是在声道中量化每秒采样到的信号。在题目中,已经告诉我们,采样频率为 50kHz,量化精度为 8 位,且是双声道,根据数字音频数据量计算公式,数据传输率=采样频率×量化位数×声道数,数字化音频数据量=数据传输率×持续时间/8(单位由b转换为B需除以 8),可以计算出数据传输率=50kHz×8b×2=800kbps,因此每秒可得到的数字音频数据量是 800kb/s×1000s×1/8=100000B=100kB,因此,2 小时的数字音频数据量是 100kB×7200=720MB。

试题 53 分析

本题考查软件过程基础知识。

XP(极限编程)是一种轻量级(敏捷)、高效、低风险、柔性、可预测的、科学的软件开发方式。它由价值观、原则、实践和行为 4 个部分组成,彼此相互依赖、关联,并通过行为贯穿于整个生存周期。其四大价值观包括沟通、简单、反馈和勇气。

试题 54~55 分析

本题考查文件保护和实时操作系统的相关内容。

为防止系统故障对系统内文件造成损坏,最常用的方法是在其他存储设备上备份文件。

实时操作系统是一种对时间要求特别高的操作系统,要求系统能对事件及时做出反应。因此,在设计实时操作系统时,必须首先考虑的是系统的响应速度要快。

试题 56 分析

本题考查防火墙的构成、发展和功能。

防火墙是位于两个(或多个)网络间、实施网络间访问控制的一组组件的集合,它是一套建立在内外网络边界上的过滤封锁机制。设置防火墙的目的是保护内部不受来自Internet的攻击,通常内部网络被认为是安全和可信赖的,而外部网络被认为是不安全和不可信赖的。

防火墙的产品主要有两大类:一类是网络级防火墙(过滤型防火墙),另一类是应用级防火墙(应用网关型防火墙),而状态检测防火墙是动态包过滤防火墙。

防火墙的功能有:过滤掉不安全服务和非法用户,控制对特殊站点的访问,提供了监视Internet安全和预警的方便端点。

试题 57 分析

本题考查集中式数据库与分布式数据库的区别。

集中式数据库把数据集中在一个数据库中进行集中管理,减少了数据冗余和不一致性,但随着数据量的增加,系统相当庞大,开销大,且操作都要通过主机,造成拥挤。

分布式数据库很好地解决了集中式数据库的不足,它把数据从物理上分布在各个场地,只保持逻辑上的整体性,每个场地可以执行局部应用,也可以执行全局应用,各地的计算机由数据通信网络相连接。

若干集中式数据库的简单连网是不能支持全局应用的,因为它们不属于同一个数据库系统。

试题 58 分析

本题考查类中函数声明的方法。

由题目中的代码我们可以看到,在函数Set()里面有一个形参a,其类型是Sample,符号&表示参数a是一个引用,因此,Sample &a就表示a是类Sample的对象引用。

试题 59 分析

本题考查网络的拓扑结构。

常见的网络拓扑结构有以下几种。

(1)总线状拓扑结构:是指在这种拓扑结构中所有的计算机用电缆将整个网络从头串到尾。

(2)星状拓扑结构:是由中央结点和通过点到点链路接到中央结点的各站点组成的。

(3)环状拓扑结构:其所有站点被绕成一圈(整条电缆并没有头尾之分)的电缆所连接起来,整个结构看起来像是一个圆圈。

(4)树状拓扑结构:顾名思义,是指结构和数据结构中的树一样。

试题 60 分析

本题考查网络设备的功能和作用。

(1)网桥用于连接网络分支,其工作在数据链路层,是扩展网络物理范围的设备之一。

(2)交换机的名称源于交换技术,它是一种针对集线器的不足应运而生的,它一般工作在数据链路层,是局域网中最常用的设备。现在,出现了第三层交换机,工作在网络层,它可以完成普通路由器的部分或全部功能。

(3)路由器是Internet中的核心设备,能识别数据的目的地地址所在的网络,并能从多条路径中选择最佳的路径发送数据,工作在网络层,不仅能连接同种网络,还可以连接不同类型的网络,同时又具备了网桥扩展网络范围的功能。路由器能划分子网,有效避免广播风暴。

(4)网关又称网间连接器、协议转换器。网关在传输层上实现网络互连,是最复杂的网络互连设备。

试题 61 分析

本题考查软件开发模型的相关知识。

在众多的软件开发模型中,瀑布模型的优点是强迫开发人员采用规范的方法并严格规定了各阶段必须提交的文档。其缺点是缺乏灵活性;演化模型是一种原型化开发方法,其开发过程是从初始模型逐步演化为最终软件产品的渐进过程;螺旋模型综合了瀑布模型和演化模型的优点,还增加了风险分析;喷泉模型主要用于描述面向对象的开发过程,“喷泉”一词体现了面向对象开发过程的迭代和无间隙特征。

试题 62 分析

本题考查软件工程学的目的。

软件工程方法学是指在软件生命周期全过程中使用的一整套技术方法的集合,主要包含 3 个要素:方法、工具和过程。在开发软件的过程中,引入软件工程学的目的是希望能使软件生产的过程规范化和工程化。

试题 63~64 分析

本题考查完全二叉树的结构和性质。

如果深度为k,有n个结点的二叉树中的结点能够与深度为k的顺序编号的满二叉树从 1 到n标号的结点相对应,则称这样的二叉树为完全二叉树。在一棵完全二叉树中,所有的叶子结点都出现在第k层或k–1 层,且一棵n层的完全二叉树的前n–1 层是一棵满二叉树。

8 层完全二叉树的前 7 层是一棵满二叉树,由深度为k的二叉树至多有 2 k –1 个结点可知,结点数为 128–1=127 个,但第 8 层至少有一个叶子结点,因此,8 层完全二叉树至少有 128 个结点。同理,可以求得拥有 100 个结点的完全二叉树的最大层数为 7。

试题 65 分析

本题考查数据库系统的三级模式中子模式的理解。

在数据库系统的三级模式中,外模式是用户与数据库的接口之一,是数据库用户(包括程序员和最终用户)能够看见和使用的局部数据的逻辑结构和特征的描述,是数据库用户的数据视图,是与某一应用有关的数据的逻辑表示。

试题 66 分析

本题考查对虚拟设备的理解。

虚拟设备是指把一个物理设备变换成多个对应的逻辑设备,可供多个程序同时访问使用的计算机设备。

试题 67 分析

本题考查关系演算语言的概念和性质。

关系演算语言与关系代数语言都是一种关系查询语言。其中关系演算语言的查询操作是以谓词演算为基础的运算,而关系代数语言的查询操作是以集合操作为基础的运算。关系查询语言是一种非过程性的语言。

试题 68 分析

本题考查DMA方式的特点。

在计算机中,实现计算机与外部设备之间数据交换经常使用的方式有无条件传送、程序查询、中断和直接存储器存取(DMA)。其中前三种都是通过CPU执行某一段程序,实现计算机内存与外设间的数据交换。只有DMA方式下,CPU交出计算机系统总线的控制权,不参与内存与外设间的数据交换。而DMA方式工作时,是在DMA控制硬件的控制下,实现内存与外设间数据的直接传送,并不需要CPU参与工作。

由于DMA方式是在DMA控制器硬件的控制下实现数据的传送,不需要CPU执行程序,故这种方式传送的速度最快。

试题 69 分析

本题考查MP3 的概念。

MP3 是MPEG-3 格式的声音文件的扩展名,是一种音频格式。MPEG-3 记录了音乐经数字比压缩的编码,压缩较大,在网络、可视电话通信方面,大有用武之地。

试题 70 分析

本题考查DBA(数据库管理员)的职责。

总的来说,DBA的基本职责就是进行数据库管理,包括定义数据库概念模式、修改模式结构、编写完整性规则,以及对数据库进行安全性控制、数据备份与恢复等。

试题 71~75 分析

本题考查专业英语应用能力。

(1)词汇和短语。

structured programming:结构化编程;assembly language:汇编语言;OO:object orientation,面向对象;methodology:方法学。

(2)选项分析。

give rise to:使……产生。这里因为是陈述过去发生的事,应该用give的一般过去时形式gave。

structured:结构化的(过去分词,做表语表示主语的状态)。这和前面提到的“结构化”相对应。

application:应用。这里的“应用程序”和前面的 system(系统)程序相对应。

more…than…:比……更好;固定搭配。这种题应该通读全句,了解句子结构,抓住一些连词或看看有没有固定搭配,以解决问题。

evidenced:证实(被动语态)。这里主语为陈述一个事实,表达“被证明”等意思时应该用evidence的被动语态evidenced。

(3)参考译文。

结构化的编程实践催生了Pascal语言,在这种语言中引入的“构造”,使程序的可读性更好,并具有更好的结构。C语言是集汇编语言和高级语言的特性于一身的通用语言,可用于从系统程序到应用程序的编程。接着而至的是“面向对象”,它在方法论和设计哲学上的意义胜过了语言本身。将所谓的“面向对象”扩展特性添加到C语言等当前主流语言中,就印证了这一点。

下午试题分析

试题一分析

本题考查程序流程图及数组的操作。

根据题目的意思,本题的流程图是用来描述稀疏矩阵转换过程的。而三元数组a的第 1 行元素的值分别用来存储稀疏矩阵x的行数、列数和非零元素个数,在第(1)空位置处,前面已经分别存储了稀疏矩阵x的行数和列数,只差非零元素的个数没有存储进数组a。因此,此空应该填“a[0][2]=w;”。

在第(2)空的前面有两条判断语句,我们可以看出它们是为了保证取到的元素是稀疏矩阵中的元素,再往下我们应该判断此元素是否是 0,因此,此空应该填“x[i][j]≠0”。

根据程序流程图,如果第(2)空中的条件为真,即取到的元素不为 0,那么我们应该将该元素存放到三元数组a中,第(3)空的前面两条语句已经分别用于存储了稀疏矩阵非 0 元素的行号和列号,那么接下来应该是保存其值。因此,此空的答案是“a[k][2]=x[i][j];”。

由题目中对三元数组a的描述可以知道,三元数组a的每一行只存储 3 个元素。再看流程图,第(4)空的前面三条语句都表示向三元数组a中存储一个元素。因此,如果再要往数组中添加元素,就需要存放到另外一行。因此,第(4)空应该是将数组的行号加 1,即“k++;”。

结合流程图中三个判断语句的结构和作用来分析,第(5)空应该是“i++;”,它的作用是保证能取到稀疏矩阵中每一行的元素。

试题二分析

本题考查C程序控制结构的应用。

根据题目描述,函数Counter(int n,int w[ ])的功能是计算整数n的二进制表示形式中 1 的个数,同时用数组w记录该二进制数中 1 所在位置的权。要计算n的二进制形式中 1 的个数,基本方法是计算n的二进制数时进行计数,题中的函数Counter采用的就是此方法。十进制数转换为二进制数的方法是辗转除以 2 取余数,直到被除数为 0 时为止。

例如,十进制数 26 的二进制形式为 11010,计算步骤为:

①被除数是 26,除数是 2,商为 13,余数为 0;

②被除数是 13,除数是 2,商为 6,余数是 1;

③被除数是 6,除数是 2,商为 3,余数是 0;

④被除数是 3,除数是 2,商为 1,余数是 1;

⑤被除数是 1,除数是 2,商为 0,余数是 1。

计算结束。

从上例可知,二进制数的各位是从低到高依次计算出来的。

因此,函数Counter中的空(l)处应填入“n或n!=0”。显然,代码中用k记录二进制数各位的权值,其初始值为 1,每算出 1 位,其值要改为上一位权值的 2 倍。因此空 (2) 处应填入“k=k*2 或k*=2”。

对于函数Smove(int A[], int n),其功能是将数组中所有的奇数都放到所有偶数之前。分析题中给出的处理过程,交换动作发生在A[i]为偶数而A[j]为奇数时,因此空 (5) 处应填入“A[i]%2==0&&A[j]%2!=0”(或其等价表示方式),其他情况下都是修改i和(或) j的值。下面举一例进行说明,设数组A中的元素初始排列为 15,20,23,30,77,62,45,68,34,61。

初始时i=0, j=n-1=9。A[0]=15,A[9]=61,A[0]是奇数,所以其值保持不动,A[9]也是奇数,需要将其前移,实质上是要找出前面的一个偶数与其对调,这就需要增加下标i的值,从而向后找偶数。对应的代码是i++,因此空 (3) 处应填入“i++”(或等价表示方式)。接下来找到的偶数是A[1],将其与A[9]对调,数组中的元素排列情况为 15,61,23,30,77,62,45,68,34,20。之后i++,j--,对应的数组元素为A[2](值为23,是奇数)和A[8](值为 34,是偶数),这种情况下显然不需要进行对调,因此将i增 1、j减 1,找到A[3]和A[7]。由于A[3](值为 30)和A[7](值为 68)都是偶数,因此需要从后面找出一个奇数,将其与A[3]对调。因此,空 (4) 处应填入“j--”(或等价表示方式)。接下来找到A[6],交换A[3]和A[6]的值,数组元素的排列情况为 15,61,23,45,77,62,30,68,34,20。

这样,数组中的奇数全部排在偶数之前。

试题三分析

本题考查数据结构的应用、指针和递归程序设计。

根据二叉查找树的定义,在一棵二叉查找树上进行查找时,首先用给定的关键字与树根结点的关键字比较,若相等,则查找成功;若给定的关键字小于树根结点的关键字,则接下来到左子树上进行查找,否则接下来到右子树上进行查找。如果在给定的二叉查找树上不存在与给定关键字相同的结点,则必然进入某结点的空的子树时结束查找。因此,空 (1) 处填入“!root”,表明进入了空树;空 (2) 处填入“root”,表明返回结点的指针;空 (3) 处填入“find_key(root→left, key)”,表明下一步到左子树上继续查找;空 (4) 处填入“find_key(root→right, key)”,表明下一步到右子树上继续查找。

显然,在二叉排序树上进行查找时,若成功,则查找过程是走了一条从根结点到达所找结点的路径。例如,在下图所示的二叉排序树中查找 62,则依次与 46、54、101 和62 作了比较。因此,在树中查找一个关键字时,需要比较的结点个数取决于该关键字对应结点在该二叉查找树所在层次(数)或位置。

试题四分析

本题考查我们对魔方阵的理解及用C语言的实现。

题目给出了魔方阵的原理和生成过程,现在要我们往 15×15 的二维数组中添加元素,使其呈现魔方阵的结构。程序中的变量i和j确定增加的元素在数组中的位置,每次增加的元素在原来的基础上加 1,只是位置按魔方阵的原理存放。

下面来看代码,在第(1)空处,还没有进入增加元素的循环中,应该是赋初值阶段,而用来确定元素在数组中位置的变量i已有值,j没有,再根据魔方阵的生成过程的第一条(第一个位置在第一行正中)可知,此空的答案应该是“j=(n+1)/2-1;”。

第(2)空处是一个循环条件,结合全过程来看,我们知道这个循环是不停往数组中增加元素,直到添加完n×n个元素。因此,此处是判断要添加的元素应该小于n×n。答案为“m<=n*n”。

第(3)空前面是个条件选择语句,其条件是判断最近一个插入元素m是否可以被n整除。根据魔方阵的生成过程的第三条(若最近一个插入元素为n的整倍数,则选下面一行同列上的位置为新位置),即i=i+1,j不变。但由于在插入一个元素后,变量i和j会分别自动减 1 和加 1。因此,答案为“i=i+2;”。

第(4)空前面也是个条件选择语句,其条件是判断是否超出上界,根据魔方阵的生成过程的第二条可以知道,如右上方位置已超出方阵上边界,则新位置取应选列的最下一个位置,因此,此空应该填“i=i+n;”。

第(5)空前面是个条件选择语句,其条件是判断是否超出右边界,根据魔方阵的生成过程的第二条可以知道,如超出右边界则新位置取应选行的最左一个位置。因此,此空应该填“j=j-n;”。

试题五分析

本题考查类的定义、继承及虚基类与虚函数的应用。

首先我们来看一下基类employee的程序代码,在基类中构造了一个构造函数和两个虚函数,其中虚函数display()可以输出编号和工资。

由整个程序的作用可以看出,类salesman与类manager应继承类employee,而类sales manager则应该继承类salesman与类manager。在每个类中都有函数pay()和display(),且在每个类中都对这两个函数进行了重新定义。这样这两个同名函数出现多个地址映射。要解决这个问题,在C++语言中,采用虚基类。因此,第(1)空的答案是“virtualpublic employee”。

第(2)空也是表示类的继承,类sales manager继承类salesman与类manager,因此,此空答案为“public manager, public salesman”。

结合整个程序来看,其他三个类都是类sales manager的父类,因此,第(3)空处应该填“employee(num,ch),manager(num,ch),salesman(num,ch)”。

根据题目的要求,再结合主函数与类sales manager的模块可以推出第(4)空处的功能是计算销售经理的月总工资,而计算方法是固定工资加提成。因此,答案为“salary=monthpay+commrate*sales;”。

对比三个子类的display()函数,不难发现第(5)空应为“employee::display();”。

试题六分析

本题考查链表和栈的基本特征在Java中的实现。

在对链表进行表头插入时,首先要判断该链表是否为空,如果为空,直接插入结点;如果非空,在插入结点时把该结点的指针域改成能指向下一个结点的地址。在队尾插入时,同样要判断该链表是否为空,如果为空,直接插入结点;如果非空,在插入结点时把上一个结点的指针域改成能指向该结点的地址。

下面来具体分析代码,首先定义了一个结点类,类中有两个不同的构造函数和三个函数,分别用于获取结点数据域,设置下一个结点值和返回下一个结点值。第(1)空是函数insert()里面的代码,函数要实现的功能是将数据str的结点插入在整个链表前面。结合整个函数看,此空处要实现的功能是在非空链表的前面插入结点,需要指针域来存放下一个结点的地址,而下一个结点的地址就是Head,因此,此处应该填“Head=newNode(str,Head);”。

第(2)空和第(3)空一起考虑,它们都是函数append()里面的内容。函数要实现的功能是将数据str的结点插入整个链表尾部。这两空要实现的功能是在非空链表的尾部插入结点。这需要调用返回下一个结点值函数和设置下一个结点值函数,因此,第(2)空和第(3)空的答案分别为“tempnode=tempnode.getNext();”和“tempnode.setNext(new N0de(str,tempnode.getNext( )));”。

第(4)空是函数get()里面的内容,此函数的功能是移出链表第一个结点,并返回该结点的数据域,从整个函数来看,此空处的功能是让链表的地址Head指向下一个结点。因此,答案为“Head=Head.getNext();”。

第(5)空就比较简单了,要实现的功能就是让数据进栈,而进栈操作是在栈顶进行插入的,因此,只要调用函数insert()即可,其参数是str,此空答案为“insert(str)”。 wXSg4zBSPFzS5T+7FJyxe+FKSzjA3nTt2jxGye3z3FSqp1wnHubg8GrLwnD6DRxN

点击中间区域
呼出菜单
上一章
目录
下一章
×