软件设计师经典易错题
第一章节:计算机组成与体系结构
1、设16位浮点数,其中阶符1位、阶码值6位、数符1位、尾数8位。若阶码用移码表示,尾数用补码表示,则该浮点数所能表示的数值范围是( )。
A、-264 ~(1-2-8)264
B、-263~(1-2-8)263
C、-(1-2-8)264 ~(1-2-8)264
D、-(1-2-8)263 ~(1-2-8)263
参考答案:B
参考解析:
如果浮点数的阶码(包括1位阶符)用R位的移码表示,尾数(包括1位数符)用M位的补码表示,则浮点数表示的数值范围如下。
最大正数:+(1-2-m+1)*2^(2R-1-1),最小负数:-1*2^(2R-1-1)。
2、对于表达式“((a>b)or c)and d”,( )时可进行短路运算。
A、a为true
B、b为false
C、c为true
D、d为false
参考答案:D
参考解析:
我们可以把前面(a>b)or c视为一个整体与d进行and连接,当且仅当d为false,整个式子的结果就为false。
3、某计算机系统由下图所示的部件构成,假定每个部件的千小时可靠度都为R,则该系统的千小时可靠度为( )。
A、R+2R/4
B、R+R2/4
C、R(1-(1-R)2)
D、R(1-(1-R)2)2
参考答案:D
参考解析:
本题考查系统可靠性方面的基础知识。
由于系统构成串联系统时,其中任何一个子系统失效就足以使系统失效,其可靠度等于各子系统可靠度的乘积,构成并联系统时,只要有一个子系统正常工作,系统就能正常工作。设每个子系统的可靠性分别以R1,...RN表示,则整个系统的可靠度由下式来求得:
R=1-(1-R1)(1-R2)...(1-RN)
因此,本系统的可靠度为R(1-(1-R)2)2。
第二章节:操作系统
1、某操作系统文件管理采用索引节点法。每个文件的索引节点有8个地址项,每个地址项大小为4字节,其中5个地址项为直接地址索引,2个地址项是一级间接地址索引,1个地址项是二级间接地址索引,磁盘索引块和磁盘数据块大小均为1KB。若要访问文件的逻辑块号分别为1和518,则系统应分别采用( )。
A、直接地址索引和一级间接地址索引
B、直接地址索引和二级间接地址索引
C、一级间接地址索引和一级间接地址索引
D、一级间接地址索引和二级间接地址索引
参考答案:B
参考解析:
每个物理块大小为1KB,每个地址项大小为4B,因此每个物理块可以对应地址项个数为:1KB/4B=256。
直接索引即索引直接指向物理块,可以表示逻辑块号范围:0~4号
一级索引即索引节点指向的物理块用来存放地址项,可以表示256个地址项,即256个物理块,可以表示逻辑地址块号范围:5~260,261~516号
二级索引即索引节点指向的物理块,存放的是一级索引的地址块地址,一共有256个地址块用来存放一级索引,每个块可以存放256个地址项,共有2562=65536个地址项,因此可以表示的逻辑块号范围:517~66052号
2、假设某计算机系统中资源R的可用数为6,系统中有3个进程竞争R,且每个进程都需要i个R,该系统可能会发生死锁的最小i值是( )。若信号量S的当前值为-2,则R的可用数和等待R的进程数分别为( )。
A、1
B、2
C、3
D、4
A、0、0
B、0、1
C、1、0
D、0、2
参考答案:C、D
参考解析:
当3个进程都占有2个R资源时,都需要再申请一个资源才能正常运行,此时会出现相互等待的状况。
信号量为负值,说明此时系统中已经没有R资源了,此负值也代表正在等待R的进程数。
3、在磁盘上存储数据的排列方式会影响I/O服务的总时间。假设每个磁道被划分成10个物理块,每个物理块存放1个逻辑记录。逻辑记录R1,R2....R10存放在同一个磁道上,记录的排列顺序如下表所示:
假定磁盘的旋转速度为10ms/周,磁头当前处在R1的开始处。若系统顺序处理这些记录,使用单缓冲区,每个记录处理时间为2ms,则处理这10个记录的最长时间为( )。若对存储数据的排列顺序进行优化,处理10个记录的最少时间为( )。
A.30ms
B.60ms
C.94ms
D.102ms
A.30ms
B.60ms
C.102ms
D.94ms
参考答案:D、A
参考解析:
考查磁盘管理相关计算问题。
整个磁盘如下图所示,整个磁盘的旋转速度为10ms/周,共10个磁盘,可知每个磁盘的读取时间为1ms,对于每个磁盘而言,有读取的时间1ms,处理时间2ms。
接下来具体的看分析:对于磁盘R1而言,磁头首先位于R1的开始处(即R10的末尾位置那条线),读取R1花费1ms时间,磁头到了R1的末尾处,又需要花费2ms处理它,所以可以得知经过3ms时候,磁头已经旋转到了R4的开始处(即R3的末尾处),接下来需要读取R2并处理R2,这个时候需要将磁头旋转到R2的开始处位置,那么需要顺时针移动(R4-R1,共计8个磁盘)才到R2的开始处,接下来,读取R2并处理R2同样需要花费3ms时间,磁盘也到了R5的开始,也需要旋转同样的8个磁盘,依次类推。
除第一个磁盘R1不需要移动磁头位置,其余9个磁盘都需要移动8个磁盘,即总时间为R1的时间(1+2)ms,后面9个磁盘的时间9*(8+1+2),共计102ms。
改善后的磁盘,避免了磁头的移动,即每个磁盘读取和处理共计3ms,总共10个磁盘,需要花费3*10=30ms(如下图所示),所以答案是D、A。
第三章节:程序设计语言基础
1、以下关于变量和常量和叙述中,错误的是( )。
A、变量的取值在程序运行过程中可以改变,常量则不行
B、变量具有类型属性,常量则没有
C、变量具有对应的存储单元,常量则没有
D、可以对变量赋值,不能对常量赋值
参考答案:B
参考解析:
本题主要考查我们对常量与变量的理解。顾名思义,常量是指值一旦确定后就不能再变的量,而变量则是一个在程序执行过程中,可以根据需要修改的量,是一个可改变的量。当然不管是常理还是变量,它们都有其类型属性。
2、函数调用时,基本的参数传递方式有传值与传地址两种, ( )。
A、在传值方式下,实参将其值传给形参
B、在传值方式下,形参和实参间可以实现数据的双向传递
C、在传地址方式下,形参将其地址传给实参
D、在传地址方式下,实参可以是任意的变量和表达式
参考答案:A
参考解析:
调用函数和被调用函数之间交换信息的方法主要有两种:一种是由被调用函数把返回值返回给主调函数,另一种是通过参数带回信息。函数调用时实参与形参间交换信息的方法有传值调用和引用调用两种。若实现函数调用时实参向形式参数传递相应类型的值 (右值),则称为是传值调用。引用调用的实质是将实参的地址(左值)传递给形参,函数中对形参的访问和修改实际上就是针对相应实际参数所作的访问和改变。
3、下图所示为一个有限自动机(其中,A是初态、C是终态),该自动机识别的语言可用正规式( )表示。
A、(0|1)*01
B、1*0*10*1
C、1*(0)*01
D、1*(0|10)*1*
参考答案:A
参考解析:
被有限自动机所识别是指从初态开始到终态结束,所输入的字符串能够按顺序地执行下去,若到某个状态不能往下走得到下一个字符,则认为不能识别。在本题中,选项A能被识别。从初态A出发,不管经过多少个1和0之后,只能是处在A、B、C三种状态中的一种,所以在(0|1)*后,只能是处在A、B、C三种状态中的一种,不管是在那个状态,输入0后,都会处在状态B,然后输入1,都会转换到状态C,因此选项A能被该有限自动机所识别。同样的道理,我们可以知道其它选项的正规式不能被识别。
第四章节:数据结构
1、对于线性表,相对于顺序存储,采用链表存储的缺点是( )。
A、数据元素之间的关系需要占用存储空间,导致存储密度不高
B、表中结点必须占用地址连续的存储单元,存储密度不高
C、插入新元素时需要遍历整个链表,运算的时间效率不高
D、删除元素时需要遍历整个链表,运算的时间效率不高
参考答案:A
参考解析:
链表最大的优点是没有大小限制不需要提前分配空间也就是说它是动态的。你可以任意添加大小,通过结构体你可以将很多相关的数据放到一起。但是因为链表在内存里存放是不连续的。所以你不能快速的查找和修改。链表存储的缺点为数据元素之间的关系需要占用存储空间,导致存储密度不高。
2、某树共有n个结点,其中所有分支结点的度为k(即每个非叶子结点的子树数目),则该树中叶子结点的个数为( )。
A、[n(k+1)-1]/k
B、[n(k+1)+1]/k
C、[n(k-1)+1]/k
D、[n(k-1)-1]/k
参考答案:C
参考解析:
本题可以画一棵简单的树验证4个选项,比如,以2个结点的树来看:
结点总数n=2,非叶子结点的子树数目为k=1,叶子结点的个数应该为1,带入4个选项验证(n=2,k=1,验算表达式是否结果为1即可):
A、(2×2-1)/1=3;B选项(2×2+1)/1=5;C选项(2×0+1)/1=1;D选项(2×0-1)/1=-1。
因此本题选择C选项。
3、对于一个n阶的对称矩阵A,将其下三角区域(含主对角线)的元素按行存储在一维数组S中,设元素A[i][j]存放在S[k]中,且S[1]=A[0][0],则k与i,j(i≤j)的对应关系是( )。
A、k = i(i+1)/2+j-1
B、k = j(j+1)/2+i+1
C、k = i(i+1)/2+j+1
D、k = j(j+1)/2+i-1
参考答案:B
参考解析:
本题有隐含条件需要注意,虽然前半段描述的是我们存储的下三角部分元素,但是最后提问的是i<=j情况下,元素下标与k的对应关系,此时已经指向的是其对称元素位置了。
【方法1】可用代入法解决问题。
将S[1]=A[0][0]实例,对应上三角元素A[0][0],代入选项验证可得,只有B和C选项符合要求;
根据按行存储的顺序来看,下一个元素应该是A[1][0],对应上三角元素A[0][1],对应的一维数组位置为S[2],代入BC选项进行验证,选项结果都为2,无法区分;
根据按行存储的顺序来看,接下来元素应该是A[1][1],对应上三角元素A[1][1],对应的一维数组位置为S[3],代入BC选项进行验证,选项结果都为3,无法区分;
根据按行存储的顺序来看,接下来元素应该是A[2][0],对应上三角元素A[0][2],对应的一维数组位置为S[4],代入BC选项进行验证,选项C结果为3不符合要求,选项B结果为4是正确的选项;
所以本题选择B选项。
【方法2】也可以根据规律分析。对于对称矩阵A[][]结构如下:
A[0][0] A[0][1] A[0][2] ... A[0][n-1] A[0][n]
A[1][0] A[1][1] A[1][2] ... A[1][n-1] A[1][n]
A[2][0] A[2][1] A[2][2] ... A[2][n-1] A[2][n]
...
A[n-1][0] A[n-1][1] A[n-1][2] ... A[n-1][n-1] A[n-1][n]
A[n][0] A[n][1] A[n][2] ... A[n][n-1] A[n][n]
S[1]对应A[0][0],对于下三角元素A[i][j](i>=J),按行存储时,先处理前i-1行元素,此时每行对应元素分别为1、2、3、...、i-1、i个,求和,结果为(1+i)*i/2。接着处理第i行数据,本行列下标分别为0、1、2、...、j-1、j,共有j+1个元素。所以A[i][j]元素从S[1]开始,对应k=i(i+1)/2+j+1下标。这是下三角位置的分析过程。
再根据本题问题,i<=j的元素,此时是对称的上三角区域元素,对称关系为A[i][j]=A[j][i],将上面的表达式i、j位置互换即可,结果为k=j(j+1)/2+i+1。答案选择B选项。
第五章节:算法基础
1、某汽车加工工厂有两条装配线L1和L2,每条装配线的工位数均为n(Sij,i=1或2,j= 1,2,…,n),两条装配线对应的工位完成同样的加工工作,但是所需要的时间可能不同(aij,i=1或2,j = 1,2,…,n)。汽车底盘开始到进入两条装配线的时间 (e1,e2) 以及装配后到结束的时间(X1X2)也可能不相同。从一个工位加工后流到下一个工位需要迁移时间(tij,i=1或2,j =2,…n)。现在要以最快的时间完成一辆汽车的装配,求最优的装配路线。
分析该问题,发现问题具有最优子结构。以 L1为例,除了第一个工位之外,经过第j个工位的最短时间包含了经过L1的第j-1个工位的最短时间或者经过L2的第j-1个工位的最短时间,如式(1)。装配后到结束的最短时间包含离开L1的最短时间或者离开L2的最短时间如式(2)。
由于在求解经过L1和L2的第j个工位的最短时间均包含了经过L1的第j-1个工位的最短时间或者经过L2的第j-1个工位的最短时间,该问题具有重复子问题的性质,故采用迭代方法求解。
该问题采用的算法设计策略是( ),算法的时间复杂度为( )。
以下是一个装配调度实例,其最短的装配时间为( ),装配路线为( )。
A、分治
B、动态规划
C、贪心
D、回溯
A、Θ(lgn)
B、Θ(n)
C、Θ(n2)
D、Θ(nlgn)
A、21
B、23
C、20
D、26
A、S11→S12→S13
B、S11→S22→S13
C、S21→S12→S23
D、S21→S22→S23
参考答案:B、B、A、B
参考解析:
题目看似是非常复杂的,涉及复杂的公式,以及算法逻辑,但如果我们先从后面两个空来分析,问题就简单得多。
求最短装配时间与装配路线,其实是一个求最短路径的过程。此时我们可以把从起点到各个结点的最短路径逐步求出。经过分析得出最短装配路线为:S11→S22→S13,长度为21。
解决了一个实际问题后,再来看所谓的迭代公式,其做法与之前手动求最短路径一致,算法是用一个数组将起点到各个结点的最短路径逐个求出,用已求出的最短路径来分析后面的最短路径,所以这符合动态规划法的特征,算法策略应是动态规划法。而算法的复杂度为Θ(n),因为用一个单重循环就可以解决这个问题。
2、用插入排序和归并排序算法对数组<3,1,4,1,5,9,6,5>进行从小到大排序,则分别需要进行( )次数组元素之间的比较。
A、12,14
B、10,14
C、12,16
D、10,16
参考答案:A
参考解析:
插入排序的基本思想是逐个将待排序元素插入到已排序的有序表中。假设n个待排序元素存储在数组R[n+1]中(R[0]预留),则:
(1)初始时数组R[1..1]中只包含元素R[1],则数组R[1..1]必定有序;
(2)从i=2到n,执行步骤3;
(3)此时,数组R被划分成两个子区间,分别是有序区间R[1..i-1]和无序区间R[i..n],将当前无序区间的第1个记录R[i]插入到有序区间R[1..i]中适当的位置上,使R[1..i]变为新的有序区间。
在实现的过程中,设置监视哨R[0],并从R[i-1]到R[0]查找元素R[i]的插入位置
那么用插入排序对数组<3,1,4,1,5,9,6,5>进行排序的过程为:
原元素序列: 监视哨 (3),1,4,1,5,9,6,5
第一趟排序: 1 (1,3),4,1,5,9,6,5 1插入时与3比较1次
第二趟排序: 4 (1,3,4),1,5,9,6,5 4插入时与3比较1次
第三趟排序: 1 (1,1,3,4),5,9,6,5 1插入时分别与4、3、1比较1次,共比较3次
第四趟排序: 5 (1,1,3,4,5),9,6,5 5插入时与4比较1次
第五趟排序: 9 (1,1,3,4,5,9),6,5 9插入时与5比较1次
第六趟排序: 6 (1,1,3,4,5,6,9),5 6插入时与9和5分别比较1次,共比较2次
第七趟排序: 5 (1,1,3,4,5,5,6,9) 5插入时与9,6,5分别比较1次,共比较3次。
那么整个排序过程需要比较的次数为12次。
归并排序的思想是将两个相邻的有序子序列归并为一个有序序列,然后再将新产生的相邻序列进行归并,当只剩下一个有序序列时算法结束。其基本步骤如下:
(1)将n个元素的待排序序列中每个元素看成有序子序列,对相邻子序列两两合并,则将生成n/2个子有序序列,这些子序列中除了最后一个子序列长度可能小于2外,其他的序列长度都等于2;
(2)对上述n/2个长度为2的子序列再进行相邻子序列的两两合并,则产生n/4个子有序序列,同理,只有最后一个子序列的长度可能小于4;
(3)第i趟归并排序为,对上述n/i个长度为i的子序列两两合并,产生n/2i个长度为2i的子有序序列;
(4)重复执行此步骤,直到生成长度为n的序列为止。
那么用归并排序对数组<3,1,4,1,5,9,6,5>进行排序的过程为:
原元素序列: 3,1,4,1,5,9,6,5
第一趟排序: [1,3],[1,4],[5,9],[5,6] 比较4次
第二趟排序: [1,1,3,4], [5,5,6,9] 前半部分比较3次,后半部分比较3次
第三趟排序: [1,1,3,4,5,5,6,9] 5分别与1,1,3,4比较一次,共比较4次,后面的序列都不小于5,因此可以直接复制到结果序列。
所以整个排序过程需要比较的次数为14次。
3、对数组A=(2,8,7,1,3,5,6,4)用快速排序算法的划分方法进行一趟划分后得到的数组A为( )(非递减排序,以最后一个元素为基准元素)。进行一趟划分的计算时间为( )。
A、(1,2,8,7,3,5,6,4)
B、(1,2,3,4,8,7,5,6)
C、(2,3,1,4,7,5,6,8)
D、(2,1,3,4,8,7,5,6)
A、O(1)
B、O(Ign)
C、O(n)
D、O(nlgn)
参考答案:C、C
参考解析:
本题考查的是排序算法。
本题根据快速排序的过程,首先选定基准元素为最后一个元素(题干给出的要求),下面进行排序过程:
(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选项。
第六章节:系统开发基础
1、下图所示的程序流程图中有( )条不同的简单路径。采用McCabe度量法计算该程序图的环路复杂性为( )。
A、3
B、4
C、5
D、6
A、3
B、4
C、5
D、6
参考答案:A、A
参考解析:
环形复杂度定量度量程序的逻辑复杂度。描绘程序控制流的流图之后,可以用下述3种方法中的任何一种来计算环形复杂度。
(1)流图中的区域数等于环形复杂度。
(2)流图G的环形复杂度V(G)=E-N+2,其中,E是流图中边的条数,N是结点数。
(3)流图G的环形复杂度V(G)=P+1,其中,P是流图中判定结点的数目。
这种环路度量法,计算的思路是这样的:它是考虑控制的复杂程度,即条件选择的分支繁杂程度。
图中有3次简单的判断(循环体内物理的判断个数是2个,但是逻辑上,至少要走3次判断(第一个判断要做2次)才能走到程序的出口。所以说图中有3次简单的判断。)。故3条简单路径,形成3块环形区域,区域复杂度为3。
2、假设某软件公司与客户签订合同开发一个软件系统,系统的功能有较清晰的定义,且客户对交付时间有严格要求,则该系统的开发最适宜采用( )。
A、瀑布模型
B、原型模型
C、V模型
D、螺旋模型
参考答案:A
参考解析:
瀑布模型严格遵循软件生命周期各阶段的固定顺序:计划、分析、设计、编程、测试和维护,上一阶段完成后才能进入到下一阶段。瀑布模型的优点是:可强迫开发人员采用规范的方法;严格规定了各阶段必须提交的文档;要求每个阶段结束后,都要进行严格的评审。但瀑布模型过于理想化,而且缺乏灵活性,无法在开发过程中逐渐明确用户难以确切表达或一时难以想到的需求。该模型比较适合于需求明确,对交付时间有严格要求的开发。
原型模型基于这样一种客观事实:并非所有的需求在系统开发之前都能准确地说明和定义。因此,它不追求也不可能要求对需求的严格定义,而是采用了动态定义需求的方法。它适用于需求不明确的开发环境。
螺旋模型综合了瀑布模型和演化模型的优点,还增加了风险分析。螺旋模型包含了四个方面的活动:制订计划、风险分析、实施工程、客户评估。采用螺旋模型时,软件开发沿着螺旋线自内向外旋转,每转一圈都要对风险进行识别和分析,并采取相应的对策。螺旋模型比较适合大规模的开发,它对风险控制有很高的要求。
综上所述,要满足题目描述的要求,应该采用瀑布模型开发最适宜。
3、软件可维护性是一个系统在特定的时间间隔内可以正常进行维护活动的概率。用MTTF和MTTR分别表示平均无故障时间和平均故障修复时间,则软件可维护性计算公式为( )。
A、MTTF/(1+MTTF)
B、1/(1+MTTF)
C、MTTR/(1+MTTR)
D、1/(1+MTTR)
参考答案:D
参考解析:
在软件外部,可以用MTTR来度量软件的可维护性,它指出处理一个有错误的软件需要花费的平均时间。如果用M表示可维护性指标,那么M=1/(1+MTTR)。本题选择D选项。A选项一般用来表示可靠性或可用性指标。
第七章节:项目管理
1、如下所示的软件项目活动图中,顶点表示项目里程碑,连接顶点的边表示包含的活动,边上的权重表示活动的持续时间(天), 则完成该项目的最短时间为( )天。在该活动图中,共有( )条关键路径。
A、17
B、19
C、20
D、22
A、1
B、2
C、3
D、4
参考答案:D、B
参考解析:
本题考查项目管理知识。
正确答案选择D、B。
2、以下关于软件项目管理中人员管理的叙述,正确的是( )。
A、项目组成员的工作风格也应该作为组织团队时要考虑的一个要素
B、鼓励团队的每个成员充分地参与开发过程的所有阶段
C、仅根据开发人员的能力来组织开发团队
D、若项目进度滞后于计划,则增加开发人员一定可以加快开发进度
参考答案:A
参考解析:
本题考查的是项目管理的人力资源方面的问题,在团队组建时,需要考虑企业的事业环境因素对项目的影响。
在项目中由于分工不同,每个团队人员不需要充分参与开发过程的所有阶段,并且在软件项目中,开发只是其中一个阶段,所以不能仅根据开发人员的能力来组织团队,当进度滞后时,增加开发人员不一定能加快开发速度,并且,由于加入新的团队成员,已经成熟的团队会回到磨合期,可能会造成进度更加滞后。
综上,本题只有A选项是正确的。
3、配置管理贯穿软件开发的整个过程。以下内容中,不属于配置管理的是( )。
A、版本控制
B、风险管理
C、变更管理
D、配置状态报告
参考答案:B
参考解析:
配置管理包括ACD和配置审计。
第八章节:面向对象技术
1、自动售货机根据库存、存放货币量、找零能力、所选项目等不同,在货币存入并进行选择时具有如下行为:交付产品不找零 ;交付产品并找零;存入货币不足而不提供任何产品;库存不足而不提供任何产品。这一业务需求适合采用( )模式设计实现,其类图如下图所示,其中( )是客户程序使用的主要接口,可用状态来对其进行配置。此模式为( ),体现的最主要的意图是( )。
A、观察者(Observer)
B、状态(State)
C、策略(Strategy)
D、访问者(Visitor)
A、Vending Machine State
B、Buy
C、Vending Deposit State
D、Vending Stock State
A、创建型对象模式
B、结构型对象模式
C、行为型类模式
D、行为型对象模式
A、当一个对象状态改变时所有依赖它的对象得到通知并自动更新
B、在不破坏封装性的前提下,捕获对象的内部状态并在对象之外保存
C、一个对象在其内部状态改变时改变其行为
D、将请求封装为对象从而可以使用不同的请求对客户进行参数化
参考答案:B、B、D、C
参考解析:
有State关键词,状态模式:允许一个对象在其内部状态改变时改变它的行为。对象看起来似乎修改了它的类。在很多情况下,一个对象的行为取决于一个或多个动态变化的属性,这样的属性叫作状态,这样的对象叫作有状态的(stateful)对象,这样的对象状态是从事先定义好的一系列值中取出的。当一个这样的对象与外部事件产生互动时,其内部状态就会改变,从而使得系统的行为也随之发生变化。Buy是客户程序使用的主要接口。
2、进行面向对象系统设计时,针对包中的所有类对于同一类性质的变化;一个变化若对一个包产生影响,则将对该包中的所有类产生影响,而对于其他的包不造成任何影响。这属于( )设计原则。
A、共同重用
B、开放-封闭
C、接口分离
D、共同封闭
参考答案:D
参考解析:
本题考查面向对象的设计原则。
共同封闭原则:包中的所有类对于同一种性质的变化应该是共同封闭的。一个变化若对一个封闭的包产生影响,则将对该包中的所有类产生影响,而对于其他包则不造成任何影响。面向对象设计的原则之一。
共同重用原则:面向对象编程术语,指一个包中的所有类应该是共同重用的。如果重用了包中的一个类,那么也就相当于重用了包中的所有类。
开放-封闭原则:对扩展开放,对修改封闭。
接口隔离原则:使用多个专门的接口比使用单一的总接口要好。
故本题选择D选项。
3、下面关于面向对象分析与面向对象设计的说法中,不正确的是( )。
A、面向对象分析侧重于理解问题
B、面向对象设计侧重于理解解决方案
C、面向对象分析描述软件要做什么
D、面向对象设计一般不关注技术和实现层面的细节
参考答案:D
参考解析:
本题考查面向对象分析与设计的基本概念。
面向对象分析主要强调理解问题是什么,不考虑问题的解决方案,因此答案A、C是正确的。面向对象设计侧重问题的解决方案,并且需要考虑实现细节问题,因此选项D的说法是不正确的。
第九章节:数据库系统
1、给定关系R (U,F),其中U={A,B,C,D,E,H},F={A→B,B→DH,A→H,C→E}。关系有( ),F中( )。
A、一个候选码A
B、2个候选码A、B
C、一个候选码AC
D、两个候选码A、C
A、不存在传递依赖,但存在冗余函数依赖
B、既不存在传递依赖,也不存在冗余函数依赖
C、存在传递依赖A→D和A→H,但不存在冗余函数依赖
D、存在传递依赖A→D和A→H,并且还存在冗余函数依赖
参考答案:C、D
参考解析:
第一空关于候选键分析,其中A和C是入度为0的属性,所以候选键集合必须包含AC组合键,本题选择C选项。
第二空,本题A→B,B→DH,存在传递函数依赖A→DH,此时根据armstrong公理,可以分解得到A→D和A→H,此时F中A→H是冗余函数依赖。第二空选择D选项。
2、设有学生实体Students(学号,姓名,性别,年龄,家庭住址,家庭成员,关系,联系电话),其中“家庭住址”记录了邮编、省、市、街道信息;“家庭成员,关系,联系电话”分别记录了学生亲属的姓名、与学生的关系以及联系电话。
学生实体Students中的“家庭住址”是一个( )属性;为使数据库模式设计更合理,对于关系模式Students( )。
A、简单
B、多值
C、复合
D、派生
A、可以不作任何处理,因为该关系模式达到了3NF
B、只允许记录一个亲属的姓名、与学生的关系以及联系电话的信息
C、需要对关系模式Students增加若干组家庭成员、关系及联系电话字段
D、应该将家庭成员、关系及联系电话加上学生号,设计成为一个独立的实体
参考答案:C、D
参考解析:
在本题中,由于题目告诉我们“家庭住址”记录了邮编、省、市、街道信息,那么家庭家庭住址属性可以再分,因此它是一个复合属性。派生属性是指通过其他属性可以计算获得结果的属性。
为使数据库模式设计更合理,我们可以将家庭成员、关系及联系电话加上学生号,设计成为一个独立的实体,这里大家要注意一定要加上学号,因为学号唯一标识一名学生。
3、以下关于数据库两级映像的叙述中,正确的是( )。
A、模式/内模式映像实现了外模式到内模式之间的相互转换
B、模式/内模式映像实现了概念模式到内模式之间的相互转换
C、外模式/模式的映像实现了概念模式到内模式之间的相互转换
D、外模式/内模式的映像实现了外模式到内模式之间的相互转换
参考答案:B
参考解析:
数据库系统在三级模式之间提供了两级映像:模式/内模式映像、外模式/模式映像。 正因为这两级映像保证了数据库中的数据具有较高的逻辑独立性和物理独立性。
(1)模式/内模式的映像。存在于概念级和内部级之间,实现了概念模式到内模式之间的相互转换。
(2)外模式/模式的映像。存在于外部级和概念级之间,实现了外模式到概念模式之间的相互转换。
第十章节:计算机网络
1、在浏览器的地址栏中输入xxxyftp.abc.can.cn,在该URL中( )是要访问的主机名。
A、xxxyftp
B、abc
C、can
D、cn
参考答案:A
参考解析:
本题考查的是URL格式。
一个标准的URL格式如下:
协议://主机名.域名.域名后缀或IP地址(:端口号)/目录/文件名。
本题xxxyftp是主机名,选择A选项。
2、在TCP/IP网络中,建立连接进行可靠通信是在( )完成的,此功能在OSI/RM中是在( )层来实现的。
A、网络层
B、数据链路层
C、应用层
D、传输层
A、应用层
B、会话层
C、表示层
D、网络层
参考答案:D、B
参考解析:
在TCP/IP网络中,建立连接进行可靠通信描述的是TCP协议,属于传输层协议。
在OSI/RM七层模型中,传输层以上还有会话层、表示层、应用层,传输层以下是网络层。
应用层主要实现具体的应用功能。
表示层主要处理数据的格式与表达、加密、压缩。
会话层为表示层提供建立、维护和结束会话连接的功能,并提供会话管理服务,也就是说会话层可以建立连接,第二空选择会话层。
网络层为传输层的数据传输提供建立、维护和终止网络连接的手段,这里针对的是网络连接,与可靠性连接无关,与本题不符。
3、采用DHCP动态分配IP地址,如果某主机开机后没有得到DHCP服务器的响应。则该主机获取的IP地址属于网络( )。
A、202.117.0.0/24
B、192.168.1.0/24
C、172.16.0.0/16
D、169.254.0.0/16
参考答案:D
参考解析:
本题考查的是DHCP协议的应用。
无效的IP地址:169.254.X.X(windows) 和 0.0.0.0(linux)。本题选择D选项。
第十一章节:信息安全
1、在网络系统设计时,不可能使所有设计目标都能达到最优,下列措施中最为合理的是( )。
A、尽量让最低建设成本目标达到最优
B、尽让最短的故障时间达到最优
C、尽量让最大的安全性目标达到最优
D、尽量让优先级较高的目标达到最优
参考答案:D
参考解析:
网络设计面临的冲突:最低的安装成本、最低的运行成本、最高的运行性能、最大的适应性、最短的故障时间、最大的可靠性、最大的安全性。不可能存在一个网络设计方案,能够使得所有的子目标都达到最优。可采用优先级和建立权重的方法权衡各目标的关心度。
2、以下关于认证和加密的叙述中,错误的是( )。
A、加密用以确保数据的保密性
B、认证用以确保报文发送者和接收者的真实性
C、认证和加密都可以阻止对手进行被动攻击
D、身份认证的目的在于识别用户的合法性,阻止非法用户访问系统
参考答案:C
参考解析:
本题考查信息安全认证和加密的情况。
认证一般有账户名/口令认证、使用摘要算法认证和基于PKI的认证。认证只能阻止主动攻击,不能阻止被动攻击。A、B、D都说法都是正确的,C选项说法错误。故答案选择C选项。
3、SQL注入是常见的web攻击,以下不能够有效防御SQL注入的手段是( )。
A、对用户输入做关键字过滤
B、部署Web应用防火墙进行防护
C、部署入侵检测系统阻断攻击
D、定期扫描系统漏洞并及时修复
参考答案:C
参考解析:
本题考查的是SQL注入攻击相关内容。对用户输入做关键字过滤、Web应用防火墙、定期扫描系统漏洞并及时修复都可以有效防御SQL注入攻击,入侵检测系统无法防御SQL注入。本题选择C选项。
第十二章节:知识产权与标准化
1、李某大学毕业后在希赛网销售部门工作,后由于该公司软件开发部门人手较紧,李某被暂调到该公司软件开发部开发新产品,2 周后,李某开发出一种新软件。该软件著作权应归( )所有。
A、李某
B、希赛网
C、李某和希赛网
D、软件开发部
参考答案:B
参考解析:
因李某大学毕业后在M公司销售部门工作,后由于该公司软件开发部门人手较紧,李某被暂调到该公司软件开发部开发新产品,2周后,李某开发出一种新软件。该软件与工作任务有关,属于职务作品。所以,该项作品应属于软件公司所有。法律依据:著作权法规定“执行本单位的任务或者主要是利用本单位的物质条件所完成的职务作品,其权利属于该单位。”职务作品人是指作品人或者设计入执行本单位的任务,或者主要是利用本单位的物质技术条件所完成的作品的人。该作品的权利为该作品人所在单位所有。职务作品包括以下情形:
①在本职工作中做出的作品。
②履行本单位交付的本职工作之外的任务所做出的作品。
③退职、退休或者调动工作后1年内做出的,与其在原单位承担的本职工作或者原单位分配的任务有关的作品。
④主要利用本单位的物质技术条件(包括本单位的资金、设备、不对外公开的技术资料等)完成的作品。
2、王某买了一幅美术作品原件,则他享有该美术作品的( )。
A、著作权
B、所有权
C、展览权
D、所有权与其展览权
参考答案:D
参考解析:
展览权是原件持有人的特有的权利,著作权人不能以发表权限制其权利(除非有约定)。
所有权是所有人依法对自己财产所享有的占有,使用,收益和处分的权利。
3、谭某是CZB物流公司的科技系统管理员。任职期间,谭某根据公司的业务要求开发了“报关业务系统”,并由公司使用,随后谭某向国家版权局申请了计算机软件著作权登记,并取得了《计算机软件著作登记证书》。证书明确软件名称为“报关业务系统V1.0”,著作权人为谭某。以下说法正确的是( )。
A、报关业务系统V1.0的著作权属于谭某
B、报关业务系统V1.0的著作权属于CZB物流公司
C、报关业务系统V1.0的著作权属于谭某和CZB物流公司
D、谭某获取的软件著作权登记证是不可以撤销的
参考答案:B
参考解析:
本题考查职务作品界定问题。题目提到“任职期间,谭某根据公司的业务要求开发了‘报关业务系统’”,这个系统应属于职务作品,所以著作权属于CZB物流公司。