admin 管理员组文章数量: 887021
2023年12月18日发(作者:模块建房是什么意思)
全国计算机技术与软件专业技术资格(水平)考试
2005 年下半年 软件设计师试题
上午试题
●阵列处理机属于 ___(1)___ 计算机。
( 1 )
●采用 ___(2)___ 不能将多个处理机互连构成多处理机系统。
( 2 ) 总线 B. 交叉开关 总线 nic 总线
●某计算机系统的可靠性结构是如下图所示的双重串并联结构,若所构成系统的每个部件的可靠度为
0.9 ,即 R=0.9 ,则系统的可靠度为 ___(3)___ 。
图 1
( 3 ) A.0.9997 B.0.9276 C.0.9739 D.0.6561
●若每一条指令都可以分解为取指、分析和执行三步。已知取指时间 t 取指 =5 △ t, 分析时间 t 分析
=2 △ t ,执行时间 t 执行 =5 △ t 。如果按顺序方式从头到尾执行完 500 条指令需 ___(4)___ △ t 。如果按照 [ 执行 ]k 、 [ 分析 ]k+1 、 [ 取指 ]k+2 重叠的流水线方式执行指令,从头到尾执行完 500
条指令需 ___(5)___ △ t 。
( 4 ) A.5590 B.5595 C.6000 D.6007
( 5 ) A.2492 B.2500 C.2510 D.2515
●在开发一个系统时,如果用户对系统的目标是不很清楚,难以定义需求,这时最好使用 ___(6)___ 。
( 6 ) A. 原型法 B. 瀑布模型 C. V- 模型 D. 螺旋模型
●应该在 ___(7 )阶段制定系统测试计划。
( 7 ) A. 需求分析 B. 概要设计 C. 详细设计 D. 系统测试
●已经发布实施的标准(包括已确认或修改补充的标准),经过实施一定时期后,对其内容再次审查,以确保其有效性、先进性和适用性,其周期一般不超过 ___(8)____ 年。
( 8 ) A. 1 B. 3 C . 5 D. 7
● ___(9)____ 不需要登记或标注版权标 记就能得到保护
( 9 ) A. 专利权 B. 商标权 C. 著作权 D. 财产权
●如图 2 所示的树型文件中,方框表示目录,圆圈表示文件, "/" 表示路径的分隔符, "/" 路径之首表示根目录。图 2 中, ___(10)____ 。
假设当前目录是 D1 ,进程 A 以如下两种方式打开文件 f1 :方式① fd1 =
open("___(11)____/f1" , o_RDONLY); 方式② fd1 = open("/D1/W1/f1" , o_RDONLY);
其中,方式 1 的工作效率比方式 2 的工作效率搞,因为采用方式 1 的文件系统 ___(12)____ 。
( 10 ) A. 子目录 W2 中文件 f2 和子目录 D2 中文件 f2 是完全相同的
B. 子目录 W2 中文件 f2 和子目录 D2 中文件 f2 是不相同的
C. 子目录 W2 中文件 f2 和子目录 D2 中文件 f2 是可能相同也可能不相同
D. 树型文件系统中不允许出现相同名字的文件
( 11 ) A./D1/W1 B.D1/W1 C.W1 D.f1
( 12 ) A. 可以直接访问根目录下的文件 f1
B. 可用从当前路径开始查找需要访问的文件 f1
C. 只需要访问一次磁盘,就可以读取文件 f1 ,而方式 2 需要两次
D. 只需要访问一次磁盘,就可以读取文件 f1 ,而方式 2 需要三次
●正在开发的软件项目可能存在一个未被发现的错误,这个错误出现的概率是 0.5% ,给公司造成的损失将是 1 000 000 元,那么这个错误的风险曝光度 (risk exposure) 是 ___(13)____ 元。
( 13 ) A.5 000 000 B.50 000 C.5 000 D.500
●代码走查 (code walkthrough) 和代码审查 (code inspection) 是两种不同的代码评审方法,这两种方法的主要区别是 ____(14)____ 。
( 14 ) A. 在代码审查中由编写代码的程序员来组织讨论,而在代码走查中由高级管理人员来领导评审小组的活动
B. 在代码审查中只检查代码中是否有错误,而在代码走查中还要检查程序与设计文档的一致性
C. 在代码走查中只检查程序的正确性,而在代码审查中还要评审程序员的编程能力和工作业绩
D. 代码审查是一种正式的评审活动,而代码走查的讨论过程是非正式的
●在软件项目管理中可以使用各种图形工具来辅助决策,下面对 Gannt 图的描述不正确的是
____(15)____ 。
( 15 ) 图表现各个活动的顺序和它们之间的因果关系
图表现哪些活动可以并行进行 图表现了各个活动的起始时间
图表现了各个活动完成的进度
●在活动图中,结点表示项目中各个工作阶段的里程碑,连接各个结点的边表示活动,边上的数字表示活动持续的时间。在下面的活动图中,从 A 到 J 的关键路径是 _____(16)___ ,关键路径长度是
___(17)___ ,从 E 开始的活动启动的最早时间是 ____(18)____ 。
( 16 )
( 17 ) A.22 B.49 C.19 D.35
( 18 ) A.10 B.12 C.13 D.15
● 一个故障已经被发现,而且也被排除了,为了检查修改是否引起了其它故障,这时应该进行
___(19)___ 。( 19 ) A. 程序走查 B. 退化测试 C. 软件评审 D. 接收测试
●一个系统的模块结构图如下所示,用 { × , × , × } 表示这个系统的测试模块组合。下面的选项中
___(20)___ 表示自顶向下的测试, ____(21)___ 表示三明治式测试。
( 20 ) A.{A}{A,B,C,D,E}{A,B,C,D,E,F,G,H,I,J,K}
B.{F}{G}{H}{I}{J}{K}{B,F,G}{C,H}{D,I,J}{E,K}{A,B,C,D,E,F,G,H,I,J,K}
C.{K}{J}{I}{H}{G}{F}{B}{C}{D}{E}{A,B,C,D,E,F,G,H,I,J,K}
D.{A}{F}{G}{H}{I}{J}{K}{B,F,G}{C,H}{D,I,J}{E,K}{A,B,C,D,E,F,G,H,I,J,K}
( 21 ) A.{A}{A,B,C,D,E}{A,B,C,D,E,F,G,H,I,J,K}
B.{F}{G}{H}{I}{J}{K}{B,F,G}{C,H}{D,I,J}{E,K}{A,B,C,D,E,F,G,H,I,J,K}
C.{K}{J}{I}{H}{G}{F}{B}{C}{D}{E}{A,B,C,D,E,F,G,H,I,J,K }
D.{A}{F}{G}{H}{I}{J}{K}{B,F,G}{C,H}{D,I,J}{E,K}{ A,B,C,D,E,F,G,H,I,J,K }
● 某公司服务器上存储了大量的数据,员工使用服务器前首先必须登录。为了保证安全,使用认证技术
___(22)___ 。为保证传输效率,使用 ___(23)___ 加密算法对传输的数据进行加密。
( 22 ) A. 对登录系统的用户身份进行认可 B. 保护数据在传输中的机密性
C. 保证数据在传输中不被非法修改 D. 防止登录信息被泄漏出去
( 23 ) 4 D.3DES
● ____(24)___ 不能保障公司内部网络边界的安全
( 24 ) A. 在公司网络与 Internet 或外界其它接口处设置防火墙
B. 公司以外网络上用户要访问公司网时,使用认证授权系统
C. 禁止公司员工使用公司外部的电子邮件服务器
D. 禁止公司内部网络的用户私自设置拨号上网
●某仓库有两名发货员,一名审核员。当顾客提货时,只要发货员空闲 , 允许顾客进入仓库提货,顾客离开时,审核员检验顾客提货是否正确。其工作流程如下图所示。为了利用 PV 操作正确地协调他们之间的工作,设置了两个信号量 S1 和 S2 ,且 S1 的初值为 2 , S2 的初值为 1 。图中的 a 应填写
____(25)___ ;图中的 b 、 c 和 d 应分别填写 ____(26)____ 。
( 25 ) A.P(S1) B.P(S2) C.V(S1) D.V(S2)
( 26 ) A.P(S2)、V(S2) 和 V(S1) B.P(S1)、V(S1) 和 V(S2)
C.V(S1) 、 P(S2) 和 V(S2) D.V(S2) 、 P(S1) 和 V(S1)
●编译程序进行词法分析时不能 ____(27)____ 。
( 27 ) A. 过滤源程序中的注释B. 扫描源程序并识别记号C. 指出出错行号D. 查出拼错的保留字(关键字)
●某一确定有限自动机 (DFA) 的状态转换图如下图所示,该 DFA 接受的字符串集是 ____(28)___ ,与之等价的正规式是 ___(29)___ 。
( 28 ) A. 以 1 开头的二进制代码串组成的集合
B. 以 1 结尾的二进制代码串组成的集合
C. 包含偶数个 0 的二进制代码串组成的集合
D. 包含奇数个 0 的二进制代码串组成的集合
( 29 ) A.1*0(0|1)* B.((0|1*0)*1*)* C.1*((0|1)0)* D.(1*(01*0)*)*
●下列关于静态多态实现重载的描述中正确的是 ____(30)___ 。
( 30 ) A. 重载的方法(函数)的方法名(函数名)可以不同
B. 重载的方法(函数)必须在返回值类型以及参数类型上有所不同
C. 重载的方法(函数)必须在参数顺序或参数类型上有所不同
D. 重载的方法(函数)只需在返回值类型上有所不同
●程序设计语言提供了基本类型及其相关的操作,而 ____(31)____ 则允许开发者自定义一种新的类型及其相关的操作。
( 31 ) A. 对象 B. 实例 C. 类 D. 引用
● ___(32)___ 表示了对象间 "is-a" 的关系。
( 32 ) A. 组合 B. 引用 C. 聚合 D. 继承
●在关系代数运算中,关系 S 、 SP 和 R 如下表所示。若先 ___(33)___ ,则可以从 S 和 SP 获得 R 。其对应的关系表达式为 ___(34)___ 。如下的 SQL 语句可以查询销售总量大于 1000 的部门号。 Select
部门名 From S
Where 部门号 in (Select 部门号 From SP Group by ___(35)___) 关系表 S 关系表 SP 关系表 R
部门号 部门名
010 家电部
021 百货部
030 食品部
035 五金部
部门号 商品号 销售量 部门名 商品号 销售量
010 01020210 500
010 01020211 780
010 01020212 990
家电部 01020210 500
家电部 01020211 780
家电部 01020212 990
021 02110200 580
025 02520100 1290
035 03530311 4680
( 33 ) A. 对 S 进行选择运算,再与 S 进行自然连接运算
B. 对 S 进行选择运算,再与 SP 进行自然连接运算,最后进行投影运算
C. 对 S 和 SP 进行笛卡尔积运算,再对运算结果进行投影运算
D. 分别对 S 和 SP 进行投影运算,再对运算结果进行笛卡尔积运算
( 35 ) A. 部门号 where sum( 销售量 )>1000
B. 部门号 having sum( 销售量 )>1000
C. 商品号 where sum( 销售量 )>1000
D. 商品号 having sum( 销售量 )>1000
●给定关系 R ( A1 , A2 , A3 , A4 )上的函数依赖集 F={A 1A 3->A2 , A2->A3} , R 候选关键字为 ____(36)___ 。分解ρ ={(A1,A2) , (A1,A3)}___(37)____ 。( 36 ) A.A 1A 3 B.A 1A 2A 3 C .A 1A
3A 4 D.A2 和 A 1A 3
( 37 ) A. 是无损联接的B. 是保持函数依赖的C. 既是无损联接又保持函数依赖
D. 既是有损联接又不保持函数依赖
●已知某二叉树的中序、层序序列分别为 DBAFCE 、 FDEBCA ,则该二叉树的后序序列为 ___(38)___ 。
( 38 )
●在二叉树的顺序存储中,每个结点的存储位置与其父结点、左右子树结点的位置都存在一个简单的映射关系,因此可与三叉链表对应。若某二叉树共有 n 个结点,采用三叉链表存储时,每个结点的数据域需要 d 个字节,每个指针域占用 4 个字节,若采用顺序存储,则最后一个结点下标为 k (起始下标为 1 ) ,
那么 ___(39)___ 时采用顺序存储更节省空间。
( 39 ) A.d<12n/(k-n) B.d>12n/(k-n) C.d<12n/(k+n) D.d>12n/(k+n)
●简单无向图的邻接矩阵是对称的,可以对其进行压缩存储。若无向图 G 有 n 个节点。若无向图 G 有 n
个节点,其邻接矩阵为 ,1..n], 且压缩存储在 B[1..k] 中,则 k 的值至少为 ____(40)____ 。若按行压缩存储对称矩阵的上三角元素,则当 n 等于 10 时,边 (V6 , V3) 的信息存储在 B[___(41)___]
中。
( 40 ) A.n(n+1)/2 B.n2/2 C.(n-1)(n+1)/2 D.n(n-1)/2
( 41 ) A.18 B .19 C .20 D.21
●以下内容中, ___(42)___ 应写入操作手册。
( 42 ) A. 描述系统对各种输入数据的处理方法
B. 说明系统升级时厂商提供的服务
C. 描述系统处理过程的各个界面
D. 说明系统各部分之间的接口关系
● 某软件工程项目各开发阶段工作量的比例如下表所示
需求分析
0.29
概要设计
0.13
详细设计
0.17
编码
0.10
测试
0.31
假设当前已处于编码阶段, 3000 行程序已完成了 1200 行,则该工程项目开发进度已完成的比例是
____(43)___ 。
( 43 ) A.29% B.45% C.59% D.63%
●在 11 个元素的有序表 A[1..11] 中进行折半查找( L(low+high)/2 」 )查找元素 A[11] 时,被比较的元素的下标依次是 ___(44)___ 。
( 44 ) A.6 , 8 , 10 , 11 B.6 , 9 , 10 , 11 C.6 , 7 , 9 , 11 D.6 , 8 , 9 , 11
●关于维护软件所需的成本,以下叙述正确的是 ___(45)___ 。
( 45 ) A. 纠正外部和内部设计错误比纠正源代码错误需要更大的成本
B. 与需求定义相比,源代码的文字量大得多,所以源代码的维护成本更高
C. 用户文档需要经常更新,其维护成本超过了纠正设计错误的成本
D. 需要定义的错误会在设计时被发现并纠正,因此需求定义纠错的成本小于源代码纠错的成本
●由元素序列( 27,16,75,38,51 )构造平衡二叉树,则首次出现的最小不平衡子树的根(即离插入结点最近且平衡因子的绝对值为 2 的结点)为 ____(46)____ 。
( 46 ) A.27 B.38 C.51 D.75
●若排序前后关键字相同的两个元素相对位置不变,则称该排序方法是稳定的。 ___(47)____ 排序是稳定的。
( 47 ) A. 归并 B. 快速 C. 希尔 D. 堆
●若对象 A 可以给对象 B 发送消息,那么 ___(48)___ 。
( 48 ) A. 对象 B 可以看见对象 A B. 对象 A 可看见对象 B
C. 对象 A 、 B 相互不可见 D. 对象 A 、 B 相互可见
●类描述了一组对象共同的特性,下列叙述中正确的是 ____(49)____ 。
( 49 ) A. 类本身不能具有变量B. 对象具有类定义的所有变量的一份拷贝
C. 对象间不能共享类定义的变量D. 可通过类名访问静态变量 ( 类变量 )
● ___(50)___ 反映了类间的一种层次关系,而 ___(51)____ 反映了一种整体与部分的关系。
( 50 ) A. 继承 B. 组合 C. 封装 D. 多态
( 51 ) A. 继承 B. 组合 C. 封装 D. 多态
●下列叙述中正确的是 ___(52)__ 。
( 52 ) A. 面向对象程序设计语言都不支持过程化的程序设计
B. 面向对象系统只可采用面向对象程序设计语言实现
C. 某些过程化程序设计语言也可实现面向对象系统
D. 面向对象程序设计语言不支持对成员变量的直接访问
● 设求解某问题的递归算法如下:
F(int n){
if n==1 {
Move(1)
}else{
F(n-1);
Move(n);
F(n-1);
}
}
求解该算法的计算时间时 , 仅考虑算法 Move 所做的计算为主要计算 , 且 Move 为常数级算法。则算法 F 的计算时间 T(n) 的递推关系式为 ____(53)____ ;设算法 Move 的计算时间为 k ,当 n=4 时,算法 F 的计算时间为 ___(54)___ 。
( 53 ) A.T(n)=T(n-1)+1 B.T(n)=2T(n-1) C.T(n)=2T(n-1)+1 D.T(n)=2T(n+1)+1
( 54 ) A.14k B.15k C.16k D.17k
●利用贪心法求解 0/1 背包问题时, ___(55)___ 能够确保获得最优解。用动态规划方法求解 0/1 背包问题时,将 " 用前 i 个物品来装容量是 X 的背包 " 的 0/1 背包问题记为 KNAP(1,i,X), 设 fi(X) 是
KNAP(1,i,X) 最优解的效益值,第 j 个物品的重量和放入背包后取得效益值分别为 W 和 p(j=1~n) 。则依次求解 f0(X) 、 f1(X) 、 ... 、 f(X) 的过程中使用的递推关系式为 ___(56)___ 。
( 55 ) A. 优先选取重量最小的物品 B. 优先选取效益最大的物品
C. 优先选取单位重量效益最大的物品 D. 没有任何准则
( 56 ) (X)=min{f(X),f(X)+p} B.f(X)=max{f(X),f(X-Wi)+p}
C.f(X)=min{f(X-Wi),f(X-Wi)+p} D.f(X)=max{f(X-Wi),f(X)+p}
● ___(57)___ 标准中定义了 MP3 音乐标准。
( 57 ) -1 -2 -3
●使用 200DPI 的扫描分辨率扫描一幅 2 × 2.5 英寸 的黑白图像,可以得到一幅 ___(58)___ 像素的图像。 ( 58 ) A.200 × 2 B.2 × 2.5 C.400 × 500 D.800 × 1000
●要在网络上发布彩色动画文件,可以采用的存储格式是 ___(59)___ 。
( 59 ) 3
●为保证用户在网络上边下载边观看视频信息,需要采用 ____(60 ) __ 技术。
( 60 ) A. 流媒体 B. 数据库 C. 数据采集 D. 超链接
●通过代理服务器使内部局域网中的客户机访问 Internet 时, ___(61 )不属于代理服务器的功能。
( 61 ) A. 共享 IP 地址 B. 信息缓存 C. 信息转发 D. 信息加密
●下列( 62 )设备可以隔离 ARP 广播帧。
( 62 ) A. 路由器 B. 网桥 C. 以太网交换机 D. 集线器
●在 Windows 系统中, ___(63 )不是网络服务组件。
( 63 ) A. RAS D. DNS
●在 OSI 参考模型中,数据链路层处理的数据单位是 ___(64 )。
( 64 ) A. 比特 B. 帧 C. 分组 D. 报文
●在 OGSA 标准中定义了 ___(65 )的概念,它提供一组遵守特定的约定并定义明确的接口,是实体之间产生、管理和交换信息的机制。
( 65 ) Service Service D. XML
● MIDI enables people to use ___(66 ) computers and electronic musical instruments. There are
actually three components to MIDI, the communications "___(67 ) ", the Hardware Interface and
a distribution ___(68 ) called "Standard MIDI Files". In the context of the WWW, the most
interesting component is the ___(69 ) Format. In principle, MIDI files contain sequences of MIDI
Protocol messages. However, when MIDI Protocol ___(70 ) are stored in MIDI files, the events
are also time-stamped for playback in the proper sequence. Music delivered by MIDI files is the
most common use of MIDI today.
( 66 ) al onic C. multimedia D. network
( 67 ) ol C. network D. controller
( 68 ) C. wave D. center
( 69 ) l C. Graphic D. Audio
( 70 ) es s ation
● Certificates are ___(71 ) documents attesting to the ___(72 ) of a public key to an individual
or other entity. They allow verification of the claim that a given public key does in fact belong
to a given individual. Certificates help prevent someone from using a phony key to ___(73 ) someone
else. In their simplest form, Certificates contain a public key and a name. As commonly used,
a certificate also contains an ___(74 ) date, the name of the CA that issued the certificate,
a serial number, and perhaps other information. Most importantly, it contains the digital ___(75 )
of the certificate issuer. The most widely accepted format for certificates is X.509 , thus,
Certificates can be read or written by any application complying with X.509.
( 71 ) l ured
( 72 ) ting g ing ting
( 73 ) onate ate l
( 74 ) ication ation ation tion
( 75 ) ure ext
全国计算机技术与软件专业技术资格(水平)考试
2005 年下半年 软件设计师试题
下午试题
试题一至试题四是必答题
试题一( 15 分) 阅读下列说明了和图 , 回答问题 1 至问题 3 ,将解答填入答题纸的对应栏内。
某公司的主要业务是出租图书和唱碟。由于业务需求,该公司委托软件开发公司 A 开发一套信息管理系统。该系统将记录所有的图书信息、唱碟信息、用户信息、用户租借信息等。 A 公司决定采用面向对象的分析和设计方法开发此系统。图 1-1 所示为某类图书或唱碟被借阅时应记录的信息,图 1-2 描述了系统定义的两个类 Book 和 CD ,分别表示图书和唱碟的信息。
[ 图 1-1]
图书 / 唱碟 _________________________
借出时间 归还时间 用户
[ 图 1-2]
[ 问题 1] ( 3 分) 经过进一步分析,设计人员决定定义一个类 Items_on_loan ,以表示类 Book 和 CD
的共有属性和方法。请采用图 1-2 中属性和方法的名称给出类 Items_on_loan 应该具有的属性和方法。(注意:不同名称的属性和方法表示不同的含义,如 CD 中的 composer 与 Book 中的 author 无任何关系)
[ 问题 2] ( 6 分) 为了记录每种图书或唱碟的历史记录,引入类 CirculationHistory ,类中存储的信息是图 1-1 中所表示的内容。请采用 UML 表示法将下列四个类间的关系表示出来。
Items_on Book
Circulation History CD
[ 问题 3] ( 6 分) 现需了解十大最畅销(借出次数最多)图书或唱碟。为此引入 TemPopulate 类以存储所有十大畅销图书或 CD 的名称及其被借出的次数。下列顺序图描述了某类图书或唱碟被借出后成为十大畅销图书或唱碟时对象间的消息交互。系统在一次运行过程中,应有 ___(1)___ 个 TenPopulate 实例对象最合适,一个 TenPopulate 类实例对象最多需要和 ____(2)____ 个 Items_on_loan 实例对象交互。
试题二(共 15 分) 阅读下列说明和图,回答问题 1 至问题 3 ,将解答填入答题纸的对应栏内。 [ 说明 ]
某企业决定开发一个企业仓储管理系统,由李工承担系统的设计工作。该系统的网络连接如图 2-1 所示。
[ 图 2-1]
该企业有多个仓库,图 2-1 所示的中心数据库存储了各个仓库中每种货物的库存信息。每个仓
库配备一台前端机,进出货物均由前端机辅助实现。管理员每天上班时,通过前端机从中心数据库的库存表中读取本仓库各种货物的库存数,每个仓库的当日业务数据也都暂存在前端机,当天业务结束后,再将前端机中存储的数据传输到主机进行存储与汇总。
每个仓库可以存放多种货物,但同一种货物不能存放在不同的仓库中。每个仓库有多个管理员,但每个管理员只管理一个仓库。货物出库 / 入库时,由仓库管理员将货物的条码通过阅读器输入前端机中,货物数量的默认值为 1 ,可以由管理员修改。前端机根据输入的货物信息,打印 " 出库 / 入库 " 清单。出库 / 入库单中同一种货物最多只出现一次,每份出库 / 入库单由流水号唯一标识。图 2-2 是一个出库单的实例。
[ 图 2-2]
流水号: 200101 时间: 2005-10-01 13:22
货物编码 货物名称 单价 数量
69 全自动洗衣机 1680.00 26
69 32 寸彩色电视机 7580.00 20
69 1P 空调 2360.00 60
管理员: 出库 / 入库:出库
该系统处理业务的过程如下:
1. 初始化:前端机根据仓库号从货物表中读取本仓库中每种货物的货物编码、库存量、货物名称和单价。
2. 登记出库 / 入库信息:由前端机存储每一笔 " 出库 / 入库 " 记录。
3. 汇总:在每个工作日结束前汇总当日各种货物的 " 出库 / 入库 " 量至日汇总表;
4. 更新库存表:根据当日的汇总信息更新货物的库存。
李工经过分析,设计出如图 2-3 所示的关系模式。
[ 图 2-3]
出入库单(流水号,出入库标志,管理员号,时间)
出入库记录(货物编码,数据,流水号)
日汇总表(日期,货物编码,数量,出入库标志)
仓库(仓库号,仓库名,仓库电话)
管理员(管理号,姓名,仓库号)
货物( __________(a)__________ )
注:时间格式为:年-月-日时:分:日期格式为:年-月-日。
实体联系图的表示方法如图 2-4 所示,其中方框表示实体,菱形表示联系,联系的类型在实体
与联系的边上标出。图 2-5 为与该系统对应的实体联系图。
[ 图 2-4]
[ 图 2-5]
[ 问题 1] ( 3 分)根据题意,补充图 2-3 中 (a) 处的空缺,即货物关系模式的属性。
[ 问题 2] ( 6 分)根据题意,补充图 2-5 中缺失的联系和联系的类型,使其成为完善的实体联系图。其中,联系名分别取名为联系 1 ,联系 2 ,联系 3 ,…。
[ 问题 3] ( 6 分)写出每种关系模式的主键,将其填写在答题纸的对应栏内。
试题三(共 15 分)阅读下列说明和图,回答问题 1 至问题 4 ,将解答填入答题纸的对应栏内。
某公司计划与客户通过 Internet 交换电子邮件和数据 ( 以下统一称为 " 消息 ") 。为保障安全,在对传输的数据进行加密的同时,还要对参与通信的实体进行身份认证。因此,需同时使用对称与非对称密钥体系。图 3-2 描述了接收者 B 使用非对称密钥体系对发送者 A 进行认证的过程。
[ 图 3-1]
图 3-2 描述了发送和接收消息的过程,其中的认证过程使用了图 3-1 中的方法。图 3-1 中的方框 a 和方框 b 与图 3-2 中的方框 a 和方框 b 相同。
[ 图 3-2]
图 3-2 中发送和接收消息的过程是:
1 )发送者 A 使用与接收者 B 共享的对称密钥体系的密钥加密将要发送的消息。
2 )为了实现身份认证, A 使用与 B 共享的摘要算法生成消息摘要,并使用公钥密码体系把生成的消息摘要加密后发送给 B (这里假设 A 和 B 都通过安全的方法获得对方的公钥)。
3 ) B 使用非对称密钥体系解密收到的消息摘要,使用与 A 共享的对称密钥体系的密钥解密加密后的消息,再使用与 A 共享的摘要算法针对解密后的消息生成消息摘要。
4 ) B 对比自已生成的消息摘要与接收到的 A 发送的消息摘要是否相同,从而验证发送者 A 的身份。
[ 问题 1] ( 2 分)请在下列选项中选择合适的答案,填入图 3-1 、 3-2 的方框 a 和方框 b 。
B 的公钥, B 的私钥,摘要算法, A 的私钥, A 的公钥,会话密钥
[ 问题 2] ( 4 分)请在下列选项中选择合适的答案,填入图 3-2 的方框 c 至方框 f 。
B 的公钥, B 的私钥,摘要算法, A 的私钥, A 的公钥,会话密钥
[ 问题 3] ( 5 分)按照图 3-2 中的方法发送邮件时,使用不同的密码体制加密消息和消息摘要,请用 150
字以内文字简要说明这样做的理由。
[ 问题 4] ( 4 分)请从下面关于摘要函数的说法中选出所有正确的描述。
[a] 很容易使不同的输入数据生成相同的输出数据。
[b] 根据输入数据获取输出数据的时间非常短。
[c] 根据输入数据获取输出数据的时间非常长。
[d] 输出数据的长度比输入数据的长度要长。
[e] 根据输出数据无法还原出输入数据。
试题四(共 15 分)阅读以下函数说明、图和 C 代码,将应填入 _____(n)____ 处的字句写在答题纸的对应栏内。
散列文件的存储单位称为桶 (BUCKET) 。假如一个桶能存放 m 个记录,当桶中已有 m 个同义词(散列函数值相同)的记录时,存放第 m+1 个同义词会发生 " 溢出 " 。此时需要将第 m+1 个同义词存放到另一个称为 " 溢出桶 " 的桶中。相对地,称存放前 m 个同义词的桶为 " 基桶 " 。溢出桶和基桶大小相同,用指针链接。查找指定元素记录时,首先在基桶中查找。若找到,则成功返回,否则沿指针到溢出桶中进行查找。
例如:设散列函数为 Hash(Key)=Key mod 7 ,记录的关键字序列为 15 , 14 , 21 , 87 , 96 ,
293 , 35 , 24 , 149 , 19 , 63 , 16 , 103 , 77 , 5 , 153 , 145 , 356 , 51 , 68 ,
705 , 453 ,建立的散列文件内容如图 4-1 所示。
[ 图 4-1]
为简化起见,散列文件的存储单位以内存单元表示。
函数 InsertToHashTable ( int NewElemKey )的功能是:若新元素 NewElemKey 正确插入散列文件中,则返回值 1 ;否则返回值 0 。
采用的散列函数为 Hash(NewElemKey)=NewElemKey % P ,其中 P 设定的基桶数目。
函数中使用的预定义符号如下:
#define NULLKey -1 /* 散列桶的空闲单元标识 */
#define P 7 /* 散列文件中基桶的数目 */
#define ITEMS 3 /* 基桶和溢出桶的容量 */
typedef struct BucketNode { /* 基桶和溢出桶的类型定义 */
int KeyData[ITEMS];
struct BucketNode *Link;
}BUCKET;BUCKET Bucket[P]; /* 基桶空间定义 */
[ 函数 ]
int InsertToHashTable(int NewElemKey){
/* 将元素 NewElemKey 插入散列桶中 , 若插入成功则返回 0, 否则返回 -1*/
/* 设插入第一个元素前基桶的所有 KeyData[] 、 Link 域已分别初始化为 NULLKEY 、 NULL*/
int Index; /* 基桶编号 */
int i,k; BUCKET *s,*front,*t;
____(1)____;
for(i=0;i if (Bucket[Index].KeyData[i] == NULLKEY) { Bucket[Index].KeyData[i] = NewElemKey; break; } if (____(2)____)return 0; /* 若基桶已满,则在溢出桶中查找空闲单元,若找不到则申请新的溢出桶 */ _____(3)_____; t = Bucket[Index].Link; if (t != NULL) { /* 有溢出桶 */ while (t != NULL) { for(k = 0;k < ITEMS; k++) if (t -> KeyData[k] == NULLKEY) { /* 在溢出桶链表中找到空闲单元 */ t -> KeyData[k] = NewElemKey; break; } /*if*/ if (____(4)____) t = t-> Link; else break; } /*while*/ } /*if*/ if (____(5)____) { /* 申请新溢出桶并将元素存入 */ s = (BUCKET *)malloc(sizeof(BUCKET)); if (!s) return -1; s->Link = NULL; for(k = 0; k < ITEMS; k++) s->KeyData[k] = NULLKEY; s->KeyData[0] = NewElemKey; _____(6)_____; } /*if*/ return 0; } /*InsertToHashTable*/ 从下列的 3 道试题(试题五至试题七)中任选 1 道解答。如果解答的试题数超过 1 道,则题号小的 1 道解答有效。 试题五(共 15 分) 阅读以下说明和 C++ 代码,将应填入 _____(n)____ 处的字句写在答题纸的对应栏内。 [ 说明 ] 在一公文处理系统中,开发者定义了一个公文类 OfficeDoc, 其中定义了公文具有的属性和处理公文的相应方法。当公文件的内容或状态发生变化时,关注此 OfficeDoc 类对象的相应的 DocExplorer 对象都要更新其自身的状态。一个 OfficeDoc 对象能够关联一组 DocExplorer 对象。当 OfficeDoc 对象的 内容或状态发生变化时,所有与之相关联的 DocExplorer 对象都将得到通知,这种应用被称为观察者模式。以下代码写在一个 C++ 源文件中,能够正确编译通过。 [C++ 代码 ] #include const OBS_MAXNUM = 20 // 最多与 OfficeDoc 对象相关联的 DocExplorer 对象的个数 ____(1)____; class DocExploer { // 关注 OfficeDoc 公文对象的类 public: DocExplorer (____(2)____ *doc); // 构造函数 _____(3)____ void update(OfficeDoc *doc)=0; // 更新自身状态的函数 // 其它相关属性和方法省略 } class OfficeDoc{ // 公文类 private: DocExploer *myObs[OBS_MAXNUM]; // 关注此公文类的 DocExplorer 类对象指针数组 int index; // 与 OfficeDoc 对象关联的 DocExploer 对象的个数 public: OfficeDoc(){ index=0; } void attach(DocExploer *o){ // 将一 DocExploer 对象与 OfficeDoc 对象相关联 if (index >= OBS_MAXNUM || o == NULL) return; for (int loop = 0; loop < index; loop++) if (myObs[loop] == 0) return; myObs[index] = o;index++; } void detach(DocExploer *o){ // 解除某 DocExploer 对象与 OfficeDoc 对象的关联 if(o==NULL) return; for(int loop = 0; loop < index; loop++){ if(myObs[loop] == o){ if (loop <= index-2) myObs[loop] = myObs[index-1]; myObs[index-1] = NULL; index--; break; } } } private: void notifyObs(){ // 通知所有的 DocExplorer 对象更改自身状态 for(int loop = 0; loop myObs[loop]->____(4)____; //DocExplorer 对象更新自身状态 } } // 其它公文类的相关属性和方法 }; DocExplorer::DocExplorer(OfficeDoc *doc){ //DocExploer 类对象的构造函数 doc->____(5)____; // 将此 DocExplorer 对象与 doc 对象相关联 } 试题七(共 15 分) 阅读以下说明和 C 代码,将应填入 _____(n)____ 处的字句写在答题纸的对应栏内。 [ 说明 ] 在一公文处理系统中,开发者定义了一个公文结构 OfficeDoc ,其中定义了公文应该具有的属性。当公文件的内容或状态发生变化时,与之相关联的 DocExplorer 结构的值都需要发生改变。一个 OfficeDoc 结构能够关联一组 DocExplorer 结构。当 OfficeDoc 结构的内容或状态发生变化时,所有与之相关联的 DocExplorer 结构都将被更新,这种应用被称为观察者模式。以下代码采用 C 语言实现,能够正确编译通过。 [C 代码 ] #include #define OBS_MAXNUM 20 /* 一个 OfficeDoc 变量最多能够关联的 DocExplorer 变量的个数 */ typedef void (____(1)____) (struc OfficeDoc * ,struct DocExplorer *); struct DocExplorer { func update; /*DocExplorer 结构采用的更新函数 */ /* 其它的结构字段省略 */ }; struct OfficeDoc{ ___(2)____ myObs[OBS_MAXNUM]; /* 存储所有与 OfficeDoc 相关联的 DocExplorer 结构指针 */ int index; /* 与 OfficeDoc 结构变量相关联的 DocExplorer 结构变量的个数 */ }; void attach(struct OfficeDoc *doc, struct DocExplorer *ob){ /* 关联 Obersver 结构 ob 与 OfficeDoc 结构 doc*/ int loop = 0; if (doc -> index >= OBS_MAXNUM || ob == NULL) return; for(loop = 0; loop < doc->index; loop++) if (doc -> myObs[loop] == ob) return; doc->myObs[doc->index] = ob; doc->index++; } void detach(struct OfficeDoc *doc, struct DocExplorer *ob){ /* 解除 doc 结构与 ob 结构间的关系 */ int loop; if(ob == NULL) return; for(loop = 0;loop < doc->index; loop++){ if(doc->myObs[loop] == ob){ if (loop <= doc->index - 2) doc->myObs[loop] = doc->myObs[____(3)____]; doc->myObs[doc->index-1] = NULL;doc->index--; breack; } } } void update1(struct OfficeDoc *doc, struct DocExplorer *ob){ /* 更新 ob 结构的值 , 更新代码省略 */ } void update2(struct OfficeDoc *doc, struct DocExplorer *ob){ /* 更新 ob 结构的值,更新代码省略 */ } void notifyObs(struct OfficeDoc *doc){ /* 当 doc 结构的值发生变化时,通知与之关联的所有 DocExplorer 结构变量 */ int loop; for(loop = 0; loop < doc->index; loop++){ (doc->myObs[loop])->update(____(4)____); } } void main() { struct OfficeDoc doc; /* 定义一 OfficeDoc 变量 */ struct DocExplorer explorer1,explorer2; /* 定义两个 DocExplorer 变量 */ /* 初始化与 OfficeDoc 变量相关的 DocExplorer 变量个数为 0*/ = 0; = update1; /* 设置 explorer1 变量的更新函数 */ = update2; /* 设置 explorer2 变量的更新函数 */ attach(&doc , &explorer1); /* 关联 explorer1 与 doc 对象 */ attach(&doc , &explorer1); /* 关联 explorer1 与 doc 对象 */ /* 其它代码省略 */ _____(5)____; /* 通知与 OfficeDoc 相关的所有 DocExploer 变量 */ return; } 2005下半年软件设计师试题参考答案 上午(每空1分) (1) (2) (3) (4) (5) (6) (7) (8) (9) B D C C C A A C C (16) B (17) B (18) C (19) B (20) A (21) D (22) A (23) D (24) C (25) A (26) C (27) D (28) C (29) D (30) C (31) C (32) D (33) B (34) C (35) B (36) A (37) D (38) B (39) A (40) D (41) C (42) C (43) D (44) B (45) A (46) D (47) A (48) B (49) D (50) A (51) B (52) C (53) C (54) B (55) D (56) B (57) B (58) C (59) D (60) A (61) D (62) A (63) B (64) B (65) B (66) C (67) B (68) A (69) D (70) A (71) C (72) B (73) A (74) D (75) A (10) C (11) C (12) B (13) C (14) D (15) A 下午 试题一:问题1. 属性 title 方法 Reference title 问题2. 问题3. 10 2 试题二:问题1. 货物(货物编码,货物名称,单价,数量) 问题2. 画图 问题3. 出入库单 主键 流水号 仓库 主键 仓库号 出入库记录 主键 货物编码 管理员 主键 管理员号 日汇总表 主键 货物编码 、出入库标志 货物 主键 货物编码 试题三: 问题1. 方框a--- B 的公钥 方框b--- B 的私钥 问题2. 方框c--- 摘要算法 方框d--- 会话密钥 方框e--- 会话密钥 方框f--- 摘要算法 问题3. 这样做属于混合加密体制,使用对称密码体制加解密速度快,使用的加密算法比较简便 高效,而非对称密码体制使用就可以把用于加密的密钥公开地分发给任何人,极大地简化了 密钥管理,是对传统加密方法的改进。 问题4. E b 试题四. 1. Index=NewElemkey%P 2. i3. t=(BUCKET*)malloc(sizeof(BUCKET)) 4. t->link!=NULL 5. k>=ITEMS 6. return 0 试题五. 1. class officeDoc 2. officeDoc 3. virtual 4. update(this) 5. attach(this) 试题六. 1. Subject officeDoc 2. Observers( ) 3. update(this) 4. Observer 5. OfficeDoc OfficeDoc 试题七. 1. update 2. DocExplorer * 3. doc->index-1 4. ->myObs[loop] 5. notifyobs(* doc)
版权声明:本文标题:全国计算机技术与软件专业技术资格(水平)考试 2005 年下半年 软件设计 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.freenas.com.cn/free/1702844553h432982.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论