本人准备考二级web程序设计,买了本练习册,做了一下选择题,下面是我觉得是比较难,有些也是本人不太熟悉的知识点,希望对你们有用!有正确答案加分析
1.下列链表中,其逻辑结构属于非线性结构的是(D)
A. 双向链表
B. 带链的栈
C. 二叉链表
D. 循环链表
解析:常用的线性结构有:线性表,栈,队列,双队列,数组,串。常见的非线性结构有:二维数组,多维数组,广义表,树(二叉树等),图。关于广义表,是一种非线性的数据结构。
2. 设循环队列的存储空间为Q(1:35),初始状态为front=rear=35,现经过一系列入队与退队运算后,front=15,rear=15,则循环队列中的元素个数为(C)
A.16
B.20
C.0或35
D.15
解析:当front
当front>rear时,循环队列中的元素个数为N-front+rear(N为循环队列容量)。
当front=rear时,循环队列中的元素个数可能为空,也可能为满。
3. 一棵二叉树共有25个节点,其中5个时子节点,那么度为1的节点数为(B)
A.4,B16,C.10,D.6
解析:25个节点,5个子节点,其中子节点(度为0的节点)个数-度为2的节点个数=1,所以度为2的节点个数为4。节点度数有0,1,2,所以度为1的节点数为25-4-5=16
4. 软件需求规格说明书有以下几个方面的作用: ①便于用户、开发人员进行理解和交流。 ②反映出用户问题的结构,可以作为软件开发工作的基础和依据。 ③作为确认测试和验收的依据。
5. 软件生命周期中的活动不包括(A)
A市场调研
B需求分析
C软件测试
D软件维护
6. 下面属于黑盒测试方法的是( D)
A.逻辑覆盖
B.语句覆盖
C.路径覆盖
D.边界值分析
解析:具体的黑盒测试用例设计方法包括等价类划分法、边界值分析法、错误推测法、因果图法、判定表驱动法、正交试验设计法、功能图法、场景法等。
7. 下面不属于需求分析阶段任务的是(D)
A)确定软件系统的功能需求
B)确定软件系统的性能需求
C)需求规格说明书评审
D)制定软件集成测试计划
解析:1.问题识别
(1) 功能需求:明确所开发的软件必须具备什么样的功能。
(2) 性能需求:明确待开发的软件的技术性能指标。
(3) 环境需求:明确软件运行时所需要的软、硬件的要求。
(4) 用户界面需求:明确人机交互方式、输入输出数据格式。
2. 分析与综合,导出软件的逻辑模型
分析人员对获取的需求,进行一致性的分析检查,在分析、综合中逐步细化软件功能,划分成各个子功能。用图文结合的形式,建立起新系统的逻辑模型。
3. 编写文档
(1) 编写“需求规格说明书”,把双方共同的理解与分析结果用规范的方式描述出来,作为今后各项工作的基础。
(2) 编写初步用户使用手册,着重反映被开发软件的用户功能界面和用户使用的具体要求,用户手册能强制分析人员从用户使用的观点考虑软件。
(3) 编写确认测试计划,作为今后确认和验收的依据。
(4) 修改完善软件开发计划。在需求分析阶段对待开发的系统有了更进一步的了解,所以能更准确地估计开发成本、进度及资源要求,因此对原计划要进行适当修正。
8. 在软件开发中,需求分析阶段可以使用的工具是(B)。
A.N-S图
B.DFD图
C.PAD图
D.程序流程图
解析:需求分析阶段用的工具有:数据流图(DFD图)、数据字典、判定树、判定表。
9. 有表示学生选课的三张表,学生 S(学号,姓名,性别,年龄,身份证号),课程 C(课
号,课名),选课 SC(学号,课号,成绩),则表SC 的关键字(键或码)为 (C)
A)课号,成绩 B)学号,成绩
C)学号,课号 D) 学号,姓名,成绩
解析:SC中有三项(学号,课号,成绩),而学号,课号前面两表分别包含它们,所以选 C
10. 在下列模式中,能够给出数据库物理存储结构与物理存取方式的是( B )。
A.外模式
B.内模式
C.概念模式
D.逻辑模式
A分类性B多态性C继承性D封装性
12. 在数据库设计中,将E-R 图转换成关系数据模型的过程属于( C )。
A.需求分析阶段
B.概念设计阶段
C.逻辑设计阶段
D.物理设计阶段
解析:-R方法是“实体-联系方法”(Entity-Relationship Approach)的简称。它是描述现实世界概念结构模型的有效方法。是表示概念模型的一种方式,用矩形表示实体型,矩形框内写明实体名;用椭圆表示实体的属性,并用无向边将其与相应的实体型连接起来;用菱形表示实体型之间的联系,在菱形框内写明联系名,并用无向边分别与有关实体型连接起来,同时在无向边旁标上联系的类型(1:1,1:n或m:n)。
13. 在长度为n的有序线性表中进行二分查找,在最坏的情况下需要比较的次数是(C)A.O(n)B.O(n2)C.O(log2n)D.O(nlog2n)
解析:二分查找的基本思想是将n个元素分成大致相等的两部分,去a[n/2]与x做比较,如果x=a[n/2],则找到x,算法中止;如果x则只要在数组a的左半部分继续搜索x,如果x>a[n/2],则只要在数组a的右半部搜索x. 时间复杂度无非就是while循环的次数!总共有n个元素, 渐渐跟下去就是n,n/2,n/4,....n/2^k,其中k就是循环的次数 由于你n/2^k取整后>=1即令n/2^k=1 可得k=log2n,(是以2为底,n的对数)
14. 对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是(D)
A.快速排序B.冒泡排序C.直接插入排序D.堆排序