【2024软考】史上最全!软考刷题+解析大合集(9万字全手工打,货真价实)
计算机基础知识
1.中断向量表用来保存各个中断源的中断服务程序的入口地址。当外设发出中断请求信号(INTR)以后,由中断控制器(INTC)确定其中断号,并根据中断号查找中断向量表来取得其中断服务程序的入口地址,同时INTC把中断请求信号提交给CPU。
2.设机器字长为64位,存储器的容量为128MB,若按字编址,它可寻址的单位个数是( )。
机器字长为64位,即8B,按字编址可寻址的范围128MB/8B=16M。
3.设机器字长为64位,存储器的容量为512MB,若按字编址,它可寻址的单位个数是( )。
机器字长为64位,即8B,按字编址可寻址的范围512MB/8B=64M。
4.操作系统的系统的性能指标有系统的可靠性、系统的吞吐率(量)、系统响应时间、系统资源利用率、可移植性。
5.Linux中只有一个根目录,用"/"表示。
6.若某存储器存储周期为250ns,每次读出16位,该存存储器地数据传输率是( )。
计算的是存储器的带宽,每个存储周期读出16bit=2B,因此数据传输率是2B/(25010^ -9s),计算结果为810^6B/s。
7.总线宽度为32bit,时钟频率为200MHz,若总线上每5个时钟周期传送一个32bit的字,则该总线的带宽为(160 )MB/S。
总线的带宽指单位时间内传输的数据总量。在计算机当中,时钟频率是其时钟周期的倒数,表示时间的度量,本题时钟周期为1/200MHz。
总线宽度是指总线的线数,即数据信号并行传输的能力,本题传送大小与总线宽度一致,不需要处理。
传送32bit的字,即数据总量为32bit;5个时钟周期,即(1/200MHz)×5,为总时间。
带宽=数据总量/总时间(注意单位的转换)。
即总带宽=32bit/(5/200MHz)=1280Mbit/s=160MB/s。【此处为了方便计算,让2^ 20与10^6近似相等
8.在一个容量为128KB的SRAM存储芯片上,按字长32位编址,其地址范围可从0000H到( )。
容量128KB的SRAM存储器,按字长32位编址,32bit=4Byte,总共有128KB/4B=32K=2^15个地址,所以地址范围是0000H到7fffH
9.内存按字节编址,地址从A0000H到CFFFFH的内存,共有()字节,若用存储容量为64Kx8bit的存储器芯片构成该内存空间,至少需要()片
地址从AO0OOH到CFFFFH,存储单元个数共有CFFFFH+1-A0000H=30000H,即3×164个;按字节编址,即每个存储单元存放1个字节,也就是1B;该存储区域总容量=存储单元个数×存储单元内容=3×164×1B=3×216B=192KB。
若用存储容量为64Kx8bit的存储芯片构成,即单位芯片容量为64Kx8bit,总容量=单位芯片容量×片数,即片数=总容量/单位芯片容量=(192KB)/(64K×8bit)=3。
10.计算机中普遍采用的字符编码是美国标准信息交换码,即ASCII码,包括256个常用字符。
CPU
11.CPU中的( )的值可自动加1,以便实现程序指令的顺序执行。
程序计数器(PC)
指令寄存器(IR)用来保存当前正在执行的指令。当执行一条指令时,先把它从内存取到数据寄存器(DR)中,然后再传送至IR。为了执行任何给定的指令,必须对操作码进行测试,以便识别所要求的操作。指令译码器(ID)就是做这项工作的。指令寄存器中操作码字段的输出就是指令译码器的输入。操作码一经译码后,即可向操作控制器发出具体操作的特定信号。
地址寄存器(AR)用来保存当前CPU所访问的内存单元的地址。由于在内存和CPU之问存在着操作速度上的差别,所以必须使用地址寄存器来保持地址信息,直到内存的读/写操作完成为止。
为了保证程序指令能够连续地执行下去,CPU必须具有某些手段来确定下一条指令的地址。而程序计数器正是起到这种作用,所以通常又称为指令计数器。在程序开始执行前,必须将它的起始地址,即程序的一条指令所在的内存单元地址送入PC,因此程序计数器(PC)的内容以口是从内存提取的第一条指令的地址。当执行指令时,CPU将自动修改PC的内容,即每执行一条指令PC增加一个量,这个量等于指令所含的字节数,以便使其保持的总是将要执行的下一条指令的地址。由于大多数指令都是按顺序来执行的,所以修改的过程通常只是简单地对PC加1。
12.计算机运行过程中,遇到突发率件,要求CPU暂时停止正在运行的程序,转去为突发事件服务,服务完毕,再自动返回原程序继续执行,这个过程称为( 中断 )。
为了提高I/O能力和CPU效率,计算机系统引进了中断方式。程序中断是指计算机执行现行程序的过程中,出现某些急需处理的异常情况和特殊请求,CPU暂时中止现行程序(保护现场),而转去对随机发生的更紧迫的事件进行处理,在处理完毕后,CPU将自动返回原来的程序继续执行(恢复现场)。
13.计算机在一个指令周期的过程中,为从内存读取指令操作码,首先要将( )的内容送到地址总线上。
PC(程序计数器)是用于存放下一条指令所在单元的地址。当执行一条指令时,处理器首先需要从PC中取出指令在内存中的地址,通过地址总线寻址获取。
14.在计算机系统中常用的输入/输出控制方式有无条件传送、中断、程序查询和DMA等。其中,采用( )方式时,不需要CPU控制数据的传输过程。
直接程序控制(无条件传送/程序查询方式)。无条件传送:在此情况下,外设总是准备好的,它可以无条件地随时接收CPU发来的输出数据,也能够无条件地随时向CPU提供需要输入的数据。程序查询方式:在这种方式下,利用查询方式进行输入输出,就是通过CPU执行程序查询外设的状态,判断外设是否准备好接收数据或准备好了向CPU输入的数据。中断方式:由程序控制I/O的方法,其主要缺点在于CPU必须等待I/O系统完成数据传输任务,在此期间CPU需要定期地查询I/O系统的恶状态,以确认传输是否完成。因此整个系统的性能严重下降。直接主存存取(DirectMemory Access,DMA)是指数据在主存与I/O设备间的直接成块传送,即在主存与I/O设备间传送数据块的过程中,不需要CPU作任何干涉,只需在过程开始启动(即向设备发出,传送一块数据的命令)与过程结束(CPU通过轮询或中断得知过程是否结束和下次操作是否准备就绪)时由CPU进行处理,实际操作由DMA硬件直接完成,CPU在传送过程中可做别的事情。
15.若不考虑I/O设备本身的性能,则影响计算机系统I/O数据传输速度的主要因素是( )。
地址总线宽度决定了CPU可以访问的物理地址空间,简单地说就是CPU到底能够使用多大容量的内存。CPU字长指CPU位时间内(同一时间)能一次处理的二进数的位数。数据总线负责计算机中数据在各组成部分之间的传送,数据总线宽度是指在芯片内部数据传送的宽度,而数据总线宽度则决定了CPU与二级缓存、内存以及输入/输出设备之间一次数据传输的信息量。
16.在CPU中,跟踪下一条要执行的指令的地址的寄存器是( )。
在CPU中,PC用来跟踪下一条要执行的指令在主存储器的中地址
17.在中断响应过程中,CPU保护程序计数器的主要目的是(为了使CPU在执行完中断服务程序时能回到被中断程序的断点处 )。
中断响应实现向中断服务程序的过渡。在中断响应周期,CPU要完成以下操作:
(1)发出中断响应信号INTA。(2)关中断,即将IF位清0。这是因为在响应一个中断的期间不能响应另一个中断。(3)保护断点和标志寄存器。
断点是按正常顺序(即没有中断)应执行的下一条指令的地址。对8086来说,保护断点就是保存CS和IP的内容(压入堆栈)。标志寄存器FR中存放着刚执行指令的一些重要特征,也需要保存起来,以便中断返回时继续使用其中的内容。
(4)查找中断源,转向相应的中断服务程序的入口。
18.从基本的CPU工作原理来看,若CPU执行MOV R1,R0指令(即将寄存器R0的内容传送到寄存器R1中),则CPU首先要完成的操作是
( )(其中PC为程序计数器;M为主存储器;DR为数据寄存器;IR为指令寄存器;AR为地址寄存器)。
CPU执行MOVRI,RO指令,CPU首先要完成的操作是从内存中读取该指令的指令操作码。取该指令的指令操作码,首先要做的就是将程序计数器的内容送到地址寄存器,即PC→AR。
19.在CPU的组成中,不包括( 存储器 )。
20.属于CPU中算术逻辑单元的部件是在( 加法器)。
算术逻辑运算单元ALU(Arithmetic and Logic Unit)ALU主要完成对二进制数据的定点算术运算(加减乘除)、逻辑运算(与或非异或)以及移位操作。
21.从基本的CPU工作原理来看,若CPU执行MOV R1,R0指令(即将寄存器R0的内容传送到寄存器R1中),则CPU首先要完成的操作是( )(其中PC为程序计数器;M为主存储器;DR为数据寄存器;IR为指令寄存器;AR为地址寄存器)。
CPU执行MOVRl,RO指令,CPU首先要完成的操作是从内存中读取该指令的指令操作码。取该指令的指令操作码,首先要做的就是将程序计数器的内容送到地址寄存器,即PC→AR。
22.以下关于CPU的叙述中,错误的是(程序计数器PC除了存放指令地址,也可以临时存储算术/逻辑运算结果 )。
正确的是CPU产生每条指令的操作信号并将操作信号送往相应的部件进行控制,CPU中的控制器决定计算机运行过程的自动化,指令译码器是CPU控制器中的部件。
23.以下关于CPU和GPU的叙述中,正确的是(CPU适合于需要处理各种不同的数据类型、大量的分支跳转及中断等场合 )。
CPU强调通用性,需要处理各种数据类型,又要进行逻辑判断进行大量的分支跳转和中断的处理。因此CPU内部结构异常复杂。
CPU利用较高的主频和高速缓存来提升执行指令的速度,但通用函数库是高级编程语言的一部分,与CPU无关。
GPU面对的是类型高度统一、相互无依赖的大规模数据和不需要被打断的纯净计算环境。GPU是一种单指令多数据流(Single Instruction Multiple Data,SIMD)架构,特点是比CPU包含更多的计算单元和更简单的控制单元。
MISD纯粹是一种理论模型,并没有实际意义。
24.DMA(直接存储器访问)工作方式是在( )之间建立起直接的数据通路。
直接主存存取(Direct Memory Access,DMA)是指数据在主存与I/O设备间的直接成块传送,即在主存与I/O设备间传送数据块的过程中,不需要CPU作任何干涉,只需在过程开始启动(即向设备发出“传送一块数据"的命令)与过程结束(CPU通过轮询或中断得知过程是否结束和下次操作是否准备就绪)时由CPU进行处理,实际操作由DMA硬件直接完成,CPU在传送过程中可做其它事情。
25.指令寄存器的位数取决于( )。
指令寄存器是CPU中的关键寄存器,其内容为正在执行的指令,显然其位数取决于指令字长。
26.累加寄存器AC:通用寄存器,为ALU提供一个工作区,用来暂存数据。(注意不是数据缓冲寄存器)
27.CPU中的运算单元、控制单元和寄存器组通过系统总线连接起来
28.在冯诺依曼结构中,程序指令和数据存在同一个存储器中。
29.在CPU中,常用来为ALU执行算术逻辑运算提供数据并暂存运算结果的寄存器是( 累加寄存器 )。
寄存器是CPU中的一个重要组成部分,它是CPU内部的临时存储单元。寄存器既可以用来存放数据和地址,也可以存放控制信息或CPU工作时的状态。在CPU中增加寄存器的数量,可以使CPU把执行程序时所需的数据尽可能地放在寄存器件中,从而减少访问内存的次数,提高其运行速度。但是寄存器的数目也不能太多,除了增加成本外,由于寄存器地址编码增加也会对增加指令的长度。CPU中的寄存器通常分为存放数据的寄存器、存放地址的寄存器、存放控制信息的寄存器、存放状态信息的寄存器和其他寄存器等类型。
程序计数器用于存放指令的地址。令当程序顺序执行时,每取出一条指令,PC内容自动增加一个值,指向下一条要取的指令。当程序出现转移时,则将转移地址送入PC,然后由PC指向新的程序地址。
程序状态寄存器用于记录运算中产生的标志信息,典型的标志为有进位标志位、零标志位、符号标志位、溢出标志位、奇偶标志等。
地址寄存器包括程序计数器、堆栈指示器、变址寄存器、段地址寄存器等,用于记录各种内存地址。
累加寄存器是一个数据寄存器,在运算过程中暂时存放被操作数和中间运算结果,累加器不能用于长时间地保存一个数据。
30.系统总线是主板上各个部件之间通讯的线路,不是CPU内部组成内容。
31.在中断响应过程中,CPU保护程序计数器的主要目的是( 为了使CPU在执行完中断服务程序时能回到被中断程序的断点处 )。
32.CPU执行算术运算或者逻辑运算时,常将源操作数和结果暂存在( )中。
答案是累加寄存器,用来暂时存放算术逻辑运算部件ALU运算的结果信息。程序计数器(PC)是用于存放下一条指令地址的地方,计算之前就要用到。指令寄存器(IR)保存当前正在执行的一条指令。地址寄存器(AR)用来保存当前CPU所要访问的内存单元的地址。
原码反码补码浮点数
33.在现代计算机中用阶码和尾数来表示实数的方法叫做“浮点表示法”,即浮点数。
34.原码乘法需要先将被乘数和乘数的原码相乘,再根据结果的正负情况来确定乘积的正负号。因此,即先取操作数绝对值相乘,符号位单独处理。具体步骤如下:
将被乘数和乘数的符号位和数值部分单独处理。
对被乘数和乘数的数值部分取绝对值相乘,得到乘积。
如果被乘数和乘数的符号位相同,则乘积为正;如果符号位不同,则乘积为负。
将乘积的符号位和数值部分合并得到最终结果。
35.计算机中表示地址时使用无符号数。地址的值是非负整数,因此可以用无符号数表示。在使用无符号数表示地址时,地址值最高位为0,因为地址值必须是非负整数。如果使用有符号数表示地址,那么最高位用来表示符号,地址空间就会被减半,不是最优选择。因此,答案选A,即无符号数。
36.用原码表示带符号的整数0时,有-0和+0之分,其实就是符号位的变化,
+0:0000 0000; -0 : 1000 0000;
因此用反码表示带符号的整数0时,也有-0和+0之分,分别为+0反码是00000000;-0反码是11111111
而0补码是00000000;补码没有正0与负0之分。
37.若机器字长为8位,则可表示出十进制整数-128的编码是( 补码)。
原码表示是用最左边的为表示符号,0正1负,其余的7位表示数的绝对值,|-128|=128,用二进制表示时需要8位,所以机器字长为8位时,采用原码不能表示-128。对于负数反码是数的绝对值取反也不能表示-128。
补码表示与原码和反码相同之处的最高位用0表示正1表示负,补码10000000的最高位1既表示其为负数,也表示数字1,从而可以表示出-128。
38.某机器字长为n,最高位是符号位,其定点整数的最大值为( )。
最大值为n-1位(符号位)为0(正数),从n-2到0位都为1,值为2^(n-1) -1
39.计算机系统中,定点数常采用补码表示,以下关于补码表示的叙述中,错误的是( 与真值的对应关系简单且直观 )。
负数的补码真值需要计算才能获得,无法直观对应。
40.在补码中0具有唯一编码。将补码的符号位取反可以得到移码。对于数字0来说移码与补码都是唯一的。
41.计算机中常采用原码、反码、补码和移码表示数据,其中,±0编码相同的是( 补码和移码 )。
42.在计算机的CPU中,通常只设置硬件加法器。只有补码能够将减法转化为加法,故用硬件加法器可以较方便地进行数字加减法。
由于正数的移码大于负数的移码,利用这一特点,移码被广泛用来表示浮点数阶码的数字编码,这可以用比较阶码的大小来实现真值大小的比较。
43.补码表示定点小数,范围是:[-1,(1-2^(-(n-1)))],这个范围一共有2 ^n 个数
44. 90H即为二进制的:10010000。补码最高位为符号位,1表示负号,所以说明此数为负数,其反码为补码减1:10001111,其原码为反码除符号位皆取反:11110000,即-112,2X=-112,所以真值X=-56。
45. 本题考查计算机系统硬件知识。在计算机中,n位补码(最高位符号位,n-1位数据位),表示范围是-2^(n-1)~ +2 ^(n-1)-1,其中最小值为人为定义,以n=8为例,其中-128的补码是人为定义的10000000
46. 计算机系统中采用补码表示有符号的数值,( 可以将减法运算转化为加法运算从而简化运算器的设计 )。
47.假定求浮点数平方根(FPSQR)的操作在某台机器上的一个基准测试程序中占总执行时间的20%,FP运算指令所用时间占总执行时间的50%。采用两种优化FPSQR的方法,第一种方法是增加专门的FPSQR硬件,可以将FPSQR的操作速度提高为原来的 10倍;第二种方法是提高所有FP(浮点)运算指令的执行速度到原来的1.6倍,从而提高求浮点数平方根操作的速度。可以通过计算这两种方法对基准测试程序的加速比来比较这两种方法的优劣。以下叙述正确的是( )。
第二种方法的加速比是1.23,效果较好
加速比FPSQR=1/((1-0.2)+0.2/10)=1/0.82=1.22
加速比FP=1/((1-0.5)+0.5/1.6)=1/0.8125=1.23
48.N=2^E * F其中F是浮点数的尾数,E为浮点数的阶码。影响数值表示范围的是阶码的位数,尾数的位数影响计算的精度。
49.浮点数所能表示的数值范围主要由阶码决定,所表示数值的精度则由尾数决定。八位阶码的最大值为127。
50.
51.
52.下面关于定点数和浮点数的特点的叙述,错误的是( 浮点数中的尾数,可以不用纯小数形式表示 )。
在浮点数中,尾数是用纯小数形式表示的。
奇偶校验
52.如果有奇数个位发生误码,则奇偶性发生变化,可以检查出误码,但不能纠错。
如果有偶数个位发生识,则奇偶性不发生变化,不能检查出误码(也称漏检)。
53.所谓码距,是指一个编码系统中任意两个合法编码之间至少有多少个( 二进制位)不同。
54.奇偶校验(Parity Codes)是一种简单有效的校验方法。这种方法通过在编码中增加一位校验位来使编码中1的个数为奇数(奇校验)或者为偶数(偶校验),从而使码距变为( 2 )。
(做题前先看看书)
55.对于奇偶校验,是由若干位有效信息,再加上一个二进制位(校验位)组成校验码,其中奇校验“1”的个数为奇数,而偶校验“1”的个数为偶数,以此校验,如果其中传输过程中有偶数个数发生错误(即1变成0或0变成1),则“1”的个数其奇偶就不会发生改变,也就无法发现错误了,只有奇数个数据位发生错误,才能发现错误。同时,奇偶校验只能查错不能纠错。A、B描述的所有奇数位、所有偶数位有误。
56.模2除法原则:1、被除数的首位为1,商为1。2、被除数的首位为0,商为0。3、模2除法等同于按位异或,要保证每次除完首位都为0,才能进行右移。4、计算时每次右移一位,当被除数的位数小于除数,其为余数。
57.实际上,在CRC运算中,总能保证除数的首位为1,则模2除法运算的商是由余数首位与除数首位的模2除法运算结果确定。因为除数首位总是1,按照模2除法运算法则,那么余数首位是1就商1,是0就商0。
58.循环冗余校验码的两部分分别是( 左边为信息码(数据),右边为校验码 )。
存储器
存储器的层次结构
1.DRAM,即动态随机存储器,一般用于内存,需要不断地刷新电路,否则数据就消失了。
2.计算机采用分级存储体系的主要目的是为了解决( )问题。
计算机存储系统的设计主要考虑容量、速度和成本三个问题。容量是存储系统的基础,都希望配置尽可能大的存储系统;同时要求存储系统的读写速度能与处理器的速度相匹配;此外成本也应该在一个合适的范围之内。但这三个目标不可能同时达到最优。一般情况下,存储设备读写速度越快,平均单位容量的价格越高,存储容量越小;反之,存储设备读写速度越慢,平均单位容量的价格越低,存储容量越大。为了在这三者之间取得平衡,就采用分级的存储体系结构,由寄存器、高速缓存、主内存、硬盘存储器、磁带机和光盘存储器等构成。操作系统经常访问较小、较贵而快速的存储设备,以较大、较便宜而读写速度较慢的存储设备作后盾。在整体上通过对访问频率的控制来提高存储系统的效能。
3.在微机系统中,BIOS(基本输入输出系统)保存在( 主板上的ROM )中。
本题考查计算机系统硬件知识。BIOS(Basic Input Output System)(基本输入输出系统)是一组固化到计算机内主板上一个ROM芯片上的程序,它保存着计算机最重要的基本输入输出的程序、开机后自检程序和系统自启动程序,它可从CMOS中读写系统设置的具体信息。
4.计算机中CPU对其访问速度最快的是( 通用寄存器 > cache > 内存 > 硬盘 )。
5.CPU访问存储器时,被访问数据一般聚集在一个较小的连续存储区域中。若一个存储单元已被访问,则其邻近的存储单元有可能还要被访问,该特性被称为( 空间局部性 )。
程序的局限性表现在时间局部性和空间局部性:
(1)时间局部性是指如果程序中的某条指令一旦被执行,则不久的将来该指令可能再次被执行;
(2)空间局部性是指一旦程序访问了某个存储单元,则在不久的将来,其附近的存储单元也最有可能被访问。
数据局部性:刚刚被访问过的结点,极有可能在不久之后再次被访问到;将被访问的下一结点,极有可能处于不久之前被访问过的某个结点的附近;
指令局部性:指令在短时间内会被多次读取,其附近的指令也会被多次读取
6.计算机采用分级存储体系的主要目的是为了(解决存储的容量、价格和速度之间的矛盾 )。
分级存储体系中,速度快的存储器,单位价格高,而速度慢的存储器,单位价格低,所以利用分级方式,能得到很好的性价比。
7.下列光盘格式中,不能多次擦除重写数据的是(CD-R )。
本题考查光盘存储技术基本常识。题目给出的是常见光盘格式,其中DVD-RAM和DVD-RW是DVD技术所支持的两种不同的可多次擦除重写的DVD光盘格式,CD-R指一次性可写(刻录)CD光盘,而CD-RW指可多次擦除、重写的CD光盘。
8.计算机系统中,虚拟存储体系由( 主存-辅存 )两级存储器构成。
此题考查计算机组成中的存储知识,虚拟存储系统是指为扩大主存的能力而由操作系统根据需要从外存,即辅存中拿出一部分空间当作主存来使用。
9.计算机系统的主存主要是由( DRAM )构成的。
DRAM:动态随机存取存储器;SRAM:静态随机存取存储器;Cache:高速缓存;EEPROM:电可擦可编程只读存储器。
10.以下存储器中,( DRAM )使用电容存储信息且需要周期性地进行刷新。
DRAM,即动态随机存储器,一般用于内存,需要不断地刷新电路,否则数据就消失了。
EPROM是一种断电后仍能保留数据的计算机储存芯片——即非易失性的(非挥发性)。
静态随机存取存储器是随机存取存储器的一种。这种存储器只要保持通电,里面储存的数据就可以恒常保持
EEPROM是指带电可擦可编程只读存储器。是一种掉电后数据不丢失的存储芯片
SRAM:静态随机存取存储器,静态随机存取存储器是随机存取存储器的一种。所谓的“静态”,是指这种存储器只要保持通电,里面储存的数据就可以恒常保持。B选项正确。
FLASH:闪存,特性介于EPROM和EEPROM之间,类似于EEPROM,也可以使用电信号进行信息的擦除操作。整块闪存可以在数秒内删除。
11.以下关于闪存(Flash Memory)的叙述中,错误的是( 采用随机访问方式,常用来代替主存 )。
闪存(Flash Memory)是一种长寿命的非易失性(在断电情况下仍能保持所存储的数据信息)的存储器,数据删除不是以单个的字节为单位而是以固定的区块为单位,区块大小一般为256KB到20MB。
闪存是电子可擦除只读存储器(EEPROM)的变种,EEPROM与闪存不同的是,它能在字节水平上进行删除和重写而不是整个芯片擦写,这样闪存就比EEPROM的更新速度快。由于其断电时仍能保存数据,闪存通常被用来保存设置信息。
闪存不像RAM(随机存取存储器)一样以字节为单位改写数据,因此不能取代RAM,也不能替换主存,因此C选项错误。但是在嵌入式中,可以用闪存代替ROM存储器。
cache的地址映像方法
1.直接映像方式的优点是地址变换很简单,缺点是(灵活性差 )。
2.在速度要求较高的场合采用直接映像,在速度要求较低的场合采用组相联或全相联(错误)
为解决高速CPU与低速内存之间的速度差异,最经济、有效的方法是在两者之间插入容量不大但操作速度很高的存储器高速缓存(Cache),起到缓冲作用,使CPU既可以以较快速度存取Cache中的数据,又不使系统成本过高。与主存相比,Cache的容量很小,它保存的只是一部分主存内容的一个副本,且Cache与主存的数据交换是以块为单位。地址映射即是应用某种方法把主存地址定位到Cache中,有全相联方式、直接方式和组相联方式三种方式。
(1)直接映射方式:这是一种最简单而又直接的映射方法,指主存中每个块只能映射到Cache的一个特定的块。在该方法中,Cache块地址j和主存块地址i的关系为:j=i mod Cb其中Cb是Cache的块数。这样,整个Cache地址与主存地址的低位部分完全相同。直接映射法的优点是所需硬件简单,只需要容量较小的按地址访问的区号标志表存储器和少量比较电路;缺点是Cache块冲突概率较高,只要有两个或两个以上经常使用的块恰好被映射到Cache中的同一个块位置时,就会使Cache命中率急剧下降。
(2)全相联映射方式:这种映射方式允许主存的每一块信息可以存到Cache的任何一个块空间,也允许从已被占满的Cache中替换掉任何一块信息。全相联映射的优点是块冲突概率低:其缺点是访问速度慢,并且成本太高。
(3)组相联映射方式:这种方式是前两种方式的折衷方案。这种映射方式在组间是直接映射,而组内是全相联映射,其性能和复杂性介于直接映射和全相联映射之间。
3.在主存与Cache的地址映射方式中,( )方式可以实现主存任意一块装入Cache中任意位置,只有装满才需要替换。
全相联映射是指主存中任一块都可以映射到Cache中任一块的方式,也就是说,当主存中的一块需调入Cache时,可根据当时Cache的块占用或分配情况,选择一个块给主存块存储,所选的Cache块可以是Cache中的任意一块。
直接相联映射方式是指主存的某块J只能映射到满足特定关系的Cache块艺中。
全相联映射和直接相联映射方式的优缺点正好相反,也就是说,对于全相联映射方式来说为优点的恰是直接相联映射方式的缺点,而对于全相联映射方式来说为缺点的恰是直接相联映射方式的优点。
组相连映射兼顾了这两种方式的优点:主存和Cache按同样大小划分成块;主存和Cache按同样大小划分成组;主存容量是缓存容量的整数倍,将主存空间按缓冲区的大小分成区,主存中每一区的组数与缓存的组数相同;当主存的数据调入缓存时,主存与缓存的组号应相等,也就是各区中的某一块只能存入缓存的
同组号的空间内,但组内各块地址之间则可以任意存放,即从主存的组到Cache的组之间采用直接映射方式;在两个对应的组内部采用全相联映射方式。
4.按照Cache地址映像的块冲突概率,从高到低排列的是( )。直接映像→组相联映像→全相联映像
cache 替换算法
1.优化替换算法的要求是( 必须先执行一次程序,统计Cache的替换情况 )。参考《软件设计师教程》第五版P26原话。
磁盘(外存储器)
1.
系统读记录的时间为20/10=2ms。对第一种情况:系统读出并处理记录R1之后,将转到记录R4的开始处,所以为了读出记录R2,磁盘必须再转一圈,需要2ms(读记录)加20ms(转一圈)的时间。这样,处理10个记录的总时间应为处理前9个记录(即R1,R2,…,R9)的总时间再加上读R10和处理时间(9×22ms+6ms=204ms
对于第二种情况,若对信息进行分布优化的结果如下所示:
2.假设某硬盘由5个盘片构成(共有8个记录面),盘面有效记录区域的外直径为30cm,内直径为10cm,记录位密度为250位/mm,磁道密度为16道/mm,每磁道分16个扇区,每扇区512字节,则该硬盘的格式化容量约为( )MB。
磁盘容量分为格式化容量和非格式化容量:
非格式化:面数*(磁道数/面)内圆周长最大位密度
格式化容量=面数*(磁道数/面)(扇区数/道)(字节数/扇区)
题干中硬盘的面数为8,每面的磁道数为(30-10)10/216, 【除以2是因为磁道密度算的是半径。】
每磁道扇区为16,每扇区512字节,因此格式化容量为8*(30-10)101616512/2B。注意单位的换算。
3.假设磁盘的每个磁道分成9个块,现一个文件有A,B,…共9条记录,每条记录的大小与块的大小相等,设磁盘转速为27ms/z转,每读出一块后需要2ms的处理时间,若忽略其他辅助时间,若顺序存放这些记录顺序读取,处理此文件需要(),若对文件记录存放顺序调整优化,处理此文件最短时间为()
磁盘转速为27ms/转,每个磁道存放9条记录,因此读出1条记录为27/9=3ms。读出并处理记录A需要5ms,此时读写头已经转到记录B的中间,因此读出1条记录B必须再转接近一圈,后续8条记录的读取及处理与此相同,但是最后一条记录的读取与处理只需要5ms,于是处理9条记录的总时间是8*(27+3)+3+2=245
由于读出并处理一条记录需要5ms,当读出并处理记录A时,不妨设记录A放在第一个盘块中,读写头已移到第二个盘块的中间,为了能顺序读到B,应将记录放到第三个盘块中,因此存放的顺序A,F,B,G,C,H,D,I,E。处理一条记录并将磁头移到下一条记录时间为3+2+1(等待)=6,处理9条记录总时间为6*8+5=53ms。
4.假设磁盘块与缓冲区大小相同,每个盘块读入缓冲区的时间为 16us,由缓冲区送至用户区的时间是5us,在用户区内系统对每块数据的处理时间为1us.若用户需要将大小为10个磁盘块的 Doc1文件逐块从磁盘读入缓冲区,并送至用户区进行处理,那么采用单缓冲区需要花费的时间为(211)us:采用双缓冲区需要花费的时间为(166)μs.
这是一个简单的缓冲区的问题。由于缓冲区的访问是互斥的,所以对单一缓冲区,从磁盘写入和读出到用户区的操作必须串行执行,也就是要保证互斥操作。而CPU对数据的分析与从用户区读数据也是需要互斥操作,但是CPU分析与从磁盘写入缓冲区的操作可以并行。从本题看,由于分析所用的时间小于从磁盘写入缓冲区的时间,因此,CPU会空闲。单缓冲区的总时间=(磁盘写入缓冲区时间+缓冲区读出时间)×10+CPU处理最后一块数据的时间=(16+5)×10+1=211μs。
当采用双缓冲区时,每块缓冲区的操作也必须满足互斥操作,但是,对两块缓冲区的操作却可以并行,所以,当第一个缓冲区写满以后,磁盘紧接着写另一个缓冲区,同时,前一个已经满了的缓冲区被读出到用户区,并立即进行CPU的数据分析。读出操作和数据分析必须互斥进行,故,从时间上看,当数据被读出并分析后,恰好另一个缓冲区也写满了,可以立即进行读出数据到用户区并进行数据分析。两块缓冲区交替进行读写,直到数据分析完毕,因此,总时间=(磁盘写入缓冲区时间)×10+读出最后一块数据时间+CPU分析最后一块数据时间=(16)×10+5+1=166s。
5.某文件管理系统在磁盘上建立了位示图(bitmap),记录磁盘的使用情况。若磁盘上物理块的编号依次为:0、1、2、……;系统中的字长为32位,位示图中字的编号依次为:0、1、2、…,每个字中的一个二进制位对应文件存储器上的一个物理块,取值0和1分别表示物理块是空闲或占用。假设操作系统将2053号物理块分配给某文件,那么该物理块的使用情况在位示图中编号为( )的字中描述。
2053/32=64.156,并且位示图是从0号开始所以选择C
6.若系统在将( 目录 )文件修改的结果写回磁盘时发生崩溃,则对系统的影响相对较大。
很多文件系统是先读取磁盘块到主存,在主存进行修改,修改完毕再写回磁盘。但如果读取某磁盘块,修改后再将信息协会磁盘前系统崩溃,则文件系统可能会出现不一致状态。如果这些未被写回的磁盘块是索引结点、目录块,那么后果是不堪设想的。通常,解决方案是采用文件系统的一致性检查,一致性检查包括块的一致性检查和文件的一致性检查。
输入/输出技术
1.在UNIX操作系统中,把输入/输出设备看作是( 特殊文件 )。
本题考查的是UNIX操作系统中设备管理的基本概念。在UNIX操作系统中,把输入/输出设备看作是特殊文件。在UNIX系统中包括两类设备:块设备和字符设备。设备特殊文件有一个索引节点,在文件系统目录中占据一个节点,但其索引节点上的文件类型与其他文件不同,是“块”或者是“字符"特殊文件。文件系统与设备驱动程序的接口是通过设备开关表。硬件与驱动程序之间的接口:控制寄存器、l/O指令,一旦出现设备中断,根据中断矢量转去执行相应的中断处理程序,完成所要求的I/O任务。这样,可以通过文件系统与设备接囗,对设备进行相关的操作,因为每个设备有一个文件名,可以向访问文件那样操作。
2.若不考虑I/O设备本身的性能,则影响计算机系统l/O数据传输速度的主要因素是( 数据总线宽度 )。
地址总线宽度决定了CPU可以访问的物理地址空间,简单地说就是CPU到底能够使用多大容量的内存。
CPU字长指CPU位时间内(同一时间)能一次处理的二进数的位数。
数据总线负责计算机中数据在各组成部分之间的传送,数据总线宽度是指在芯片内部数据传送的宽度,而数据总线宽度则决定了CPU与二级缓存、内存以及输入/输出设备之间一次数据传输的信息量。
3.以下关于计算机系统中断概念的叙述中,正确的是( 由I/O设备提出的中断请求是可屏蔽中断,电源掉电是不可屏蔽中断 )。
按照是否可以被屏蔽,可将中断分为两大类:不可屏蔽中断(又叫非屏蔽中断)和可屏蔽中断。不可屏蔽中断源一旦提出请求,CPU必须无条件响应,而对可屏蔽中断源的请求,CPU可以响应,也可以不响应。典型的非屏蔽中断源的例子是电源掉电,一旦出现,必须立即无条件地响应,否则进行其他任何工作都是没有意义的。典型的可屏蔽中断源的例子是打印机中断,CPU对打印机中断请求的响应可以快一些,也可以慢一些,因为让打印机等待是完全可以的。对于软中断,它不受中断允许标志位(IF位)的影响,所以属于非屏蔽中断范畴。
4.计算机运行过程中,CPU需要与外设进行数据交换。采用( 中断方式和DMA方式)控制技术时,CPU与外设可并行工作。
程序查询方式的原理是:当主机进行I/O操作时,首先发出询问信号,读取设备的状态并根据设备状态决定下一步操作究竟是进行数据传输还是等待。这种控制下,CPU一旦启动I/O,必须停止现行程序的运行,并在现行程序中插入一段程序。程序查询方式的主要特点是CPU有踏步等待现象,CPU与I/O串行工作。
程序中断是指计算机执行现行程序的过程中,出现某些急需处理的异常情况和特殊请求,cpu暂时终止现行程序,而转去对随机发生的更紧迫的事件进行处理,在处理完毕后,cpu将自动返回原来的程序继续执行。在中断方式中CPU与外设可并行工作。
直接内存存取DMA是指在内存与I/O设备间传送数据块的过程中,不需要CPU的任何干涉,只需要CPU在过程考试启动与过程结束时的处理,实际操作由DMA硬件直接执行完成,CPU在此传送过程中可做别的事情。在DMA方式中CPU与外设可并行工作。
5.当用户通过键盘或鼠标进入某应用系统时,通常最先获得键盘或鼠标输入信息的是( 中断处理 )程序。
6.在输入输出控制方法中,采用( DMA )可以使得设备与主存间的数据块传送无需CPU干预。
计算机中主机与外设间进行数据传输的输入输出控制方法有程序控制方式、中断方式、DMA等。
在程序控制方式下,由CPU执行程序控制数据的输入输出过程。
在中断方式下,外设准备好输入数据或接收数据时向CPU发出中断请求信号,若CPU决定响应该请求,则暂停正在执行的任务,转而执行中断服务程序进行数据的输入输出处理,之后再回去执行原来被中断的任务。
在DMA方式下,CPU只需向DMA控制器下达指令,让DMA控制器来处理数据的传送,数据传送完毕再把信息反馈给CPU,这样就很大程度上减轻了CPU的负担,可以大大节省系统资源。
7.计算机中CPU的中断响应时间指的是( 从发出中断请求到开始进入中断处理程序 )的时间。
中断系统是计算机实现中断功能的软硬件总称。一般在CPU中设置中断机构,在外设接囗中设置中断控制器,在软件上设置相应的中断服务程序。中断源在需要得到CPU服务时,请求CPU暂停现行工作转向为中断源服务,服务完成后,再让CPU回到原工作状态继续完成被打断的工作。中断的发生起始于中断源发出中断请求,中断处理过程中,中断系统需要解决一系列问题,包括中断响应的条件和时机,断点信息的保护与恢复,中断服务程序入口、中断处理等。中断响应时间,是指从发出中断请求到开始进入中断服务程序所需的时间。
8.CPU是在(一个总线周期 )结束时响应DMA请求的。
指令周期(Instruction Cycle):取出并执行一条指令的时间。
总线周期(BUS Cycle):也就是一个访存储器或I/O端口操作所用的时间。
机器周期:在计算机中,为了便于管理,常把一条指令的执行过程划分为若干个阶段,每一阶段完成一项工作。例如,取指令、存储器读、存储器写等,这每一项工作称为一个基本操作。完成一个基本操作所需要的时间称为机器周期。
时钟周期(Clock Cycle):又称震荡周期,是处理操作的最基本单位。
指令周期、总线周期和时钟周期之间的关系:一个指令周期由若干个总线周期组成,而一个总线周期时间又包含有若干个时钟周期。
一个总线周期包含一个(只有取址周期)或多个机器周期。
DMA响应过程为:DMA控制器对DMA请求判别优先级及屏蔽,向总线裁决逻辑提出总线请求。当CPU执行完当前总线周期即可释放总线控制权。此时总线裁决逻辑输出总线应答,表示DMA已经响应,通过DMA控制器通知I/O接囗开始DMA传输。
9.计算机运行过程中,遇到突发事件,要求CPU暂时停止正在运行的程序,转去为突发事件服务,服务完毕,再自动返回原程序继续执行,这个过程称为(中断);其处理过程中保存现场的目的是(返回去继续执行原程序)【错误选项:防止丢失数据(x)】
程序运行过程中,把函数(或过程)调用与响应调用所需要的代码相结合的过程称为动态绑定。
程序编译过程中,把函数(或过程)调用与响应调用所需要的代码相结合的过程称为静态绑定。
10.采用DMA方式传送数据时,每传送一个数据都需要占用一个( 存储周期 )。、
存储周期:通常指连续启动两次操作所需间隔的最小时间,体现主存的速度。
DMA获得内存总线的控制权,单纯的是为了做内存访问,所以仅需要一个存取周期。这是和时钟周期没关系的。本题选择C选项。
Flynn分类法
1.Flynn分类法根据计算机在执行程序的过程中(指令流和数据流 )的不同组合,将计算机分为4类。
2.Flynn分类法基于信息流特征将计算机分成4类,其中(MISD )只有理论意义而无实例。
CISC/RISC
1.精简指令系统RISC的特点不包括( 指令可以对主存单元中的数据直接进行处理。典型的RISC通常都有指令能够直接对主存单元中的数据进行处理,其执行速度较快 )。
这是CISC的特点。CISC系统中的指令可以对主存单元中的数据直接进行处理。典型的CISC通常都有指令能够直接对主存单元中的数据进行处理,其执行速度较慢。
2.以下关于CISC/RISC计算机的叙述中,不正确的是( )。
相比CISC,RISC计算机指精简指令集计算机,这种计算机有下列特点。
①指令系统中只包含使用频率较高但不复杂的指令。
②指令长度固定,指令格式少,寻址方式少。
③只有存取数指令访问主存,其他指令都在寄存器之间运算。
④大部分指令在一个机器周期内完成,采用流水技术。
⑤CPU中增加了通用寄存器的数量。
⑥硬联逻辑控制,不用微程序控制技术。
⑦采用优化的编译,以有效地支持高级语言。
3.以下关于精简指令集计算机(RISC)指令系统特点的叙述中,错误的是( 指令种类多,指令功能强 )。
RISC指令系统的最大特点是:
选取使用频率最高的一些简单指令,指令条数少:
指令长度固定,指令格式种类少;
只有取数/存数指令访问存储器,其余指令的操作都在奇存器之间进行。
4.以下关于CISC(Complex Instruction Set Computer,复杂指令集计算机)和RISC(Reduced Instruction Set Computer,精简指令集计算机)的叙述中,错误的是(在CISC中,复杂指令都采用硬布线逻辑来执行 )。
CISC的主要缺点如下:①微程序技术是CISC的重要支柱,每条复杂指令都要通过执行一段解释性微程序才能完成,这就需要多个CPU周期,从而降低了机器的处理速度;②指令系统过分庞大,从而使高级语言编译程序选择目标指令的范围很大,并使编译程序本身冗长而复杂,从而难以优化编译使之生成真正高效的目标代码;③CISC强调完善的中断控制,势必导致动作繁多,设计复杂,研制周期长;④CISC给芯片设计带来很多困难,使芯片种类增多,出错几率增大,成本提高而成品率降低。
RISC(Reduced Instruction Set Computer,精简指令集计算机)的基本思想是通过减少指令总数和简化指令功能,降低硬件设计的复杂度,使指令能单周期执行,并通过优化编译,提高指令的执行速度,采用硬线控制逻辑,优化编译程序。
实现RISC的关键技术有:①重叠寄存器窗口(overlapping register windows)技术,首先应用在伯克利的RISC项目中;②优化编译技术,RISC使用了大量的寄存器,如何合理分配寄存器、提高寄存器的使用效率,减少访存次数等,都应通过编译技术的优化来实现;③超流水及超标量技术,这是RISC为了进一步提高流水线速度而采用的新技术;④硬线逻辑与微程序相结合在微程序技术中。
5.RISC(精简指令系统计算机)的特点不包括(寻址方式尽量丰富,指令功能尽可能强 )。
寻址方式应该是少且简单,一般为2-3种;绝不出现存储器间接寻址方式。
流水线
1.设指令流水线将一指令的执行分为取指、分析、执行三段,已知取指时间是2ns,分析时间需2ns,执行时间为1ns,则执行完1000条指令所需时间为(2003ns )。
根据流水线执行时间计算公式:流水线执行时间=1条指令执行时间+(指令条数-1))流水线周期。
本题1条流水线执行时间为(2+2+1),指令条数为1000,流水线周期为其中(取指、分析、执行三段)最长的一段2ns,将相关参数代入公式可得:
流水线执行时间=(2+2+1)+(1000-1)2=2003,本题
2.通常可以将计算机系统中执行一条指令的过程分为取指令,分析和执行指令3步。若取指令时间为4△t,分析时间为2△t。执行时间为3△t,按顺序方式从头到尾执行完600条指令所需时间为(5400)△t;若按照执行第i条,分析第i+1条,读取第i+2条重叠的流水线方式执行指令,则从头到尾执行完600条指令所需时间为(2405)
按顺序方式执行时间为(4+2+3)△t600=5400△t流水线方式:单条指令所需时间+(n-1)(流水线周期),其中,流水线周期是指:指令分段执行中时间最长的一段。该题中时间最长的一段为4△t,所以流水线的周期为:4△t;所以该题按照流水线方式执行的的时间为:(4+2+3)△t+(600-1)4△t=2405△t
3.以下关于指令流水线性能度量的叙述中,错误的是( 流水线采用异步控制会明显提高其性能 )。
流水线的执行时间中,我们会发现流水线周期也就是最长的段会影响最终输出的时间,所以也称之为瓶颈时间。最大吞吐率是流水线周期的倒数,也就是说最大吞吐率取决于流水线中最慢一段所需的时间,A选项描述正确。
当指令各段时间不一样时,因为瓶颈时间的影响,中间会有一些等待时间,导致流水线的吞吐率不会达到最大,但指令各段时间一样时,流水线周期与其他段一致,流水线的普通吞吐率与流水线最大吞吐率相等了,此时流水线的效率才是最大化,也是加速比最大的情况。C选项描述正确。
加速比的计算在中级科目没有涉及到,这里理解为加速效果即可。加速比=顺序执行时间:流水线执行时间,当流水线执行时间越小,加速比越大,加速效果越好。
采用异步控制方式在给流水线提速的同时,会明显增加流水线阻塞的概率,所以不会明显提高整体性能。D选项描述错误。本题选择错误的说法,因此选择D选项。
4.某指令流水线由4段组成,各段所需要的时间如下图所示。连续输出8条指令时的吞吐率(单位时间内流水线所完成的任务数或输出的结果数)为( 8/28At )。
当流水线各段所经历的时间不一样时,吞吐率的计算公式为:
式中分子为指令数,本题为n=8;分母为流水线执行时间,根据理论公式:流水线执行时间计算=一条指令顺序执行时间+(n-1)*流水线周期
=(1△t+2△t+3△t+1△t)+(8-1)*3△t=28△t
综上可得,吞吐率TP=8/28△t,为C选项。【其中流水线周期为指令耗时最长的一段。】
5.下列关于流水线方式执行指令的叙述中,不正确的是( 流水线方式可提高单条指令的执行速度 )。
本题考查计算机系统硬件基础知识。要求选择不正确的叙述。其中A选项,流水线方式可提高单条指令的执行速度是不正确的,对于只有单条指令的情况下,流水线方式与顺序执行时没有区别。流水线的原理是在某一时刻可以让多个部件同时处理多条指令,避免各部件等待空闲,由此提高了各部件的利用率,也提高了系统的吞吐率。B、C、D描述正确。
6.流水线的吞吐率是指单位时间流水线处理的任务数,如果各段流水的操作时间不同,则流水线的吞吐率是(最长流水段操作时间 )的倒数。
本题考查计算机系统基础知识。流水线处理机在执行指令时,把执行过程分为若干个流水级,若各流水级需要的时间不同,则流水线必须选择各级中时间较大者为流水级的处理时间。
理想情况下,当流水线充满时,每一个流水级时间流水线输出一个结果。
流水线的吞吐率是指单位时间内流水线处理机输出的结果的数目,因此流水线的吞吐率为一个流水级时间的倒数,即最长流水级时间的倒数。
冯诺依曼结构和哈弗结构
1.以下关于冯诺依曼计算机的叙述中,不正确的是(程序指令总是存储在主存中,而数据则存储在高速缓存中 )。
在冯诺依曼结构中,程序指令和数据存在同一个存储器中。本题选择B选项,其他描述都是正确的。
程序指令和数据都采用二进制表示;程序的功能都由中央处理器(CPU)执行指令来实现;程序的执行过程由指令进行自动控制;
2.冯·诺伊曼结构也称普林斯顿结构,是一种将程序指令存储器和数据存储器合并在一起的存储器结构。
3.哈佛结构与冯·诺伊曼结构的区别是( 程序和数据存储方式不同 )。
哈佛结构和冯·诺伊曼结构都是计算机存储器结构,但哈佛结构是一种并行体系结构,将程序和数据分别存储在独立的存储器中,每个存储器独立编址、独立访问,而冯·诺伊曼结构将程序指令存储器和数据存储器合并在一起的结构。因此,选项C为正确答案
总线
1.假设某系统总线在一个总线周期中并行传输4个字节信息,一个总线周期占用2个是时钟周期,总线时钟频率为10MHZ,则总线带宽是( 20MB/s)。
总线带宽是指单位时间内总线上传输数据的位数,通常用每秒传送信息的字节数来衡量,单位为B/s。由题意可知,在1个总线周期(2个是时钟周期)内传输了4个字节信息,时钟周期=10MHz=0.1us,因此总线带宽为4B/(20.1us)=4B/(0.210^-6s)=20MB/s
2.计算机执行程序时,在一个指令周期的过程中,为了能够从内存中读指令操作码,首先是将( 程序计数器PC )的内容送到地址总线上。
计算机执行程序时,在一个指令周期的过程中,为了能够从内存中读指令操作码,首先是将程序计数器(PC)的内容送到地址总线上。
3.挂接在总线上的多个部件,( 只能分时向总线发送数据,但可同时从总线接收数据)。
本题考查考生对总线概念的理解。总线是一个大家都能使用的数据传输通道,大家都可以使用这个通道,但发送数据时,是采用的分时机制,而接收数据时可以同时接收,也就是说,同一个数据,可以并行的被多个客户收取。如果该数据不是传给自己的,数据包将被丢弃。
4.总线复用方式可以( 减少总线中信号线的数量 )。
总线复用,顾名思义就是一条总线实现多种功能。常见的总线复用方式有总线分时复用,它是指在不同时段利用总线上同一个信号线传送不同信号,例如,地址总线和数据总线共用一组信号线。采用这种方式的目的是减少总线数量,提高总线的利用率。
5.在32位的总线系统中,若时钟频率为1000MHz,总线上10个时钟周期传送一个32位字,则该总线系统的数据传送速率约为( 400 )MB/s。
因为时钟频率为1000MHz,所以1个时钟周期为(1/100OM)s,又知道10个时钟周期传送一个32位字(4B),则该总线系统的数据传送速率为4X1000MB/10=400MB。
加密技术和认证技术
1.数字签名采用( 非对称密码体制 )密码体制。
数字签名采用非对称密码体制(公钥密码体制),即发送者使用 私钥加密数据,接收者使用对应的公钥解密数据。
2.密钥管理主要包括哪些内容?( 密钥产生、密钥备份和恢复、密钥更新等 )
参考《软件设计师教程》第五版P43原话。
3.AES可以用( 128位 )分组加密和解密数据。
AES是一个迭代的、对称密钥分组的密码,它可以使用128、192和256位密钥,并且用128位(16字节)分组加密和解密数据。
4.非对称加密算法需要使用哪两个密钥?(公开密钥和私有密钥 )
参考《软件设计师教程》第五版P41原话。
5.DES是( 数据加密标准 )的简称
参考《软件设计师教程》第五版P41原话。
6.数据加密和数据解密是(逆过程 )。
参考《软件设计师教程》第五版P40原话。
7.
语言处理程序基础
词法分析、语法分析、语义分析
词法分析
词法分析是编译过程的第一个阶段,这个阶段的任务可以看成是-从左到右一个字符一个字符地读入源程序,从中识别出一个个“单词”符号,即对构成源程序的字符流进行扫描然后根据构词规则识别单词(也称单词符号或符号);
通过词法分析程序实现上述读入源程序,识别符号的任务,词法分析过程依据的是语言的词法规则;
输出:词法分析程序输出的“单词”常以二元组的方式输出,即单词种别和单词自身的值;
认识:词法, 定义组成语言的单词, 是语言中最小单元;
语法分析:
语法分析是编译过程的一个逻辑阶段,此阶段的任务是在词法分析的基础上将单词序列组合成各类语法短语,如“程序”,“语句”,“表达式”等等;
语法是用户数据与控制信息的结构与格式
认识:语法-- 将单子组织成有含义的短语和句子的规则,正如英语翻译中的语法;
语义分析(Syntax analysis)
语义分析是编译过程的一个逻辑阶段,语义是解释控制信息每个部分的意义,它规定了需要发出何种控制信息,以及完成的动作与做出什么样的响应,此阶段的任务是对结构上正确的源程序进行上下文有关性质的审查,进行类型审查;
收集类型信息供后面的代码生成阶段使用;
语义分析将审查类型并报告错误:不能在表达式中使用一个数组变量,赋值语句的右端和左端的类型不匹配;
认识:语义-- 结合上下文,可以推导出语句的真实含义,也就是我们输入中文之后翻译出来的英文含义,或输入英文,翻译出来的中文;
举例认识:
我现在要翻译一句话,如下图所示:
She’s very beautiful as a fairy girl.
词法分析:想要获取这句话的意思,那么首先我需要输入信息,系统进行一个个单词识别,也就是录入源程序,这属于词法分析;
语法分析:这句话录入程序,接下来系统就要进行识别每一个单词分别都是什么格式,英语语法的主谓宾、定状补,进而确定要翻译的语句的结构;
语义分析:获取了句子的单词,词性,接下来就是最后的输出阶段啦,语义分析,通过语义分析输出该翻译字句的中文含义:“她很漂亮宛如一个小仙女”;
1.以编译方式翻译C/C++源程序的过程中,( 语法分析 )阶段的主要任务是对各条语句的结构进行合法性分析。
语法分析的任务是在词法分析的基础上,根据语言的语法规则将单词符号序列分解成各类语法单位,如“表达式”“语句”和“程序”等。语法规则就是各类语法单位的构成规则,主要是针对结构的检查。
2.在对高级语言源程序进行编译或解释处理的过程中,需要不断收集、记录和使用源程序中一些相关符号的类型和特征等信息,并将其存入( 符号表 )中。
符号表在编译程序工作的过程中需要不断收集、记录和使用源程序中一些语法符号的类型和特征等相关信息。这些信息一般以表格形式存储于系统中。
哈希表是根据关键码值(Key value)而直接进行访问的数据结构。
堆栈是一种只能在一端进行插入和删除操作的特殊线性表,它按照后进先出的原则存储数据的数据结构。
队列允许在表的前端(front)进行删除操作,而在表的后端(rear)进行插入操作,和栈一样,队列是一种操作受限制的线性表。
3.在以阶段划分的编译器中,(词法分析 )阶段的主要作用是分析构成程序的字符及由字符按照构造规则构成的符号是否符合程序语言的规定。
在词法分析阶段,其任务是从左到右逐个字符地读入源程序,对构成源程序的字符流进行扫描和分解,从而识别出一个个单词(也称单词符号或符号)。这里所谓的单词是指逻辑上紧密相连的一组字符,这些字符组合在一起才表示某一含义。词法分析过程依据的是语言的词法规则,即描述“单词”分析构成程序的字符及由字符按照构造规则构成的符号是否符合程序语言的规定”是对单词的检查。
4.将编译器的工作过程划分为词法分析、语法分析、语义分析、中间代码生成、代码优化和目标代码生成时,语法分析阶段的输入是(记号流);若程序中的括号不配对,则会在(语法分析)阶段检查出该错误。
A选项记号流,词法分析的输出是记号流,也就是语法分析的输入,第一空选择A选项。
B选项字符流,在Java中,根据处理的数据单位不同,分为字节流和字符流。字符流是由字符组成的,例如File Reader、File Writer、Buffered Reader、Buffered Writer、 Input Stream Reader、 Output Stream Writer 等。与本题无关。
C选项源程序,词法分析的任务是把源程序的字符串转换成单词符号序列。
D选项分析树,如果没有语法错误,语法分析后就能正确的构造出其语法树。
括号不匹配是典型的语法错误,会在语法分析阶段检测出来。词法分析器的任务就是读入源程序,对其进行一定的切分,得到记号流。语义分析的任务是对结构上正确的源程序进行上下文有关性质的审查,进行类型审查。编译器需要将源代码转换为目标机器的指令集,这个过程叫作目标代码生成。
5.语法指导翻译是一种( 静态语义分析 )方法。
本题考查程序语言基础知识。翻译的任务:首先是语义分析和正确性检查,若正确,则翻译成中间代码或目标代码。其基本思想是,根据翻译的需要设置文法符号的属性,以描述语法结构的语义。例如,一个变量的属性有类型,层次,存储地址等。表达式的属性有类型,值等。属性值的计算和产生式相联系。随着语法分析的进行,执行属性值的计算,完成语义分析和翻译的任务。
动态语义分析指运行期间的语义问题,如0作为除数进行运算。
所谓代码优化是指对程序代码进行等价(指不改变程序的运行结果)变换。程序代码可以是中间代码(如四元式代码),也可以是目标代码。
6.乔姆斯基(Chomsky)将文法分为4种类型,程序设计语言的大多数语法现象可用其中的( 上下文无关文法 )描述。
上下文无关文法:形式语言理论中一种重要的变换文法,用来描述上下文无关语言,在乔姆斯基分层中称为2型文法。由于程序设计语言的语法基本上都是上下文无关文法,因此应用十分广泛。
7.编译过程中进行的语法分析主要是分析(程序语句的结构是否合法 )。
语法分析是编译过程的一个逻辑阶段。语法分析的任务是在词法分析的基础上将单词序列组合成各类语法短语,如“程序”,“语句”,“表达式”等等。语法分析程序判断源程序在结构上是否正确。源程序的结构由上下文无关文法描述。
表达式
1.表达式((a-b)(c+d)的后缀式(逆波兰式)是( ab-cd+ )。
根据表达式(a-b)(c+d),可以构造出语法树如下:
其后续遍历即其后缀表达式(逆波兰式)为ab-cd+,选择D选项。
语言
1.用C/C++语言为某个应用编写的程序,经过( 预处理、编译、汇编、链接 )后形成可执行程序。
2.
有限自动机
1.某有限自动机的状态转换图如下图所示,该自动机可识别( 1100 )。
A选项从s0出发,1001到达s1,没有到达终态s2,不能被自动机识别。
B选项从s0出发,1100成功到达终态s2,可以被自动机识别。本题选择B选项。
C选项从s0出发,1010到达s0,没有到达终态s2,不能被自动机识别。
D选项从s0出发,0101到达s1,没有到达终态s2,不能被自动机识别。
自动机可识别的条件:到达终态s2
2.下图所示为一个不确定有限自动机(NFA)的状态转换图,与该NFA等价的DFA是( )。
本题可以直接以实例方式排除错误选项。本题给出的NFA,能够识别字符串000,010等,以这两个字符串为例进行分析。
与之等价的DFA,也必须能够识别这样的串。A选项不能识别000,B选项不能识别010,D选项不能识别010。只有C选项能够同时识别这2个串,因此本题选择C选项。
3.下图所示为一个不确定有限自动机(NFA)的状态转换图。该NFA识别的字符串集合可用正规式( aba )描述。
本题考查有限自动机相关知识。根据图中展示,其正规式应以a开头,a结尾,b在中间可以出现0次或多次,所以是aba,答案为A。
4.双终态
11100
数据结构
树
1.设某二叉树采用二叉链表表示(即结点的两个指针分别指示左、右孩子)。当该二叉树包含k个结点时,其二叉链表结点中必有( k+1 )个空的孩子指针。
2.某树共有n个结点,其中所有分支结点的度为k(即每个非叶子结点的子树数目),则该树中叶子结点的个数为( [n(k-1)+1]/k )。
本题可以画一棵简单的树验证4个选项,比如,以2个结点的树来看:
结点总数n=2,非叶子结点的子树数目为k=1,叶子结点的个数应该为1,带入4个选项验证(n=2,k=1,验算表达式是否结果为1即可):
3.某二叉树的先序遍历序列为c a b f e d g,中序遍历序列为a b cd e f g,则该二叉树是( 平衡二叉树 )。
由图可知,该树不满足完全二叉树和满二叉树,并且,本题没有涉及权值概念,不属于最优二叉树(涉及权值)。在图中可以看到,这棵树满足平衡二叉树,因此选择C选项。
4.设有二叉排序树(或二叉查找树)如下图所示,建立该二叉树的关键码序列不可能是( )。
构造时,是按给出的关键字序列依次进行构造的。本题由于C序列,在构造过程中,关键字23出现时直接作为根结点,接着输入17,比较后作为左子树根结点,然后输入的是27,此时,27比较后作为右子树的根结点,与题干图示的位置不符,因此C选项错误。
5.某个二叉查找树(即二叉排序树)中进行查找时,效率最差的情形是该二叉查找树是( 单枝树 )。
单枝树时该二叉查找树效率最低。
图
1.n个顶点的有向完全图中含有向边的数目最多为(n(n-1))。
n个顶点的有向完全图中,每个顶点都向其他n-1个顶点发出一条弧,因此总的有向边的数目为n(n-1)。
2.以下关于图的遍历的叙述中,正确的是(使用队列对图进行广度优先遍历 )。
3.以下关于无向连通图G的叙述中,不正确的是( G中任意两个顶点之间均有边存在 )。
无向连通图不一定有边,但两个顶点之间有路径。
4.
栈
1.函数调用和返回控制是用( 栈 )实现的。
当有多个函数构成嵌套调用时(如:递归调用),按照“后调用先返回”的原则,函数之间的信息传递和控制转移可以用“栈”来实现。
数组、矩阵和广义表
1.(三元组顺序表和十字链表 )是对稀疏矩阵进行压缩存储的方式。
存储矩阵的一般方法是采用二维数组,其优点是可以随机地访问每一个元素,因而能够较容易地实现矩阵的各种运算。但对于稀疏矩阵而言,若用二维数组来表示,会重复存储很多个0,浪费空间,而且要花费时间来进行零元素的无效计算。所以必须考虑对稀疏矩阵进行压缩存储。稀疏矩阵的三元组表的顺序存储结构称为三元组顺序表,常用的三元组表的链式存储结构是十字链表。所以本题答案选B。
2.通过元素在存储空间中的相对位置来表示数据元素之间的逻辑关系,是( 顺序存储)的特点。
顺序存储时,通过元素在存储空间中的相对位置来表示数据元素之间的逻辑关系,元素的逻辑相对位置与物理相对位置是一致的。
链表存储:链表是一种物理存储单元上非连续、非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。
索引存储:分别存放数据元素和元素间关系的存储方式。
哈希存储:哈希存储的基本思想是以关键字Key为自变量,通过一定的函数关系(散列函数或哈希函数),计算出对应的函数值(哈希地址),以这个值作为数据元素的地址,并将数据元素存入到相应地址的存储单元中。
3.对于如下所示的有向图,其邻接矩阵是一个
根据邻接矩阵的定义,行列数都为结点个数,结点数为5,因此邻接矩阵行列数均为5,即5×5的矩阵。根据邻接表的定义,一个顶点的表结点个数为其邻接顶点的个数,顶点2有2个邻接顶点,顶点3有2个邻接顶点。
4.如图,
查找
1.二叉排序树中进行查找的效率与( 二叉排序树的深度 )有关。
二叉排序树的查找路径是自顶向下的,平均查找长度取决于树的高度。
2.对某有序表进行二分查找时,进行比较的关键字序列不可能是(90,85,61,77,42 )。
二分查找的前提是元素有序(一般是升序),基本思想是拿中间元素。A[m]与要查找的元素x进行比较,如果相等,则已经找到,如果A[m]比x大,那么要找的元素一定在A[m]前边(左边),如果A[m]比x小,那么要找的元素一定在A[m]后边(右边)。每进行一次查找,数组规模减半。反复将子数组规模减半,直到发现要查找的元素,或者当前子数组为空。选项C错在如果一个元素比61大,下一次可以跟77比较,但是77后面的元素是42,说明要查找的元素比77小,因此再次比较确实是跟42比,而题干已经表明这个元素大于61了,明显不合理。因此答案选C。
3.在线性表L中进行二分查找,要求L( 顺序存储,元素有序排列 )。
二分查找的前提条件是顺序存储,且有序排列。本题选择C选项。
4.对某有序顺序表进行折半查找时,( 45,30,18,25,10 )不可能构成查找过程中关键字的比较序列。
进行折半查找时,首先与表中间位置上的元素进行比较,若待查找的元素大于中间元素,则接下来在后半区(是比中间元素更大者组成的有序子表)进行折半查找,否则在前半区(是比中间元素更小者组成的有序子表)进行折半查找。二分查找过程可用二分查找判定树来描述,即大于中间元素时走右分支,小于中间元素时走左分支,等于时查找成功结束。
5.实现二分查找(折半查找)时,要求查找表( 顺序存储,关键词有序排列 )。
二分查找又称折半查找,优点是比较次数少,查找速度快,平均性能好;其缺点是要求待查表为有序表,且插入删除困难。因此,折半查找方法适用于不经常变动而查找频繁的有序列表。
二分查找算法要求:①必须采用顺序存储结构;②必须按关键字大小有序排列。
6.设散列表长m=14,散列函数为H(key)=key%11,表中仅有4个结点H(15)=4,H(38)=5,H(61)=6,H(84)=7,若使用线性探测法处理冲突,则关键字49存储的地址是(8 )。
【散列冲突处理方法】:
闭散列法:
在元素插入时遇到哈希冲突,我们可选择线性探查法处理冲突,还可以选择二次探查法处理冲突。
这里我们分析下线性探查法:
给出一组元素,它们的关键码为:37,25,14,36,49,68,57,11,散列表为HT[12],表的大小 m=12 ,假设采用Hash(key)= key % p ;(p=11)11是最接近m的质数,就有:
添加元素时,使用散列函数确定元素的插入位置,如果此空间有值:
①该值是所要插入元素的关键码,不进行插入。
②产生冲突,依次查看其后的下一个桶,如果发现空位置插入新元素
注意:
散列表的载荷因子:a = 插入元素个数 / 散列表的长度
a是散列表装满程度的标志因子。对于开放地址法,载荷因子非常重要,应严格限制在 0.7~0.8 以下。超过 0.8 ,查表时的CPU缓存按照指数曲线上升。
7.用哈希表存储元素时,需要进行冲突(碰撞)处理,冲突是指( 关键字不同的元素被映射到相同的存储位置 )。
本题考查数据结构相关基础知识。哈希法又称散列法、杂凑法以及关键字地址计算法等,相应的表称为哈希表。其基本思想:首先在元素的关键字K和元素的位置P之间建立一个对应关系f,使得P=f(K),其中f称为哈希函数。创建哈希表时,把关键字K的元素直接存入地址为f(K)的单元;查找关键字K的元素时利用哈希函数计算出该元素的存储位置P=f(K);当关键字集合很大时,关键字值不同的元素可能会映射到哈希表的同一地址上,即K1≠K2,但f(K1)=f(K2),这种现象称为hash冲突,实际冲突是不可避免的,只能通过改进哈希函数的性能来减少冲突。
8.
排序
1.对数组A=(2,8,7,1,3,5,6,4)用快速排序算法的划分方法进行一趟划分后得到的数组A为((2,3,1,4,7,5,6,8))(非递减排序,以最后一个元素为基准元素)。进行一趟划分的计算时间为(O(N))
(1)基准元素4与另一端待排第一个元素2进行比较,满足非递减,不需要交换;
(2)基准元素4与另一端待排第一个元素8进行比较,不满足非递减,交换位置,此时序列为(2,4,7,1,3, 5, 6, 8);
(3)基准元素4与另一端待排第一个元素6进行比较,满足非递减,不需要交换;
(4)基准元素4与另一端待排第一个元素5进行比较,满足非递减,不需要交换;
(5)基准元素4与另一端待排第一个元素3进行比较,不满足非递减,交换位置,此时序列为(2,3,7,1, 4, 5, 6, 8) ;
(6)基准元素4与另一端待排第一个元素7进行比较,不满足非递减,交换位置,此时序列为(2,3,4,1,7, 5, 6, 8);
(7)基准元素4与另一端待排第一个元素1进行比较,不满足非递减,交换位置,此时序列为(2,3,1,4,7,5,6,8)。
综上,本题第一空选择C选项。
因为一趟划分的过程会与整个序列n个元素进行比较,因此一趟划分的时间复杂度为O(n),第二空选择C选项。
2.对n个数排序,最坏情况下时间复杂度最低的算法是( 归并 )排序算法。
其他选项在最坏情况下的时间复杂度都是O(n^2)),只有C选项归并排序,在最坏情况下,时间复杂度仍然是O(nlgn)
3.对于n个关键字进行堆排序,最坏情况下的时间复杂度为(O(nlgn) )。
任何情况下堆排序的时间复杂度O(nlog2n)
4.以下不稳定的排序算法是( 希尔排序 )。
5.对一组数据进行排序,要求排序算法的时间复杂度为O(nlgn),且要求排序是稳定的,则可采用(归并排序)算法。若要求排序算法的时间复杂度为O(nlgn),且在原数据上进行,即空间复杂度为0(1),则可采用(堆排序)算法。
6.下列算法中,( 直接插入排序 )算法可能出现下列情况:在最后一趟开始之前,所有元素都不在最终位置上。
在直接插入排序中,若待排序中的最后一个元素插入表的第一个位置,则前面的有序子序列中的所有元素都不在最终位置上。
7.为实现快速排序算法,待排序列适合采用(顺序存储 )。
这道题当成一个常识题。大多数内部排序算法都只适用于顺序存储。
8.将数组{1,1,2,4,7,5}从小到大排序,若采用(插入)排序算法,则元素之间需要进行的比较次数最少,共需要进行(6)次元素之间的比较。
9.对一待排序序列分别进行直接插入排序和简单选择排序,若待排序序列中有两个元素的值相同,则( 直接插入排序 )保证这两个元素在排序前后的相对位置不变。
直接插入排序是稳定的排序算法,选择排序是不稳定的排序算法。
10.在某应用中,需要先排序一组大规模的记录,其关键字为整数。若这组记录的关键字基本上有序,则适宜采用(插入)排序算法。若这组记录的关键字的取值均在0到9之间(含),则适宜采用(计数)排序算法。
插入排序中的希尔排序的基本思想是:先将整个待排序的记录序列分割成为若干子序列分别进行直接插入排序,待整个序列中的记录“基本有序”时,再对全体记录进行依次直接插入排序。所以当数列基本有序时,采用插入排序算法是比较合适的。
计数排序是一个非基于比较的排序算法,该算法于1954年由Harold H.Seward提出。它的优势在于在对一定范围内的整数排序时,它的复杂度为O(n+k)(其中k是整数的范围),快于任何比较排序算法。
11.堆排序是一种(选择)排序,m个元素进行堆排序时,其时间复杂性为(O(mlog2m))
.堆排序是利用堆这一特殊的树形结构进行的选择排序,它有效地改进了直接选择排序,提高了算法的效率。堆排序的整个过程是:构造初始堆,将堆的根节点和最后一个节点交换,重新调整成堆,再交换,再调整,直到完成排序。其时间复杂度是O(nlog2n)。
12.下列排序算法中,占用辅助存储空间最多的是( 归并排序 )。
归并排序需要n个空间,
快速排序需要Ign个空间,
堆排序需要1个空间,
冒泡排序需要1个空间。
13.对于一个初始无序的关键字序列,在下面的排序方法中,(②③④⑤ )第一趟排序结束后,一定能将序列中的某个元素在最终有序序列中的位置确定下来。
①直接插入排序②冒泡排序③简单选择排序④堆排序⑤快速排序⑥归并排序
直接插入排序:是在有序序列中插入一个元素后,保持序列有序。排序时在插入最后一个元素之前,若待插入的元素小于有序序列的所有元素,则有序序列的所有元素需后移,因此,在第一趟排序结束后,不能保证将序列中的某个元素在最终有序序列中的位置确定下来。①不满足要求选择类排序:每一轮会选择最值(最大值或最小值)与第一个位置进行交换,此时确定第一个元素位置。③④都满足要求。
冒泡排序:每一轮会让最值相邻交换直至放到最终的位置,②满足要求。
快速排序:每一轮会根据基准元素划分左右数组,此时基准元素的位置可以确定,因此⑤也满足要求。
归并排序:以二路归并排序为例,是将两个有序子序列合并为一个有序序列,第一趟处理的对象是若干个有序子序列,归并后子序列个数会少一半,但是还不能确定任何一个元素在最终序列中的位置。⑥不满足要求。
因此只有②③④⑤满足要求,所以本题选择C选项。
操作系统
1.以下关于总线的叙述中,不正确的是( )。
单总线结构在一个总线上适应不同种类的设备,设计简单且性能很高(x)
在单总线结构中,CPU与主存之间、CPU与I/O设备之间、I/O设备与主存之间、各种设备之间都通过系统总线交换信息。单总线结构的优点是控制简单方便,扩充方便。但由于所有设备部件均挂在单一总线上,使这种结构只能分时工作,即同一时刻只能在两个设备之间传送数据,这就使系统总体数据传输的效率和速度受到限制,这是单总线结构的主要缺点
2.化简:我们再来看资源分配图如何化简,化简的方法是:先看系统还剩下多少资源没分配,再看有哪些进程是不阻塞(“不阻塞”即:系统有足够的空闲资源分配给它)的,接着把不阻塞的进程的所有边都去掉,形成一个孤立的点,再把系统分配给这个进程的资源回收回来,这样,系统剩余的空闲资源便多了起来,接着又去看看剩下的进程有哪些是不阻塞的,然后又把它们逐个变成孤立的点。最后,所有的资源和进程都变成孤立的点。这样的图就叫做“可完全简化”。图中P3是不阻塞的,故P3为化简图的开始,把P3孤立,再回收分配给他的资源,可以看到P1也变为不阻塞节点了,故P3、P1、P2是可以的。答案分别为C、B。
3.计算 内存按字节编址从B3000H到DABFFH的区域其存储容量为( )。
(DABFFH+1)-B3000H=27C00H转换成10进行等于162816/1024=159KB
存储管理
1.某文件管理系统在磁盘上建立了位示图(bitmap),记录磁盘的使用情况。若磁盘上物理块的编号依次为:0、1、2、……;系统中的字长为32位,位示图中字的编号依次为:0、1、2、.,每个字中的一个二进制位对应文件存储器上的一个物理块,取值0和1分别表示物理块是空闲或占用。假设操作系统将2053号物理块分配给某文件,那么该物理块的使用情况在位示图中编号为( 64 )的字中描述。
2053号物理块是第2054块物理块,每一个字可以表示32个物理块的存储情况,2054/32=64.………6,比64个字多6位,因此,此时应该排在第65个字,从0号开始编号,则为第64号字。
2.某操作系统采用分页存储管理方式,下图给出了进程A和进程B的页表结构。如果物理页的大小为1K字节,那么进程A中逻辑地址为1024(十进制)的变量存放在(3)号物理内存页中。
逻辑地址是逻辑页号+页内地址(都是用二进制来表示的),页内地址是题目所给出的1K,为2^10,说明页内地址占用10位。
物理地址是物理页号+页内地址(都是用二进制来表示的),页内地址和逻辑地址的大小相同。
在这里,逻辑地址是1024,即2^10,转换为2进制为:10000000000。那么,根据页内地址占10位,剩余的1即是它的逻辑页号。查找页表,1对应的物理页号是3,所以选择B。
3.某计算机系统页面大小为4K,进程的页面变换表如下所示。若进程的逻辑地址为2D16H。该地址经过变换后,其物理地址应为( 4D16H )。
页面大小为4K,说明页内地址有12位,所以16进制数中的D16H是页内地址,逻辑页号则为2。查表可知物理块号为4,所以物理地址为4D16H。
4.某字长为32位的计算机的文件管理系统采用位示图(bitmap)记录磁盘的使用情况。若磁盘的容量为300GB,物理块的大小为1MB,那么位示图的大小为( 9600)个字。
磁盘的容量为300GB,物理块的大小为1MB,则磁盘共300×1024/1个物理块,字长为32位,则位示图的大小为300×1024/(32)=9600个字。
5.虚拟存储管理系统的基础是程序的(局部性)理论,这个理论的基本含义是指程序执行时往往会不均匀地访问主存储器单元。根据这个理论,Denning提出了工作集理论。工作集是进程运行时被频繁访问的页面集合。在进程运行时,如果它的工作集页面都在(主存储器)内,能够使该进程有效地运行,否则会出现频繁的页面调入/调出现象。
虚拟存储管理系统的基础是程序的局部性理论。这个理论的基本含义是指程序执行时,往往会不均匀地访问内存储器,即有些存储区被频繁访问,有些则少有问津。程序的局部性表现在时间局部性和空间局部性上。时间局部性是指最近被访问的存储单元可能马上又要被访问。例如程序中的循环体,一些计数变量,累加变量,堆栈等都具有时间局部性特点。空间局部性是指马上被访问的存储单元,其相邻或附近单元也可能马上被访问。例如一段顺序执行的程序,数组的顺序处理等都具有空间局部性特点。
根据程序的局部性理论,Denning提出了工作集理论。工作集是指进程运行时被频繁访问的页面集合。显然,在进程运行时,如果能保证它的工作集页面都在主存储器内,就会大大减少进程的缺页次数,使进程高效地运行;否则将会因某些工作页面不在内存而出现频繁的页面调入/调出现象,造成系统性能急剧下降,严重时会出现“抖动"现象。
6.某系统采用请求页式存储管理方案,假设某进程有6个页面,系统给该进程分配了4个存储块,其页面变换表如下表所示,表中的状态位等于1和0分别表示页面在内存或不在内存。当该进程访问的第3号页面不在内存时,应该淘汰表中页面号为( 4 )的页面。
访问位修改位00 > 01 > 10 > 11
请求页式存储管理方案中,当访问的页面不在内存时需要置换页面,最先置换访问位和修改位为00的,其次是访问位和修改位为01的,之后是访问位和修改位为10,最后才置换访问位和修改位为11的。因此,本题当该进程访问的页面3不在内存时,应该淘汰表中页号为4的页面。
7.虚拟存储技术是指( 补充内存逻辑空间的技术 )。
虚拟存储技术并未实际扩充内存、外存,而是采用相关技术相对地扩充主存。
8.下列关于虚拟存储器的叙述中,正确的是 ( 虚拟存储器只能基于非连续分配技术)。
装入程序时,只将程序的一部分装入内存,而将其余部分留在外存,就可以启动程序执行。采用连续分配方式时,会使相当一部分内存空间都处于暂时或“永久”的空闲状态,造成内存资源的严重浪费,也无法从逻辑上扩大内存容量,因此虚拟内存的实现只能建立在离散分配的内存管理的基础上。有以下3种方式实现:请求分页存储管理、请求分段存储管理、请求段页式存储管理。虚拟存储器容量既不受外存容量限制,又不受内存容量限制,而是由CPU的寻址范围决定。选B。
9.在某计算机中,假设某程序的COPY指令跨两个页面,且源地址A和目标地址B所涉及的区域也跨两个页面,如下图所示。
若地址为A和B的操作数均不在内存,计算机执行COPY指令时,系统将产生(4)次缺页中断;若系统产生3次缺页中断,那么该程序有(3)个页面在内存。
内存操作数:指令要操作的数据存放在内存某些单元中,指令中给出内存单元物理地址(实际上指令只给出了偏移地址,段地址采用隐含方式给出,也可以使用跨段方式指出当前段地址)
从图中可以看到,程序的COPY指令跨两个页面,且源地址A和目标地址B所涉及的区域也跨两个页面页内地址,这时,如果2、3、4和5号页面不在内存,系统执行“COPYATO B”指令时,取地址为A的操作数。由于该操作数不在内存且跨两个页面2、3,需要将2、3页面装入内存,所以产生两次缺页中断。同理,取地址为B的操作数,由于该操作数不在内存且跨两个页面4和5,需要将4和5页面装入内存,所以产生两次缺页中断,共产生4次缺页中断。故例题空(1)的正确答案为C。
同理,如果1、2、3号页面不在内存,系统执行“COPYATOB”指令时,由于程序的COPY指令跨两个页面,当取出指令分析是多字节的,那么系统将产生一次缺页中断取指令的后半部分;当取地址为A的操作数,由于该操作数不在内存,且跨两个页面2和3,需要将2和3页面装入内存,所以产生两次缺页中断,共产生3次缺页中断。故例题空(2)的正确答案为B。
10.分页存储管理的存储保护是通过(页表/页表寄存器 )完成的。
页表是记录页在主存中位置信息和页属性信息的数据结构,可以用于实现进程之间及进程与操作系统之间的地址空间隔离和存储访问保护。
设备管理
1.I/O设备管理软件一般分为4个层次,如下图所示。图中①②③分别对应( 与设备无关的系统软件、设备驱动程序、中断处理程序 )。
与设备无关的系统软件、设备驱动程序、中断处理程序
2.( 设备管理 )是操作系统中最繁杂而且与硬件紧密相关的部分。
参考《软件设计师教程》第5版 P216 原话。
3.通道对 CPU 的请求形式是( 中断 )。
引入通道的目的是使数据的传输独立于CPU,使CPU从烦琐的I/O工作中解脱出来。设置通道后,CPU只需向通道发出I/O命令,通道收到命令后,从主存中取出本次I/O要执行的通道程序并执行,仅当通道完成了I/O任务后才向CPU发出中断信号。
4.在设备管理中,缓冲技术主要用于( 提高设备利用率)。
操作系统中以缓冲方式实现设备的输入/输出操作主要是缓解处理机与设备之间速度不匹配的矛盾,并减少对CPU的I/O中断次数从而提高资源利用率和系统效率,解决CPU与外部设备之间速度的不匹配。
5.磁盘机属于( 存储型设备 )。
磁盘机属于计算机中的存储设备,通常用来存储大量的数据文件和操作系统等核心组件,而不仅仅是用于输入输出。因此,磁盘机是一种存储型设备。
6.当进程请求读磁盘时,操作系统(先进行移臂调度,再进行旋转调度)。假设磁盘每磁道有10个扇区,移动臂位于18号柱面上,且进程的请求序列如表1所示。那么,最省时间的响应序列为(⑥⑦⑧①⑤②③④)
磁盘调度分为移臂调度和旋转调度两类,并且是先进行移臂调度,然后再进行旋转调度。由于访问磁盘最耗时的是寻道时间,因此,磁盘调度的目标应是使磁盘的平均寻道时间最少。
为存取磁盘上的一个物理记录,必须给出三个参数:柱面号、磁头号(盘面号)和扇区号。磁盘机根据柱面号控制移动臂作径向运动,带动读写头到达所需的柱面;从磁头号可确定哪一个磁头来读写数据,然后便等待访问的信息块旋转到读写头下时进行存取。
磁盘机实现这些功能的操作是:查找(将读写头定位到指定柱面并选择指定磁头)、搜索(指定磁头寻找访问的记录块)、读、写和控制等。
当移动臂定位后,有多个进程等待访问该柱面时,应当如何决定这些进程的访问顺序?这就是旋转调度要考虑的问题。显然系统应该选择延迟时间最短的进程执行。当有若干等待进程请求访问磁盘上的信息时,旋转调度应考虑如下情况。
(1)进程请求访问的是同一磁道上的不同编号的扇区。
(2)进程请求访问的是不同磁道上的不同编号的扇区。
(3)进程请求访问的是不同磁道上具有相同编号的扇区。
对于(1)与(2),旋转调度总是让首先到达读写磁头位置下的扇区先进行传送操作:对于(3),旋转调度可以任选一个读写碰头位置下的扇区进行传送操作。
选项A所花费的移动磁臂的总和为(20-18)+(20-20)+(40-20)+(40-15)+(15-15)+(15-15)+(15-8)+(8-5)=56。
选项B所花费的移动磁臂的总和为(18-6)+(8-6)-(15-8)+(15-15)+(15-15)+(20-15)+(20-20)+(40-20)=46。
选项C所花费的移动磁臂的总和为(18-15)+(15-15)+(15-15)+(15-8)+(8-6)+(20-6)(40-20)+(40-20)=66。
选项D所花费的移动磁臂的总和为(18-6)+(8-6)+(15-8)+(15-15)+(15-15)+(20-15)+(20-20)+(40-20)=46。
由于选项B和选项D的移臂总量都相等,所以T要计算读写操作(旋转延迟或等待时间)所花费的时间,但实际上只要计算相同柱面的即可。
选项B所花费的读写操作的时间:15号柱面先访问的是请求序列①(磁头8,扇区9)→请求序列⑤(磁头8,扇区4)→请求序列⑧(磁头10,扇区4);20号柱面先访问的是请求序列②(磁头6,扇区3)→请求序列③(磁头9,扇区6)。需要旋转4圈才可完成。
选项D所花费的读写操作的时间:15号柱面先访问的是请求序列⑧(磁头10,扇区4)→请求序列①(磁头8,扇区9)→请求序列⑤(磁头8,扇区4);20号柱面先访问的是请求序列②(磁头6,扇区3)→请求序列③(磁头9,扇区6)。需要旋转3圈才可完成。
文件管理
1.某文件系统采用索引节点管理,其磁盘索引块和磁盘数据块大小均为1KB字节且每个文件索引节点有8个地址项iaddr[O]-iaddr[7],每个地址项大小为4字节,其中iaddr[O]~iaddr[4]采用直接地址索引,iaddr[5]和iaddr[6]采用一级间接地址索引,iaddr[7]采用二级间接地址索引。若用户要访问文件userA中逻辑块号为4和5的信息,则系统应分别采用(直接地址访问和一级间接地址访问),该文件系统可表示的单个文件最大长度是(66053)KB
每个索引盘大小为1KB,地址项大小为4B,故每个索引盘有(1KB/4B)=256个索引。
一级间接索引有2个盘块,共有512个索引,对应512个逻辑盘块。
其中7号节点为二级间接索引,共有256*256=65536个索引,对应65536个逻辑盘块。
单个文件最大为:(5+512+65536)*1KB=66053KB。
2.某操作系统文件管理采用索引节点法。每个文件的索引节点有8个地址项,每个地址项大小为4字节,其中5个地址项为直接地址索引,2个地址项是一级间接地址索引,1个地址项是二级间接地址索引,磁盘索引块和磁盘数据块大小均为1KB。若要访问文件的逻辑块号分别为1和518,则系统应分别采用( 直接地址索引和二级间接地址索引 )。
每个物理块大小为1KB,每个地址项大小为4B,因此每个物理块可以对应地址项个数为:1KB/4B=256。
直接索引即索引直接指向物理块,可以表示逻辑块号范围:0-4号一级索引即索引节点指向的物理块用来存放地址项,可以表示256个地址项,即256个物理块,可以表示逻辑地址块号范围:5-260,261-516号二级索引即索引节点指向的物理块,存放的是一级索引的地址块地址,一共有256个地址块用来存放一级索引,每个块可以存放256个地址项,共有2562=65536个地址项,因此可以表示的逻辑块号范围:517~66052号
3.在Linux中,要更改一个文件的权限设置可使用(chmod )命令。
修改linux文件权限命令:chmod。
attrib指令用于修改文件的属性;
Modify指最后一次修改数据的时间;
chage命令可用来更改用户密码到期信息;
4.下面关于Linux目录的描述中,正确的是(Linux中只有一个根目录,用“/”表示 )。
5.在Windows操作系统中,当用户双击“IMG_20160122_103.jpg”文件名时,系统会自动通过建立的( 文件关联 )来决定使用什么程序打开该图像文件。
当用户双击一个文件名时,Windows系统通过建立的文件关联来决定使用什么程序打开该文件。例如系统建立了“记事本”或“写字板”程序打开扩展名为.TXT的文件关联,那么当用户双击Wang.TXT文件时,Windows先执行“记事本”或“写字板”程序,然后打开Wang.TXT文件。
作业管理
1.下列( 显示效果好 )不是字符用户界面的优点。
参考《软件设计师教程》第5版 P238 原话。
2.( 用户界面 )是计算机中实现用户与计算机通信的软/硬件部分的总称。
参考《软件设计师教程》第5版 P238 原话。
3.作业在系统中存在与否的唯一标志是( 作业控制块 )。
所谓作业控制块(JCB),是记录与该作业有关的各种信息的登记表。JCB是作业存在的唯一标志,包括用户名、作业名和状态标志等信息。
4.作业调度的关键在于(选择恰当的作业调度算法 )。
作业调度是指计算机系统如何按照一定的算法从众多用户提交的作业中选出待执行的作业,并为它们分配计算机系统的资源以执行。而选择合适的作业调度算法可以优化系统资源的利用效率,提高系统的性能。因此,选择恰当的作业调度算法是作业调度的关键。
5.
软件工程基础知识
快速原型模型不能节约开发成本。
软件过程模型
1.CMM是对软件组织( 进化)阶段的描述,随着软件组织定义、实施、测量、控制和改进其软件过程,软件组织的能力经过这些阶段逐步提高。
2.瀑布模型是以( 文档 )作为驱动、适合于软件需求很明确的软件项目的模型。
瀑布模型是以文档作为驱动的,强调开发的每个阶段必须有明确的文档输出作为下一个阶段的输入。因此,答案选A。
3.软件过程模型的基本概念:软件过程是制作软件产品的一组活动以及结果,这些活动主要由软件人员来完成,软件活动主要有:
(1)软件描述。必须定义软件功能以及使用的限制。
(2)软件开发。也就是软件的设计和实现,软件工程人员制作出能满足描述的软件。
(3)软件有效性验证。软件必须经过严格的验证,以保证能够满足客户的需求。
(4)软件进化。软件随着客户需求的变化不断地改进。瀑布模型的特点是因果关系紧密相连,前一个阶段工作的结果是后一个阶段工作的输入。或者说,每一个阶段都是建筑在前一个阶段正确结果之上,前一个阶段的错漏会隐蔽地带到后一个阶段。这种错误有时甚至可能是灾难性的。因此每一个阶段工作完成后,都要进行审查和确认,这是非常重要的。历史上,瀑布模型起到了重要作用,它的出现有利于人员的组织管理,有利于软件开发方法和工具的研究。
4.( 很容易将客户需求划分为多个增量 )不是增量式开发的优势。
5.以下关于增量开发模型的叙述中,不正确的是(有利于进行好的模块划分 )。
在利用增量模型进行开发时,如何进行模块的划分往往是难点所在,而不是这种模型的优点。
6.以下关于增量模型的叙述中,正确的是(可以快速构造核心产品 )。
每个增量必须要进行风险评估(x)
增量模型融合了瀑布模型的基本成分(重复应用)和原型实现的迭代特征,该模型采用随着日程时间的进展而交错的线性序列,每一个线性序列产生软件的一个可发布的“增量”。当使用增量模型时,第1个增量往往是核心的产品,即第1个增量实现了基本的需求,但很多补充的特征还没有发布。客户对每一个增量的使用和评估都作为下一个增量发布的新特征和功能,这个过程在每一个增量发布后不断重复,直到产生了最终的完善产品。
7.以下关于系统原型的叙述中,不正确的是( 可以用来指导代码优化)。
①原型方法适用于用户需求不清、需求经常变化的情况,可以帮助导出系统需求并验证需求的有效性;
②探索型原型的目的是弄清目标的要求,确定所希望的特性,并探讨多种方案的可行性,可以用来探索特殊的软件解决方案;
③原型法能够迅速地开发出一个让用户看得见的系统框架,可以用来支持用户界面设计。
原型法不能用来指导代码优化。
8.为了有效地捕获系统需求,应采用( 原型模型 )。
V模型是瀑布模型的变种,它说明测试活动是如何与分析和设计相联系的。
原型模型允许开发人员快速地构造整个系统或系统的一部分以理解或澄清问题。原型的用途是获知用户的真正需求,因此原型模型可以有效地引发系统需求。
螺旋模型把开发活动和风险管理结合起来,以将风险减到最小并控制风险。
9.软件开发模型是指软件开发全部过程、活动和任务的框架。(原型模型 )以软件产品的样品为基础,通过用户与开发者双向沟通,不断改进,反复迭代,逐步得到正式交付的软件产品。此模型适用于用户需求模糊或随时间变化的系统。
B原型模型以软件产品的样品(原型)为基础,通过用户与开发者双向沟通,不断改进,反复迭代,逐步得到正式交付的软件产品,适用于用户需求模糊或随时间变化的系统。
C增量模型增量模型是把待开发的软件系统模块化,将每个模块作为一个增量组件,从而分批次地分析、设计、编码和测试这些增量组件。运用增量模型的软件开发过程是递增式的过程。相对于瀑布模型而言,采用增量模型进行开发,开发人员不需要一次性地把整个软件产品提交给用户,而是可以分批次进行提交,适合于需求不明确的项目。
D螺旋模型是瀑布模型+原型模型的结合方式,适合于大型复杂的项目,并加入风险分析。
10.某开发小组欲开发一个超大规模软件:使用通信卫星,在订阅者中提供、监视和控制移动电话通信,则最不适宜采用( 瀑布 )过程模型。
需要开发的是大型软件系统,大型软件系统的需求往往难以在前期确定,所以瀑布模型最不适合。
11.某公司计划开发一种产品,技术含量很高,与客户相关的风险也很多,则最适于采用( 螺旋模型 )开发过程模型。
螺旋模型。综合了瀑布模型和原型模型中的演化模型的优点,还增加了风险分析,特别适用于庞大而复杂的、高风险的管理信息系统的开发。
需求分析
1.数据流图中某个加工的一组动作依赖于多个逻辑条件的取值,则用( 决策树 )能够清楚地表示复杂的条件组合与应做的动作之间的对应关系。
①结构化语言:形式语言精确,但不易被理解,自然语言易理解,但它不精确,可能产生二义性。结构化语言取长补短,它是在自然语言基础上加了一些限定,使用有限的词汇和有限的语句来描述加工逻辑,结构化语言是介于自然语言(英语或汉语)和形式化语言之间的一种半形式化语言。
②程序流程图:描述模块或程序执行过程的历史最久、流行最广的一种图形表示方法。
③NS图:是支持结构化程序设计方法而产生的一种描述工具。
④决策树:一种适合于描述加工中具有多个策略且每个策略和若干条件有关的逻辑功能的图形工具。
2.某航空公司拟开发一个机票预订系统,旅客预订机票时使用信用卡付款。付款通过信用卡公司的信用卡管理系统提供的接口实现。若采用数据流图建立需求模型,则信用卡管理系统是( 外部实体 )。
3.结构化分析方法中,数据流图中的元素在( 数据字典 )中进行定义。
4.某零件厂商的信息系统中,一个基本加工根据客户类型、订单金额、客户信用等信息的不同采取不同的行为,此时最适宜采用(判定表 )来描述该加工规格说明。
判定表对于有大量判断的加工能很清楚地进行分解。
自然语言和其他程序设计语言是在实现过程中应用。
流程图是在描述流程时使用,在描述加工时不适用。
5.以下关于需求陈述的描述中,( 在良好的需求陈述中,所有需求都应被视为同等重要 )是不正确的。
需求是应该分优先等级的,不能把所有需求都视为同等重要。
6.某企业财务系统的需求中,属于功能需求的是( 每个月特定的时间发放员工工资√ 每个月特定的时间发放员工工资× 系统的计算精度符合财务规则的要求× 系统可以允许100个用户同时查询自己的工资× )。
7.软件开发过程中,需求分析阶段的输出不包括(软件体系结构图 )。
其他三项均为需求分析阶段确定。软件体系结构图是设计阶段的产物。
系统设计
1.已知模块A给模块B传递数据结构X,则这两个模块的耦合类型为( 标记耦合 )。
数据耦合:一个模块访问另一个模块时,彼此之间是通过简单数据参数(不是控制参数、公共数据结构或外部变量)来交换输入、输出信息的。
公共耦合:若一组模块都访问同一个公共数据环境,则它们之间的耦合就称为公共耦合。公共的数据环境可以是全局数据结构、共享的通信区、内存的公共覆盖区等。
外部耦合:一组模块都访问同一全局简单变量而不是同一全局数据结构,而且不是通过参数表传递该全局变量的信息,则称之为外部耦合。
标记耦合:一组模块通过参数表传递记录信息,就是标记耦合。这个记录是某一数据结构的子结构,而不是简单变量。本题描述的是标记耦合。
2.以下关于模块化设计的叙述中,不正确的是( 模块的控制范围在其作用范围内 )。
B应该是模块的作用范围应在控制范围之内。
3.耦合是模块之间的相对独立性(互相连接的紧密程度)的度量。耦合程度不取决于( 模块提供的功能数 )。
本题考查软件设计的相关知识。耦合性也叫块间联系。指软件系统结构中各模块间相互联系紧密程度的一种度量。模块之间联系越紧密,其耦合性就越强,模块之间越独立则越差,模块间耦合的高低取决于模块间接口的复杂性,调用的方式以及传递的信息。
4.模块A、B和C有相同的程序块,块内的语句之间没有任何联系,现把该程序块取出来,形成新的模块D,则模块D的内聚类型为
巧合内聚就是偶然内聚。偶然内聚由于内容都是不相关的,所以必然导致它与外界多个模块有关联,这也使得模块间的耦合度增加。
5.某模块中有两个处理A和B,分别对数据结构X写数据和读数据,则该模块的内聚类型为( 通信 )内聚。
如果一个模块的所有成分都操作同一数据集或生成同一数据集,则称为通信内聚。本题为通信内聚。
逻辑聚合:模块内部的各个组成在逻辑上具有相似的处理动作,但功能用途上彼此无关。
过程聚合:模块内部各个组成部分所要完成的动作虽然没有关系,但必须按特定的次序执行。
内容耦合:一个模块需要涉及另一个模块的内部信息。
6.某模块实现两个功能:向某个数据结构区域写数据和从该区域读数据。该模块的内聚类型为(通信 )内聚。
7.以下关于软件设计原则的叙述中,不正确的是( 模块规模越小越好 )。
软件设计原则始终强调高内聚、低耦合的设计原则。
具体包括:
①保持模块的大小适中(C选项错误:模块规模越小越好)
②尽可能减少调用的深度(A、B选项正确:将系统划分为相对独立的模块、将系统划分为相对独立的模块)
③多扇入,少扇出。(D选项正确:模块的扇入系数和扇出系数合理)
④单入口,单出口
⑤模块的作用域应该在模块之内
⑥功能应该是可以被预测的。
8.优化模块结构时,(只根据模块功能确定规模大小 )不是适当的处理方法。
不能只看模块本身功能,还要看模块之间的关系确定规模大小。
模块的独立性要强;模块的大小的设计不能过大也不能过小,设计的出发点应是保证功能划分的合理性。
9.( 提高系统的运行效率 )不是采用MVC(模型-视图-控制器)体系结构进行软件系统开发的优点。
MVC是分层架构风格的一种,采用关注点分离的方针,将可视化界面呈现(View)、UI处理逻辑(Controller)和业务逻辑(Model)三者分离出来,并且利用合理的交互方针将它们之间的依赖降至最低。解耦之后,有利于代码重用、提高系统的可维护性,也可提高系统的开发效率,但是由于分层之后,调用也需要分层调用,所以不能提高系统的运行效率。
10.模块A、B和C都包含相同的5个语句,这些语句之间没有联系。为了避免重复把这5个语句抽取出来组成一个模块D,则模块D的内聚类型为( 巧合)内聚。
偶然内聚(巧合内聚):完成一组没有关系或松散关系的任务。
11.在设计软件的模块结构时,(模块的功能越单纯越好 )不能改进设计质量。
12.模块A直接访问模块B的内部数据,则模块A和模块B的耦合类型为( 内容耦合 )。
耦合是指两个或两个以上的模块相互依赖于对方的一个量度。它可以分为非直接耦合、数据耦合、标记耦合、控制耦合、外部耦合、公共耦合及内容耦合等。
当一个模块直接修改或操作另一个模块的数据或者直接转入另一个模块时,就发生了内容耦合。所以本题的答案选D。
13.结构化开发方法中,( 过程设计 )主要包含对数据结构和算法的设计。
数据结构跟算法是系统的基础,是过程设计确定的任务。
体系结构设计:定义软件系统各主要部件之间的关系。
数据设计:基于E-R图确定软件涉及的文件系统的结构及数据库的表结构。
接口设计(人机界面设计):软件内部,软件和操作系统间以及软件和人之间如何通信。
过程设计:系统结构部件转换成软件的过程描述。确定软件各个组成部分内的算法及内部数据结构,并选定某种过程的表达形式来描述各种算法。
14.在进行子系统结构设计时,需要确定划分后的子系统模块结构,并画出模块结构图。该过程不需要考虑( 每个子系统采用何种数据结构和核心算法 )。
系统模块结构设计的任务是确定划分后的子系统的模块结构,并画出模块结构图,这个过程中必须考虑这样几个问题:每个子系统如何划分成若干个模块;如何确定子系统之间、模块之间传送的数据及其调用关系;如何评价并改进模块结构的质量;如何从数据流图导出模块结构图。
系统测试
1.系统测试
本题考查软件测试的相关知识。判定覆盖是设计足够多的测试用例,使得程序中的每一个判断至少获得一次“真”和一次“假”,即使得程序流程图中的每一个真假分支至少被执行一次。根据题意,只需2个测试用例即可;根据环路复杂度的计算公式V(G)=m-n+2=11-10+2=3。
2.对下图所示的程序流程图进行语句覆盖测试和路径覆盖测试,至少需要()个测试用例。采用McCabe度量法计算其环路复杂度为()
语句覆盖。被测程序的每个语句至少执行一次。是一种很弱的覆盖标准。
路径覆盖。覆盖所有可能的路径。图中不同的路径共有4条:
要满足语句覆盖的要求,只需要覆盖两条路径就能达到,所以语句覆盖2个用例即可。路径覆盖需要把程序中的4条路径均覆盖一遍,需要4个用例。
McCabe度量法先画出程序图,然后采用公式V(G)=m-n+2计算环路复杂度,其中m是有向弧的数量,n是结点的数量。
整个程序流程图转化为结点图之后,一共11个结点,13条边,根据环路复杂度公式有:13-11+2=4。
3.
三明治方式:这种策略的优点是自顶向下与自底向上两种方式优点的综合。所以可以较早地验证了主要的控制和判断点且较早地验证底层模块。同时由于可以两端向中间发展,所以效率也是比较高的,且运用一定的技巧,能够减少了桩模块和驱动模块的开发。所以本题的问题本身存在不严谨的现象。在选择答案时,由于“较少的驱动模块和桩模块的编写工作量”条款需要运用一定技巧,并非一定会减少,所以选其相对更合适。
4.自底向上的集成测试策略的优点包括( 不需要写桩程序 )。
自顶向下集成
优点:较早地验证了主要控制和判断点;按深度优先可以首先实现和验证一个完整的软件功能;功能较早证实,带来信心;只需一个驱动,减少驱动器开发的费用;支持故障隔离。
缺点:柱的开发量大;底层验证被推迟;底层组件测试不充分。
适应于产品控制结构比较清晰和稳定;高层接口变化较小;底层接囗未定义或经常可能被修改;产品的主要控制组件具有较大的技术风险,需要尽早被验证;希望尽早能看到产品的系统功能行为。
自底向上集成
优点:对底层组件行为较早验证;工作最初可以并行集成,比自顶向下效率高;减少了桩的工作量;支持故障隔离。
缺点:驱动的开发工作量大;对高层的验证被推迟,设计上的错误不能被及时发现。
适应于底层接囗比较稳定;高层接囗变化比较频繁;底层组件较早被完成。
5.采用白盒测试方法对下图进行测试,设计了4个测试用例:①(×=0,y=3),②(x=1,y=2),③(x=-1,y=2),④(x=3,y=1)。至少需要测试用例①②才能完成(语句)覆盖,至少需要测试用例①②③或①②④才能完成(路径)覆盖。
语句覆盖(Statement Coverage)又称行覆盖(LineCoverage),段覆盖(Segment Coverage),基本块覆盖(Basic Block Coverage),这是最常用也是最常见的一种覆盖方式,就是度量被测代码中每个可执行语句是否被执行到了,只管覆盖代码中的执行语句,却不考虑各种分支的组合等等。
路径覆盖的含义是,选取足够多的测试数据,使程序的每条可能路径都至少执行一次(如果程序图中有环,则要求每个环至少经过一次)。
6.某商场的销售系统所使用的信用卡公司信息系统的数据格式发生了更改,因此对该销售系统进行的修改属于( 适应性 )维护。
在系统运行过程中,软件需要维护的原因是多样的,根据维护的原因不同,可以将软件维护分为以下四种:
(1)改正性维护。为了识别和纠正软件错误、改正软件性能上的缺陷、排除实施中的错误使用,应当进行的诊断和改正错误的过程就称为改正性维护。
(2)适应性维护。在使用过程中,外部环境(新的硬、软件配置)、数据环境(数据库、数据格式、数据输入/输出方式、数据存储介质)可能发生变化。为使软件适应这种变化,而去修改软件的过程就称为适应性维护。
(3)改善性维护。在软件的使用过程中,用户往往会对软件提出新的功能与性能要求。为了满足这些要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性。这种情况下进行的维护活动称为改善性维护。
(4)预防性维护。这是指预先提高软件的可维护性、可靠性等,为以后进一步改进软件打下良好基础。
7.一个功能模块M1中的函数F1有一个参数需要接收指向整型的指针,但是在功能模块M2中调用F1时传递了一个整型值,在软件测试中,( M1和M2的集成测试 )最可能测出这一问题。
单元测试侧重于模块中的内部处理逻辑和数据结构,所有模块都通过了测试之后,把模块集成起来仍可能会出现穿越模块的数据丢失、模块之间的相互影响等问题,因此,需要模块按系统设计说明书的要求组合起来进行测试,即集成测试,以发现模块之间协作的问题。
一个功能模块MI中的函数F1有一个参数需要接收指向整型的指针,但是在功能模决M2中调用F1时传递了一个整型值,这种模块之间传递参数的错误,在集成测试中最可能测试出来。
8.以下关于测试的叙述中,正确的是( 白盒测试技术中,路径覆盖法往往能比语句覆盖法发现更多的错误 )。
一个高效的测试是指用少量的测试用例,发现被测软件尽可能多的错误。软件测试不能说明软件中不存在错误,不能用穷举法来进行测试。A选项错误。
经验表明,测试中存在集群规律,即未发现的错误数量与已发现的错误数量成正比,已发现的错误数量越多,则该模块未被发现的错误也就越多。B选项错误。
软件测试的目的就是在软件投入生产性运行之前,尽可能多地发现软件产品(主要是指程序)中的错误和缺陷。C选项错误。
D选项的描述是正确的,白盒测试中语句覆盖是覆盖度最弱的,所以路径覆盖往往能比语句覆盖发现更多的错误。
9.( 全局数据结构 )不是单元测试主要检查的内容。
单元测试测试以下内容:模块接囗,局部数据结构,执行路径,错误处理和边界。
在单元测试开始时,应该对通过所有被测模块的数据流进行测试。
①输入参数是否与形式参数是否一致。
②调用模块的实参与被调用模块形参是否一致。
③全局变量在各模块中的定义和用法是否一致
④外部输入、输出等等。
10.在改正当前故障的同时可能会引入新的故障,这时需要进行( 回归测试 )。
功能测试检查软件是否能实现需求中指定的那些功能。性能测试是测试软件的安全性、精确性、速度和可靠性。回归测试用于识别在改正当前故障的同时可能会引入新的故障。验收测试是客户对系统进行测试以验证软件系统是否符合他们对需求的理解。
11.以下关于软件测试的叙述中,不正确的是( 软件测试的目的是证明软件的正确性 )。
软件测试的目的是发现更多的错误,而不是证明软件的正确性。
12.软件调试的任务就是根据测试时所发现的错误,找出原因和具体的位置,进行改正。其常用的方法中,( 归纳法 )是指从测试所暴露的问题出发,收集所有正确或不正确的数据,分析它们之间的关系,提出假想的错误原因,用这些数据来证明或反驳,从而查出错误所在。
归纳法是指从测试所暴露的问题出发,收集所有正确或不正确的数据,分析它们之间的关系,提出假想的错误原因,用这些数据来证明或反驳,从而查出错误所在。
13.
运行和维护
1.以下关于软件可维护性的叙述中,不正确的是“可维护性( 不受软件开发文档的影响 )”。
软件交付给用户使用后到软件报废之前都属于软件维护阶段。软件系统的可维护性可以定义为:维护人员理解、改正、改动和改进该软件的难易程度。提供软件可维护性是开发软件系统所有步骤的关键目的,是衡量软件质量的一种重要特性,可以从可理解性、可靠性、可测试性、可行性、可移植性等方面进行度量。良好的软件开发文档可以有效地提高软件的可维护性。
2.软件交付给用户之后进入维护阶段,根据维护具体内容的不同将维护分为不同的类型,其中“采用专用的程序模块对文件或数据中的记录进行增加、修改和删除等操作"的维护属于( 数据维护 )。
数据维护工作主要是由数据库管理员来负责,主要负责数据库的安全性和完整性以及进行并发性控制。数据库管理员还要负责维护数据库中的数据,当数据库中的数据类型、长度等发生变化时,或者需要添加某个数据项、数据库时,要负责修改相关的数据库、数据字典,并通知有关人员。
本题中,“采用专用的程序模块”是方法,“对文件或数据中的记录进行增加、修改和删除等操作”是目的,因此是数据维护。
3.软件的维护并不只是修正错误。为了满足用户提出的增加新功能、修改现有功能以及一般性的改进要求和建议,需要进行①完善性维护,它是软件维护工作的主要部分;软件测试不可能揭露旧系统中所有潜在的错误,所以这些程序在使用过程中还可能发生错误,诊断和更正这些错误的过程称为②改正性维护;为了改进软件未来的可维护性或可靠性,或者为了给未来的改进提供更好的基础而对软件进行修改,这类活动称为③预防性维护。
4.软件维护工具不包括( 配置管理)工具。
本题考查软件开发和维护的基础知识。辅助软件维护过程中的活动的软件称为“软件维护工具”,它辅助维护人员对软件代码及其文档进行各种维护活动。软件维护工具主要有:1、版本控制工具;2、文档分析工具;3、开发信息库工具;4、逆向工程工具;5、再工程工具;6、配置管理支持工具。
逆向工程是在软件维护时,由于缺少文档资料,而对软件的一种分析。
5.
软件项目管理
1.基于构件的开发模型包括软件的需求分析定义(体系结构设计)、(构件库建立)、(应用软件构建)以及测试和发布5个顺序执行的阶段。
基于构件的开发模型利用模块化方法将整个系统模块化,并在一定构件模型的支持下复用构件库中的一个或多个软件构件,通过组合手段高效率、高质量地构造应用软件系统的过程。基于构件的开发模型融合了螺旋模型的许多特征,本质上是演化形的,开发过程是迭代的。基于构件的开发模型由软件的需求分析定义、体系结构设计、构件库建立、应用软件构建以及测试和发布5个阶段组成。
2.以下关于风险管理的叙述中,不正确的是( 同时管理所有的风险 )。
在项目中,需要承认风险是客观存在的,不可能完全避免,也不可能同时管理所有的风险。风险管理应该贯穿整个项目管理过程,而风险计划本身在应对风险的同时也可能会带来新的风险。
3.下图是一个软件项目的活动图,其中顶点表示项目里程碑,连接顶点的边表示包含的活动,边上的数字表示完成该活动所需要的天数。则关键路径长度为(58),若在实际项目进展中。在其他活动都能正常进行的前提下,活动(C->F)一旦逾期就会影响项目的进度。
关键路径是网络活动图中耗时最长的路径,在本题中是ACFIJ,活动C→F位于关键路径上,一旦逾期就会影响项目的进度。
4.
软件质量和软件度量
1.软件(可靠性 )是指一个系统在给定时间间隔内和给定条件下无失效运行的概率。
软件可靠性指的是一个系统对于给定的时间间隔内、在给定条件下无失效运作的概率。软件可用性使之在给定的时间点上,一个软件系统能够按照规格说明正确运行的概率。软件可维护性是在给定的使用条件下,在规定的时间间隔内,使用规定的过程和资源完成维护活动的概率。
2.软件产品的可靠性并不取决于( 软件产品的开发方式 )。
软件可靠性指的是一个系统对于给定的时间间隔内、在给定条件下无失效运作的概率。根据定义,软件可靠性与软件的潜在错误的数量、位置有关,与软件产品的使用方式有关,而软件产品的开发方式不决定软件产品的可靠性。
3.在ISO/IEC软件质量模型中,易使用性的子特性不包括( 易分析性 )。
4.系统可维护性的评价指标不包括( 可移植性 )。
系统的可维护性的评价指标包括:可理解性、可测试性、可修改性。
可理解性:指别人能理解系统的结构、界面、功能和内部过程的难易程度。模块化、详细设计文档、结构化设计和良好的高级程序设计语言等,都有助于提高可理解性。
可测试性:诊断和测试的容易程度取决于易理解的程度。
可修改性:诊断和测试的容易程度与系统设计所制定的设计原则有直接关系。模块的耦合、内聚、作用范围与控制范围的关系等,都对可修改性有影响。
5.( 功能与模块之间的对应关系 )不属于软件设计质量评审。
6.软件质量保证是软件项目控制的重要手段,( 软件评审 )是软件质量保证的主要活动之一。
软件质量保证是软件质量管理的重要组成部分。软件质量保证主要是从软件产品的过程规范性角度来保证软件的品质。其主要活动包括:质量审计(包括软件评审)和过程分析。
7.在ISO/IEC9126软件质量模型中,软件质量特性( 功能性)包含质量子特性安全性。
ISO/IEC9126软件质量模型,该模型的质量特性和质量子特性如下:
功能性(适合性、准确性、互用性、依从性、安全性);
可靠性(成熟性、容错性、易恢复性);
易使用性(易理解性、易学性、易操作性);
效率(时间特性、资源特性);
可维护性(易分析性、易改变性、稳定性、易测试性);
可移植性(适应性、易安装性、一致性、易替换性)。
安全性是功能特性的子特性。
面向对象设计
1.抽象类abstract
抽象类必须包含抽象方法;如果一个类包含抽象方法,那么该类必须是抽象类,该类必须使用abstract关键字修饰。
抽象的使用
**继承抽象类的子类必须重写父类所有的抽象方法。**否则,该子类也必须声明为抽象类。最终,必须有子类实现该父类的抽象方法,否则,从最初的父类到最终的子类都不能创建对象,失去意义。
如果一个类继承了抽象类,则必须实现该抽象类的所有抽象方法,除非子类本身也是抽象类
2.结合UML
类图中属性定义:#代表protected,+表示public,-表示private
3.抽象接口
面向对象基础
1.开-闭原则(Open-Closed Principle,OCP)是面向对象的可复用设计的基石。开-闭原则是指一个软件实体应当对(扩展)开放,对(修改)关闭;里氏代换原则(Liskov Substitution Principle,LSP)是指任何(基类对象)可以出现的地方,(子类对象)一定可以出现。依赖倒转原则(Dependence Inversion Principle,DIP)就是要依赖于(抽象)而不依赖于(实现),或者说要针对接口编程,不要针对实现编程。
2.在面向对象技术中,对象具有以下特性:( ①②④ )。
①清晰的边界②良好定义的行为③确定的位置和数量④可扩展性
在面向对象技术中,对象是类的一个实例,它的特性主要包括清晰的边界、良好定义的行为和可扩展性。
3.以下关于封装在软件复用中所充当的角色的叙述,正确的是( 封装使得其他开发人员不需要知道一个软件组件内部如何工作 )。
封装是面向对象技术的三大特点之一,封装的目的是使对象的定义和实现分离,这样,就能减少耦合。封装可以使得其他开发人员不需要知道一个软件组件内部是如何工作的,只需要使用该组件提供的接口来完成交互即可,如果在另外一个地方需要完成同样的功能,我们就可以将该组件使用在另外一个地方,这样提供了软件的复用性。
4.采用面向对象开发方法时,对象是系统运行时基本实体。以下关于对象的叙述中,正确的是( 对象通常由对象名、属性和操作三个部分组成 )。
对象通常由对象名、属性和操作三个部分组成,对象不一定都有相同的属性和行为。
5.不同的对象收到同一消息可以产生完全不同的结果,这一现象叫做(多态)。绑定是一个把过程调用和响应调用所需要执行的代码加以结合的过程。在一般的程序设计语言中,绑定在编译时进行,叫做(静态绑定);而(动态绑定)则在运行时进行,即一个给定的过程调用和执行代码的结合直到调用发生时才进行。
在收到消息时,对象要予以响应。不同的对象收到同一消息可以产生完全不同的结果,这一现象叫做多态(polymorphism)。在使用多态的时候,用户可以发送一个通用的消息,而实现的细节则由接收对象自行决定。这样,同一消息就可以调用不同的方法。绑定是一个把过程调用和响应调用所需要执行的代码加以结合的过程。在一般的程序设计语言中,绑定是在编译时进行的,叫做静态绑定。动态绑定则是在运行时进行的,因此,一个给定的过程调用和代码的结合直到调用发生时才进行。
动态绑定是和类的继承以及多态相联系的。在继承关系中,子类是父类的一个特例,所以,父类对象可以出现的地方,子类对象也可以出现。因此在运行过程中,当一个对象发送消息请求服务时,要根据接收对象的具体情况将请求的操作与实现的方法进行连接,即动态绑定。
6.以下关于面向对象方法中继承的叙述中,错误的是( 继承仅仅允许单重继承,即不允许一个子类有多个父类 )。
面向对象技术中,继承是父类和子类之间共享数据和方法的机制。这是类之间的一种关系,在定义和实现一个类的时候,可以在一个已经存在的类的基础上来进行,把这个已经存在的类所定义的内容作为自己的内容,并加入若干新的内容。可以存在多重继承的概念,但不同的程序设计语言可以有自己的规定。目前多种面向对象开发语言中,软件设计师考试中涉及的JAVA只支持单重继承也就是1个父类,而C++支持多种继承,允许子类有多个父类,所以本题错误说法选择D选项。
继承关系一般只能继承父类公有的属性和方法,不能继承父类私有的属性和方法。但是在实际运行过程中,私有属性和方法也有继承,只是不能访问,所以是看不到的。因此C选项的说法是正确的。
7.以下关于面向对象设计的叙述中,错误的是( 面向对象设计应在面向对象分析之前,因为只有产生了设计结果才可对其进行分析 )。
面向对象分析与设计是面向对象软件开发过程中的两个重要阶段,面向对象分析产生分析模型,该分析模型可以使用UML表达,面向对象设计以分析模型为基础。继续对分析模型进行精化,得到设计模型,其表达仍然可以采用UML建模语言。
UML
1.面向对象技术中,组合关系表示(整体与其部分之间的一种关系 )。
在面向对象技术中,组合描述的是整体与部分的关系,组合关系中,整体与部分的生命周期一致。比如公司与部门就是一种组合关系,公司不存在了,部门自然就不存在了。
2.认识组件图
如图所示为组件图。组件图或构件图专注于系统的静态实现视图。它与类图相关,通常把构件映射为一个或多个类、接囗或协作。UML部署图经常被认为是一个网络图。
3.下图①②③④所示是UML(类图)。现有场景:一名医生(Doctor)可以治疗多位病人(Patient),一位病人可以由多名医生治疗,一名医生可能多次治疗同一位病人。要记录哪名医生治疗哪位病人时,需要存储治疗(Treatment)的日期和时间。以下①②③④中(①)是描述此的场景。
类图(class diagram)展现了一组对象、接口、协作和它们之间的关系。在面向对象系统的建模中所建立的最常见的图就是类图。类图给出系统的静态设计视图。
4.下图所示UML图为(序列图),用于展示系统中(一个用例和多个对象的行为)。
顺序图(sequence diagram,序列图)。顺序图是一种交互图(interaction diagram),交互图展现了一种交互,它由一组对象或参与者以及它们之间可能发送的消息构成。交互图专注于系统的动态视图。顺序图是强调消息的时间次序的交互图。
本题图示为序列图。序列图展示了1个用例和多个对象的行为。
用例图是用户与系统交互的最简表示形式,展现用户和与他相关的用例之间的关系。
活动图本质上是一种流程图,它描述活动的序列,即系统从一个活动到另一个活动的控制流
交互图是描述对象之间的关系以及对象之间的信息传递的图。序列图(时序图)、协作图(通信图)、交互概览图统称交互图。
5.如果要表示待开发软件系统中软件组件和硬件之间的物理关系,通常采用UML中的(部署图 )。
组件图也就是构件图,描述一组构件之间的组织和依赖,专注于系统的静态实现视图。
部署图描述对运行时的处理节点及在其中生存的构件的配置。部署图给出了架构的静态部署视图,通常一个节点包含一个或多个部署图。
而本题中描述的是待开发软件系统中软件组件和硬件之间的物理关系,描述的正是软件在硬件中的部署,是部署图。
6.UML图中,一张交互图显示一个交互。由一组对象及其之间的关系组成,包含它们之间可能传递的消息。( 对象图 )不是交互图。
对象图(object diagram)。对象图描述一组对象及它们之间的关系。对象图描述了在类图中所建立的事物实例的静态快照。和类图一样,这些图给出系统的静态设计视图或静态进程视图,但它们是从真实案例或原型案例的角度建立的。
交互图由一组对象和它们之间的关系构成,其中包括:需要什么对象,对象相互之间发送什么消息,什么角色启动消息以及消息按什么顺序发送。交互图的分类:交互图主要分为这两种:顺序图和协作图。对象图不是交互图的一种。
设计模式
创建型:单抽原建厂
结构型:外桥组元代配饰
行为型:观模迭策,责令解访,介忘态
1.下图所示为观察者(Observer)模式的抽象示意图,其中(subject)知道其观察者,可以有任何多个观察者观察同一个目标;提供注册和删除观察者对象的接口。此模式体现的最主要的特征是(使所要交互的对象尽量松耦合);
Subject(目标)知道它的观察者,可以有任何多个观察者观察同一个目标;提供注册和删除观察者对象的接口。
Observer(观察者)定义一个更新接口,在一个被观察对象改变时应被通知。
Concrete Subject(具体被观察对象)存储具体观察者,Concrete Observer有兴趣的状态。当其状态改变时,发送一个通知给其所有的观察者对象。
Concrete Observer(具体观察者)维护一个对Concrete Subject对象的引用。
观察者模式的最主要特征是使所要交互的对象尽量松耦合。
2.(观察者)设计模式允许一个对象在其状态改变时,通知依赖它的所有对象。该设计模式的类图如下图,其中,(ConcreteSubject)在其状态发生改变时,向它的各个观察者发出通知。
观察者模式的意图是:定义对象间的一种一对多的依赖关系,当一个对象的状态发生改变时,所有依赖于它的对象都得到通知并被自动更新。
在观察者模式类图中:
Subject是抽象的被观察对象,了解其多个观察者,任意数量的观察者可以观察一个对象,提供一个接囗用来绑定以及分离观察者对象。
Concrete Subject是具体被观察对象,存储具体观察者Concrete Observer有兴趣的状态。当其状态改变时,发送一个通知给其所有的观察者对象。
Observer是抽象的观察者,定义一个更新接口,在一个被观察对象改变时应被通知。
Concrete Observer是具体观察者,维护一个对Concrete Subject对象的引用。
3.如下UML类图表示的是(抽象工厂)设计模式。以下关于该设计模式的叙述中,错误是(可应用于希望使用已经存在的类,但其接不符合需求的时候)
题中的类图是抽象工厂设计模式,该设计模式的意图是提供一个创建一系列相关或相互依赖对象的接囗,而无需指定它们具体的类。使用抽象工厂设计模式的常见情形是:一个系统要独立于其产品的创建、组合和表示时;一个系统要由多个产品系列中的一个来配置时;当需要强调一系列相关的产品对象的设计以便进行联合使用时;当提供一个产品类库,而只想显示它们的接囗不是实现时。对于希望使用已经存在的类,但其接口不符合需求的情形,应当考虑适配器设计模式。
4.在发布-订阅(Publish-Subscibe)消息模式中,订阅者订阅一个主题后,当该主题有新消息到达时,所有订阅者都会收到通知。( 观察者Observer )设计模式最适合之一模式。
观察者模式(有时又被称为发布-订阅Subscribe>模式、模型-视图View>模式、源-收听者Listener>模式或从属者模式)是软件设计模式的一种。在此种模式中,一个目标物件管理所有相依于它的观察者物件,并且在它本身的状态改变时主动发出通知。这通常通过呼叫各观察者所提供的方法来实现。此种模式通常被用来实作事件处理系统。
适配器模式(有时候也称包装样式或者包装)将一个类的接囗适配成用户所期待的。一个适配允许通常因为接口不兼容而不能在一起工作的类工作在一起,做法是将类自己的接囗包裹在一个已存在的类中。
状态模式:当一个对象的内在状态改变时允许改变其行为,这个对象看起来像是改变了其类。
5.( 策略strategy)设计模式定义一系列算法,把它们一个个封装起来,并且使它们可相互替换。这一模式使得算法可独立于它的客户而变化。
B选项:抽象工厂模式(Abstract Factory):提供一个接囗,可以创建一系列相关或相互依赖的对象,而无需指定它们具体的类。
6.设计模式根据目的进行分类,可以分为创建型、结构型和行为型三种。其中结构型模式用于处理类和对象的组合。( 适配器adapter )模式是一种结构型模式。
常见的创建型模式主要有工厂方法(Factory Method)、抽象工厂(Abstract Factory)、单例(Singleton)、构建器(Builder)、原型(Prototype)模式;
结构型模式有适配器(Adapter)、组合(Composite)、装饰(Decorator)、代理(Proxy)、享元(Flyweight)、外观(Façade)、桥接(Bridge)模式;行为型模式有策略(Strategy)、模板方法(Template Method)、迭代器(Iterator)、责任链(Chain of Responsibility)、命令(Command)、备忘录(Memento)、状态(State)、访问者(Visitor)、解释器((Interpreter)、中介者(Observer)模式。
算法设计与分析
基本概念
1.在进行算法选择时,应优先选择哪些算法?( 简单易理解、正确可靠的算法 )
2.从基本概念上看,算法分析是指对一个算法所需要的资源进行估算,这些资源包括内存、通信带宽、计算机硬件和时间等,所需要的资源越多,该算法的复杂度就越高。(√)
参考《软件设计师教程》(第5版),p417原文。
3.下列关于流程图的描述,( 流程图直观易懂 )是正确的。
流程图:其优点是直观易懂,缺点是严密性不如程序设计语言,灵活性不如自然语言。
4.常用的表示算法的方法中,( 自然语言)方法最容易理解,但容易出现二义性。
5.一个算法有零个或多个输出,这些输出是同输入有着某些特定关系的量。(×)
一个或多个输出。输入是零个或多个。
算法分析基础
1.用主方法求递归式T(n)=T(2n/3)+1的解是( )。
主方法求解递归式
在分析递归的算法时,主方法可以较快的计算出算法的时间复杂度
主方法可以用于满足以下形式的递归式。
两种情况讨论
其中a>=1,b>1
2.( 展开 )法是将递归式中等式右边的项根据递归式进行替换。
展开法:将递归式中等式右边的项根据递归式进行替换,称为展开。展开后的项被再次展开,如此下去,直到得到一个求和表达式,得到结果。
3.以下哪项是进行算法时间复杂度分析时一般不涉及的情况?( 最佳情况 )
最佳情况:使算法执行时间最少的输入。一般情况下,不进行算法在最佳情况下的时间复杂度分析。应用最佳情况分析的一个例子是已经证明基于比较的排序算法的时间复杂度下限为sQ(nlgn),那么就不需要白费力气去想方设法将该类算法改进为线性时间复杂度的算法。
4.已知算法A的运行时间函数为T(n)=8T(n/2)+n²,其中n表示问题的规模,另已知算法B的运行时间函数为T(n)=XT(n/4)+n^2,其中n表示问题的规模。对充分大的n,若要算法B比算法A快,则X的最大值为(63 )。
5.求a的最大整数
对算法A进行简单的化简,令n=n/2,我们可以得到算法A的T(n)=49T(n/4)+11/4n^2,;而算法B的T(n)=aT(n/4)+n ^2,,而根据渐进的规则,算法A的时间复杂度应该为49T(n/4),而算法B的时间复杂度应该为aT(n/4),因此a的取值应该要小于49,本题只有A选项符合。
6.求和
分治法
1.排序算法的稳定性是指将待排序列排序后,能确保排序码中的相对位置保持不变。( 冒泡排序 )是稳定的排序算法。
2.归并排序算法在排序过程中,将待排序数组分为两个大小相同的子数组,分别对两个子数组采用归并排序算法进行排序,排好序的两个子数组采用时间复杂度为O(n)的过程合并为一个大数组。根据上述描述,归并排序算法采用了(分治)算法设计策略。归并排序算法的最好和最坏情况下的时间复杂度为(Θ(nlgn)和Θ(nlgn))
归并排序(Merge Sort)是建立在归并操作上的一种有效,稳定的排序算法,该算法是采用分治法(Divide and Conquer)的一个非常典型的应用。将已有序的子序列合并,得到完全有序的序列;即先使每个子序列有序,再使子序列段间有序。若将两个有序表合并成一个有序表,称为二路归并。归并排序是运用分治法相关策略,其时间复杂度是由外层的n循环,与内层的归并过程log2 ^n结合起来得到Θ(nlgn),所以答案选A。
3.递归算法的执行过程,一般来说,可先后分成( 递推和回归 )两个阶段。
4.一般来说,分治算法在每一层递归上都有( 3 )个步骤。
(1)分解。将原问题分解成一系列子问题。
(2)求解。递归地求解各子问题。若子问题足够小,则直接求解。
(3)合并。将子问题的解合并成原问题的解。
5.递归的两个基本要素是( 边界条件和递归模式 )。
递归有两个基本要素:边界条件,即确定递归到何时终止,也称为递归出口;递归模式,
即大问题是如何分解为小问题的,也称为递归体。
6.下列排序算法中,占用辅助存储空间最多的是(归并排序 )。
归并排序需要n个空间,快速排序需要Ign个空间,堆排序需要1个空间,冒泡排序需要1个空间。
7.折半查找在有序数组A中查找特定的记录K:通过比较K和数组中的中间元素A[mid]进行,如果相等,则算法结束;如果K小于A[mid],则对数组的前半部分进行折半查找;否则对数组的后半部分进行折半查找。根据上述描述,折半查找算法采用了(分治)算法设计策略。对有序数组(3,14,27,39,42,55,70,85,93,98),成功查找和失败查找所需要的平均比较次数分别是(29/10和39/11)
折半查找成功的过程,可以理解为对这10个元素分别查找成功。
对各个元素进行编号依次为1、2、3、…、10,此时:
(1)1次查找成功的元素是(1+10)/2=5号元素,也就是42;
(2)2次查找成功的元素可能是(1+4)/2=2或者(6+10)/2=8,也就是2号位置14,或者8号位置85;
(3)3次查找成功的元素可能是1号元素、3号元素27、6号元素55或者9号元素93;
(4)4次查找成功的元素可能是4号元素39、7号元素77或者10号元素98。
此时平均查找次数为(1+22+43+3*4)/10=29/10。
动态规划法
1.动态规划算法的基本要素是( 最优子结构,重叠子问题 )。
(1)最优子结构。如果一个问题的最优解中包含了其子问题的最优解,就说该问题具有最优子结构。当一个问题具有最优子结构时,提示我们动态规划法可能会适用,但是此时贪心策略可能也是适用的。
(2)重叠子问题。重叠子问题指用来解原问题的递归算法可反复地解同样的子问题,而不是总在产生新的子问题。即当一个递归算法不断地调用同一个问题时,就说该问题包含重叠子问题。此时若用分治法递归求解,则每次遇到子问题都会视为新问题,会极大地降低算法的效率,而动态规划法总是充分利用重叠子问题,对每个子问题仅计算一次,把解保存在一个在需要时就可以查看的表中,而每次查表的时间为常数。
2.( 动态规划 )算法通常用于求解具有某种最优性质的问题。
参考的《软件设计师教程》(第5版)P428原文。
3.考虑一个背包问题,共有n=5个物品,背包容量为W=10,物品的重量和价值分别为:w={2,2,6,5,4},v={6,3,5,4,6},求背包问题的最大装包价值。若此为0-1背包问题,分析该问题具有最优子结构,定义递归式为
其中c(i,j)表示i个物品、容量为j的0-1背包问题的最大装包价值,最终要求解c(n,W)。采用自底向上的动态规划方法求解,得到最大装包价值为(15),算法的时间复杂度为(Θ(nW))。若此为部分背包问题,首先采用归并排序算法,根据物品的单位重量价值从大到小排序,然后依次将物品放入背包直至所有物品放入背包中或者背包再无容量,则得到的最大装包价值为(16.67),算法的时间复杂度为(Θ(nlgn))。
这是典型的01背包问题,动态规划算法中,自底向上(递推):从小范围递推计算到大范围,可以看到装第一个和第五个物品价值是最高的,这时候V=12了,此时已占了6的重量了,只能装物品2了,价值15。而此时的算法过程是对物品n和背包容量W分别进行比较以找到最优结果,因此时间复杂度为O(nW)。空(3)(4)是部分背包,部分背包的时候计算每个物品单位重量价值多少,单位重量v={31.55/60.81.5},可以看到125的单位价值最高,选择125后背包重量还只有8,还有2个重量可以选择3得5/3的价值,就是1.67,所以第三空为16.67。
再来看时间复杂度,本题先进行归并排序,然后再根据有序序列来选择放入背包的物品,因此算法分两部分,首先是归并排序时间复杂度为Θ(nlgn),然后是放背包,因为已经排过序,所以只需要线性处理即可,此时时间复杂度为Θ(n),综合起来,由于Θ(nlgn)>Θ(n),因此整体时间复杂度为Θ(nlgn)。
4.一个问题可用动态规划算法或贪心算法求解的关键特征是问题的( 最优子结构性质 )。
最优子结构性质指的是问题的最优解包含其子问题的最优解,且子问题之间是独立的。对于动态规划,因为重复计算的子问题,需要进行备忘录或者自底向上迭代,在求解时将问题拆解为子问题进行求解,避免了重复计算,提高了效率。
贪心算法则是通过贪心选择性质来求解问题,即每一步采取最优的选择,最终求解得到的是全局最优解。重叠子问题性质和最优解性质也是动态规划的特征,但不是决定哪种算法适用的关键特征。
5.在求解某问题时,经过分析发现该问题具有最优子结构和重叠子问题性质。则适宜采用(动态规划)算法设计策略得到最优解;若定义问题的解空间,并以广度优先的方式搜索解空间,则采用的是(分支限界)算法设计策略。
要想直接解决一个较大的问题,有时是相当困难的,分治法的设计思想是将一个难以解决的大问题分解成一些规模较小的相同问题,以便各个击破,分而治之。
动态规划法与分治法类似,其基本思想也是将待求解问题分解为若干个子问题,先求解子问题,再从这些子问题的解得到原问题的解。与分治法不同的是,适合用动态规划法求解的问题,经分解得到的子问题往往不是独立的。若用分治法来解这类问题,则相同的子问题会被求解多次,以至于最后解决原问题需要耗费指数级时间。此时用一个中间表记录重复子问题的解,可以避免大量的重复计算。这就是动态规划法的基本思路。动态规划法的应用场景一般会出现“最优子结构”的描述,并且针对重复子问题的计算通过记录-查表,可以提高效率。本题第一空描述的是C选项动态规划法。
贪心法也经常用于解决最优化问题,与之不同的是,贪心法在解决问题的策略上是仅根据当前已有的信息做出选择,而且一旦做出选择,无论未来如何都不会改变。也就是只考虑当前最优,不考虑全局最优。一般不涉及划分和求解重复子问题。
回溯法可以系统地搜索一个问题的所有解或任意解。它在包含问题的解空间树中,按照深度优先的策略,从根结点出发搜索解空间树。
分支限界法类似于回溯法,也是一种在问题的解空间树T上搜索问题解的算法,但在一般情况下,分支限界法与回溯法的求解目标不同。分支限界法的求解目标是找出满足约束条件的一个解即可。由于求解目标不同,其探索方式与回溯法也不同,分支限界法以广度优先或以最小耗费优先的方式搜索解空间树。本题第二空描述的是D选项分支限界法。
贪心法
1.采用贪心算法保证能求得最优解的问题是( 部分(分数)背包 )。
贪心法能够获得最优解的前提是:(1)问题具有最优子结构,即规模为n的问题的最优解与规模为n-1的问题的解相关;(2)问题具有贪心选择性质,即问题的整体最优解可以通过一系列局部最优的选择得到。
只有部分背包问题具有以上性质,故可以通过贪心算法得到最优解。
2.( 贪心 )算法策略与递归技术的联系最弱。
贪心算法是一种不追求最优解,而是希望得到较为满意解的算法。该算法一般可以快速得到满意的解,因为它省去了为找最优解要穷尽所有可能而必须耗费大量的时间。由于贪心法不要回溯,因此贪心算法策略与递归技术的联系最弱。
3.Prim算法和kruskal算法都是无向连通网的最小生成树的算法,Prim算法从一个顶点开始,每次从剩余的顶点加入一个顶点,该顶点与当前生成树中的顶占的连边权重最小,直到得到最小生成树开始,kruskal算法从权重最小的边开始,每次从不在当前的生成树顶点之间的边中选择权重最小的边加入,直到得到一颗最小生成树,这两个算法都采用了(贪心)设计策略,且(若网较稠密,则Prim算法更好)。
Prim算法从扩展顶点开始,每次总是”贪心的“选择与当前顶点集合中距离最短的顶点,而kruskal算法从扩展边开始,每次总是”贪心的“选择剩余的边中最小权重的边,因此两个算法都是基于贪心策略进行的。
Prim算法的时间复杂度为O(n^2),其中n为图的顶点数,该算法的计算时间与图中的边数无关,因此该算法适合于求边稠密的图的最小生成树;kruskal算法的时间复杂度为O(mlgm),其中m为图的边数,该算法的计算时间与图中的顶点数无关,因此该算法适合于求边稀疏的图的最小生成树。
当图稠密时,用Prim算法效率更高。但若事先没有关于图的拓扑特征信息时,无法判断两者的优劣。由于一个图的最小生成树可能有多棵,因此不能保证用这两种算法得到的是同一棵最小生成树。
4.采用Dijkstra算法求解下图A点到E点的最短路径,采用的算法设计策略是(贪心算法)。该最短路径的长度是(5)
Dijkstra算法算是贪心思想实现的,首先把起点到所有点的距离存下来找个最短的,然后松弛一次再找出最短的。
5.采用Kruskal 算法求解下图的最小生成树,采用的算法设计策略是(贪心算法)。该最小生成树的权值是(14)
图中每个顶点自成一个连通分量。在E中选择代价最小的边,若该边依附的顶点落在T中不同的连通分量上,则将此边加入到T中,否则舍去此边而选择下一条代价最小的边。依此类推,直到T中所有顶点都在同一连通分量上为止。简单来说就是选择依次权值最小的边,连接对应的顶点,此过程如果有环路出现则舍弃这个边选择下一个权值最小的边。如果顶点数量为n,那么连接的边的数量为n-1。具体步骤如下图所示。
回溯法
1.对于含n个元素的子集树问题(每个元素二选一),最坏情况下解空间树的叶子结点个数是( 2^ n )。
这样的解空间树是一棵高度为n+1的满二叉树,叶子结点恰好有2^ n 个
2.用回溯法求解0/1背包问题时的解空间是( 子集树 )。用回溯法求解TSP问题时的解空间是( 排列树 )。
在0/1背包问题中每个物品是二选一(要么选中要么不选中),与物品的顺序无关,对应的解空间为子集树类型。
TSP问题的解空间属于典型的排列树,因为路径与顶点顺序有关。
3.用回溯法求解0/1背包问题时最坏时间复杂度是( O(n2^n) )。
0/1背包问题的解空间为一棵高度为n+1的满二叉树,结点个数为2^(n+1)-1,最坏情况是搜索全部结点。答案为C。
4.n个学生每个人有一个分数,求最高分的学生的姓名,最简单的方法是( 迭代法)。
5.求中国象棋中马从一个位置到另外一个位置的所有走法,采用回溯法求解时对应的解空间是( 子集树 )。
每一步马从相邻可走的位置中选择一个位置走下去。答案为A。
6.n个人排队在一台机器上做某个任务,每个人的等待时间不同,完成他的任务的时间是不同的,求完成这n个任务的最小时间,采用回溯法求解时对应的解空间是( 排列树)。
该问题是求1~n的某个排列对应的n个任务完成的最小时间。答案为B。
7.下面( 剪支函数 )是回溯法中为避免无效搜索采取的策略。
剪支函数包括约束函数(在扩展结点处剪除不满足约束条件的路径)和限界函数(剪去得不到问题解或最优解的路径)。答案为B。
8.回溯法的效率不依赖于下列因素( 确定解空间的时间 )。
回溯法解空间是虚拟的,不必事先确定整个解空间。答案为A。
9.关于回溯法以下叙述中不正确的是(回溯法算法需要借助队列来保存从根结点到当前扩展结点的路径 )。
回溯算法是采用深度优先遍历的,需要借助栈保存从根结点到当前扩展结点的路径。答案为C。
10.要在88的棋盘上摆放8个“皇后”,要求“皇后”之间不能发生冲突,即任何两个“皇后”不能在同一行、同一列和相同的对角线上,则一般采用(回溯法 )来实现。
回溯法是一种选优搜索法,按选优条件向前搜索,以达到目标。但当探索到某一步时,发现原先选择并不优或达不到目标,就退回一步重新选择,这种走不通就退回再走的技术为回溯法。回溯法求解的过程其实是搜索整个解空间,来找到最优的解。而“皇后”问题是一个典型的用回溯法求解的问题。
数据库基础技术
基本概念
1.采用三级结构/两级映像的数据库体系结构,如果对数据库的一张表创建聚簇索引,改变的是数据库的( 内模式 )。
创建聚簇索引意味着重新确定表中的数据的物理顺序,内模式是数据物理结构和存储方式的描述,对应着物理层,所以对于物理顺序的操作改变的一定是内模式。外模式也称用户模式,是用户与数据库系统的接囗,对应着视图层,AB是同一个概念。模式也称概念模式,是数据库中全部数据的逻辑结构和特征的描述,对应着逻辑层。
2.在分布式数据库中,( 分片透明 )是指用户或应用程序不需要知道逻辑上访问的表具体如何分块存储。
分片透明:是指用户不必关心数据是如何分片的,它们对数据的操作在全局关系上进行,即关心如何分片对用户是透明的,因此,当分片改变时应用程序可以不变。分片透明性是最高层次的透明性,如果用户能在全局关系一级操作,则数据如何分布,如何存储等细节自不必关心,其应用程序的编写与集中式数据库相同。
复制透明:用户不用关心数据库在网络中各个节点的复制情况,被复制的数据的更新都由系统自动完成。
在分布式数据库系统中,可以把一个场地的数据复制到其他场地存放,应用程序可以使用复制到本地的数据在本地完成分布式操作,避免通过网络传输数据,提高了系统的运行和查询效率。但是对于复制数据的更新操作,就要涉及对所有复制数据的更新。
位置透明:是指用户不必知道所操作的数据放在何处,即数据分配到哪个或哪些站点存储对用户是透明的。
局部映像透明性(逻辑透明)是最低层次的透明性,该透明性提供数据到局部数据库的映像,即用户不必关心局部DBMS支持哪种数据模型、使用哪种数据操纵语言,数据模型和操纵语言的转换是由系统完成的。因此,局部映像透明性对异构型和同构异质的分布式数据库系统是非常重要的。
本题提到不需要了解具体如何分块存储,如果描述为不需要了解物理存储或存储位置,则为位置透明,而涉及如何分块存储,应该为分片透明。对于分布式数据库,分片是一种大局性的划分,而物理上的存储位置则更为低层,所以对于如何分块存储,强调更多的是分片而不是物理位置。
3.某企业信息系统采用分布式数据库系统。“当某一场地故障时,系统可以使用其他场地上的副本而不至于使整个系统瘫痪”称为分布式数据库的( 可用性 )。
在分布式数据库系统中,A共享性是指数据存储在不同的结点数据共享,与题目描述不符;
B自治性是指每个结点对本地数据都能独立管理,与题目描述不符;
C可用性是指当某一场地故障时,系统可以使用其他场地上的副本而不至于使整个系统瘫痪,与题目描述相符,C选项正确;
D分布性是指在不同场地上的存储,与题目描述不符。
4.【判断】三级模式是指数据库管理系统从三个层次来管理数据,分别是外部层、概念层和内部层。(√)
三级模式是指数据库管理系统从三个层次来管理数据,分别是外部层(ExternalLevel)、概念层(Conceptual Level)和内部层(Internal Level)。这三个层次分别对应三种不同类型的模式,分别是外模式(External Schema)、概念模式(Conceptual Schema)和内模式(Internal Schema)。
5.数据库系统通常采用三级模式结构:外模式、模式和内模式。这三级模式分别对应数据库的( 视图、基本表和存储文件 )。
6.数据的物理独立性是指当数据库的( 内模式改变时,数据的逻辑结构不需要改变 )。
数据的逻辑独立性是指当模式改变时(例如增加新的关系,新的属性,改变属性的数据类型等),由数据库管理员对各个外模式/模式的映像做相应的改变,可以使外模式保持不变。应用程序是依据数据的外模式编写的,从而应用程序不必修改,保证了数据与程序的逻辑独立性,简称数据的逻辑独立性。
数据的物理独立性是指当数据库的存储结构改变了,由数据库管理员对模式/内模式映像做响应的改变,可以使模式保持不变,从而应用程序也不必改变,保证了数据与程序的物理独立性,简称数据的物理独立性。
7.数据库系统的三级模式中,(概念模式)描述现实世界中的实体及其性质与联系,定义记录、数据项、数据的完整性约束条件及记录之间的联系,是数据项值的框架。(外模式)主要描述组成用户视图的各个记录的组成、相互关系、数据项的特征、数据的安全性和完整性约束条件。(内模式)定义的是存储记录的类型、存储域的表示以及存储记录的物理顺序,指引元、索引和存储路径等数据的存储组织。
8.在数据库三级模式间引入二级映像的主要作用是( 提高数据与程序的独立性 )。
数据库系统在其内部具有三级模式和二级映像。三级模式分别是外模式、模式和内模式,二级映像则是外模式/模式映像、模式/内模式映像。
当模式改变时,DBA要求相关的外模式/模式映像做相应的改变,以使外模式保持不变。应用程序是依据实际的外模式编写的,外模式不变应用程序就没必要修改。所以,外模式/模式映像功能保证了数据与程序的逻辑独立性。
当数据库的存储结束了,DBA要对模式/内模式映像做相应的改变,以使模式保持不变。模式不变,与模式没有直接联系的应用程序也不会改变。所以,模式/内模式映像功能保证了数据与程序的物理独立性。
9.对数据库物理存储方式的描述称为( 内模式 )。
模式对应着概念级,它是由数据库设计者总和所有用户的数据,按照统一的观点构造的全局逻辑结构,是对数据库中全部数据的逻辑结构和特征的总体描述,是所有用户的公共数据视图。
外模式对应于用户级,它是某个或某几个用户看到的数据库的数据视图,是与某一应用有关的数据逻辑的表示。外模式是从模式导出的一个子集,包含模式中允许特定用户使用的那部分数据。
内模式对应于物理级,它是数据库中全部数据的内部表示或底层描述,是数据库最低一级的逻辑描述,它描述了数据在存储介质上存储方式的物理结构,对应着实际存储在外存储介质上的数据库。
10.在数据库中存储的是( 数据和数据之间的联系 )。
数据库:按照数据结构来组织、存储和管理数据的仓库。是一个长期存储在计算机内的、有组织的、可共享的、统一管理的大量数据的集合。即数据及数据之间的联系。
11.数据库中,数据的物理独立性是指( 用户的应用程序与存储在磁盘上的数据库中的数据是相互独立的 )。
物理独立性是指用户的应用程序与存储在磁盘上的数据库中数据是相互独立的。即,数据在磁盘上怎样存储由DBMS管理,用户程序不需要了解,应用程序要处理的只是数据的逻辑结构,这样当数据的物理存储改变了,应用程序不用改变。
12.在DB技术中,“脏数据”是指( 未提交随后又被撤销的数据 )。
脏数据:事务T1更新了某一数据,并将修改后的值写入磁盘,事务T2读取了更新后的数据,其后事务T1由于某种原因被撤销,事务T1已更新过的数据恢复原值,这样事务T2读到的数据就与数据库中的数据不一致,是不正确的数据,即未提交随后又被撤销的数据。
13.保护数据库,防止未经授权或不合法的使用造成的数据泄露、非法更改或破坏。这是指数据的( 安全性 )。
14.在数据库设计中,E-R模型常用于( 概念设计 )阶段。
数据库概念结构设计阶段是在需求分析的基础上,依照需求分析中的信息要求,对用户信息加以分类、聚集和概括,建立信息模型,并依照选定的数据库管理系统软件,转换成为数据的逻辑结构,再依照软硬件环境最终实现数据的合理存储。这一过程也称为数据建模。
概念结构设计最著名最常用的方法是P.P.S Chen于1976年提出的实体一联系方法(Entity-Relationship Approach),简称E-R方法。它采用E-R模型将现实世界的信息结构统一由实体、属性,以及实体之间的联系来描述。使用E-R方法,无论是哪种策略,都要对现实事物加以抽象认识,以E-R图的形式描述出来。
15.数据库概念结构设计阶段的工作步骤包括①~④,其正确的顺序为(②①④③ )。
①设计局部视图②抽象数据③修改重构消除冗余④合并取消冲突
数据库概念结构设计阶段的工作步骤为抽象数据→设计局部视图→合并取消冲突→修改重构消除冗余。
16.在数据库应用系统的开发过程中,开发人员需要通过视图层、逻辑个层次上的抽象来对用户屏蔽系统的复杂性,简化用户与系统的交互过程错误的是( 物理层是比逻辑层更高一层的抽象 )。
一个可用的数据库系统必须能够高效地检索数据。这种高效性的需求促使数据库设计者使用复杂的数据结构来表示数据。由于大多数数据库系统用户并未受过计算机的专业训练,因此系统开发人员需要通过视图层、逻辑层和物理层三个层次上的抽象来对用户屏蔽系统的复杂性,简化用户与系统的交互。
视图层(view level)是最高层次的抽象,描述整个数据库的某个部分。因为数据库系统的很多用户并不关心数据库中的所有信息,而只关心所需要的那部分数据。某些问题可以通过构建视图层实现,这样做除了使用户与系统交互简化,而且还可以保证数据的保密性和安全性。
逻辑层(logical level)是比物理层更高一层的抽象,描述数据库中存储什么数据以及这些数据间存在什么关系。逻辑层通过相对简单的结构描述了整个数据库。尽管逻辑层的简单结构的实现涉及了复杂的物理层结构,但逻辑层的用户不必知道这些复杂性。因为,逻辑层抽象是数据库管理员的职责,由管理员确定数据库应保存哪些信息。
物理层(physical level)是最低层次的抽象,描述数据在存储器是如何存储的。物理层详细地描述复杂的底层结构。
17.采用三级模式结构的数据库系统中,如果对一个表创建聚簇索引,那么改变的是数据库的( 内模式 )。
对于三级模式,分为外模式,模式和内模式。
外模式又称用户模式,对应视图级别,是用户与数据库系统的接囗,是用户用到那部分数据的描述,比如说:用户视图;A、D选项排除。
对于模式而言,又叫概念模式,对于表级,是数据库中全部数据的逻辑结构和特质的描述,由若干个概念记录类型组成,只涉及类型的描述,不涉及具体的值;B选项排除。
而对于内模式而言,又叫存储模式,对应文件级,是数据物理结构和存储方式的描述,是数据在数据库内部表示的表示方法,定义所有内部的记录类型,索引和文件的组织方式,以及数据控制方面的细节。例如:B树结构存储,Hash方法存储,聚簇索引等等。C选项正确。
数据模型
1.数据库系统中,构成数据模型的三要素是( 数据结构、数据操作、完整性约束 )。
数据模型(Data Model)是现实世界数据特征的抽象,或者说是现实世界的数据模拟。数据库中,用数据模型来抽象地表示现实世界的数据和信息。数据模型的三要素是:数据结构、数据操作及完整性约束条件。
基本数据模型是数据库系统的核心和基础。基本数据模型通常由数据结构、数据操作和数据的约束条件三部分组成。(√)
2.设有学生实体Students(学号,姓名,性别,年龄,家庭住址,家庭成员,关系,联系电话),其中“家庭住址”记录了邮编、省、市、街道信息;“家庭成员,关系,联系电话"分别记录了学生亲属的姓名、与学生的关系以及联系电话。为使数据库模式设计更合理,对于关系模式Students( 应该将家庭成员、关系及联系电话加上学生号,设计成为一个独立的实体)。
本题考查关系运算和E-R图的基本概念。
在大多数情况下,定义的属性对于一个特定的实体都只有单独的一个值。例如,对于一个特定的学生,只对应一个学生号、学生姓名,这样的属性叫做单值属性。但是,在某些特定情况下,一个属性可能对应一组值。例如,学生可能有0个、1个或多个亲属,那么学生的亲属的姓名可能有多个。这样的属性称为多值属性。为了将数据库模式设计得更合理,第二空应该将家庭成员、关系及联系电话加上学生号设计成为一个独立的实体。
3.设有学生实体Students(学号,姓名,性别,年龄,家庭住址,家庭成员,关系,联系电话),其中“家庭住址”记录了邮编、省、市、街道信息;“家庭成员,关系,联系电话"分别记录了学生亲属的姓名、与学生的关系以及联系电话。其中学生实体Students中的“家庭住址"是一个(复合 )属性。
正确答案为C。简单属性是原子的、不可再分的。复合属性可以细分为更小的部分(即划分为别的属性)。有时用户希望访问整个属性,有时希望访问属性的某个成分,那么在模式设计时可采用复合属性。本题学生实体集Students的“家庭住址”可以进一步分为邮编、省、市、街道。
4.关于数据模型的说法错误的是( 概念模型主要用数据流表示,所以也称DFD模型。 )。
概念数据模型是按照用户的观点来对数据和信息建模,主要用于数据库设计。概念模型主要用实体一联系方法(Entity-Relationship Approach)表示,所以也称E-R模型。
5.实体一关系图(E-R图)用于结构化分析过程中的( 数据 )建模。
E-R图时结构化分析过程的工具,用于数据建模,将现实世界中的事物抽象信息世界里的数据。
6.在数据库逻辑设计阶段,若实体中存在多值属性,那么将E-R图转换为关系模式时,( 将实体的码分别和每个多值属性独立构成一个关系模式 ),得到的关系模式属于4NF。
4NF:若关系模式R1NF,R的每个非平凡多值依赖X→→Y且YX时,X必含有码,则关系模式R(U,F)4NF;对于本题中存在多值属性的情况,应该将该实体的码和相关的多值属性独立构成一个关系模式。
7.E-R模型向关系模型转换时,两个实体E1和E2之间的多对多联系R应该转换为一个独立的关系模式,且该关系模式的关键字由(E1和E2的关键字 )组成。
多对多关系的中间表关键字由两张表的关键字组合而成。
8.如下E-R图中,两个实体R1、R2之间有一个联系E。当E的类型为(星比星)时,必须将E转换成一个独立的关系模式。
9.
关系代数
1.给定关系模式R(U,F),U={A,B,C,D,E,H},函数依赖集F={A→B,A→C,C→D,AE→H}。关系模式R的候选关键字为( AE )。
关系中的某一属性或属性组的值能唯一的标识一个元组,而其任何真子集都不能再标识,则称该属性组为候选码。
2.
SQL
1.having count()
(3)HAVING COUNT(姓名)>2
2.在SQL中,结束事务通常可以使用COMMIT和ROLLBACK语句。若某事务T执行了( ROLLBACK语句,则可将T;对数据库的更新撤销 )。
COMMIT:事务提交。该操作表示事务成功的结束,它将通知事务管理器将该事务的所有更新操作现在可以被提交或永久保留;
ROLLBACK:事务回滚。该操作表示事务非成功地结束,它将通知事务管理器出故障了,数据库可能处于不一致状态,该事务的所有更新操作必须回滚或撤销。
3.下列( 是面向过程的语言 )不是SQL语言的特点。
SQL的特点如下。
(1)综合统一。非关系模型的数据语言分为模式定义语言和数据操纵语言,其缺点是当要修改模式时,必须停止现有数据库的运行,转储数据,修改模式编译后再重装数据库。SQL集数据定义、数据操纵和数据控制功能于一体,语言风格统一,可独立完成数据库生命周期的所有活动。
(2)高度非过程化。非关系数据模型的数据操纵语言是面向过程的,若要完成某项请求,必须指定存储路径;而SQL语言是高度非过程化语言,当进行数据操作时,只要指出“做什么”,无须指出“怎么做”,存储路径对用户来说是透明的,提高了数据的独立性。
(3)面向集合的操作方式。非关系数据模型采用的是面向记录的操作方式,操作对象是一条记录。而SQL语言采用面向集合的操作方式,其操作对象、查找结果可以是元组的集合。
(4)两种使用方式。第一种方式,用户可以在终端键盘上输入SQL命令,对数据库进行操作,故称之为自含式语言;第二种方式,将SQL语言嵌入到高级语言程序中,所以又称为嵌入式语言。
(5)语言简洁、易学易用。SQL语言功能极强,完成核心功能只用了9个动词。
4.SQL即( Structured Query Language )的简称。
规范化
1.若给定的关系模式为R,U=(A,B,C),F={AB→C,C→B},则关系R( 有2个候选关键字AC和AB,并且有3个主属性 )。
将本题关系模式R的函数依赖关系表达为:C依赖于A和B,B依赖于C。
因此A的入度为零,所以他必然为候选关键字的一部分。
通过A与B组合,或A与C组合,均能遍历全图,所以候选关系字有:AB和AC,因此A、B、C均是主属性。
2.关系规范化在数据库设计的( 逻辑 )阶段进行。
数据库设计中规范化是在逻辑设计阶段进行的一项工作,该工作负责把关系模式进行规范,以减少冗余,以及一定程度上消除修改异常,插入异常及删除异常。
3.
控制功能
1.若对DB的修改,应该在数据库中留下痕迹,永不消逝。这个性质称为事务的( 持久性 )。
原子性:事务中的操作要么全完成,要么全部不执行。
一致性:数据库中数据不因事务的执行而受到破坏,事务的执行结果必须使数据库从一个一致性状态变到另一个一致性状态。例如:银行转账,A账户-100,与B账户+100两个操作要么全做,要么全不做。
隔离性:一个事务的执行不能被其他事务干扰,即在多个事务并发执行与各个事务单独执行的结果一样。事务的隔离性是事务并发控制的基础。(隔离性:事务的执行不受其他事务的干扰,事务执行的中间结果对其他事务必须是透明的。
“当多个事务并发执行时,任一事务的更新操作直到其成功提交的整个过程,对其他事务都是不可见的”,这一性质通常被称为事务的隔离性。
)
持久性:一个事务一旦提交,他对数据库中的数据改变应该是永久性的,其他操作或故障不对其产生任何影响。
2.数据库中的4类故障是事务内部故障、系统故障、介质故障及( 计算机病毒 )。
参考《软件设计师教程》(第5版)P513。数据库中的4类故障是事务内部故障、系统故障、介质故障及计算机病毒。
3.【判断】数据的转储分为静态转储和动态转储、海量转储和减量转储、日志文件。(×)
参考《软件设计师教程》(第5版)P513
恢复的基本原理是“建立数据冗余”(重复存储)。建立冗余数据的方法是进行数据转储和登记日志文件。
数据的转储分为静态转储和动态转储、海量转储和增量转储、日志文件。 增量。
4.并发控制的主要技术是( 封锁 )。
并发控制的主要技术是封锁。基本封锁的类型有排它锁(简称X锁或写锁)和共享锁(简称S锁或读锁)。
5.【判断】封锁对象的大小称为封锁的粒度。√
封锁对象的大小称为封锁的粒度。封锁的对象可以是逻辑单元(如属性、元组、关系、索引项、整个索引甚至整个数据库),也可以是物理单元(如数据页或索引页)。
6.某高校人力资源管理系统的数据库中,教师关系模式为T(教师号,姓名,部门号,岗位,联系地址,薪资),函数依赖集F={教师号→(姓名,部门号,岗位,联系地址),岗位→薪资}。T关系的主键为(教师号),,函数依赖集F(存在传递依赖,故关系模式T最高达到2NF)
“教师号”可以决定其他所有字段。由于存在非主属性“岗位”可推导出其他属性“薪资”,所以该关系存在传递函数依赖,有数据操作异常问题。
7.假设事务程序A中的表达式x/y,若y取值为0,则计算该表达式时,会产生故障。该故障属于( 事务故障 )。
(1)事务内部故障。事务内部的故障有的可以通过事务程序本身发现。但有些是非预期的,不能由事务程序处理,例如运算溢出、并发事务发生死锁等。
(2)系统故障。通常称为软故障,是指造成系统停止运行的任何事件,使得系统要重新启动。
(3)介质故障。通常称为硬故障,如磁盘损坏、磁头碰撞和瞬时强磁干扰。此类故障发生的几率小,但破坏性最大。
(4)计算机病毒
网络与信息安全基础知识
网络概述
1.( 具有通信功能的单机系统 )又称终端-计算机网络,是早期计算机网络的主要形式。
参考《软件设计师教程》(第5版)P516。原文:
计算机网络是计算机技术与通信技术日益发展和密切结合的产物,它的发展过程大致可以划分为以下4个阶段。
1)具有通信功能的单机系统
该系统又称终端-计算机网络,是早期计算机网络的主要形式。它将一台计算机经通信线路与若干终端直接相连。
…
2.下列( 数据备份 )不是计算机网络提供的主要功能。
计算机网络提供的主要功能有如下:
(1)数据通信(2)资源共享(3)负载均衡(4)高可靠性
3.【判断】计算机网络按照数据通信和数据处理的功能可分为两层:内层通信子网和外层资源子网。√
参考《软件设计师教程》(第5版)P519。
4.( 资源共享 )是计算机网络最有吸引力的功能。
(1)数据通信:通信或数据传输是计算机网络的主要功能之一。
(2)资源共享:资源共享是计算机网络最有吸引力的功能。
(3)负载均衡:在计算机网络中可进行数据的集中处理或分布式处理。
(4)高可靠性:高可靠性指在计算机网络中的各台计算机可以通过网络彼此互为后备机。
5.计算机网络按( 通信距离 )可分为广域网、局域网和城域网。
按通信距离可分为广域网、局域网和城域网;
按信息交换方式可分为电路交换网、分组交换网和综合交换网;
按网络拓扑结构可分为星型网、树型网、环型网和总线网;
按通信介质可分为双绞线网、同轴电缆网、光纤网和卫星网等;
按传输带宽可分为基带网和宽带网;
按使用范围可分为公用网和专用网;
按速率可分为高速网、中速网和低速网;
按通信传播方式可分为广播式和点到点式。
6.广域网常常借用(传统的公共传输网 )来实现。
参考《软件设计师教程》(第5版)P521,原文:
广域网最根本的特点如下。
(1)分布范围广。加入广域网中的计算机通常处在从数千米到数千千米的地方。因此,网络所涉及的范围可为市、地区、省、国家乃至世界。
(2)数据传输率低。一般为几十兆位每秒以下。
(3)数据传输的可靠性随着传输介质的不同而不同,若用光纤,误码率一般在10-6~10-11之间。
(4)广域网常常借用传统的公共传输网来实现,因为单独建造一个广域网极其昂贵。
(5)拓扑结构较为复杂,大多采用“分布式网络”,即所有计算机都与交换结点相连,从而实现网络中的任何两台计算机都可以进行通信。
7.( 总线型拓扑结构 )属于分布式控制,无须中央处理器,故结构比较简单。
参考《软件设计师教程》(第5版)P522,原文:
总线型拓扑结构如图10-2(a)所示,其特点为只有一条双向通路,便于进行广播式传送信息;总线型拓扑结构属于分布式控制,无须中央处理器,故结构比较简单;结点的增、删和位置的变动较容易,变动中不影响网络的正常运行,系统扩充性能好;结点的接口通常采用无源线路,系统可靠性高;设备少、价格低、安装使用方便;由于电气信号通路多,干扰较大,因此对信号的质量要求高;负载重时,线路的利用率较低;网上的信息延迟时间不确定,故障隔离和检测困难。
8.【判断】广域网与局域网所使用的网络拓扑结构有所不同,广域网多用用总线型、环型、星型或树型结构,而局域网常使用分布式或树型结构。(×)
广域网与局域网所使用的网络拓扑结构有所不同,广域网多用分布式或树型结构,而局域网常使用总线型、环型、星型或树型结构。
9.以下关于网络层次与主要设备对应关系的叙述中,配对正确的是(数据链路层——网桥 )。
10.( 应用层 )提供OSI用户服务,即确定进程之间通信的性质,以满足用户需要以及提供网络与用户应用软件之间的接口服务。
应用层(Application Layer)。应用层提供OSI用户服务,即确定进程之间通信的性质,以满足用户需要以及提供网络与用户应用软件之间的接口服务。例如,事务处理程序、电子邮件和网络管理程序等。
11.OSI参考模型中,不同系统上相同层的实体称为( 同等层实体 )。
12.OSI/RM中1~3层被称为( 通信子网层 )。
OSI/RM中的1~3层主要负责通信功能,一般称为通信子网层。上三层(即5~7层)属于资源子网的功能范畴,称为资源子网层。传输层起着衔接上、下三层的作用。
13.( 物理层 )提供为建立、维护和拆除物理链路所需的机械、电气、功能和规程的特性;提供有关在传输介质上传输非结构的位流及物理链路故障检测指示。
本题考查ISO/OSI参考模型。
参考《软件设计师教程》(第5版)P524原文:
14.(数据链路层 )负责在两个相邻结点间的线路上无差错地传送以帧为单位的数据,并进行流量控制。
参考《软件设计师教程》(第5版)P525原文:
15.在OSI参考模型中,负责对应用层消息进行压缩、加密功能的层次为( 表示层 )。
(6)表示层。表示层处理的是用户信息的表示问题。端用户(应用进程)之间传送的数据包含语义和语法两个方面。语义是数据的内容及其含义,它由应用层负责处理;语法是与数据表示形式有关的方面,例如,数据的格式、编码和压缩等,表示层主要用于处理应用实体面向交换的信息的表示方法,包括用户数据的结构和在传输时的比特流(或字节流)的表示。这样,即使每个应用系统有各自的信息表示法,但被交换的信息类型和数值仍能用一种共同的方法来描述。故选择C选项。
网络互联硬件
1.( 服务器 )是局域网的核心,根据它在网络中的作用,还可进一步分为文件服务。
在一个局域网中,其基本组成部件为服务器、客户端、网络设备、通信介质和网络软件等。
(1)服务器(Server)。局域网的核心,根据它在网络中的作用,还可进一步分为文件服务器、打印服务器和通信服务器等。
(2)客户端(Client)。客户端又称为用户工作站,包括用户计算机与网络应用接口设备。
(3)网络设备。网络设备主要指一些硬件设备,如网卡、收发器、中继器、集线器、网桥和路由器等。网卡是一种必不可少的网络设备,常用的网卡有Ethernet(以太网)网卡、ARCNET网卡、ESIA总线网网卡和Token-Ring网卡等。
(4)通信介质。数据的传输媒体,不同的通信介质有着不同的传输特性。
(5)网络软件。网络软件主要包括底层协议软件、网络操作系统(NOS)等。底层协议软件由一组标准规则及软件构成,以使实体间或网络之间能够互相进行通信。网络操作系统主要对整个网络的资源和运行进行管理,并为用户提供应用接口。
2.( 网关 gateway )是应用层的互连设备。
参考《软件设计师教程》(第5版)P529原文:网关(Gateway)是应用层的互连设备。
3.( 路由器router )是网络层互连设备,用于连接多个逻辑上分开的网络。
参考《软件设计师教程》(第5版)P529原文:路由器(Router)是网络层互连设备,用于连接多个逻辑上分开的网络。
4.( 集线器 )可以看成是一种特殊的多路中继器,也具有信号放大功能。
参考《软件设计师教程》(第5版)P527原文:
5.【判断】中继器的主要优点是安装简便、使用方便、价格便宜。(√)
6.以下( 中继器(Repeater)、 集线器(Hub) )设备属于物理层的互连设备。
参考《软件设计师教程》(第5版)P527原文:
7.( 客户端 )又称为用户工作站,包括用户计算机与网络应用接口设备。
(2)客户端(Client)。客户端又称为用户工作站,包括用户计算机与网络应用接口设备。
8.( 路由器 )具有很强的异种网互连能力,互连网络的最低两层协议可以互不相同,通过驱动软件接口到第三层而得到统一。
参考《软件设计师教程》(第2版)P528原文:
9.【判断】交换机转发数据的延迟很小,操作接近单个局域网性能,远远超过了普通桥接的转发性能。(√)
参考《软件设计师教程》(第5版)P527原文:
网络协议与标准
1.【判断】Internet标准的特点是自发而非政府干预的,管理松散,每个分网络均由各自分别管理。(√)
参考《软件设计师教程》(第5版)P536原文:
Internet标准的特点是自发而非政府干预的,管理松散,每个分网络均由各自分别管理,目前已组成了一个民间性质的协会ISOC(Internet Society)进行必要的协调与管理,有一个网络信息中心(NIC)来管理IP地址,保证注册地址的唯一性,并为用户提供一些文件,介绍可用的服务。ISOC设有Internet总体管理机构结构(IAB)。
2.【判断】一个局域网的基本组成主要有网络服务器、网络工作站、网络路由器和传输介质。(×)
参考《软件设计师教程》(第5版)P536原文:
一个局域网的基本组成主要有网络服务器、网络工作站、网络适配器和传输介质。这些设备在特定网络软件支持下完成特定的网络功能。
3.【判断】网络接口层又称数据链路层,处于TCP/IP协议层下,负责接收IP数据报,并把数据报通过选定的网络发送出去。(√)
参考《软件设计师教程》(第5版)P546原文:
(4)网络接口层。网络接口层又称数据链路层,处于TCP/IP协议层之下,负责接收IP数据报,并把数据报通过选定的网络发送出去。该层包含设备驱动程序,也可能是一个复杂的、使用自己的数据链路协议的子系统。
4.( 点对点协议 )主要用于“拨号上网”这种广域连接模式。
参考《软件设计师教程》(第5版)P542原文:
点对点协议(PPP)
点对点协议主要用于“拨号上网”这种广域连接模式。它的优点是简单、具备用户验证能力、可以解决IP分配等。它主要通过拨号或专线方式建立点对点连接发送数据,使其成为各种主机、网桥和路由器之间简单连接的一种通用的解决方案。
5.( 广域网 )通常是指覆盖范围大、传输速率低、以数据通信为主要目的的数据通信网。
参考《软件设计师教程》(第5版)P541原文:
Internet 及其应用
1.【判断】在Internet 中分布着一些覆盖范围很广的大网络,这种网络称为“Internet主干网”,它们一般属于国家级的广域网。(√)
参考《软件设计师教程》(第5版)P550原文:
在 Internet 中分布着一些覆盖范围很广的大网络,这种网络称为“Internet 主干网”,它们一般属于国家级的广域网。例如,我国的CHINANET 和CERNET 等就是中国的 Internet 主干网。
2.( 域名 domain name )通常是用户所用的主机的名字或地址。
域名(Domain Name)通常是用户所用的主机的名字或地址。域名格式由若干部分组成,每个部分又称子域名,它们之间用“.”分开,每个部分最少由两个字母或数字组成。
3.【判断】通常情况下,一个完整、通用的层次型主机域名由以下4个部分组成:计算机主机名.IP.组名.最高层域名(×)
一个完整、通用的层次型主机域名由以下4个部分组成:
计算机主机名.本地名.组名.最高层域名
4.因特网中的域名系统(Domain Name System)是一个分层的域名,在根域下面是顶级域,以下顶级域中,( UK )属于国家顶级域。
5.TCP和UDP协议均提供了( 端口寻址 )能力。
UDP是一种不可靠的、无连接的协议,没有连接管理能力,不负责重新发送丢失或出错的数据消息,也没有流量控制的功能。
6.IPv6的地址空间是IPv4的( 2^96 )倍。
IPv4用32位二进制表示,能够表示的地址空间是2^32 ,IPv6用128位二进制表示,能够表示的地址空间是2 ^128,2 ^128/2 ^32=2 ^96
7.在一台安装好TCP/IP协议的计算机上,当网络连接不可用时,为了测试编写好的网络程序,通常使用的目的主机IP地址为( 127.0.0.1 )。
127.0.0.1是回送地址,指本地机,一般用来测试使用。回送地址(127.x.x.x)是本机回送地址(Loopback Address),即主机IP堆栈内部的IP地址,主要用于网络软件测试以及本地机进程间通信,无论什么程序,一旦使用回送地址发送数据,协议软件立即返回,不进行任何网络传输。
8.相比于TCP,UDP的优势为( 开销较小 )。
TCP与UDP区别:
(1)TCP面向连接(如打电话要先拨号建立连接);UDP是无连接的,即发送数据之前不需要建立连接;
(2)TCP提供可靠的服务。也就是说,通过TCP连接传送的数据,无差错,不丢失,不重复,且按序到达;UDP尽最大努力交付,即不保证可靠交付;
(3)TCP面向字节流,实际上是TCP把数据看成一连串无结构的字节流;UDP是面向报文的;UDP没有拥塞控制,因此网络出现拥塞不会使源主机的发送速率降低(对实时应用很有用,如IP电话,实时视频会议等);
(4)每一条TCP连接只能是点到点的;UDP支持一对一,一对多,多对一和多对多的交互通信;
(5)TCP首部开销20字节;UDP的首部开销小,只有8个字节;
(6)TCP的逻辑通信信道是全双工的可靠信道,UDP则是不可靠信道,整体来看UDP开销较小。
9.下面关于IP地址和MAC地址说法错误的是( IP地址具有唯一性,MAC地址不具有唯一性 )。
IP地址由服务器分配,不具备唯一性。MAC地址具有唯一性,每一个硬件设备都有唯一的MAC地址。
10.浏览器开启无痕浏览模式时,( 下载的文件 )仍然会被保存。
在浏览器开启无痕浏览模式时,浏览历史、搜索历史和临时文件都不会被保存,只有下载的文件可以被保存。本题选择C选项。
11.IPv6地址长度为( 128)bit。
信息安全基础知识
1.【判断】信息安全包括5个基本要素:私密性、完整性、可用性、可控性与可审查性。(×)
信息安全包括5个基本要素:机密性、完整性、可用性、可控性与可审查性。
2.【判断】可用性在信息安全中的表现是只有得到允许的人才能修改数据,并且能够判别出数据是否已被篡改。(×)
信息安全包括5个基本要素:机密性、完整性、可用性、可控性与可审查性。
· 机密性:确保信息不暴露给未授权的实体或进程。
· 完整性:只有得到允许的人才能修改数据,并且能够判别出数据是否已被篡改。
· 可用性:得到授权的实体在需要时可访问数据,即攻击者不能占用所有的资源而阻碍授权者的工作。
· 可控性:可以控制授权范围内的信息流向及行为方式。
· 可审查性:对出现的信息安全问题提供调查的依据和手段。
3.下列( 信息使用安全、系统安全监控、计算机病毒防治、数据加密、防治非法攻击 )属于存储安全的主要内容。
存储安全包括:信息使用安全、系统安全监控、计算机病毒防治、数据加密、防治非法攻击。
4.计算机信息系统安全保护等级中最低一级指的是( 用户自主保护级 )。
计算机系统安全保护等级:
第一级:用户自主保护级
第二级:系统审计保护级
第三级:安全标记保护级
第四级:结构化保护级
第五级:访问验证保护级
从第一级到第五级安全级别逐渐增高。所以最低的一级为用户自主保护级,它适合于损害合法权益,但不损害社会秩序、公共利益、国家安全,适用于普通的互联网用户。
5.【判断】用户的标识与验证主要是限制进入系统的用户所能做的操作。(×)
用户的标识与验证主要是限制访问系统的人员。用户存取权限限制主要是限制进入系统的用户所能做的操作。
参考《软件设计师教程》(第5版)P565:
用户的标识与验证主要是限制访问系统的人员。它是访问控制的基础,是对用户身份的合法性验证。方法有如下两种:
一是基于人的物理特征的识别,包括签名识别法、指纹识别法和语音识别法;
二是基于用户所拥有特殊安全物品的识别,包括智能IC卡识别法、磁条卡识别法。
6.下列( 用户的标识与验证、用户存取权限限制、安全问题跟踪)属于信息使用安全的内容。
信息的存储安全包括信息使用的安全(如用户的标识与验证、用户存取权限限制、安全问题跟踪等)、系统安全监控、计算机病毒防治、数据的加密和防止非法的攻击等。
7.所有资源只能由授权方或以授权的方式进行修改,即信息未经授权不能进行改变的特性是指信息的(完整性 )。
C、数据的机密性(保密性)是指数据在传输过程中不能被非授权者偷看,C选项排除。
B、数据的可用性指的是发送者和接受者双方的通信方式正常,B选项排除。
D、数据的真实性(不可抵赖性)是指信息的发送者身份的确认或系统中有关主体的身份确认,这样可以保证信息的可信度,D选项排除;
8.下列算法中属于非对称加密算法的是(RSA )。
典型的对称加密算法:DES,3DES,AES等。
典型的非对称加密算法:RSA,ECC等。本题选B选项。
典型的摘要算法:SHA,MD5等。
网络安全概述
1.使用漏洞扫描系统对信息系统和服务器进行定期扫描可以( 发现高危风险和安全漏洞 )。
2.( 应用级网关 )防火墙是内部网和外部网的隔离点,它可对应用层的通信数据流进行监控和过滤。
包过滤防火墙:包过滤防火墙一般有一个包检查块(通常称为包过滤器),数据包锅里可以根据数据包头中的各项信息来控制站点与站点、站点与网络、网络与网络之间的相互访问,但无法控制传输数据的内容,因为内容是应用层数据,而包过滤器处在网络层和数据链路层之间,不符合本题要求。
应用级网关防火墙:应用代理网关防火墙彻底隔断内网与外网的直接通信,内网用户对外网的访问变成防火墙对外网的访问,然后再由防火墙转发给内网用户。所有的通信都必须经应用层代理软件转发,它可对应用层的通信数据流进行监控和过滤。
数据库防火墙:数据库防火墙技术是针对关系型数据库保护需求应运而生的一种数据库安全主动防御技术,数据库防火墙部署于应用服务器和数据库之间,不符合本题要求。
web防火墙:web防火墙是入侵检测系统,入侵防御系统的一种。从广义上来说,web应用防火墙就是应用级的网站安全综合解决方案,与我们所讲到的防火墙概念有一定区别,不符合本题要求。
3.以下关于防火墙功能特性的叙述中,不正确的是( 提供漏洞扫描功能)。
4.防火墙的工作层次是决定防火墙效率及安全的主要因素,下面叙述中正确的是(防火墙工作层次越高,工作效率越低,安全性越高 )。
防火墙的性能及特点主要由以下两方面所决定。
①工作层次。这是决定防火墙效率及安全的主要因素,一般来说,工作层次越低,则工作致率越高:但安全性就低了;反之,工作层次越高,工作效率越低,则安全性越高。
②防火墙采用的机制。如果采用代理机制,则防火墙具有内部值息隐藏的特点,相对而言,安全性高,效率低:如果采用过滤机制,期效率高,安全性却降低了,
5.【判断】应用代理网关的优点是可以检查应用层、传输层和网络层的协议特征,对数据包的检测能力比较强。(√)
缺点是难以配置;处理速度非常慢。
6.【判断】过滤型的防火墙通常直接转发报文,它对用户完全透明,速度较快。(√)
参考《软件设计师教程》(第5版)P571原文:
过滤型的防火墙通常直接转发报文,它对用户完全透明,速度较快。其优点是防火墙对每条传入和传出网络的包实行低水平控制;每个IP包的字段都被检查。
7.【判断】防火墙(Firewall)是建立在内外网络边界上的过滤封锁机制,它认为外部网络是安全和可信赖的,而内部网络是不安全和不可信赖的。(×)
参考《软件设计师教程》(第5版)P570,原文:
防火墙(Firewall)是建立在内外网络边界上的过滤封锁机制,它认为内部网络是安全和可信赖的,而外部网络是不安全和不可信赖的。
8.下列( 防火墙技术、加密技术、用户识别技术、访问控制技术、网络反病毒技术、网络安全漏洞扫描技术、入侵检测技术 )属于网络安全控制技术。
网络安全控制技术目前有防火墙技术、加密技术、用户识别技术、访问控制技术、网络反病毒技术、网络安全漏洞扫描技术、入侵检测技术等。
9.以下( 对网络服务系统进行干扰、执行无关程序使系统响应减慢、甚至瘫痪 )是拒绝服务攻击的表现。
一般认为,目前网络存在的威胁主要表现在以下5个方面。
(1)非授权访问:没有预先经过同意,就使用网络或计算机资源则被看作非授权访问,如有意避开系统访问控制机制,对网络设备及资源进行非正常使用,或擅自扩大权限,越权访问信息。它主要有以下几种形式:假冒、身份攻击、非法用户进入网络系统进行违法操作、合法用户以未授权方式进行操作等。
(2)信息泄露或丢失:指敏感数据在有意或无意中被泄露出去或丢失,它通常包括信息在传输中丢失或泄露、信息在存储介质中丢失或泄露以及通过建立隐蔽隧道等窃取敏感信息等。
(3)破坏数据完整性:以非法手段窃得对数据的使用权,删除、修改、插入或重发某些重要信息,以取得有益于攻击者的响应;恶意添加,修改数据,以干扰用户的正常使用。
(4)拒绝服务攻击:它不断对网络服务系统进行干扰,改变其正常的作业流程,执行无关程序使系统响应减慢甚至瘫痪,影响正常用户的使用,甚至使合法用户被排斥而不能进入计算机网络系统或不能得到相应的服务。
(5)利用网络传播病毒:通过网络传播计算机病毒,其破坏性大大高于单机系统,而且用户很难防范。
10.网络系统中,通常把( Web服务器 )置于DMZ区。
DMZ是英文“demilitarized zone”的缩写,中文名称为“隔离区”,也称“非军事化区”。它是为了解决安装防火墙后外部网络不能访问内部网络服务器的问题,而设立的一个非安全系统与安全系统之间的缓冲区,这个缓冲区位于企业内部网络和外部网络之间的小网络区域内,在这个小网络区域内可以放置一些必须公开的服务器设施,如企业Web服务器、FTP服务器和论坛等。另一方面,通过这样一个DMZ区域,更加有效地保护了内部网络,因为这种网络部署,比起一般的防火墙方案,对攻击者来说又多了一道关卡。
11.防火墙不具备( 查毒 )功能。
网络防火墙就是一个位于计算机和它所连接的网络之间的软件。该计算机流入流出的所有网络通信均要经过此防火墙。防火墙对流经它的网络通信进行扫描,这样能够过滤掉一些攻击,以免其在目标计算机上被执行。防火墙还可以关闭不使用的端囗。而且它还能禁止特定端囗的流出通信,封锁特洛伊木马。最后,它可以禁止来自特殊站点的访问,从而防止来自不明入侵者的所有通信。
防火墙的功能包括:访问控制;提供基于状态检测技术的ip地址、端口、用户和时间的管理控制;双向nat,提供ip地址转换和ip及tcp/udp端口映射,实现ip复用和隐藏网络结构:代理等。
12.( 漏洞扫描 )不属于入侵检测技术。
漏洞扫描为另一种安全防护策略。
13.下列不属于计算机病毒的是( DDOS )。
木马如果算作病毒的话——永恒之蓝、蠕虫、特洛伊木马、熊猫烧香
DDoS指的是分布式拒绝服务攻击,不属于计算机病毒与木马,其他选项都属于计算机病毒或木马,本题选择D选项。
14.以下关于杀毒软件的描述中,错误的是(安装杀毒软件可以有效防止网站信息被篡改 )。
在杀毒软件的使用过程中,我们应该为个人计算机、服务器都安装杀毒软件,并且应当及时更新病毒库信息,可以有效防止蠕虫病毒等。ABD选项描述都是正确的。
杀毒软件只能防病毒,不能有效防止网站信息被篡改,所以C选项描述错误,本题选择C选项。
15.通过在出口防火墙上配置( ACL )功能可以阻止外部未授权用户访问内部网络。
ACL一般指访问控制列表。访问控制列表(ACL)是一种基于包过滤的访问控制技术,它可以根据设定的条件对接囗上的数据包进行过滤,允许其通过或丢弃。本题描述的是ACL,其他选项与本题描述不符,选择A选项。
16.用户在电子商务网站上使用网上银行支付时,必须通过( 支付网关 )在lnternet与银行专用网之间进行数据交换。
用户在电子商务网站上使用网上银行支付时,必须通过支付网关才能在Internet与银行专用网之间进行数据交换。
A、支付网关:是银行金融网络系统和Internet网络之间的接口,是由银行操作的将Internet上传输的数据转换为金融机构内部数据的一组服务器设备,或由指派的第三方处理商家支付信息和顾客的支付指令。与题目场景相符,A选项正确。
B、防病毒网关:防病毒网关是一种网络设备,用以保护网络内(一般是局域网)进出数据的安全。主要体现在病毒杀除、关键字过滤(如色情、反动)、垃圾邮件阻止的功能,同时部分设备也具有一定防火墙(划分Vlan)的功能。如果与互联网相连,就需要网关的防病毒软件。与题目场景不符,B选项错误。
C、出口路由器:一般指局域网出外网的路由器,或者指一个企业、小区、单位、城域网、省级网络、国家网络与外界网络直接相连的那台路由器。在网络间起网关的作用,是读取每一个数据包中的地址然后决定如何传送的专用智能性的网络设备。与题目场景不符,C选项错误。
D、堡垒主机:堡垒主机是一种被强化的可以防御进攻的计算机,作为进入内部网络的一个检查点,以达到把整个网络的安全问题集中在某个主机上解决,从而省时省力,不用考虑其它主机的安全的目的。与题目场景不符,D选项错误。
17.防火墙通常分为内网、外网和DMZ三个区域,按照受保护程度,从低到高正确的排列次序为( 外网、DMZ和内网 )。
cisco PIX防火墙的配置命令中,namif命令用于对端口命名,同时指定对应端口的优先级。通常接内网的端口优先级最高,接入外网的端口优先级最低,若有DMZ区域,则接入该区域的端口优先级介于内网和外网端口之间。指定好了优先级之后,默认情况下,cisco PIX防火墙只运行高优先级端口的流量流向低优先级端口,拒绝低优先级端口流量流向高优
先级端口。所以防火墙通常分为内网、外网和DMZ三个区域,按照受保护程度,从高到低正确的排列次序为内网、DMZ和外网。
18.包过滤防火墙对(网络层 )的数据报文进行检查。
包过滤防火墙是最简单的一种防火墙,它在网络层截获网络数据包,根据防火墙的规则表,来检测攻击行为。包过滤防火墙一般作用在网络层(IP层),故也称网络层防火墙(Network Lev Firewall)或IP过滤器(IP filters)。数据包过滤(Packet Filtering)是指在网络层对数据包进行分析、选择。通过检查数据流中每一个数据包的源IP地址、目的IP地址、源端囗号、目的端口号、协议类型等因素或它们的组合来确定是否允许该数据包通过。在网络层提供较低级别的安全防护和控制。
19.以下可以有效防治计算机病毒的策略是( 安装并及时升级防病毒软件)。
A选项、部署防火墙:防火墙技术是通过有机结合各类用于安全管理与筛选的软件和硬件设备,帮助计算机网络于其内、外网之间构建一道相对隔绝的保护屏障,以保护用户资料与信息安全性的一种技术,并不能有效的防范病毒。
B选项、部署入侵检测系统:入侵检测系统(intrusion detection system,简称“IDS”)是一种对网络传输进行即时监视,在发现可疑传输时发出警报或者采取主动反应措施的网络安全设备。是对一种网络传输的监视技术,并不能有效的防范病毒。
D选项、定期备份数据文件:数据备份是容灾的基础,是指为防止系统出现操作失误或系统故障导致数据丢失,而将全部或部分数据集合从应用主机的硬盘或阵列复制到其它的存储介质的过程。是为了防止系统数据流失,不能有效的防范病毒。
标准化和软件知识产权基础知识
标准化基础知识
1.PASC是指( 太平洋地区标准会议 )。
ASAC- 亚洲标准咨询委员会 CEN- 欧洲标准委员会 ARSO- 非洲地区标准化组织
2.地方标准代号由大写汉语拼音DB加上省级行政区划代码的前两位组成。
行业标准代号一般由汉语拼音大写字母组成,已正式公布的行业代号有QJ(航天)、SJ(电子)、JB(机械)和JR(金融系统)等。地方标准代号由大写汉语拼音DB加上省级行政区划代码的前两位组成。
3.( 标准 )是对重复性事物和概念所做的统一规定。
参考《软件设计师教程》(第5版)原文:标准(Standard)是对重复性事物和概念所做的统一规定。
4.根据标准制定的机构和标准适用的范围,可分为国际标准、国家标准、行业标准、企业(机构)标准及项目(课题)标准。(√)
参考《软件设计师教程》(第5版)原文:
5.根据标准的性质可分为技术标准、管理标准和检验标准。(×)
根据标准的性质可分为技术标准、管理标准和工作标准。
6.「GB」指的是( 中国 )。
GB- 中国、ANSI- 美国、BS- 英国、JIS- 日本
7.强制性国家标准是( GB )。
推荐性国家标准:GB/T
知识产权基础知识
1.下列关于软件著作权中翻译权的叙述正确的是:翻译权是指( 将原软件从一种自然语言文字转换成另一种自然语言文字)的权利。
(争议)软件著作权中翻译权属于软件著作财产权,是指从一种程序设计语言,翻译成另一种程序设计语言
2.利用( 商业秘密权 )可以对软件的技术信息、经营信息提供保护。
著作权是对作品,包括文学、艺术、自然科学、社会科学和工程技术领域内具有独创性并能以某种有形形式复制的智力成果的保护。专利权保护的是具有创造性的发明及设计等成果。商业秘密权用来保护商家的秘密,而软件的技术信息及经营信息正属于商业秘密的范畴,因此需要用商业秘密权来保护。
3.某软件公司研发的财务软件产品在行业中技术领先,具有很强的市场竞争优势。为确保其软件产品的技术领先及市场竞争优势,公司采取相应的保密措施,以防止软件技术秘密的外泄。并且,还为该软件产品冠以“用友”商标,但未进行商标注册。此情况下,公司仅享有该软件产品的(软件著作权和商业秘密权 )。
4.M软件公司的软件产品注册商标为M,为确保公司在市场竞争中占据优势,对员工进行了保密约束。此情形下该公司不享有( 专利权 )。
M公司对商标进行了注册,那么其就享有该商标的商标权,而在注册前就应该完成了该商标的设计和职责,自然就享有其著作权,而同时,为了确保公司在市场竞争中占据优势,对员工进行了保密约束,那么就具有商业秘密权。
5.王某买了一幅美术作品原件,则他享有该美术作品的( 所有权与其展览权 )。
展览权是原件持有人的特有的权利,著作权人不能以发表权限制其权利(除非有约定)。
所有权是所有人依法对自己财产所享有的占有,使用,收益和处分的权利。
6.关于软件著作权产生的时间,下面表述正确的是( 自作品创作完成之日 )。
在我国,软件著作权采用“自动保护”原则。《计算机软件保护条例》第十四条规定:“软件著作权自软件开发完成之日起产生”。即软件著作权自软件开发完成之日起自动产生,不论整体还是局部,只要具备了软件的属性即产生软件著作权,既不要求履行任何形式的登记或注册手续,也无须在复制件上加注著作权标记,也不论其是否已经发表:都依法享有软件著作权。
一般来讲,一个软件只有开发完成并固定下来才能享有软件著作权。如果一个软件一直处于开发状态中,其最终的形态并没有固定下来,则法律无法对其进行保护。因此,条例(法律)明确规定软件著作权自软件开发完成之日起产生。当然,现在的软件开发经常是一项系统工程,一个软件可能会有很多模块,而每一个模块能够独立完成某一项功能。自该模块开发完成后就产生了著作权。所以说,自该软件开发完成后就产生了著作权。
7.X软件公司的软件工程师张某兼职于Y科技公司,为完成Y科技公司交给的工作,做出了一项涉及计算机程序的发明。张某认为该发明是利用自己的业余时间完成的,可以以个人名义申请专利。此项专利申请权应归属( Y科技公司 )。
因为张某是为了完成Y科技公司交给的工作而做出的发明,属于职务作品,对于职务作品,其专利权应该归单位所有,因此本题答案应该选C。
8.王某是一名软件设计师,按公司规定编写软件文档并上交公司存档。这些软件文档属于职务作品且( 其著作权由公司享有 )。
9.中国企业M与美国公司L进行技术合作,合同约定M使用一项在有效期内的美国专利,但该项美国专利未在中国和其他国家提出申请。对于M销售依照该专利生产的产品,以下叙述正确的是( 在中国销售,M不需要向L支付专利许可使用费 )。
本题的正确答案选D,因为该技术只在美国申请了专利,且在有效期内,而在中国和其他国家未提出申请,因此不受这些国家的专利权保护,因此在中国或其他国家销售,M不需要向L支付专利许可使用费。
10.软件权利人与被许可方签订一份软件使用许可合同。若在该合同约定的时间和地域范围内,软件权利人不得再许可任何第三人以此相同的方法使用该项软件,但软件权利人可以自己使用,则该项许可使用是( 独家许可使用 )。
软件许可使用一般有独占许可使用、独家许可使用和普通许可使用三种形式。独占许可使用,许可的是专有使用权,实施独占许可使用后,软件著作权人不得将软件使用权授予第三方,软件著作权人自己不能使用该软件;独家许可使用,许可的是专有使用权,实施独家许可使用后,软件著作权人不得将软件使用权授予第三方,软件著作权人自己可以使用该软件;普通许可使用,许可的是非专有使用权,实施普通许可使用后,软件著作权人可以将软件使用权授予第三方,软件著作权人自己可以使用该软件。
11.( 合理使用 )指可以不经著作权人许可,不需支付报酬,使用其作品。
合理使用是指可以不经著作权人许可,不需支付报酬,使用其作品;许可使用是指在获得著作权人许可后使用其作品;强制许可使用也称为强制许可或非自愿许可,是指国务院专利行政部门依照法律规定,可以不经专利权人的同意,直接允许申请人实施专利权人的发明或实用新型专利的一种行政措施;法定许可使用是指法律明文规定,可以不经著作权人许可,以特定的方式有偿使用他人已经发表的作品的行为,并且这种使用应当尊重著作权人的其他各项人身利和财产权。
12.以下作品中,不适用或不受著作权法保护的是( 国务院颁布的《计算机软件保护条例》 )。
根据我国《著作权法》的规定,有三种类型的作品不受法律保护。
第一种是依法禁止出版、传播的作品。
第二种是不适用于《著作权法》的作品。它们包括下列作品:
(1)法律、法规,国家的决议、决定、命令和其他具有立法、行政、司法性质的文件,极其官方正式译文;
(2)时事新闻;
(3)历法、通用数表、通用表格和公式。
国务院颁布的《计算机软件保护条例》属于法律法规,所以不受著作权法保护。
13.为说明某一问题,在学术论文中需要引用某些资料。以下叙述中,( 既可引用发表的作品,也可引用未发表的作品 )是不正确的。
根据《著作权法》的规定,符合法定许可条件的都是“已发表作品”,由此推知,引用未发表作品,必须征得作者同意,因为这涉及到作者的发表权问题。
合理使用是不必征得原作者的同意,不需要向他支付报酬,其使用的范围和具体方式,具体而言可以从以下几个方面理解:
(1)引用的目的是为了介绍、评论某一作品或者说明某一问题。
(2)引用的比例必须适当。一般说来,引用不应当比评论、介绍或者说明还长。
(3)引用的作品必须是已经发表的作品。
(4)引用他人的作品,应当指明作者的姓名,作品的名称,并且不得侵犯著作权人按照著作权法享有的其他权利。
14.软件著作权的客体不包括( 软件开发思想 )。
软件著作权的客体是指计算机软件,即计算机程序及其有关文档。计算机程序是指为了得到某种结果而可以由计算机等具有信息处理能力的装置执行的代码化指令序列,或者可以被自动转换成代码化指令序列的符号化序列或者符号化语句序列。同一计算机程序的源程序和目标程序为同一作品。文档是指用来描述程序的内容、组成、设计、功能规格、开发情况、测试结果及使用方法的文字资料和图表等,如程序说明、流程图、用户手册等。
15.下列智力成果中,能取得专利权的是( 计算机算法 )。
计算机程序的法律保护形式有著作权法、专利法、商标法、商业秘密法等,计算机程序的专利保护可以弥补著作权保护的不足,但是专利法规定,智力活动的规则和方法不能授予专利权。
计算机程序算法和代码是智力活动的成果,著作权保护程序代码但是不保护算法,专利权可以作为著作权的补充,用专利权保护算法。
16.程序员甲与同事乙在乙家探讨甲近期编写的程序,甲表示对该程序极不满意,要弃之重写,并将程序手稿扔到乙家垃圾筒。后来乙将甲这一程序稍加修改,并署乙发表。以下说法正确的是(乙的行为侵犯了甲的软件著作权 )。
著作权因作品的完成而自动产生,不必履行任何形式的登记或注册手续,也不论其是否已经发表,所以甲对该软件作品享有著作权。乙未经甲的许可擅自使用甲的软件作品的行为,侵犯了甲的软件著作权。
17.甲、乙软件公司于2013年9月12日就其财务软件产品分别申请“大堂”和“大唐”商标注册。两财务软件相似,且经协商双方均不同意放弃使用其申请注册的商标标识。此情形下,( 由甲、乙抽签结果确定谁能 )获准注册。
这个是同一类产品,构成近似商标,“近似商标”是指文字、数字、图形、三维标志或颜色组合等商标的构成要素的发音、视觉、含义或排列顺序及整体结构上虽有一定区别,但又使人难以区分,容易产生混淆的商标。会产生商标侵权,故不能同时注册。由双方协商决定。
18.甲、乙两软件公司于2012年7月12日就其财务软件产品分别申请“用友”和“用有”商标注册。两财务软件相似,甲第一次使用时间为2009年7月,乙第一次使用时间为2009年5月。此情形下,( “用有” )能获准注册。
19.两个以上的申请人分别就相同内容的计算机程序的发明创造,先后向国务院专利行政部门提出申请,( 先申请人 )可以获得专利申请权。
本题考查知识产权基本知识,即专利管理部门授予专利权的基本原则。我国授予专利权采用先申请原则,即两个以上的申请人分别就同一项发明创造申请专利权的,专利权授予最先申请的人。如果两个以上申请人在同一日分别就同样的发明创造申请专利的,应当在收到专利行政管理部门的通知后自行协商确定申请人。如果协商不成.专利局将驳回所有申请人的申清,即所有申请人均不能取得专利权。所以,先申请人可以获得专利申请权。
20.依据《中华人民共和国著作权法》,关于著作权的描述,不正确的是:( 将已经发表的中文作品改成盲文出版,须经著作权人许可)。
在下列情况下使用作品,可以不经著作权人许可,不向其支付报酬,但应当指明作者姓名、作品名称,并且不得侵犯著作权人依照本法享有的其他权利:
(十二)将已经发表的作品改成盲文出版。
21.著作权中,( 署名权 )的保护期不受限制。
本题考查著作权期限相关知识。《中华人民共和国著作权法》对著作权的保护期限作了如下规定:(1)著作权中的署名权、修改权、保护作品完整权的保护期不受限制。
22.( 商标权 )的保护期是可以延长的。.
知识产权中,软件著作权的署名权、修改权,以及普通著作权作品的署名权、修改权、保护作品完整权,都可以永久保护。其他著作权的保护期限是作者终身及其死后50年。特殊的保护期限中,商标权可以续注延长,商业秘密权保密期限不确定。
23.X公司接受Y公司的委托开发了一款应用软件,双方没有订立任何书面合同。在此情形下,( X公司 )享有该软件的著作权。
有合同约定,著作权归委托方,那么就归属委托方;而在合同中未约定著作权归属,归创作方。对于题干描述说明未签订书面合同,则该著作权归创作方,(X公司接受Y公司的委托),即创作方X公司。
24.( 《中华人民共和国著作权法》和《计算机软件保护条例》)是构成我国保护计算机软件著作权的两个基本法律文件。
软件系统分析与设计(简单介绍)
结构化分析与设计
1.SRS(Software Requirement Specification,软件需求规范说明)是一个正式的文档,用于描述软件产品、程序或一组程序在特定环境中执行其功能时的规格
面向对象设计
相关文章:

【2024软考】史上最全!软考刷题+解析大合集(9万字全手工打,货真价实)
计算机基础知识 1.中断向量表用来保存各个中断源的中断服务程序的入口地址。当外设发出中断请求信号(INTR)以后,由中断控制器(INTC)确定其中断号,并根据中断号查找中断向量表来取得其中断服务程序的入口地…...

【Spring Security + OAuth2】授权
Spring Security OAuth2 第一章 Spring Security 快速入门 第二章 Spring Security 自定义配置 第三章 Spring Security 前后端分离配置 第四章 Spring Security 身份认证 第五章 Spring Security 授权 第六章 OAuth2 文章目录 Spring Security OAuth21、基于request的授权1…...

失落的方舟台服预下载教程 一键下载+账号注册教程
失落的方舟台服预下载教程 一键下载+账号注册教程 是一款今年备受瞩目的游戏,将于5月30日正式上线,这款游戏搭建在虚幻引擎的基础上,为玩家们带来了极佳的视觉体验。这款游戏秉承着MMO类型游戏一贯的玩法,但是制作组在…...

【启明智显技术分享】SOM2D02-2GW核心板适配ALSA(适用Sigmastar ssd201/202D)
提示:作为Espressif(乐鑫科技)大中华区合作伙伴及sigmastar(厦门星宸)VAD合作伙伴,我们不仅用心整理了你在开发过程中可能会遇到的问题以及快速上手的简明教程供开发小伙伴参考。同时也用心整理了乐鑫及星宸…...

人工智能的发展现状,AI将如何改变IT行业,哪些职业将最先失业
文章目录 一、人工智能的发展现状1、技术进展与突破2、商业应用与市场3、挑战与问题4、未来趋势 二、AI将如何改变IT行业1、工作方式的转变:2、未来发展的推动:3、用户服务和体验的提升:4、创新和转型的推动:5、融入日常生活和工作…...

request.js使用Promise.all等待所有请求完成再进行数据赋值
在JavaScript中,使用request.js发送多个并发请求,并使用Promise.all来处理这些请求的结果可以通过以下方式实现: 首先,确保你已经安装了request.js,如果没有,可以通过npm安装: npm install re…...

Java开发者必知的时间处理工具:SimpleDateFormat类详解
哈喽,各位小伙伴们,你们好呀,我是喵手。运营社区:C站/掘金/腾讯云;欢迎大家常来逛逛 今天我要给大家分享一些自己日常学习到的一些知识点,并以文字的形式跟大家一起交流,互相学习,一…...

构造函数的用法
c 子类构造函数初始化及父类构造初始化_构造函数对父类进行初始化-CSDN博客...

环形链表Ⅱ-力扣
第一种解法时哈希表,set在使用insert插入时,会返回一个pair,如果pair的值为0,则插入失败,那么返回这个插入失败的节点,就是入环的第一个节点,代码如下: /*** Definition for singly…...

【microros】解决 microros安装过程中的 undefined reference to `fmt::v6 问题
目录 问题解决方案参考链接 问题 在 ubuntu-20 arm 开发板上根据官方文档手动编译安装 microros 过程中,执行 ros2 run micro_ros_setup build_agent.sh 命令时,遇到了 undefined reference to fmt::v6 的问题,大概报错如下: Yo…...

29. 相似矩阵,若尔当型
文章目录 1. 相似矩阵1.1 A T A A^TA ATA正定性证明 2. 相似矩阵2.1 举例2.2 证明相似矩阵具有相同特征值 1. 相似矩阵 假设矩阵A,B为正定矩阵,那么对于任意非零列向量x来说,二次型 x T A x , x T B x x^TAx,x^TBx xTAx,xTBx恒为正 x T A …...

【论文阅读】 YOLOv10: Real-Time End-to-End Object Detection
文章目录 AbstractIntroductionRelated WorkMethodologyConsistent Dual Assignments for NMS-free Training (无NMS训练的一致性双重任务分配)Holistic Efficiency-Accuracy Driven Model Design (效率-精度驱动的整体模型设计) …...

Python读写文件
最近得以空闲,然后继续学习py。 学习一下py中最频繁用到的文件读写的方法。 在py中,操作是通过文件对象【File obj】实现的,通过文件对象可以读写文本文件和一些二进制文件。 1.打开文件 使用Python中的open函数。有8个参数,但…...

docker-如何将容器外的脚本放入容器内,将容器内的脚本放入容器外
文章目录 前言docker-如何将容器外的脚本放入容器内,将容器内的脚本放入容器外、1. docker 如何将容器外的脚本放入容器内1.1. 验证 2. 将容器内的脚本放入容器外 前言 如果您觉得有用的话,记得给博主点个赞,评论,收藏一键三连啊&…...

算法训练营第三十九天 | LeetCode 738 单调递增的数字、LeetCode 968 监控二叉树
LeetCode 738 单调递增的数字 这题类似模拟,可以找出如下规律: 先将数字按位数从高位到低位存到一个整型数组中。在这个数组中,从左往右遍历,如果遇到一个两数相等,并且记录的这个变量之前没有赋过值,那么…...

Hive语法学习总结
Hive SQL语法学习总结 hive参数库操作1.创建库2.具体案例3.库的其他操作 表和库的路径演示表的操作创建表插入数据 hive参数 一 hive常用交互命令hive -e sql语句hive -f sql文件 //文件中是sql语句二 参数的设置方式一:在客户端中设置参数(当次有效)set 参数名参…...

【Linux】TCP协议【中】{确认应答机制/超时重传机制/连接管理机制}
文章目录 1.确认应答机制2.超时重传机制:超时不一定是真超时了3.连接管理机制 1.确认应答机制 TCP协议中的确认应答机制是确保数据可靠传输的关键部分。以下是该机制的主要步骤和特点的详细解释: 数据分段与发送: 发送方将要发送的数据分成一…...

solidworks画螺母学习笔记
螺母 单位mm 六边形 直径16mm,水平约束,内圆直径10mm 拉伸 选择两侧对称,厚度7mm 拉伸切除 画相切圆 切除深度7mm,反向切除 拔模角度45 镜像切除 倒角 直径1mm 异形孔向导 螺纹线 偏移打勾,距离为2mm…...

WebGL的医学培训软件开发
开发基于WebGL的医学培训软件是一项复杂且技术性强的任务,需要结合医学专业知识和计算机图形学技术。以下是详细的开发流程和关键步骤。北京木奇移动技术有限公司,专业的软件外包开发公司,欢迎交流合作。 1.需求分析与定义 目标用户…...

新时代AI浪潮下,程序员和产品经理如何入局AIGC领域?
当下,AI浪潮席卷全球,AIGC大模型技术已经成为当今技术领域的一个重要趋势,对于产品经理来说,掌握这项技术不仅能够增强他们的职业技能,还能在竞争激烈的职场中脱颖而出。 为什么呢? 把握AI时代的机遇 AI技…...

OWASP top10--SQL注入(一)
SQL注入式攻击技术,一般针对基于Web平台的应用程序.造成SQL注入攻击漏洞的原因,是由于程序员在编写Web程序时,没有对浏览器端提交的参数进行严格的过滤和判断。用户可以修改构造参数,提交SQL查询语句,并传递至服务器端…...

java —— 类与方法
一、访问修饰符 在类和方法中,均可使用访问修饰符以锁定该类或方法的被访问权限。访问修饰符有四种: (一)public 同一个项目中,对所有的类可见。 (二)protected 同一个项目中,对…...

【MySQL精通之路】InnoDB-启动选项和系统变量
系统变量可以在服务器启动时设置TRUE或FALSE启用禁用,也可以通过使用--skip前缀来禁用 例如: 要启用或禁用InnoDB自适应哈希索引,可以在命令行中使用--skip-innodb-adaptive-hash-index或--innodb-adaptive-hash-index,或者在配置…...

嵌入式linux系统中文件系统制作方法详解
第一:制作目的 1、掌握嵌入式Ubuntu系统的构建方法 2、熟悉嵌入式Ubuntu文件系统映射压缩打包方法 3、掌握RK3399linux系统单文件系统更新方法 Ubuntu根文件系统制作完成之后,把制作好的ubuntu文件系统映射文件在出厂系统的基础上替换原有的ubuntu根文件系统,即对 Linux 系统…...

AI爆文写作:要写文章爆,这47个爆文前缀少不了!
47个爆文前缀:很震惊很好用 这些前缀,虽然被用了无数次,但每个人看到还是会忍不住点进去。 可以借鉴这样强情绪的句式。 序号前缀1就在刚刚…2真相曝光…3震惊国人…4惊天秘密…5疯狂转发…6删前速看…7千万别吃…8还敢喝吗…9癌症前兆…10赶快扔了…11太可怕了…12大事不…...

javas-core VS java-object-diff
对照工具选择 javas-core 和 java-object-diff ,对比demo https://github.com/kofgame/objectdiff-vs-javers,都为同源对比,都支持嵌套对象。 使用JMH测试方法进行性能测试,使用题库的QuestionResponseVO对象来进行对照对比,进行…...

dirsearch指令大全
文章目录 基本用法主要参数和选项目标和URL设置--url URL--url-list FILE 扩展名--extensions EXTENSIONS 字典文件--wordlists WORDLIST 线程和性能--threads THREADS--timeout SECONDS--delay MILLISECONDS 忽略状态码代理和请求设置--proxy PROXY--headers HEADERS 保存结果…...

C++基础:构建者设计模式
#include <iostream> #include <string> using namespace std; //构建者设计模式-一种工厂只生产一种复杂的产品 class robot {public:string head;string upbody;string downbody; };class robotBuilder {private:robot *myRobot;public:robotBuilder() //构造函…...

Swift 请求用户授权以跟踪其跨应用或网站的活动
步骤1:导入框架 首先,需要在Swift文件中导入AppTrackingTransparency框架。 import AppTrackingTransparency import AdSupport步骤2:请求跟踪许可 在适当的地方请求用户的跟踪许可。通常,这个请求会在应用启动时或者在用户执行…...

最新版npm详解
如:npm中搜索 jQuery image.png image.png 接地气的描述:npm 类似于如下各大手机应用市场 image.png image.png 查看本地 node 和 npm 是否安装成功 image.png image.png 或 npm install -g npm image.png image.png image.png image.png image.…...