
国家计算机二级公共基础知识复习要点.pdf
114页二级公共基础附2 2 0 题祥解二级公共基础知识新大纲基本要求1 ,掌握算法的基本概念.2 ,掌握基本数据结构及其操作.3 ,掌握基本排序和查找算法.4 掌握逐步求精的结构化程序设计方法.5 ,掌握软件工程的基本方法, 具有初步应用相关技术进行软件开发的能力.考试内容一, 基本数据结构与算法1 ,算法的基本概念; 算法复杂度的概念和意义( 时间复杂度与空间复杂度) .2 ,数据结构的定义; 数据的逻辑结构与存储结构; 数据结构的图形表示; 线性结构与非线性结构的概念.3 ,线性表的定义; 线性表的顺序存储结构及其插入与除运算.4 ,栈和队列的定义; 栈和队列的顺序存储结构及其基本运算.5 ,线性单链表, 双向链表与循环链表的结构及其基本运算.6 ,树的基本概念; 二* 树的定义及其存储结构; 二* 树的前序, 中序和后序遍历.7 ,顺序查找与二分法查找算法; 基本排序算法( 交换类排序, 选择类排序, 插入类排序) .程序设计基础1 ,程序设计方法与风格.2 ,结构化程序设计.3 ,面向对象的程序设计方法, 对象, 方法, 属性及继承与多态性.三, 软件工程基础1 ,软件工程基本概念, 软件声明周期概念, 软件工具与软件开发环境.2 ,结构化分析方法, 数据流图, 数据字典, 软件需求规格说明书.3 ,结构化程序设计方法, 总体设计与详细设计.4 ,软件测试的方法, 白盒测试与黑盒测试, 测试用例设计, 软件测试的实施, 单元测试, 集成测试和系统测试.5 ,程序的调试, 静态调试与动态调试.四, 数据库设计基础1 ,数据库的基本概念: 数据库, 数据库管理系统, 数据库系统.数据模型, 实体练习模型及E-R图, 从 E-R图导出关系数据模型.2 ,关系代数运算, 包括几何运算及选择, 投影, 连接运算, 数据库规范化理论.数据库设计方法和步骤: 需求分析, 概念设计, 逻辑设计和物理设计的相关策略.公共基础知识总结第一章数据结构与算法1 . 1 算法算法: 是指解题方案的准确而完整的描述.算法不等于程序, 也不等计算机方法, 程序的编制不可能优于算法的设计.算法的基本特征: 是一组严谨地定义运算顺序的规则, 每一个规则都是有效的, 是明确的, 此顺序将在有限的次数下终止. 特征包括:⑴可行性;(2 )确定性, 算法中每一步骤都必须有明确定义, 不充许有模棱两可的解释, 不允许有多义性;(3 )有穷性, 算法必须能在有限的时间内做完, 即能在执行有限个步骤后终止, 包括合理的执行时间的含义;(4 )拥有足够的情报.算法的基本要素: 一是对数据对象的运算和操作; 二是算法的控制结构.指令系统: 一个计算机系统能执行的所有指令的集合.基本运算和操作包括: 算术运算, 逻辑运算, 关系运算, 数据传输.算法的控制结构: 顺序结构, 选择结构, 循环结构.算法基本设计方法: 列举法, 归纳法, 递推, 递归, 减斗递推技术, 回溯法.算法复杂度: 算法时间复杂度和算法空间复杂度.算法时间复杂度是指执行算法所需要的计算工作量.( 1 ) 平均性态分析( 2 ) 最坏情况复杂性算法空间复杂度是指执行这个算法所需要的内存空间.如果额外空间量相对于问题规模来说是常数,则称该算法是原地工作的。
1 . 2 数据结构的基本基本概念数据结构研究的三个方面:(1 )数据集合中各数据元素之间所固有的逻辑关系, 即数据的逻辑结构;(2 )在对数据进行处理时, 各数据元素在计算机中的存储关系, 即数据的存储结构;(3 )对各种数据结构进行的运算.数据结构是指相互有关联的数据元素的集合. ( 数据的逻辑结构、数据的存储结构、对各种数据结构的运算)数据的逻辑结构包含:⑴表示数据元素的信息;(2 )表示各数据元素之间的前后件关系.数据的存储结构有顺序, 链接, 索引等.线性结构条件:(1 )有且只有一个根结点;(2 )每一个结点最多有一个前件, 也最多有一个后件.非线性结构: 不满足线性结构条件的数据结构.1 . 3线性表及其顺序存储结构线性表由一组数据元素构成, 数据元素的位置只取决于自己的序号, 元素之间的相对位置是线性的.在复杂线性表中, 由若干项数据元素组成的数据元素称为记录, 而由多个记录构成的线性表又称为文件.非空线性表的结构特征:(1 )且只有一个根结点a1 ,它无前件;(2 )有且只有一个终端结点a. 它无后件;(3 )除根结点与终端结点外, 其他所有结点有且只有一个前件, 也有且只有一个后件. 结点个数 n 称为线性表的长度, 当 n= 0 时, 称为空表.线性表的顺序存储结构具有以下两个基本特点:(1)线性表中所有元素的所占的存储空间是连续的;(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的.a i的存储地址为:ADR(ai尸ADR(al)+(i-l)k”ADR(al)为第一个元素的地址,k代表每个元素占的字节数.顺序表的运算: 插入, 删除,查找,排序,分解,复制和逆转等操作. ( 详 见14--16页)1 .4 栈和队列栈是限定在一端进行插入与删除的线性表, 允许插入与删除的一端称为栈顶, 不允许插入与删除的另一端称为栈底.栈按照" 先进后出”(FILO)或“ 后进先出”(L1FO)组织数据, 栈具有记忆作用用top表示栈顶位置, 用bottom表示栈底.栈的基本运算:(1)插入元素称为入栈运算;(2)删除元素称为退栈运算;(3)读栈顶元素是将栈顶元素赋给一个指定的变量, 此时指针无变化.队列是指允许在一端( 队尾) 进入插入, 而在另一端( 队头) 进行删除的线性表.Rear指针指向队尾,front指针指向队头.队列是“ 先进行出” (FIFO)或“ 后进后出” (LILO)的线性表.队列运算包括(1)入队运算: 从队尾插入一个元素;(2)退队运算: 从队头删除一个元素.循环队列:s=0表示队列空,s=l且front=rear表示队列满1.5 线性链表数据结构中的每一个结点对应于一个存储单元, 这种存储单元称为存储结点, 简称结点.结点由两部分组成:(1)用于存储数据元素值, 称为数据域;(2)用于存放指针, 称为指针域, 用于指向前一个或后一个结点.在链式存储结构中, 存储数据结构的存储空间可以不连续, 各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致, 而数据元素之间的逻辑关系是由指针域来确定的.链式存储方式即可用于表示线性结构, 也可用于表示非线性结构.线性链表,HEAD称为头指针,HEAD=NULL( 或0)称为空表, 如果是两指针: 左指针(Llink)指向前件结点, 右指针(Rlink)指向后件结点.线性链表的基本运算: 查找, 插入, 删除.1 .6树与二叉树树是一种简单的非线性结构, 所有元素之间具有明显的层次特性.在树结构中, 每一个结点只有一个前件, 称为父结点, 没有前件的结点只有一个, 称为树的根结点, 简称树的根. 每一个结点可以有多个后件, 称为该结点的子结点. 没有后件的结点称为叶子结点.在树结构中, 一个结点所拥有的后件的个数称为该结点的度, 所有结点中最大的度称为树的度. 树的最大层次称为树的深度.二叉树的特点:(1)非空二叉树只有一个根结点;(2)每一个结点最多有两棵子树, 且分别称为该结点的左子树与右子树.二叉树的基本性质:(1)在二叉树的第k层上, 最多有2^(贮1)个结点;(2)深度为m的二叉树最多有2m- l个结点;⑶ 度 为0的结点( 即叶子结点) 总是比度为2的结点多一个;N=NO+N1+N2N0=N2+l(4)具 有n个结点的二叉树, 其深度至少为|log21+l,其中[ logZ]表示取login的整数部分;(5)具 有n个结点的完全二叉树的深度为|log21+l;(6)设完全二叉树共有n个结点. 如果从根结点开始, 按层序( 每一层从左到右) 用自然数1,2,....n给结点进行编号(k=l,2....n),有以下结论:① 若k=l,则该结点为根结点, 它没有父结点; 若k>l,则该结点的父结点编号为lNT(k/2);② 若2kWn,则编号为k的结点的左子结点编号为2k;否则该结点无左子结点( 也无右子结点) ;③ 若2k+lSn,则编号为k的结点的右子结点编号为2k+l;否则该结点无右子结点.满二叉树是指除最后一层外, 每一层上的所有结点有两个子结点, 则k层上有2k-1个结点深度为m的满二叉树有型-1个结点.完全二叉树是指除最后一层外, 每一层上的结点数均达到最大值, 在最后一层上只缺少右边的若干结点.二叉树存储结构采用链式存储结构, 对于满二叉树与完全二叉树可以按层序进行顺序存储.二叉树的遍历:AB C(1)前序遍历(DLR),首先访问根结点, 然后遍历左子树, 最后遍历右子树;(2)中序遍历(LDR),首先遍历左子树, 然后访问根结点, 最后遍历右子树;(3)后序遍历(LRD)首先遍历左子树, 然后访问遍历右子树, 最后访问根结点.1 .7 查找技术顺序查找的使用情况:(1)线性表为无序表;(2)表采用链式存储结构.二分法查找只适用于顺序存储的有序表, 对 于 长 度 为n的有序线性表, 最坏情况只需比较10g2n 次.1 .8 排序技术排序是指将一个无序序列整理成按值非递减顺序排列的有序序列.交换类排序法:(1)冒泡排序法, 需要比较的次数为n(n-l)/2;(2)快速排序法.插入类排序法:(1)简单插入排序法, 最坏情况需要n(n-l)/2次比较;(2)希尔排序法, 最坏情况需要O(i?6)次比较.选择类排序法:(1)简单选择排序法, 最坏情况需要n(n-l)/2次比较;(2)堆排序法, 最坏情况需要O(nlog2> 次比较.第二章程序设计基础2. 1 程序设计设计方法和风格HRBJGD@163. C O M如何形成良好的程序设计风格1,源程序文档化; 2,数据说明的方法; 3,语句的结构; 4,输入和输出.注释序言性注释和功能性注释, 语句结构清晰第一, 效率第二.2. 2 结构化程序设计结构化程序设计方法的四条原则是:1 . 自顶向下;2 . 逐步求精; 3. 模块化; 4. 限制使用goto语句.结构化程序的基本结构和特点:(1)顺序结构: 一种简单的程序设计, 最基本, 最常用的结构;(2)选择结构: 又称分支结构, 包括简单选择和多分支选择结构, 可根据条件, 判断应该选择哪一条分支来执行相应的语句序列;(3)重复结构: 又称循环结构, 可根据给定条件, 判断是否需要重复执行某一相同程序段.2. 3 面向对象的程序设计面向对象的程序设计: 以60年代末挪威奥斯陆大学和挪威计算机中心研制的SIMULA语言为标志.面向对象方法的优点:(1)与人类习惯的思维方法一致; (2)稳定性好;(3)可重用性好;(4)易于开发大型软件产品; (5)可维护性好.对象是面向对象方法中最基本的概念, 可以用来表示客观世界中的任何实体, 对象是实体的抽象.面向对象的程序设计方法中的对象是系统中用来描述客观事物的一个实体, 是构成系统的一个基本单位, 由一组表示其静态特征的属性和它可执行的一组操作组成.属性即对象所包含的信息, 操作描述了对象执行的功能, 操作也称为方法或服务.对象的基本特点:⑴标识惟一性; (2 )分类性; (3 )多态性; (4 )封装性; ⑸模块独立性好.类是指具有共同属性, 共同方法的对象的集合. 所以类是对象的抽象, 对象是对应类的一个实例.消息是一个实例与另一个实例之间传递的信息.消息的组成包括(1 )接收消息的对象的名称; (2 )消息标识符, 也称消息名; (3 )零个或多个参数.继承是指能够直接获得已有的性质和特征, 而不必重复定义他们.继承分单继承和多重继承. 单继承指一个类只允许有一个父类, 多重继承指一个类允许有多个父类.多态性是指同样的消息被不同的对象接受时可导致完全不同的行动的现象.第三章软件工程基础3 .1软件工程基本概念计算机软件是包括程序, 数据及相关文档的完整集合.软件的特点包括:(1)软件是一种逻辑实体;(2)软件的生产与硬件不同, 它没有明显的制作过程;(3)软件在运行, 使用期间不存在磨损, 老化问题;(4)软件的开发, 运行对计算机系统具有依赖性, 受计算机系统的限制, 这导致了软件移植的问题;(5)软件复杂性高, 成本昂贵;(6)软件开发涉及诸多的社会因素.软件按功能分为应用软件, 系统软件, 支撑软件( 或工具软件) .软件危机主要表现在成本, 质量, 生产率等问题.软件工程是应用于计算机软件的定义, 开发和维护的一整套方法, 工具, 文档, 实践标准和工序.软件工程包括3个要素: 方法, 工具和过程.软件工程过程是把软件转化为输出的一组彼此相关的资源和活动, 包 含4种基本活动:(1)P——软件规格说明;(2)D——软件开发;(3)C——软件确认; (4)A——软件演进.软件周期: 软件产品从提出, 实现, 使用维护到停止使用退役的过程.软件生命周期三个阶段: 软件定义, 软件开发, 运行维护,主要活动阶段是:⑴可行性研究与计划制定;(2)需求分析; ⑶软件设计;(4)软件实现;(5)软件测试;(6)运行和维护.软件工程的目标和与原则:目标: 在给定成本, 进度的前提下, 开发出具有有效性, 可靠性, 可理解性, 可维护性, 可重用性,可适应性, 可移植性, 可追踪性和可互操作性且满足用户需求的产品.基本目标: 付出较低的开发成本; 达到要求的软件功能; 取得较好的软件性能; 开发软件易于移植; 需要较低的费用; 能按时完成开发, 及时交付使用.软件工程的理论和技术性研究的内容主要包括: 软件开发技术和软件工程管理.软件开发技术包括: 软件开发方法学, 开发过程, 开发工具和软件工程环境.软件工程管理包括: 软件管理学, 软件工程经济学, 软件心理学等内容.软件管理学包括人员组织, 进度安排, 质量保证, 配置管理, 项目计划等.软件工程原则包括抽象, 信息隐蔽, 模块化, 局部化, 确定性, 一致性, 完备性和可验证性.3 . 2 结构化分析方法结构化方法的核心和基础是结构化程序设计理论.需求分析方法有(1 )结构化需求分析方法; (2 )面向对象的分析的方法.从需求分析建立的模型的特性来分: 静态分析和动态分析.结构化分析方法的实质: 着眼于数据流, 自顶向下, 逐层分解, 建立系统的处理流程, 以数据流图和数据字典为主要工具, 建立系统的逻辑模型.结构化分析的常用工具(1 )数据流图; (2 )数据字典; (3 )判 定 树 ; (4 )判定表.数据流图: 描述数据处理过程的工具, 是需求理解的逻辑模型的图形表示, 它直接支持系统功能建模.数据字典: 对所有与系统相关的数据元素的一个有组织的列表, 以及精确的, 严格的定义, 使得用户和系统分析员对于输入, 输出, 存储成分和中间计算结果有共同的理解.判定树: 从问题定义的文字描述中分清哪些是判定的条件, 哪些是判定的结论, 根据描述材料中的连接词找出判定条件之间的从属关系, 并列关系, 选择关系, 根据它们构造判定树.判定表: 与判定树相似, 当数据流图中的加工要依赖于多个逻辑条件的取值, 即完成该加工的一组动作是由于某一组条件取值的组合而引发的, 使用判定表描述比较适宜.数据字典是结构化分析的核心.软件需求规格说明书的特点:(1 )正确性; (2 )无岐义性; (3 )完整性; (4 )可验证性; ⑸一致性; ⑹可理解性; ⑺可追踪性.3 . 3结构化设计方法软件设计的基本目标是用比较抽象概括的方式确定目标系统如何完成预定的任务, 软件设计是确定系统的物理模型.软件设计是开发阶段最重要的步骤, 是将需求准确地转化为完整的软件产品或系统的唯一途径.从技术观点来看, 软件设计包括软件结构设计, 数据设计, 接口设计, 过程设计.结构设计: 定义软件系统各主要部件之间的关系.数据设计: 将分析时创建的模型转化为数据结构的定义.接口设计: 描述软件内部, 软件和协作系统之间以及软件与人之间如何通信.过程设计: 把系统结构部件转换成软件的过程描述.从工程管理角度来看: 概要设计和详细设计.软件设计的一般过程: 软件设计是一个迭代的过程; 先进行高层次的结构设计; 后进行低层次的过程设计; 穿插进行数据设计和接口设计.衡量软件模块独立性使用耦合性和内聚性两个定性的度量标准.在程序结构中各模块的内聚性越强, 则耦合性越弱. 优秀软件应高内聚, 低耦合.软件概要设计的基本任务是:(1 )设计软件系统结构; ⑵数据结构及数据库设计;⑶编写概要设计文档; (4 )概要设计文档评审.模块用一个矩形表示, 箭头表示模块间的调用关系.在结构图中还可以用带注释的箭头表示模块调用过程中来回传递的信息. 还可用带实心圆的箭头表示传递的是控制信息, 空心圆箭头表示传递的是数据.结构图的基本形式: 顺序形式, 重复形式, 选择形式.结构图有四种模块类型: 传入模块, 传出模块, 变换模块和协调模块.典型的数据流类型有两种: 变换型和事务型.变换型系统结构图由输入, 中心变换, 输出三部分组成.事务型数据流的特点是: 接受一项事务, 根据事务处理的特点和性质, 选择分派一个适当的处理单元, 然后给出结果.详细设计: 是为软件结构图中的每一个模块确定实现算法和局部数据结构, 用某种选定的表达工具表示算法和数据结构的细节.常见的过程设计工具有: 图形工具( 程序流程图、N —S、P A D 、H IPO) , 表格工具( 判定表) ,语言工具( P D L ) .程序流程图是一种传统的、应用广泛的软件过程设计表示工具,也称程序框图。
I I控制流 < 2 ^ 逻辑条件加工步骤程序流程图特点:简单易学,但不受约束,随意转移控制,会破坏结构化设计的原则,且不易表示数据结构N — S 图:方框图特征1 . 每个构件具有明确的功能域2 . 控制转移必须遵守结构化设计要求3 . 易于确定局部数据和全局数据的作用域4 . 易于表达嵌套关系和模块的层次结构P A D 图 :特征1 . 结构清晰,结构化程序高2 . 易于阅读3 . 最左端的纵线是程序主干线,对应程序的第一层结构;每增加一层P A D 图向右扩展一个纵线,即纵线条数等于程序的层次数4 . 程序执行时,从 P A D 图最左主干线上端结点开始,自上向下, 自左向右依次执行,程序终止于最左主干线P D L 过程设计语言,也称结构化的英语和伪码1有为结构化构成元素,数据说明和模块化特征提供的关键词语法2 . 处理部分的描述采用自然语言语法3 . 可能说明简单和复杂的数据结构4 . 支持各种接口描述的子程序定义和调用技术3 . 4软件测试软件测试定义: 使用人工或自动手段来运行或测定某个系统的过程, 其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别.软件测试的目的: 发现错误而执行程序的过程.软件测试方法: 静态测试和动态测试.静态测试包括代码检查, 静态结构分析, 代码质量度量. 不实际运行软件, 主要通过人工进行.动态测试: 是基本计算机的测试, 主要包括白盒测试方法和黑盒测试方法.白盒测试( 结构测试或逻辑驱动测试): 在程序内部进行, 主要用于完成软件内部操作的验证. 主要方法有逻辑覆盖, 基本路径测试.逻辑覆盖:指一系列以程序内部的逻辑结构为基础的测试用例设计技术。
通常指程度中的逻辑表示有判断、分支、条件等几种表示方式1 语句覆盖:选择足够的测试用例,使得程序中每个语句至少被执行一次2 . 路径覆盖:执行足够的测试用例,使程序中所有可能的路径至少经历一次3 . 判断覆盖:使设计的测试用例保证程序中每个判断的每个取值分支至少经历一次4 . 条件覆盖:设计的测试用例保证程序中每个判断的每个条件的可能取值至少执行一次5 . 判断一一条件覆盖:设计足够的测试用例, 使判断中每个条件的所有可能取值至少执行一次,同时每个判断的所有可能取值分支至少执行一次基本路径测试:根据软件过程性描述中的控制流程确定程序的环路复杂性度量,用此度量定义基本路径集合,并由此导出一组测试用例,对每一条独立执行路径进行测试黑 盒 测 试 ( 功能测试或数据驱动测试): 墨盒测试是对软件已试验的功能是否满足需要进行测试和验证 主要诊断功能不对或遗漏, 界面错误, 数据结构或外部数据库访问错误, 性能错误, 初始化和终止条件错, 用于软件确认. 主要方法有等价类划分法, 边界值分析法, 错误推测法, 因果图等.等价类划分法:是一种典型的黑盒测试方法是将程序的所有可能的输入数据划分成若干部分,然后从每个等价类中选取数据作为测试用例。
包括1有效等价类:合理、有意义的输入数据构成的集合,检验程序中符合规定的功能和性能2无效等价类:不合理、无意义的输入数据构成的集合,可以检验程序中符合规定的功能和性能边界值分析法:对各种输入、输出范围的边界情况设计测试用例的方法程序错误最容易出现在输入或输出范围的边界处错误推测法:以经验和直觉推测程序中可能存在的各种错误,有针对性地编写检查这些错误的例子基本想法是:列举出程序中所有可能出现的错误和容易发生错误的特殊情况,根据它们选择测试用例软件测试过程一般按4个步骤进行: 单元测试, 集成测试, 验收测试( 确认测试) 和系统测试.1单元测试 是对软件设计的最小单位模块进行正确性检测的过程,其目的是发现一个模块内部可能存在的各种错误依据:详细设计说明书和源程序动态测试以白盒测试为主,辅之以黑盒测试单元测试主要针对模块的五个基本特性进行:(1 模块接口测试:测试通过模块的数据流(2 局部数据结构测试: 检查局部数据一致性、数据的初始化、数据类型的一致以及数据的下溢,上溢3 重要的执行路径的检查(4 出错处理测试:检查模块的错误处理功能(5 影响以上各点及其他相关点的边界条件测试2 集成测试是测试和组装软件的过程。
主要目的是发现与结构有关的错误集成测试的依据是概要计算机说明书集成测试涉及的内容包括软件单元的接口测试、全局数据结构测试、边界条件和非法输入的测试等集成测试时将模块组成程序通常采用两种方式:非增量方式组装( 一次性组装) 与增量方式组装( 自顶向下、自底向上以及自顶向下和自底向上结合) 3验收测试任务是验证软件的功能和性能及其他特性是否满足了规格说明书中确定的各种需求,软件配置是否完全、正确首先运用黑盒测试方法对软件进行有效性测试工,然后通过复审保证软件配置齐全,分类有序以及软件配置所有的成分的完备性、一致性、准确性和可操作性4 系统测试是将通过测试的软件作为整个基于计算机系统的一个元素, 与计算机硬件、 外设、支持软件、数据和人员等其他系统元素组合在一起,在实际运行环境下对计算机系统进行集成测试和确认测试系统测试必须在目标环境下运行,其功能在于评估系统环境下软件的性能,发现和捕捉软件中潜在的错误目的是在真实的系统工作环境下检验软件是否能与系统正确连接,发现软件与系统需求不一致的地方包括:功能测试、性能测试、操作测试、配置测试、外部接口测试和安全性测试软件测试贯穿整个软件的生存期3 . 5程序的调试程序调试的任务是诊断和改正程序中的错误, 主要在开发阶段进行.程序调试分两部分:根据错误的迹象确定程序中错误的性质、原因和位置;对程序进行修改,排除这个错误。
程序调试的基本步骤:(1 )错误定位; (2 )修改设计和代码, 以排除错误; (3 )进行回归测试, 防止引进新的错误.程序调试的原则:1确定错的性质和出错位置时注意事项2修改错误的原则在出现错误的地方,可能有别的错误;改正错误只修改了这个错误的表现,而没有改正错误本身;改正错误的同时引入新的错误;改正错误的过程是回到程序设计阶段;修改源代码程序,不要改变目标代码软件调试可分表静态调试和动态调试. 静态调试主要是指通过人的思维来分析源程序代码和排错, 是主要的设计手段, 而动态调试是辅助静态调试. 主要调试方法有:⑴强行排错法; (2 )回溯法; ⑶原因排除法.4 . 1 数据库系统的基本概念数据: 实际上就是描述事物的符号记录.数据的特点: 有一定的结构, 有型与值之分, 如整型, 实型, 字符型等. 而数据的值给出了符合定型的值, 如整型值1 5 .数据库: 是数据的集合, 具有统一的结构形式并存放于统一的存储介质内, 是多种应用数据的集成, 并可被各个应用程序共享.数据库存放数据是按数据所提供的数据模式存放的, 具有集成与共享的特点.数据库管理系统: 一种系统软件, 负责数据库中的数据组织, 数据操纵, 数据维护, 控制及保护和数据服务等, 是数据库的核心.数据库管理系统功能:(1 )数据模式定义: 即为数据库构建其数据框架;(2 )数据存取的物理构建: 为数据模式的物理存取与构建提供有效的存取方法与手段;⑶数据操纵: 为用户使用数据库的数据提供方便, 如查询, 插入, 修改, 删除等以及简单的算术运算及统计;(4 )数据的完整性, 安生性定义与检查;(5 )数据库的并发控制与故障恢复;(6 )数据的服务: 如拷贝, 转存, 重组, 性能监测, 分析等.为完成以上六个功能, 数据库管理系统提供以下的数据语言:(1 )数据定义语言: 负责数据的模式定义与数据的物理存取构建;(2 )数据操纵语言: 负责数据的操纵, 如查询与增, 删, 改等;(3 )数据控制语言: 负责数据完整性, 安全性的定义与检查以及并发控制, 故障恢复等.数据语言按其使用方式具有两种结构形式: 交互式命令( 又称自含型或自主型语言) 宿主型语言( 一般可嵌入某些宿主语言中) .数据库管理员DBA: 对数据库进行规划, 设计, 维护, 监视等的专业管理人员. 工作:数据库设计、数据库维护、改善系统性能。
数 据 库 系 统 DBS: 由数据库( 数据) , 数据库管理系统( 软件) , 数据库管理员( 人员) , 硬件平台( 硬件) , 软件平台( 软件) 五个部分构成的运行实体.数据库应用系统DBAS: 由数据库系统, 应用软件及应用界面三者组成.数据库管理系统D B M S数据库系统发展三个阶段:文件系统阶段: 提供了简单的数据共享与数据管理能力, 但是它无法提供完整的, 统一的, 管理和数据共享的能力.层次数据库与网状数据库系统阶段: 为统一与共享数据提供了有力支撑.关系数据库系统阶段数据库系统的基本特点: 数据的集成性, 数据的高共享性与低冗余性, 数据独立性( 物理独立性与逻辑独立性) , 数据统一管理与控制.物理独立性:是数据的物理结构包括存储结构、存取方式的改变为,不影响数据库的逻辑结构逻辑独立性:数据库总体逻辑结构的改变如修改数据、增加数据类型等,不需要相应修改应用程序数据的统一管理与控制1 数据的完整性检查2数据的安全性保护3并发控制数据库系统的三级模式:⑴概念模式: 数据库系统中全局数据逻辑结构的描述, 全体用户公共数据视图;(2 )外模式: 也称子模式或用户模式. 是用户的数据视图, 也就是用户所见到的数据模式;(3 )内模式: 又称物理模式, 它给出了数据库物理存储结构与物理存取方法.内模式处于最底层,反映了数据在计算机物理结构中的实际存储形式;概念模式处于中层,反映了设计者的数据全局逻辑要求;处模式处于最外层,反映了用户对数据的要求。
数据库系统的两级映射:⑴概念模式到内模式的映射;(2 )外模式到概念模式的映射.4 . 2数据模型数据模型的概念: 是数据特征的抽象, 从抽象层次上描述了系统的静态特征, 动态行为和约束条件, 为数据库系统的信息表与操作提供一个抽象的框架. 描述了数据结构, 数据操作及数据约束.E -R 模型的基本概念(1 )实体: 现实世界中的事物; (2 )属性: 事物的特性; ⑶联系现实世界中事物间的关系.实体集的关系有一对一, 一对多, 多对多的联系.E - R 模型三个基本概念之间的联接关系: 实体是概念世界中的基本单位, 属性有属性域, 每个实体可取属性域内的值. 一个实体的所有属性值叫元组.E -R 模型的图示法: (1 )实体集表示法; (2 )属性表法; (3 )联系表示法.层次模型的基本结构是树形结构, 具有以下特点:(1 )每棵树有且仅有一个无双亲结点, 称为根;(2 )树中除根外所有结点有且仅有一个双亲.网状模型从图论上看, 网状模型是一个不加任何条件限制的无向图.关系模型采用二维表来表示, 简称表, 由表框架及表的元组组成. 一个二维表就是一个关系.在二维表中凡能唯一标识元组的最小属性称为键或码. 从所有侯选健中选取一个作为用户使用的键称主键. 表A 中的某属性是某表B 的键, 则称该属性集为A 的外键或外码.关系中的数据约束:(1 )实体完整性约束: 约束关系的主键中属性值不能为空值;(2 )参照完全性约束: 是关系之间的基本约束;(3 )用户定义的完整性约束: 它反映了具体应用中数据的语义要求.4 . 3关系代数关系数据库系统的特点之一是它建立在数据理论的基础之上, 有很多数据理论可以表示关系模型的数据操作, 其中最为著名的是关系代数与关系演算.关系模型的基本运算:(1 )插 入 (2 )删 除 (3 )修 改 (4 )查询( 包括投影, 选择, 笛卡尔积运算)4 . 4 数据库设计与管理数据库设计是数据应用的核心.数据库设计的两种方法:(1 )面向数据: 以信息需求为主, 兼顾处理需求;(2 )面向过程: 以处理需求为主, 兼顾信息需求.数据库的生命周期: 需求分析阶段, 概念设计阶段, 逻辑设计阶段, 物理设计阶段, 编码阶段,测试阶段, 运行阶段, 进一步修改阶段.需求分析常用结构析方法和面向对象的方法.结构化分析( 简称SA)方法用自顶向下, 逐层分解的方式分析系统. 用数据流图表达数据和处理过程的关系. 对数据库设计来讲, 数据字典是进行详细的数据收集和数据分析所获得的主要结果.数据字典是各类数据描述的集合, 包 括 5个部分: 数据项, 数据结构, 数据流( 可以是数据项,也可以是数据结构), 数据存储, 处理过程.数据字典是在需求分析阶段建立、在数据库设计过程中完善的数据库概念设计的目的是分析数据内在语义关系. 设计的方法有两种(1 )集中式模式设计法( 适用于小型或并不复杂的单位或部门) ;(2 )视图集成设计法.设计方法: E -R 模型与视图集成.视图设计一般有三种设计次序咱顶向下, 由底向上, 由内向外.视图集成的几种冲突: 命名冲突, 概念冲突, 域冲突, 约束冲突.数据库的逻辑设计1 从 E - R 图向关系模式转换。
2逻辑模式规范化及调整、实现3关系视图设计关系视图设计: 关系视图的设计又称外模式设计.关系视图的主要作用:(1 )提供数据逻辑独立性;(2 )能适应用户对数据的不同需求;(3 )有一定数据保密功能.数据库的物理设计主要目标是对数据内部物理结构作调整并选择合理的存取路径, 以提高数据库访问速度有效利用存储空间. 一般R D B M S 中留给用户参与物理设计的内容大致有索引设计, 集成簇设计和分区设计.数据库管理的内容:(1 )数据库的建立;(2 )数据库的调整;(3 )数据库的重组;(4 )数据库安全性与完整性控制;⑸数据库的故障恢复;(6 )数据库监控.附件一:国家二级基础知识题库及分析(1)栈和队列的共同特点是DA)都是先进先出B)都是先进后出只允许在端点处插入和删除元素D)没有共同点解析: 栈和队列都是一种特殊的操作受限的线性表, 只允许在端点处进行插入和删除. 二者的区别是: 栈只允许在表的一端进行插入或删除操作, 是一种“ 后进先出” 的线性表; 而队列只允许在表的一端进行插入操作, 在另一端进行删除操作, 是一种“ 先进先出” 的线性表. 所以没有共同点⑵已知二叉树后序遍历序列是dAbec,中序遍历序列是debac,它的前序遍历序列是DCED BAA)acbed B)decab C)deabc D)cedba解析:依据后序遍历序列可确定根结点为c;再依据中序遍历序列可知其左子树由deba构成, 右子树为空; 又由左子树的后序遍历序列可知其根结点为e,由中序遍历序列可知其左子树为d,右子树由ba构成, 如下图所示. 求得该二叉树的前序遍历序列为选项D).(3)链表不具有的特点是BA)不必事先估计存储空间B)可随机访问任一元素C)插入删除不需要移动元素D)所需空间与线性表长度成正比解析:链表采用的是链式存储结构, 它克服了顺序存储结构的缺点: 它的结点空间可以动态申请和释放; 它的数据元素的逻辑次序靠结点的指针来指示, 不需要移动数据元素. 但是链式存储结构也有不足之处: ①每个结点中的指针域需额外占用存储空间; ②链式存储结构是一种非随机存储结构.( 4)结构化程序设计的3种 结 构 是DA)顺序结构, 选择结构, 转 移 结 构B)分支结构, 等价结构, 循环结构C)多分支结构, 赋值结构, 等 价 结 构D)顺序结构, 选择结构, 循环结构解析:顺序结构, 选择结构和循环结构( 或重复结构) 是结构化程序设计的3种基本结构.⑸为了提高测试的效率, 应 该DA)随机选取测试数据B)取一切可能的输入数据作为测试数据C)在完成编码以后制定软件的测试计划D)集中对付那些错误群集的程序解析:测试的目的是发现软件中的错误. 经验表明, 程序中存在错误的概率与该程序中已发现的错误数成正比. 这一现象说明, 为了提高测试效率, 测试人员应该集中对付那些错误群集的程序.( 6)算法的时间复杂度是指CA)执行算法程序所需要的时间B)算法程序的长度0算法执行过程中所需要的基本运算次数D)算法程序中的指令条数解析:算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度. 所谓算法的时间复杂度是指执行算法所需要的计算工作量; 算法的空间复杂度一般是指执行这个算法所需要的内存空间.( 7)软件生命周期中所花费用最多的阶段是DA)详 细 设 计B)软件编码C)软 件 测 试D)软件维护解析:软件生命周期分为软件定义, 软件开发及软件运行维护3个阶段. 本题中, 详细设计,软件编码和软件测试都属于软件开发阶段; 维护是软件生命周期的最后一个阶段, 也是持续时间最长, 花费代价最大的一个阶段, 软件工程学的一个目的就是提高软件的可维护性,降低维护的代价.( 8)数据库管理系统DBMS中用来定义模式, 内模式和外模式的语言为CA) C B) Basic C) DDL D) DML解析: 选项A) ,B)显然不合题意. 数据定义语言( Data Definition Language,简称DDL)负责数据的模式定义与数据的物理存取构建; 数据操纵语言( Data Manipulation Language,简称DML)负责数据的操纵, 包括查询及增, 删, 改等操作.( 9)下列有关数据库的描述, 正确的是CA)数据库是一个DBF文 件B)数据库是一个关系C)数据库是一个结构化的数据集合D)数据库是一组文件解析:数据库( Database,简 称DB)是数据的集合, 它具有统一的结构形式并存放于统一的存储介质内, 是多种应用数据的集成, 并可被各个应用程序所共享. 数据库中的数据具有“ 集成“ , “ 共享” 之特点.( 10)下列有关数据库的描述, 正确的是DA)数据处理是将信息转化为数据的过程B)数据的物理独立性是指当数据的逻辑结构改变时, 数据的存储结构不变C)关系中的每一列称为元组, 一个元组就是一个字段D)如果一个关系中的属性或属性组并非该关系的关键字, 但它是另一个关系的关键字, 则称其为本关系的外关键字解析:数据处理是指将数据转换成信息的过程, 故选项A)叙述错误; 数据的物理独立性是指数据的物理结构的改变, 不会影响数据库的逻辑结构, 故选项B)叙述错误; 关系中的行称为元组, 对应存储文件中的记录, 关系中的列称为属性, 对应存储文件中的字段, 故选项C)叙述错误.填空题⑴算法的基本特征是可行性, 确定性,【1】 和拥有足够的情报. 答案: 有穷性解析:算法是指解题方案的准确而完整的描述. 它有4个基本特征, 分别是可行性, 确定性,有穷性和拥有足够的情报.⑵ 在 长 度 为 n 的有序线性表中进行二分查找. 最坏的情况下, 需 要 的 比 较 次 数 为 【 2 】 .答案: log2 n解析:对于长度为n 的有序线性表, 在最坏情况下, 二分查找只需要比较login次, 而顺序查找需要比较n 次.(3 )在面向对象的程序设计中, 类描述的是具有相似性质的一组【 3 】 . 答案: 对象解析:将属性, 操作相似的对象归为类, 也就是说, 类是具有共同属性, 共同方法的对象的集合.(4 )通常, 将软件产品从提此实现, 使用维护到停止使用退役的过程称为【 4 】 . 答案: 软件生命周期解析:软件产品从考虑其概念开始, 到该软件产品不能使用为止的整个时期都属于软件生命周期. 一般包括可行性研究与需求分析, 设计, 实现, 测试, 交付使用以及维护等活动.(5 )数据库管理系统常见的数据模型有层次模型, 网 状 模 型 和 【 5 】 3种. 答案: 关系模型解析:数据库管理系统是位于用户与操作系统之间的一层系统管理软件, 是一种系统软件,是用户与数据库之间的一个标准接口. 其总是基于某种数据模型, 可以分为层次模型, 网状模型和关系模型.第二套:(1 )已知一棵二叉树前序遍历和中序遍历分别为A B D E G C F H 和 DB G E A C H F ,则该二叉树的后序遍历为A ) G E D H F B C A B ) D G E B H F C A C ) A B C D E F G H D ) A C B F E D H G解析:利用前序和中序遍历的方法可以确定二叉树的结构, 具体步骤如下: ①前序遍历的第一个结点A 为树的根结点; ②中序遍历中A 的左边的结点为A 的左子树, A 右边的结点为 A 的右子树; ③ 再分别对A 的左右子树进行上述两步处理, 直到每个结点都找到正确的位置.⑵树是结点的集合, 它的根结点数目是A) 有且只有1 B) 1 或多于1 0 0 或 1 D) 至少2解析: 树是一个或多个结点组成的有限集合, 其中一个特定的结点称为根, 其余结点分为若干个不相交的集合. 每个集合同时又是一棵树. 树有且只有1 个根结点.( 3) 如果进栈序列为el,e2,e3,e4,则可能的出栈序列是A) e3,el,e4,e2 B) e2,e4,e3,el C) e3,e4,el,e2 D) 任意顺序解析:由栈” 后进先出” 的特点可知: A) 中 e l 不可能比e2先出, 。
中 e3不可能比e4先出,且e l不可能比e2先出, D) 中栈是先进后出的, 所以不可能是任意顺序.B) 中出栈过程如图所示:( 4) 在设计程序时, 应采纳的原则之一是A) 不限制goto语句的使用B) 减少或取消注解行C) 程序越短越好D) 程序结构应有助于读者理解解析: 滥用got语句将使程序流程无规律, 可读性差, 因此A) 不选; 注解行有利于对程序的理解, 不应减少或取消, B) 也不选; 程序的长短要依照实际情况而论, 而不是越短越好, 0 也不选.( 5) 程序设计语言的基本成分是数据成分, 运算成分, 控制成分和A) 对象成分B) 变量成分C) 语句成分D) 传输成分解析: 程序设计语言是用于书写计算机程序的语言, 其基本成分有以下4 种, 数据成分: 用来描述程序中的数据.运算成分: 描述程序中所需的运算.控制成分: 用来构造程序的逻辑控制结构.传输成分: 定义数据传输成分, 如输入输出语言.( 6) 下列叙述中, 不属于软件需求规格说明书的作用的是A) 便于用户, 开发人员进行理解和交流B) 反映出用户问题的结构, 可以作为软件开发工作的基础和依据C) 作为确认测试和验收的依据D)便于开发人员进行需求分析解析:软件需求规格说明书( SRS,Software Requirement Speci行cation)是需求分析阶段的最后成果, 是软件开发中的重要文档之一.它有以下几个方面的作用: ①便于用户, 开发人员进行理解和交流; ② 反映出用户问题的结构, 可以作为软件开发工作的基础和依据; ③作为确认测试和验收的依据.( 7)下列不属于软件工程的3个要素的是A)工 具B)过 程 。
方 法D)环境解析:软件工程包括3个要素, 即方法, 工具和过程.方法是完成软件工程项目的技术手段;工具支持软件的开发, 管理, 文档生成; 过程支持软件开发的各个环节的控制, 管理.( 8)单个用户使用的数据视图的描述称为A)外 模 式B)概 念 模 式C)内 模 式D)存储模式解析:选 项A)正确, 外模式是用户的数据视图, 也就是用户所见到的数据模式; 选项B)不正确, 全局数据视图的描述称为概念模式, 即数据库中全部数据的整体逻辑结构的描述; 选项C)不正确, 物理存储数据视图的描述称为内模式, 即数据库在物理存储方面的描述; 选项D)不正确, 存储模式即为内模式.( 9)将E-R图转换到关系模式时, 实体与联系都可以表示成A)属 性B)关 系C)键D)域解析:数据库逻辑设计的主要工作是将E-R图转换成指定RDBMS中的关系模式.首先,从E-R图到关系模式的转换是比较直接的, 实体与联系都可以表示成关系,E-R图中属性也可以转换成关系的属性.实体集也可以转换成关系.( 10) SQL语言又称为A)结构化定义语言B)结构化控制语言C)结构化查询语言D)结构化操纵语言解析:结构化查询语言( Structured Query Language,简 称SQL)是集数据定义, 数据操纵和数据控制功能于一体的数据库语言.填空题(1)数据结构分为逻辑结构与存储结构, 线 性 链 表 属 于 【1】 .解析:数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构; 数据的存储结构是指数据的逻辑结构在计算机存储空间中的存放形式.在数据的存储结构中, 不仅要存放各数据元素的信息, 还需要存放各数据元素之间的前后件关系的信息.(2)在面向对象方法中, 类之间共享属性和操作的机制称为【2】 .解析:类是面向对象语言中必备的程序语言结构, 用来实现抽象数据类型.类与类之间的继承关系实现了类之间的共享属性和操作, 一个类可以在另一个已定义的类的基础上定义,这样使该类型继承了其超类的属性和方法, 当然, 也可以定义自己的属性和方法.⑶耦合和内聚是评价模块独立性的两个主要标准, 其 中 【3】 反映了模块内各成分之间的联系.解析:内聚性是一个模块内部各个元素间彼此结合的紧密程度的度量, 内聚是从功能角度来度量模块内的联系; 耦合性是模块间互相连接的紧密程度的度量.4)一个项目具有一个项目主管, 一个项目主管可管理多个项目, 则实体” 项目主管” 与实体”项目” 的 联 系 属 于 【4】 的联系.解析:两个实体集间的联系实际上是实体集间的函数关系, 这种函数关系可以有3种, 即一对一 (1:1)的联系, 一对多(1:N)或多对一 (N:l)的联系和多对多(N:N)的联系.(5)数据库设计分为以下6个设计阶段: 需求分析阶段,【5】, 逻辑设计阶段, 物理设计阶段,实施阶段, 运行和维护阶段.解析:数据库设计分为以下6个设计阶段: 需求分析阶段, 概念设计阶段, 逻辑设计阶段, 物理设计阶段, 实施阶段及数据库运行和维护阶段.答案:BABDD DDABC存 储 结 构 继 承 内 聚 一 对 多 或1:N概念设计阶段第三套:( 1 ) 算法的空间复杂度是指A ) 算法程序的长度B ) 算法程序中的指令条数C ) 算法程序所占的存储空间D ) 执行过程中所需要的存储空间解析:算法的复杂度主要包括算法的时间复杂度和算法的空间复杂度. 所谓算法的时间复杂度是指执行算法所需要的计算工作量; 算法的空间复杂度一般是指执行这个算法所需要的内存空间.( 2 ) 用链表表示线性表的优点是A ) 便于随机存取B ) 花费的存储空间较顺序存储少C ) 便于插入和删除操作D ) 数据元素的物理顺序与逻辑顺序相同解析:链式存储结构克服了顺序存储结构的缺点: 它的结点空间可以动态申请和释放; 它的数据元素的逻辑次序靠结点的指针来指示, 不需要移动数据元素. 故链式存储结构下的线性表便于插入和删除操作.( 3 ) 数据结构中, 与所使用的计算机无关的是数据的A ) 存 储 结 构 B) 物理结构C ) 逻 辑 结 构 D ) 物理和存储结构解析:数据结构概念一般包括3个方面的内容, 数据的逻辑结构, 存储结构及数据上的运算集合. 数据的逻辑结构只抽象的反映数据元素之间的逻辑关系, 而不管它在计算机中的存储表示形式.( 4 ) 结构化程序设计主要强调的是A ) 程序的规模B ) 程序的效率C ) 程序设计语言的先进性D ) 程序易读性解析:结构化程序设计方法的主要原则可以概括为自顶向下, 逐步求精, 模块化及限制使用goto语句, 总的来说可使程序结构良好, 易读, 易理解, 易维护.( 5)软件设计包括软件的结构, 数据接口和过程设计, 其中软件的过程设计是指A)模块间的关系B)系统结构部件转换成软件的过程描述C)软件层次结构D)软件开发过程解析:软件设计包括软件结构设计, 数据设计, 接口设计和过程设计. 其中结构设计是定义软件系统各主要部件之间的关系; 数据设计是将分析时创建的模型转化为数据结构的定义;接口设计是描述软件内部, 软件和操作系统之间及软件与人之间如何通信; 过程设计则是把系统结构部件转换成软件的过程性描述.( 6)检查软件产品是否符合需求定义的过程称为A)确 认 测 试B)集成测试C)验 证 测 试D)验收测试解析:确认测试的任务是验证软件的功能和性能, 以及其他特性是否满足需求规格说明定的各种需求; 集成测试的主要目的是发现与接口有关的错误.⑺数据流图用于抽象描述一个软件的逻辑模型, 数据流图由一些特定的图符构成. 下列图符名标识的图符不属于数据流图合法图符的是A)控 制 流B)加 工C)数 据 存 储D)源和潭解析:数据流图包括4个方面, 即加工( 转换) (输入数据经加工变换产生输出) , 数据流( 沿箭头方向传送数据的通道, 一般在旁边标注数据流名) , 存储文件( 数据源) ( 表示处理过程中存放各种数据的文件) , 源和潭( 表示系统和环境的接口, 属系统之外的实体) . 不包括选项中的控制流.( 8)应用数据库的主要目的是A)解决数据保密问题B)解决数据完整性问题C)解决数据共享问题D)解决数据量大的问题解析:数据库中的数据具有“ 集成“ 与“ 共享” 的特点, 亦即是数据库集中了各种应用的数据,进行统一构造与存储, 而使它们可以被不同应用程序所使用, 故选项C)正确.( 9)在数据库设计中, 将E-R图转换成关系数据模型的过程属于A)需求分析阶段B)逻辑设计阶段C)概念设计阶段D)物理设计阶段解析:E-R模型即实体- 联系模型, 是将现实世界的要求转化成实体, 联系, 属性等几个基本概念, 以及它们之间的两种联接关系. 数据库逻辑设计阶段包括以下几个过程: 从E-R图向关系模式转换, 逻辑模式规范化及调整, 实现规范化和RDBMS,以及关系视图设计.(10)在数据管理技术的发展过程中, 经历了人工管理阶段, 文件系统阶段和数据库系统阶段.其中数据独立性最高的阶段是A)数据库系统B)文件系统C)人 工 管 理D)数据项管理解析:人工管理阶段是在2 0世 纪5 0年代中期以前出现的, 数据不独立, 完全依赖于程序;文件系统是数据库系统发展的初级阶段, 数据独立性差; 数据库系统具有高度的物理独立性和一定的逻辑独立性.填空题:(1)数据的逻辑结构有线性结构和【1】 两大类.解析:数据的逻辑结构有线性结构和非线性结构两大类.(2)顺序存储方法是把逻辑上相邻的结点存储在物理位置【2】 的存储单元中.解析:常用的存储表示方法有4种, 顺序存储, 链式存储, 索引存储, 散列存储. 其中, 顺序存储方法是把逻辑上相邻的结点存储在物理位置也相邻的存储单元中.⑶一个类可以从直接或间接的祖先中继承所有属性和方法. 采用这个方法提高了软件的[ 3 ]解析:本题考查了继承的优点: 相似的对象可以共享程序代码和数据结构, 从而大大减少了程序中的冗余, 提高软件的可重用性.(4)软件工程研究的内容主要包括: 【4】 技术和软件工程管理.解析:基于软件工程的目标, 软件工程的理论和技术性研究的内容主要包括: 软件开发技术和软件工程管理. 软件开发技术包括: 软件开发方法学, 开发过程, 开发工具和软件工程环境, 其主体内容是软件开发方法学. 软件工程管理包括: 软件管理学, 软件工程经济学, 以及软件心理学等内容.⑸ 关 系 操 作 的 特 点 是 【5】 操作.解析:在关系操作中, 所有操作对象与操作结果都是关系. 而关系定义为元数相同的元组的集合. 因此, 关系操作的特点是集合操作.答案:DCCDB AACBA非相邻结构相邻可 重 用 性 软 件 开 发 集 合第四套:(1)在深度为5的满二叉树中, 叶子结点的个数为A)32 B)31 C)16 D)15解析:所谓满二叉树是指这样的一种二叉树: 除最后一层外, 每一层上的所有结点都有两个叶子结点. 这就是说, 在满二叉树中, 层上的结点数都达到最大值, 即在满二叉树的第k层上 有2k-l个结点, 且深度为m的满二叉树有2m -l个结点.(2)若某二叉树的前序遍历访问顺序是abdgcefh,中序遍历访问顺序是dgbAECHF, 则其后序遍历的结点访问顺序是AB CD E FA)bdgcefha B)gdbecfha C)bdgaechf D)gdbehfca解析:前序遍历的第一个结点a为树的根结点; 中序遍历中a的左边的结点为a的左子树,a右边的结点为a的右子树; 再分别对a的左右子树进行上述两步处理, 直到每个结点都找到正确的位置.(3)一些重要的程序语言( 如C语言和Pascal语言) 允许过程的递归调用. 而实现递归调用中的存储分配通常用A ) 栈 B ) 堆 。
数 组 D ) 链表解 析 :一些较流行的程序语言允许过程的递归调用. 递归调用就是过程调用本身. 递归实现的是: 当过程每一次执行后, 都能返回到最近一次调用它的过程中. 这样各调用点之间形成一种后进先出关系, 而栈结构正适合来存储这些调用点.( 4 ) 软件工程的理论和技术性研究的内容主要包括软件开发技术和A ) 消 除 软 件 危 机 B ) 软 件 工 程 管 理 C ) 程 序 设 计 自 动 化 D ) 实现软件可重用解 析 :软件工程的目标是, 在给定的成本, 进度的前提下, 开发出具有有效性, 可靠性, 可理解性, 可维护性, 可重用性, 可适应性, 可移植性, 可追踪性和可互操作性且满足用户需求的产品.基于这一目标, 软件工程的理论和技术性研究的内容主要包括: 软件开发技术和软件工程管理.( 5 ) 开发软件时对提高开发人员工作效率至关重要的是A ) 操 作 系 统 的 资 源 管 理 功 能 B ) 先进的软件开发工具和环境C ) 程 序 人 员 的 数 量 D ) 计算机的并行处理能力解 析 :软件工程鼓励研制和采用各种先进的软件开发方法, 工具和环境. 工具和环境的使用又进一步提高了软件的开发效率, 维护效率和软件质量.( 6 ) 在软件测试设计中, 软件测试的主要目的是A ) 实 验 性 运 行 软 件 B ) 证明软件正确C ) 找 出 软 件 中 全 部 错 误 D ) 发现软件错误而执行程序解 析 :使用人工或自动手段来运行或测定某个系统的过程, 其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差别. 软件测试是为了发现错误而执行程序的过程. 测试要以查找错误为中心, 而不是为了演示软件的正确功能.⑺数据处理的最小单位是A ) 数 据 B ) 数 据 元 素 0 数 据 项 D ) 数据结构解 析 :数据处理的最小单位是数据项; 由若干数据项组成数据元素; 而数据是指能够被计算机识别, 存储和加工处理的信息载体; 数据结构是指数据之间的相互关系和数据运算. 故正 确 答 案 为 选 项C).(8)索引属于A)模 式B)内 模 式C)外 模 式D)概念模式解 析 :内模式(Internal Schema)又称物理模式(Physical Schema),它给出了数据库物理存储结构与物理存取方法, 如数据存储的文件结构, 索引, 集 簇 及hash等存取方式与存取路径.(9)下述关于数据库系统的叙述中正确的是A)数 据 库 系 统 减 少 了 数 据 冗 余B)数据库系统避免了一切冗余C)数据库系统中数据的一致性是指数据类型一致D)数据库系统比文件系统能管理更多的数据解 析 :数据库系统的数据具有高共享性和低冗余性, 但不能完全避免数据冗余; 数据的一致性是指在系统中同一数据的不同出现应保持相同的值.(10)数据库系统的核心是A)数 据 库B)数 据 库 管 理 系 统C)模 拟 模 型D)软件工程解 析 :数据库管理系统(Database Management System,简 称DBMS)是数据库的机构, 它是一种系统软件, 负责数据库中的数据组织, 数据操纵, 数据维护, 控制及保护和数据服务等, 数据库管理系统是数据库系统的核心.填空题(1)在树形结构中, 树 根 结 点 没 有 【1】 .解 析 :在树形结构中, 每一个结点只有一个前件, 称为父结点, 没有前件的结点只有一个, 称为树的根结点; 每一个结点可以有多个后件, 它们都称为该结点的子结点. 没有后件的结点称为叶子结点.(2)Jackson结构化程序设计方法是英国的M.Jackson提出的, 它 是 一 种 面 向 【2】 的设计方法.解析:结构化分析方法主要包括: 面向数据流的结构化分析方法(SA-Structured analysis),面向数据结构的Jackson方法(JSD-Jackson system development method)和面向数据结构的结构化数据系统开发方法(DSSD-Data structured system development method).⑶面向对象的模型中, 最基本的概念是对象和【3】 .解析:面向对象模型中, 最基本的概念是对象和类. 对象是现实世界中实体的模型化; 将属性集和方法集相同的所有对象组合在一起, 可以构成一个类.(4)软件设计模块化的目的是【4】 .解析:模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程,由此分解来降低复杂性.(5)数据模型按不同应用层次分成3种类型, 它们是概念数据模型, 【5】 和物理数据模型.解析:数据是现实世界符号的抽象, 而数据模型(data model)则是数据特征的抽象, 它从抽象层次上描述了系统的静态特征, 动态行为和约束行为, 为数据库系统的信息表示与操作提供一个抽象的框架.数据模型按不同的应用层次分成3种类型, 它们是概念数据模型(conceptual data model),逻辑数据模型(logic data model),物理数据模型(physical data mod叫.答案:BDABB DCBBB前件数据结构类降低复杂性逻辑数据模型第五套:(1)数据结构作为计算机的一门学科, 主要研究数据的逻辑结构, 对各种数据结构进行的运算, 以及A)数据的存储结构B)计算方法C)数 据 映 象D)逻辑存储解析:数据结构是研究数据元素及其之间的相互关系和数据运算的一门学科, 它 包 含3个方面的内容, 即数据的逻辑结构, 存储结构和数据的运算.(2)串的长度是A)串中不同字符的个数B)串中不同字母的个数0串中所含字符的个数且字符个数大于零D)串中所含字符的个数解析:串的长度指的是串中的字符的个数, 且其字符个数可以为零.( 3)在计算机中, 算法是指A)加 工 方 法B)解题方案的准确而完整的描述C)排 序 方 法D)查询方法解析:计算机算法是指解题方案的准确而完整的描述, 它有以下几个基本特征: 可行性, 确定性, 有穷性和拥有足够的情报.( 4)以下不属于对象的基本特点的是A)分类性 B)多 态 性C)继承性 D)封装性解析:对象有如下一些基本特点, 即标识惟一性, 分类性, 多态性, 封装性和模块独立性.( 5)开发软件所需高成本和产品的低质量之间有着尖锐的矛盾, 这种现象称作A)软 件 投 机B)软 件 危 机C)软 件 工 程D)软件产生解析:软件工程概念的出现源自软件危机. 所谓软件危机是泛指在计算机软件的开发和维护过程中所遇到的一系列严重问题. 总之, 可以将软件危机归结为成本, 质量, 生产率等问题.( 6)下面不属于软件设计原则的是A)抽 象B)模 块 化C)自 底 向 上D)信息隐蔽解析:软件设计遵循软件工程的基本目标和原则, 建立了适用于在软件设计中应该遵循的基本原理和与软件设计有关的概念, 它们是抽象, 模块化, 信息隐蔽和数据独立性. 自底向上是集成测试中增量测试的一种.( 7)开发大型软件时, 产生困难的根本原因是A)大系统的复杂性B)人员知识不足C)客观世界千变万化D)时间紧, 任务重解析:软件的显著特点是规模庞大, 复杂度超线性增长, 在开发大型软件时, 要保证高质量,极端复杂困难, 不仅涉及技术问题, 更重要的是必须要有严格而科学的管理.( 8)下 列SQL语句中, 用于修改表结构的是A)ALTER B)CREATE C)UPDATE D)INSERT解析: SQL语句中凡创建都用CREATE,删除都用DROP,改变用ALTER,再跟类型和名字,附加子句.(9)数据库, 数据库系统和数据库管理系统之间的关系是A)数据库包括数据库系统和数据库管理系统B)数据库系统包括数据库和数据库管理系统C)数据库管理系统包括数据库和数据库系统D)3者没有明显的包含关系解析:数据库系统(Database System,简 称 DBS)包括数据库(Database,简 称 DB)和数据库管理系统(Database Management System,简称 DBMS).(10)关系模型允许定义3 类数据约束, 下列不属于数据约束的是A)实体完整性约束B)参照完整性约束C)域完整性约束D)用户自定义的完整性约束解析:关系模型允许定义3 类数据约束, 它们是实体完整性约束, 参照完整性约束及用户自定义的完整性约束. 其中前两种完整性约束由关系数据库系统支持, 对于用户自定义的完整性约束, 则由关系数据库系统提供完整性约束语言, 用户利用该语言给出约束条件, 运行时由系统自动检查.填空题(1)长度为n 的顺序存储线性表中, 当在任何位置上插入一个元素概率都相等时, 插入一个元素所需移动元素的平均个数为【 1】 .解析:性表的任何位置插入一个元素的概率相等, 即概率为p=l/(n+l),则插入一个元素时所需移动元素的平均次数为E=(l/(n+l))*0((n+l)*n/2)=n/2.(2)用树型结构表示实体类型及实体间联系的数据模型称为【 2】 .解析: 用树型结构表示实体类型及实体间联系的数据模型称为层次模型, 用有向图结构表示实体类型及实体间联系的数据模型称为网状模型, 用二维表格结构表示实体及其联系的数据模型称为关系模型.(3)类是一个支持集成的抽象数据类型, 而 对 象 是 类 的 【3】 .解析:将属性, 操作相似的对象归为类, 也就是说, 类是具有共同属性, 共同方法的对象的集合. 所以, 类是对象的抽象, 对象则是其对应类的一个实例.(4)数 据 流 图 的 类 型 有 【4】 和事务型.解析:典型的数据流类型有两种: 变换型和事务型. 变换型是指信息沿输入通路进入系统,同时由外部形式变换成内部形式, 进入系统的信息通过变换中心, 经加工处理以后再沿输出通路变换成外部形式离开软件系统; 在很多软件应用中, 存在某种作业数据流, 它可以引发一个或多个处理, 这些处理能够完成该作业要求的功能, 这种数据流就叫做事务.⑸当数据的物理结构( 存储结构, 存取方式等) 改变时, 不影响数据库的逻辑结构, 从而不致引起应用程序的变化, 这 是 指 数 据 的 【5】 .解析:数据独立性是数据与程序间的互不依赖性, 即数据库中数据独立于应用程序而不依赖于应用程序. 也就是说, 数据的逻辑结构, 存储结构与存取方式的改变不会影响应用程序.数据独立性一般分为物理独立性与逻辑独立性两级.答案;ADBCB CAABCn /2层次模型实例变换型物理独立性第六套:(1)假设线性表的长度为11,则在最坏情况下, 冒泡排序需要的比较次数为A)log2n B)n2 C)O(nl.5) D)n(n-l)/2解析:假设线性表的长度为n,则在最坏情况下, 冒泡排序要经过n/2遍的从前往后的扫描和n/2遍的从后往前的扫描, 需要的比较次数为n(n-l)/2.(2)算法分析的目的是A)找出数据结构的合理性B)找出算法中输入和输出之间的关系C)分析算法的易懂性和可靠性D)分析算法的效率以求改进解析:算法分析是指对一个算法的运行时间和占用空间做定量的分析, 一般计算出相应的数量级, 常用时间复杂度和空间复杂度表示. 分析算法的目的就是要降低算法的时间复杂度和空间复杂度, 提高算法的执行效率.( 3)线性表L=( al,a2,a3,...ai,...an) ,下列说法正确的是A)每个元素都有一个直接前件和直接后件B)线性表中至少要有一个元素C)表中诸元素的排列顺序必须是由小到大或由大到小D)除第一个元素和最后一个元素外, 其余每个元素都有一个且只有一个直接前件和直接后件解析:线性表可以为空表; 第一个元素没有直接前件, 最后一个元素没有直接后件; 线性表的定义中, 元素的排列并没有规定大小顺序.( 4)在单链表中, 增加头结点的目的是A)方便运算的实现B)使单链表至少有一个结点C)标识表结点中首结点的位置D)说明单链表是线性表的链式存储实现解析:头结点不仅标识了表中首结点的位置, 而且根据单链表( 包含头结点) 的结构, 只要掌握了表头, 就能够访问整个链表, 因此增加头结点目的是为了便于运算的实现.⑸软件工程的出现是由于A)程序设计方法学的影响B)软件产业化的需要C)软件危机的出现D)计算机的发展解析:软件工程概念的出现源自于软件危机. 为了消除软件危机, 通过认真研究解决软件危机的方法, 认识到软件工程是使计算机软件走向工程科学的途径, 逐步形成了软件工程的概念.( 6)软件开发离不开系统环境资源的支持, 其中必要的测试数据属于DA)硬 件 资 源B)通 信 资 源C)支 持 软 件D)辅助资源( 7)在数据流图( DFD)中, 带有名字的箭头表示A)模块之间的调用关系B)程序的组成成分C)控制程序的执行顺序D)数据的流向解析:数据流相当于一条管道, 并有一级数据( 信息) 流经它. 在数据流图中, 用标有名字的箭头表示数据流. 数据流可以从加工流向加工, 也可以从加工流向文件或从文件流向加工, 并且可以从外部实体流向系统或从系统流向外部实体.( 8)分布式数据库系统不具有的特点是A)数据分布性和逻辑整体性B)位置透明性和复制透明性C)分 布 性D)数据冗余解析:分布式数据库系统具有数据分布性, 逻辑整体性, 位置透明性和复制透明性的特点,其数据也是分布的; 但分布式数据库系统中数据经常重复存储, 数据也并非必须重复存储,主要视数据的分配模式而定. 若分配模式是一对多, 即一个片段分配到多个场地存放, 则是冗余的数据库, 否则是非冗余的数据库.( 9)关系表中的每一横行称为一个A)元 组B)字 段C)属 性D)码解析:关系表中, 每一行称为一个元组, 对应表中的一条记录; 每一列称为表中的一个属性,对应表中的一个字段; 在二维表中凡能惟一标识元组的最小属性集称为该表的键或码.( 10)下列数据模型中, 具有坚实理论基础的是A)层 次 模 型B)网 状 模 型C)关 系 模 型D)以上3个都是解析:关系模型较之格式化模型( 网状模型和层次模型) 有以下方面的优点, 即数据结构比较简单, 具有很高的数据独立性, 可以直接处理多对多的联系, 以及有坚实的理论基础.填空题( 1)在算法正确的前提下, 评价一个算法的两个标准是11】 .( 2)软件危机出现于6 0年代末, 为了解决软件危机, 人 们 提 出 了13】 的原理来设计软件,这就是软件工程诞生的基础.( 3) [ 4 ]是数据库设计的核心.解析:数据模型是对客观事物及联系的数据描述, 它反映了实体内部及实体与实体之间的联系. 因此, 数据模型是数据库设计的核心.(4)在关系模型中, 把数据看成一个二维表, 每一个二维表称为一个【 5】 .解析:在关系模型中, 把数据看成一个二维表, 每一个二维表称为一个关系. 表中的每一列称为一个属性, 相当于记录中的一个数据项, 对属性的命名称为属性名; 表中的一行称为一个元组, 相当于记录值.答案: DDDAC DDDAC时间复杂度和空间复杂度软件工程学数据模型关系第七套(1)下列叙述中正确的是A)线性表是线性结构 B)栈与队列是非线性结构C)线性链表是非线性结构D)二叉树是线性结构解析:线性表是一种线性结构, 数据元素性表中的位置只取决于它们自己的序号, 即数据元素之间的相对位置是线性的;栈, 队列, 线性链表实际上也是线性表, 故也是线性结构;树是一种简单的非线性结构.(2)非空的循环单链表head的尾结点( 由p 所指向), 满足A)p->next==NULL B)p==NULLC)p->next=head D)p=head解 析 :循 环 链 表 就 是 将 链 表 的 最 后 一 个 结 点 指 向 链 表 头 结 点 ( 或 第 一 个 结 点 ), 即p->next=head.(3)已知数据表A 中每个元素距其最终位置不远, 为节省时间, 应采用的算法是A)堆 排 序 B)直接插入排序C)快 速 排 序 D)直接选择排序解析:当数据表A 中每个元素距其最终位置不远, 说明数据表A 按关键字值基本有序, 在待排序序列基本有序的情况下, 采用插入排序所用时间最少, 故答案为选项B).(4)对建立良好的程序设计风格, 下面描述正确的是A)程序应简单, 清晰, 可读性好B)符号名的命名只要符合语法C)充分考虑程序的执行效率D)程序的注释可有可无解析:程序设计应该简单易懂, 语句构造应该简单直接, 不应该为提高效率而把语句复杂化.(5)下列不属于结构化分析的常用工具的是A)数据流图B)数据字典C)判定树D)PAD图解析:结构化分析的常用工具有数据流图, 数据字典, 判定树和判定表. 而PAD图是常见的过程设计工具中的图形设计.(6)在软件生产过程中, 需求信息的给出是A)程序员B)项目管理者C)软件分析设计人员D)软件用户解析:软件需求是指用户对目标软件系统在功能, 行为, 性能, 设计约束等方面的期望.(7)下列工具中为需求分析常用工具的是A)PAD B)PFD C)N-S D)DFD解析:需求分析中的常用工具有PAD,PFD及 N-S等, 而 DFD( 数据流图)为结构化分析工具 .(8)NULL 是指A)0 B)空格 C)未知的值或无任何值 D)空字符串解析:此题属于记忆性的题目, NULL是指未知的值或无任何值.(9)数据库的故障恢复一般是由A)数据流图完成的B)数据字典完成的C)DBA完成的D)PAD图完成的解析:一旦数据库中的数据遭受破坏, 需要及时进行恢复, RDBMS 一般都提供此种功能, 并由DBA负责执行故障恢复功能.(10)下列说法中, 不属于数据模型所描述的内容的是A)数 据 结 构B)数 据 操 作C)数 据 查 询D)数据约束解析:数据模型所描述的内容有3个部分, 它们是数据结构, 数据操作和数据约束. 其中, 数据模型中的数据结构主要描述数据的类型, 内容, 性质, 以及数据库的联系等;数据操作主要是描述在相应数据结构上的操作类型与操作方式.填空题(1)冒泡排序算法在最好的情况下的元素交换次数为【1】 .解析:根据冒泡排序算法思想可知, 若待排序的初始序列为“ 正序” 序列, 则只需进行一趟排序, 在排序过程中进行n -1次关键字间的比较, 且不移动和交换记录, 这种情况是冒泡排序的最好情况, 故冒泡排序算法在最好的情况下的元素交换次数为0.⑵在最坏情况下, 堆排序需要比较的次数为【2】 .(3)若 串s="MathTypes”,则 其 子 串 的 数 目 是13】 .解析:串s中共有9个字符, 由于串中字符各不相同, 则其子串中有0个字符的1个( 空串),1个字符的9个,2个字符的8个,3个字符的7个,4个字符的6个,5个字符的5个,6个字符的4个,7个字符的3个,8个字符的2个,9个字符的1个, 共 有1+2+3+4+5+6+7+8+9+1=46.(4)软件开发环境是全面支持软件开发全过程的14】 集合.⑸关系数据库的关系演算语言是以【5】 为基础的DML语言.解析:关系数据库中的关系演算包括元组关系演算和域关系演算. 二者都是由原子公式组成的公式. 而这些关系演算都是以数理逻辑中的谓词演算为基础的.答案:ACBAA DDCCC0 O(nlog2n) 4 6软件工具 谓词演算第八套:(1)循环链表的主要优点是A)不再需要头指针了B)从表中任一结点出发都能访问到整个链表C)在进行插入, 删除运算时, 能更好的保证链表不断开D)已知某个结点的位置后, 能够容易的找到它的直接前件解析:循环链表就是将单向链表中最后一个结点的指针指向头结点, 使整个链表构成一个环形, 这样的结构使得从表中的任一结点出发都能访问到整个链表.(2)栈底至栈顶依次存放元素A,B,C,D,在第五个元素E入栈前, 栈中元素可以出栈, 则出栈序列可能是A)ABCED B)DCBEA C)DBCEA D)CDABE解析:栈操作原则上“ 后进先出“ , 栈底至栈顶依次存放元素A,B,C,D,则表明这4个元素中D是最后进栈,B,C处于中间,A最早进栈. 所以出栈时一定是先出D,再 出C,最后出A.(3)n个顶点的强连通图的边数至少有A)n-1 B)n(n-l) C)n D)n+1解析:在有向图中, 若任意两个顶点都连通, 则称该图是强连通图, 这样的有向图的形状是环状, 因而至少应有n条边.(4)在结构化程序设计思想提出之前, 在程序设计中曾强调程序的效率, 现在, 与程序的效率相比, 人们更重视程序的A)安全性 B)一 致 性C)可理解性 D)合理性(5)模块独立性是软件模块化所提出的要求, 衡量模块独立性的度量标准则是模块的A)抽 象 和 信 息 隐 蔽B)局部化和封装化C)内聚性和耦合性D)激活机制和控制方法解析:模块的独立程序是评价设计好坏的重要度量标准. 衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准.(6)软件开发的结构化生命周期方法将软件生命周期划分成A)定义, 开发, 运 行 维 护B)设计阶段, 编程阶段, 测试阶段C)总体设计, 详细设计, 编 程 调 试D)需求分析, 功能定义, 系统设计解析:通常, 将软件产品从提出, 实现, 使用维护到停止使用退役的过程称为软件生命周期.它可以分为软件定义, 软件开发及软件运行维护3个阶段.⑺在软件工程中, 白箱测试法可用于测试程序的内部结构. 此方法将程序看做是A)路径的集合B)循环的集合C)目标的集合D)地址的集合解析:软件的白盒测试方法是把测试对象看做一个打开的盒子, 它允许测试人员利用程序内部的逻辑结构及有关信息, 设计或选择测试用例, 对程序所有逻辑路径进行测试.( 8)在数据管理技术发展过程中, 文件系统与数据库系统的主要区别是数据库系统具有A)特定的数据模型B)数据无冗余。
数据可共享D)专门的数据管理软件解析:在文件系统中, 相互独立的记录其内部结构的最简单形式是等长同格式记录的集合,易造成存储空间大量浪费, 不方便使用. 而在数据库系统中, 数据是结构化的, 这种结构化要求在描述数据时不仅描述数据本身, 还要描述数据间的关系, 这正是通过采用特定的数据模型来实现的.( 9)数据库设计包括两个方面的设计内容, 它们是A)概念设计和逻辑设计B)模式设计和内模式设计C)内模式设计和物理设计D)结构特性设计和行为特性设计( 10)实体是信息世界中广泛使用的一个术语, 它用于表示A)有生命的事物B)无生命的事物C)实际存在的事物D)一切事物解析:实体是客观存在且可以相互区别的事物. 实体可以是具体的对象, 如一个学生, 也可以是一个抽象的事件, 如一次出门旅游等. 因此, 实体既可以是有生命的事物, 也可以是无生命的事物, 但它必须是客观存在的, 而且可以相互区别.填空题( 1)常用的黑箱测试有等价分类法, 【1】 , 因果图法和错误推测法4种.解析:黑箱测试方法完全不考虑程序的内部结构和内部特征, 而只是根据程序功能导出测试用例. 常用的黑箱测试有等价分类法, 边值分析法, 因果图法和错误推测法4种.( 2)测试的目的是暴露错误, 评价程序的可靠性; 而【2】 的目的是发现错误的位置并改正错误.解析:软件测试的目标是在精心控制的环境下执行程序, 以发现程序中的错误, 给出程序可靠性的鉴定; 调试也称排错, 它是一个与测试有联系又有区别的概念. 具体来说, 测试的目的是暴露错误, 评价程序的可靠性, 而调试的目的是发现错误的位置, 并改正错误.(3)软件维护活动包括以下几类: 改正性维护, 适应性维护, 【3】 维护和预防性维护.解析:软件维护活动包括以下几类: 改正性维护, 适应性维护, 完善性维护和预防性维护. 改正性维护是指在软件交付使用后, 为了识别和纠正软件错误, 改正软件性能上的缺陷, 排除实施中的误使用, 应当进行的诊断和改正错误的过程; 适应性维护是指为了使软件适应变化, 而去修改软件的过程; 完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件, 以扩充软件功能, 增强软件性能, 改进加工效率, 提高软件的可维护性; 预防性维护是为了提高软件的可维护性, 可靠性等, 为以后的进一步改进软件打下良好基础.(4)在面向对象的设计中, 用来请求对象执行某一处理或回答某些信息的要求称为【4】 .解析:在面向对象技术中, 主要用到对象(object),类(class),方法(method),消息(message),继承(inheritance),封装(encapsulation)等基本概念. 其中消息是用来请求对象执行某一处理或回答某些信息的要求.⑸关键字ASC和DESC分 别 表 示 【5】 的含义.解析:ASC表示升序排列,DESC表示降序排列, 多用在索引定义和SELECT语句中的ORDER子句中.答案:BBCCC AAAAC边值分析法调试完善性消息升序排序和降序排序第九套:(1)由两个栈共享一个存储空间的好处是A)减少存取时间, 降低下溢发生的机率B)节省存储空间, 降低上溢发生的机率C)减少存取时间, 降低上溢发生的机率D)节省存储空间, 降低下溢发生的机率解析:常常一个程序中要用到多个栈, 为了不发生上溢错误, 就必须给每个栈分配一个足够大的存储空间. 但实际中, 很难准确地估计, 若每个栈都分配过大的存储空间, 势必造成系统空间紧张; 若让多个栈共用一个足够大的连续存储空间, 则可利用栈的动态特性使他们的存储空间互补.( 2)设有两个串p和q,求q在p中首次出现位置的运算称作A)连 接B)模式匹配C)求 子 串D)求串长解析:子串的定位操作通常称作串的模式匹配, 是各种串处理系统中最重要的操作之一, 算法的基本思想是: 从主串的开始字符起和模式的第一个字符比较, 若相等则继续比较后续字符, 否则从主串的下一个字符起再重新和模式的字符比较, 依次类推, 直至模式中的每一个字符依次和主串中的一个连续的字符序列相等, 称匹配成功, 否则称匹配不成功.( 3) n个顶点的连通图中边的条数至少为A) 0 B) 1 C) n-1 D) n解析:在无向图( 边没有方向性的图) 中, 若从顶点Vi到vj有路径, 则 称vi和vj是连通的, 若该图中任意两个顶点都是连通的, 则称该图为连通图.( 4)对象实现了数据和操作的结合, 是指对数据和数据的操作进行A)结合 B)隐 藏C)封装 D)抽象解析:对象是由数据及可以对这些数据施加的操作组成的统一体. 对象的内部, 即处理能力的实行和内部状态, 对外是看不见的, 这一特性称做对象的封装.⑸下列叙述中, 正确的是A)软件就是程序清单B)软件就是存放在计算机中的文件C)软件应包括程序清单及运行结果D)软件包括程序和文档解析:软件( software)是计算机系统中与硬件相互依存的另一部分, 是包括程序, 数据及相关文档的完整集合.( 6)软件设计中, 有利于提高模块独立性的一个准则是A)低内聚低耦合B)低内聚高耦合C)高内聚低耦合D)高内聚高耦合解析:模块的独立程度是评价设计好坏的重要度量标准. 衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准. 一般优秀的软件设计, 应尽量做到高内聚, 低耦合, 即减弱模块之间的耦合性和提高模块内的内聚性, 有利于提高模块的独立性.⑺软件生命周期中花费时间最多的阶段是A)详 细 设 计B)软件编码C)软 件 测 试D)软件维护解析:软件生命周期分为软件定义, 软件开发及软件运行维护3个阶段. 本题中, 详细设计,软件编码和软件测试都属于软件开发阶段; 维护是软件生命周期的最后一个阶段, 也是持续时间最长, 花费代价最大的一个阶段, 软件工程学的一个目的就是提高软件的可维护性,降低维护的代价.( 8)下 列4项中说法不正确的是A)数据库减少了数据冗余B)数据库中的数据可以共享C)数据库避免了一切数据的重复D)数据库具有较高的数据独立性解析:数据库系统具有以下几个特点, 一是数据的集成性, 二是数据的高共享性与低冗余性,三是数据的独立性, 四是数据统一管理与控制.( 9)下列4项中, 必须进行查询优化的是A)关系数据库B)网状数据库C)层次数据库D)非关系模型解析:关系数据模型诞生之后迅速发展, 深受用户喜爱, 但关系数据模型也有缺点, 其最主要的缺点是由于存取路径对用户透明, 查询效率往往不如非关系数据模型, 因此为了提高性能, 必须对用户的查询请求进行优化.( 10)最常用的一种基本数据模型是关系数据模型, 它的表示应采用A)树B)网络C)图D)二维表解析:关系数据模型用统一的二维表结构表示实体及实体之间的联系(即关系) .填空题(1 )当线性表采用顺序存储结构实现存储时, 其主要特点是1 1 】 .解析:顺序存储结构的主要特点是数据元素按线性表的逻辑次序, 依次存放在一组地址连续的存储单元中. 在存储单元中各元素的物理位置和逻辑结构中各结点间的相邻关系是一致的.(2 )软件工程的出现是由于[ 2 ] .解析:从 2 0 世纪6 0 年代中期到7 0 年代中期, 随着计算机应用的日益普及, 软件数量急剧膨胀, 在程序运行时发现的错误必须设法改正, 用户有了新的需求时必须相应的修改程序以适应新的环境. 种种软件维护工作耗费惊人的资源, 更严重的是许多程序个体化使得程序最终无法维护, ” 软件危机” 就这样出现了. 为了更有效的开发与维护软件, 新兴了一门软件工程学即软件工程.(3 )单元测试又称模块测试, 一 般 采 用 【 3 】 测试.解析:软件测试过程一般按4个步骤进行, 即单元测试, 集成测试, 验收测试和系统测试. 单元测试的技术可以采用静态分析和动态测试. 对动态测试多采用白盒动态测试为主, 辅之以黑盒测试.(4 )数据库恢复是将数据库从【 4 】 状态恢复到某一已知的正确状态.解析:数据库恢复是将数据库中的数据从错误状态中恢复到某种逻辑一致的状态. 如果数据库中包含成功事务提交的结果, 则称数据库处于一致性状态.⑸ 数 据 的 基 本 单 位 是 1 5 】 .答案; B B C C D C D C A D逻辑结构中相邻的结点在存储结构中仍相邻软件危机的出现白盒测试法错误数据元素第十套:( 1)线性表若采用链式存储结构时, 要求内存中可用存储单元的地址A)必须是连续的B)部分地址必须是连续的C)一定是不连续的D)连续不连续都可以解析:在链式存储结构中, 存储数据结构的存储空间可以是连续的, 也可以是不连续的, 各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致.( 2)在待排序的元素序列基本有序的前提下, 效率最高的排序方法是A)冒 泡 排 序B)选 择 排 序C)快 速 排 序D)归并排序解析:从平均时间性能而言, 快速排序最佳, 其所需时间最少, 但快速排序在最坏情况下的时间性能不如堆排序和归并排序. 当序列中的记录基本有序或元素个数较少时, 冒泡排序和简单选择排序为最佳排序方法, 故本题答案应该为选项A) .( 3)下列叙述中, 错误的是A)数据的存储结构与数据处理的效率密切相关B)数据的存储结构与数据处理的效率无关C)数据的存储结构在计算机中所占的空间不一定是连续的D)一种数据的逻辑结构可以有多种存储结构解析:一般来说, 一种数据结构根据需要可以表示成多种存储结构. 常用的存储结构有顺序,链接, 索引等, 而采用不同的存储结构, 其数据处理的效率是不同的; 一个数据结构中的各数据元素在计算机存储空间中的位置关系与逻辑关系是有可能不同的.( 4)希尔排序属于A)交 换 排 序B)归并排序C)选 择 排 序D)插入排序解析:希尔排序的基本思想是把记录按下标的一定增量分组, 对每组记录使用插入排序, 随增量的逐渐减小, 所分成的组包含的记录越来越多, 到增量的值减小到1时, 整个数据合成一组, 构成一组有序记录, 故其属于插入排序方法.( 5)下列叙述中, 不属于结构化分析方法的是A)面向数据流的结构化分析方法B)面向数据结构的Jackson方法C)面向数据结构的结构化数据系统开发方法D)面向对象的分析方法解析:常见的需求分析方法有结构化分析方法和面向对象的分析方法两类. 其中结构化分析方法又包括面向数据流的结构化分析方法( SA-Structured analysis) ,面向数据结构的Jackson方法( JSD-Jackson system development method)和面向数据结构的结构化数据系统开发方法( DSSD-Data structured system development method) .( 6)详细设计的结果基本决定了最终程序的A)代码的规模B)运行速度C)质 量D)可维护性解析:详细设计阶段的根本目标是确定应该怎样具体的实现所要求的系统, 但详细设计阶段的任务还不是具体的编写程序, 而是要设计出程序的“ 蓝图” , 以后程序员将根据这个蓝图写出实际的程序代码, 因此, 详细设计阶段的结果基本上就决定了最终的程序代码的质量.( 7)下列不属于静态测试方法的是A)代 码 检 查B)白盒法C)静态结构分析D)代码质量度量解析:静态测试包括代码检查, 静态结构分析和代码质量度量等. 其中白盒测试属于动态测试.( 8)公司中有多个部门和多名职员, 每个职员只能属于一个部门, 一个部门可以有多名职员,从职员到部门的联系类型是A)多 对 多B)一对一 C)多对一 D)一对多解析:现实世界中事物之间的联系在信息世界中反映为实体集之间的联系, 实体集间的联系个数不仅可以是单个的也可以是多个的, 这种关系可以有下面几种对应: 一对一, 一对多( 多对一) 多对多. 两个实体集间的联系可以用下图表示:( 9)下列关系运算的叙述中, 正确的是A)投影, 选择, 连接是从二维表行的方向进行的运算B ) 并, 交, 差是从二维表的列的方向来进行运算C ) 投影, 选择, 连接是从二维表列的方向进行的运算D ) 以上3种说法都不对解析:在关系模型的数据语言中, 一般除了运用常规的集合运算( 并, 交, 差, 笛卡尔积等) , 还定义了一些专门的关系运算, 如投影, 选择, 连接等. 前者是将关系( 即二维表) 看成是元组的集合, 这些运算主要是从二维表的行的方向来进行的. 后者是从二维表的列的方向来进行运算的.( 1 0 ) 关系数据库管理系统应能实现的专门的关系运算包括A ) 排序, 索引, 统 计 B ) 选择, 投影, 连接C ) 关联, 更新, 排 序 D ) 显示, 打印, 制表解析:关系数据库建立在关系数据模型基础上, 具有严格的数学理论基础. 关系数据库对数据的操作除了包括集合代数的并, 差等运算之外, 更定义了一组专门的关系运算: 连接, 选择和投影. 关系运算的特点是运算的对象都是表.填空题⑴用链表表示线性表的突出优点是1 1 】 .解析:为了克服顺序表中插入和删除时需要移动大量数据元素的缺点, 引入了链式存储结构. 链表表示线性表的突出优点是插入和删除操作方便, 不必移动数据元素, 执行效率高.( 2 ) 子程序通常分为两类: 【 2 】 和函数, 前者是命令的抽象, 后者是为了求值.解析:当程序之间发生调用关系时, 调用命令所在的代码段被称为主程序, 被调用的代码段被称为子程序. 子程序是对功能的抽象, 可分为过程和函数两类, 两者的区别是函数是通过函数名来返回值的, 而过程只能通过形式参数或对全局变量进行修改以返回值.( 3 ) 软 件 的 【 3 】 设计又称为总体结构设计, 其主要任务是建立软件系统的总体结构.( 4 ) 对软件是否能达到用户所期望的要求的测试称为【 4 】 .( 5 ) 实体之间的联系可以归结为一对一联系, 一对多( 或多对多) 的联系与多对多联系. 如果一个学校有许多教师, 而一个教师只归属于一个学校, 则实体集学校与实体集教师之间的联系 属 于 【 5】 的联系.答案; DABDD CBCCB便于插入与删除操作过程概要有效性测试一对多或1:N(1 )下面叙述正确的是 OA .算法的执行效率与数据的存储结构无关B .算法的空间复杂度是指算法程序中指令( 或语句) 的条数C .算法的有穷性是指算法必须能在执行有限个步骤之后终止D .以上三种描述都不对[ 答案] C[ 考点I程序设计基础[ 评析]时间复杂度:在运行算法时所耗费的时间为f(n)( 即 n 的函数) 。
空间复杂度:实现算法所占用的空间为g(n)( 也为n 的函数) A 应为有关2 )以下数据结构中不属于线性数据结构的是 oA .队列 B .线性表 C .二叉树 D .栈[ 答案] C[ 考点I数据结构与算法[ 评析]一棵二叉树的一个结点下面可以有2 个子结点,故不是线性结构( 通俗地理解,看是否能排成条直线) A 是先进先出的线性表;B 是宏观概念,包括顺序表、链表、堆栈、队列…;D 是先进后出的线性表(3 )在一棵二叉树上第5 层的结点数最多是 oA. 8 B. 16 C.32 D .15(3)[ 答案] B[ 考点I数据结构与算法[ 评析I依次从上到下,可得出:第 1层结点数为1;第 2 层结点数为2*1=2;第 3 层结点数为2*2=4;第 n 层结点数为2 的 n-1次嘉,如图所示(4 )下面描述中,符合结构化程序设计风格的是 oA .使用顺序、选择和重复( 循环) 三种基本控制结构表示程序的控制逻辑B .模块只有一个入口,可以有多个出口C .注重提高程序的执行效率D .不使用goto语句[ 答案] A[ 考点] 程序设计基础[ 评析]B 没这规定,模块之间的可以通过多个接口来耦合C 结构化程序设计提倡程序的可读性( 可理解性) ,超过程序执行效率的要求D 结构化程序设计限制goto语句的使用, 因为goto语句的功能可以用三种基本的控制结构来代替,但也不是绝对不能用,只是限制使用( 少用) 。
5 )下面概念中,不属于面向对象方法的是 oA . 对象 B . 继承 C . 类 D . 过程调用[ 答案] D[ 考点I 软件工程基础[ 评析]面向对象= 对象+ 类+ 继承+ 通过消息的通信对象:一组属性及其上的操作的封装体类:一组有相同属性和操作的对象的集合继承:一个类为另一个类上的扩充的方式,子类继承父类,主要目的是代码复用消息:对象间通信的手段D 是结构化程序设计或过程式( 函数式) 语言中的,一般的面向对象程序设计语言兼容这种方式,但不是其特征,故最佳选项为D(6 )在结构化方法中,用数据流程图( D F D ) 作 为 描 述 工 具 的 软 件 开 发 阶 段 是 A . 可 行 性 分 析 B . 需求分析 C . 详细设计 D . 程序编码[ 答案] B[ 考点| 软件工程基础[ 评析]分析员对用户的要求作出分析,并画出数据流程图,该图通俗易懂,不涉及到如何在计算机上实现,这是需求分析阶段软件工程中的瀑布模型:问题定义,可行性研究,需求分析,概要设计,详细设计,编码,测试,运行和维护相关链点:层次图和H I P O 图是概要设计中的工具图;程序流程图、N-S图、问题分析P A D 图、设计程序语言P D L 是详细设计中的工具图(7 )在软件开发中,下面任务不属于设计阶段的是 oA .数据结构设计 B .给出系统模块结构 C .定义模块算法 D .定义需求并建立系统模型[ 答案] D[ 考点| 软件工程基础[ 评析]A、B为概要设计中的,C为详细设计中的,D为分析阶段中的(8 )数据库系统的核心是 oA .数据模型 B .数据库管理系统 C .软件工具 D .数据库[ 答案]B[ 考点I数据库设计基础[ 评析]数据库管理系统DBMS是数据库系统的核心,上层与用户打交道,底层与操作系统接口注意点:数据库系统与数据库管理系统的区别前者指的一整套业务系统,包括用户、应用程序、DBMS及操作系统的支持(9 )下 列 叙 述 中 正 确 的 是。
A .数据库是一个独立的系统,不需要操作系统的支持B .数据库设计是指设计数据库管理系统C .数据库技术的根本目标是要解决数据共享的问题D .数据库系统中,数据的物理结构必须与逻辑结构一致[ 答案]C[ 考点I数据库设计基础[ 评析]晕倒, 数据库管理系统是人人都可设计的吗?那SYBASE和ORACLE等不都没饭吃了?普通人的数据库设计就是在DBMS的支持下设计几张表格, 命几个名而已;D也错了的,数据库具有物理独立性和逻辑独立性,比如 是一个完整的数据库系统,我们使用的只是客户端应用程序,其数据库在腾讯的服务器上,物理独立性呢指的是数据库的底层结构改变了,而 的客户端不用变,对应地,逻辑独立性是指的客户端改变了,数指据库的结构不用变了,否则,这么多版本,那腾讯的服务器不是乱了套?(10)下列模式中,能够给出数据库物理存储结构与物理存取方法的是 OA .内模式 B .外模式 C .概念模式 D .逻辑模式[ 答案] A[ 考点I数据库设计基础[ 评析]通过前些题可知道,数据库的物理结构最底层,即对应内模式,对应的模式映像为内模式/ 模式( 概念模式映像),逻辑独立性则对应于模式/ 外模式映像(11)算法的时间复杂度是指 OA .执行算法程序所需要的时间B .算法程序的长度C .算法执行过程中所需要的基本运算次数D .算法程序中的指令条数[ 答案] C[ 考点] 数据结构与算法[ 评析]算法的复杂度分时间复杂度和空间复杂度。
时间复杂度:在运行算法时所耗费的时间为f(n)( 即 n 的函数)空间复杂度:实现算法所占用的空间为g(n)( 也为n 的函数)称 O(f(n))和 O(g(n))为该算法的复杂度简单的例子比如常见的顺序结构时间复杂度为0 (1)4层循环里面次数为n , 时间复杂度就是O(n),2层循环for i=l to n,for j=l to n 算法时间复杂度为O(n2)( 里面为n 的平方),复杂度主要用于算法的效率比较与优化,比如排序,查找…(12)下 列 叙 述 中 正 确 的 是 A .线性表是线性结构B .栈与队列是非线性结构C .线性链表是非线性结构D .二叉树是线性结构[ 答案] A[ 考点I数据结构与算法[ 评析]一棵二叉树的一个结点下面可以有2 个子结点,故不是线性结构( 通俗地理解,看是否能排成条直线)此题与(2 ) 题类似(13)设一棵完全二叉树共有699个结点,则在该二叉树中的叶子结点数为 oA. 349B. 350C. 255D.351[ 答案] B[ 考点] 数据结构与算法[ 评析]完全二叉树: 若二叉树中最多只有最下面两层的结点的度可以小于2 ,并且最下面一层的结点( 叶结点)都依次排列在该层最左边的位置上,这样的二叉树为完全二叉树。
比如图:完全二叉树除叶结点层外的所有结点数( 叶结点层以上所有结点数)为奇数,此题中,699是奇数,叶结点层以上的所有结点数为保证是奇数, 则叶结点数必是偶数, 这样我们可以立即选出答案为B!如果完全二叉树的叶结点都排满了,则是满二叉树,易得满二叉树的叶结点数是其以上所有层结点数+1比如图:此题的其实是一棵满二叉树,我们根据以上性质,699+1=700, 700/2=350,即叶结点数为3 5 0 ,叶结点层以上所有结点数为350-1=34914)结 构 化 程 序 设 计 主 要 强 调 的 是 A .程序的规模B .程序的易读性C .程序的执行效率D .程序的可移植性[ 答案] B[ 考点| 程序设计基础[ 评析]又是结构化的问题,何谓结构化?简单地比如:VB: lf...End IfC:Pascle: Begin ...End我们在“ 结构” 的中间写代码,从哪执行到哪结束我们能很快抓住!此题中重要性为:B>C>D(15)在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是 A .概要设计B . 详细设计C . 可行性分析D .需求分析[ 答案] D[ 考点| 软件工程基础[ 评析]题中所述为需求分析可行性研究包括经济可行性、技术可行性、操作可行性,即以最小的代价确定系统的规模是否现实概要设计的任务是确定软件的总体结构、子结构和模块的划分详细设计的任务是确定每一模块的实现细节,包括数据结构、算法和接口也许有人这么久了还不知道什么叫系统,什么叫模块。
晕倒,这里罗嗦一下,软件工程中的系统指的整个软件系统,比 如 Q Q 的所有东西,我们用的是客户端程序,实际的东西放在腾讯公司的服务器上,主要是数据库,包括在中间的传输过程,这一整个相关的东东都叫做O I C Q 的系统;什么叫模块,这里不单指如V B 里的“ 标准模块“ 、“ 类模块” ,也不单指一个窗体或者一个文件,宏观上讲,软件工程中把一种功能或相关功能把它做成一个模块,这个模块有可能是一个过程,有可能是一个函数…从功能角度度量模块内的联系为模块的内聚( 一般来说越强越好, 不易出错) ;模块之间的联系为耦合,比如我们编程中常用把一实参的值赋给了函数中的形参,使函数完成某一功能,耦合度越低越好,独立性就强;何谓独立性?比如我们二级编程都有考到全局变量、局部变量,函数中的局部变量独立性很强,函数外无法访问…何谓变量?晕- - - - - - - 如果这都要说,那你可以不用考二级了(1 6 )数据流图用于抽象描述一个软件的逻辑模型,数据流图由一些特定的图符构成下列图符名标识的图符不属于数据流图合法图符的是 0A . 控制流B . 加工C . 数据存储D . 源和潭[ 答案] A[ 考点| 软件工程基础[ 评析]数据流图用于需求分析阶段,在此阶段我们只考虑大致的数据流流向,而不关心内部具体的处理,以及如何在计算机上实现,不必讨论控制流,我们只关心的:数据流、数据储存、变换/ 加工( 相当于一个黑盒,不关心内部细节) 、外部实体,数据流图通俗易懂,因为它远离了计算机,用户( 无需懂编程) 和软件人员都易接受。
比如一个简单的软件系统逻辑模型:输入流和输出流即D 中的源和潭1 7 )软件需求分析阶段的工作,可以分为四个方面:需求获取、需求分析、编写需求规格说明书以及 oA . 阶段性报告B . 需求评审C . 总结D . 都不正确[ 答案] B[ 考点] 软件工程基础[ 评析]评审( 复审) 每阶段都有,把前三个方面说完了,还剩什么呢?此题需要记一下,至于各名词的解释,顾名即可思义1 8 )下述关于数据库系统的叙述中正确的是 oA . 数据库系统减少了数据冗余B . 数据库系统避免了一切冗余C . 数据库系统中数据的一致性是指数据类型的一致D . 数据库系统比文件系统能管理更多的数据[ 答案] A[ 考点I 数据库设计基础[ 评析]关于数据管理技术的三个阶段如下:1 . 人工管理阶段人工管理数据的特点是:(1 )数据不保存2 )数据无专门软件进行管理3 )数据不共享4 )数据不具有独立性2 . 文件系统阶段该阶段的数据管理具有如下特点:(1 )数据可以长期保存2 ) 由文件系统管理数据文件系统管理数据存在如下缺点:(1 )数据共享性差,数据冗余度大2 )数据独立性差3 . 数据库系统阶段与人工管理和文件系统阶段相比较,数据库系统阶段具有如下的特点:( 1 ) 数据结构化( 2 ) 数据共享性高、冗余度小、易扩充( 3 ) 数据独立性高(4 )统一的数据管理和控制数据库管理系统必须提供以下几个方面的数据控制和保护功能:( 1 ) 数据的安全性(security)保护。
2 ) 数据的完整性(integrity)控制 3 ) 数据库恢复(recovery) 4 ) 并 发 (concurrency)控制 5 ) 事 务 (transaction)支持B 错,为什么会有关系规范化理论,其主要目的之一是减少数据的冗余,说明数据库系统还存在一定的冗余;C 错,数据完整性约束指一组完整性规则的集合,不一定是数据类型的一致性;D 项也太菜鸟了吧,数据能管理存放多少数据主要看机子硬盘空间和一些相关的设置,比如在数据库管理系统中设置某个用户的空间最大为多少19)关 系 表 中 的 每 一 横 行 称 为 一 个 A .元组B .字段C .属性D .码[ 答案] A[ 考点I数据库设计基础[ 评析]字段:歹 !J ,属性名属性:实体的某一特性,如学生表中的学号、姓名…码 ( 主健) :元 组 ( 实体)的惟一标识,比如学生有同名的,但学号是惟一的比如表:学 号 姓 名 性 别 院 系0221301陈朝霞女 油 院 矿 机0221310周建峰男西南工业大学机电院0221326曾晓明 男西南工业大学机电院0221315郭文广 男西南工业大学机电院0123456茂 叶 男 油 院 机 电 &软件( 20)数据库设计包括两个方面的设计内容,它们是 oA .概念设计和逻辑设计B .模式设计和内模式设计C .内模式设计和物理设计D .结构特性设计和行为特性设计[ 答案]A[ 考点I数据库设计基础[ 评析]需求分析- - ( 需求说明)概念设计- - ( 概念结构)逻辑结构设计- - ( 逻辑结构)物理设计- - ( 物理结构)- - >( 21)算 法 的 空 间 复 杂 度 是 指。
A .算法程序的长度B .算法程序中的指令条数C .算法程序所占的存储空间D .算法执行过程中所需要的存储空间[ 答案] D[ 考点I程序设计基础[ 评析1时间复杂度:在运行算法时所耗费的时间为f(n)( 即 n 的函数) 空间复杂度:实现算法所占用的空间为g(n)( 也为n 的函数) 算法为什么会占用存储存空间?主要是内存空间, 因为算法中的变量、地址等等通常保存在内存中( 如果在虚存、缓存,甚至已在CPU中运行,也算占用了存储空间) 22)下 列 关 于 栈 的 叙 述 中 正 确 的 是 A .在栈中只能插入数据B .在栈中只能删除数据C .栈是先进先出的线性表D .栈是先进后出的线性表[ 答案] D[ 考点I数据结构与算法[ 评析]此题为基本概念,必记,注意:队列是先进先出的线性表,结合起来记不要搞混23)在深度为5 的满二叉树中,叶子结点的个数为 oA. 32B.31C. 16D. 15[ 答案] C[ 考点] 数据结构与算法[ 评析]首先搞清楚满二叉树与完全二叉树之间的区别,前面已解释过依次从上到下,可得出:第 1层结点数为1;第 2 层结点数为2*1=2;第 3 层结点数为2*2=4;第 n 层结点数为2 的 n-1次幕,如图所示(24)对建立良好的程序设计风格,下 面 描 述 正 确 的 是。
A .程序应简单、清晰、可读性好B .符号名的命名要符合语法C .充分考虑程序的执行效率D .程序的注释可有可无[ 答案] A[ 考点| 程序设计基础[ 评析]结构化程序设计中力求程序的可读性( 如代码清晰, 结构明了, 附加注释……) , 故 D 错;如果程序写的都是错的,谈何风格?如果符号名的命名不符合语法,编译会报错,也是很基本的错误,B 错;追求程序的可读性要高于执行效率,C 错25)下面对对象概念描述错误的是 oA .任何对象都必须有继承性B .对象是属性和方法的封装体C .对象间的通讯靠消息传递D .操作是对象的动态性属性[ 答案]A[ 考点I程序设计基础[ 评析]此题为基本概念,必记!这里举几个例子说明以助大家理解:比如VB:Command按纽类是个类,在窗体上画一个名为Commandl的按纽即是创建该类的一^实例,也可创建另外一个实例如C om m andl,他们的属性可以调置为不同的,但是都是Command类的实例Commandl,Command2都是对象,它们封装了属性和方法,都是封装体,比如Name属性,Caption属性. . .宏观上可说Commandl的Move操作是动态属性,对象间的通读靠消息传递,比如在Commandl的单击事件中写上:Picturel.Print " 消息传递"Picturel是一个图片框对象,我们还可以调用Form_Load事件等等,都是通过消息传递的,即对象A向对象B发出消息,对象B执行怎样的操作。
C++:class Base{Public:BaseO{}~Base(){}class Derive:Public BasePublic:Print()(Cout«” 打印函数! u«endl;)};void main(){Derive a;Base *p;)Base为基类,Derive为基类上的派生类,它继承了基类的一些属性和方法等, a 为创建的实例,即是一个对象, 它封装了类Derive的所有性性和方法, 特别是私有的属性和方法,直接调用它们会失败,这就是类的封装性对象间的通讯是靠消息传递的,比如我们在内存中删除p 所指的一个对象, 用 delete p 语句, 会调用类Base的析构函数〜Base ; 我们也可用a.Print 语句来调用Derive类的Print 函数, 对象a 具有类Derive的属性和方法( 在C++中一般用函数来实现,比如Print ,我们可以说这操作是对象a 的动态属性)(26)下面不属于软件工程的3 个要素的是 oA .工具B .过程C .方法D .环境(26)[ 答案] D[ 考点| 软件工程基础[ 评析]这里阐述一下,以上答案为原稿的答案,有的书上答案应该为B ,解释如下:软件工程包括的三要素是:软件开发方法学、工具和环境支持,而其主体内容是软件开发方法学。
1、软件开发方法,比如根据瀑布模型有结构化分析与设计方法,有原型化开发方法2、软件开发工具各个瀑存模型阶段都有相关工具,比如需求分析阶段有DFD数据流程图,详细设计阶段有H1PO图或PAD图,编码工具有VC、VB……3、软件开发环境是全面支持软件开发全过程的软件工具集合如果你有权威且详尽的解释,还请邮给茂叶: dj8529@或去我主页上留言此题的争论,意义性不大,燃眉之急是应负考试 : )软件工程三要素工具、方法、过程,请大家记一下27)程序流程图(P F D )中的箭头代表的是 0A .数据流B .控制流C .调用关系D .组成关系(27)[ 答案] B[ 考点] 软件工程基础[ 评析]如果A , 那 么 B , 否 则 C ,这是我们二级中很熟悉的程序流程方式,我们可以画成相应的PFD图或N-S图易知箭头控制应该是哪条语句执行,即B 答案28)在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段其中数据独立性最高的阶段是 OA .数据库系统B .文件系统C .人工管理D .数据项管理(28)[ 答案] A[ 考点I数据库设计基础【 评析]关于数据管理技术的三个阶段如下表:1 .人工管理阶段人工管理数据的特点是:( 1 ) 数据不保存。
2 ) 数据无专门软件进行管理 3 ) 数据不共享 4 ) 数据不具有独立性2 . 文件系统阶段该阶段的数据管理具有如下特点:( 1 ) 数据可以长期保存 2 ) 由文件系统管理数据文件系统管理数据存在如下缺点:( 1 ) 数据共享性差,数据冗余度大( 2 ) 数据独立性差3. 数据库系统阶段与人工管理和文件系统阶段相比较,数据库系统阶段具有如下的特点:( 1 ) 数据结构化( 2 ) 数据共享性高、冗余度小、易扩充( 3 ) 数据独立性高(4 )统一的数据管理和控制数据库管理系统必须提供以下几个方面的数据控制和保护功能:( 1 ) 数据的安全性(security)保护 2 ) 数据的完整性(integrity)控制 3 ) 数据库恢复(recovery) 4 ) 并 发 (concurrency)控制 5 ) 事 务 (transaction)支持29)用树形结构来表示实体之间联系的模型称为 oA .关系模型B .层次模型C .网状模型D .数据模型(29)[ 答案] B[ 考点I数据库设计基础[ 评析]层次模型结构是一棵有向树,树中的每个结点代表一种记录类型,这些结点满足:有且仅有一个结点无双亲( 根结点) ,其它结点有且仅有一个双亲结点。
网状模型则相当于一个有向图,与层次模型结构不同的是:一个结点可以有多个双亲结点,且多个结点可以无双亲结点关系模型则是二维表,一张表即为一个关系,这个很常见,如 学 生 关 系 ( 学号,姓名,出生年月,性别) ,就像我们的办公软件中电子表格那样的表格D 项的数据模型不是数据库的基本模型 3 0 )关系数据库管理系统能实现的专门关系运算包括 oA .排序、索引、统计B . 选择、投影、连接C . 关联、更新、排序D . 显示、打印、制表( 3 0 )[ 答案] B[ 考点I 数据库设计基础[ 评析]此题为数据库的基本概念,如果你完全没学过数据库,可以对照办工软件的电子表格进行如下理解:选择:我们根据某条件选择出一行或多行元组( 一个元组即为二维表中的一行)投影:按 字 段 ( 也称属性,比如学生关系( 学号,姓名,出生年月,性别) ,学号、姓名……都是属性)选取一列或多列( 一个二维表中所有元组在某一列或几列上截取出来) 连接: 2个 或 2个以上的表连接组成一张新的表, 通常有条件连接比如学生关系( 学号,姓名,系号) ,又有一张系表( 系号,系名,主任) ,2张表可以合并为一张这样的表( 学号,姓名,系号,系名,主任)( 3 1 )算法一般都可以用哪几种控制结构组合而成 oA .循环、分支、递归B .顺序、循环、嵌套C .循环、递归、选择D .顺序、选择、循环(31)[ 答案] D[ 考点I数据结构与算法[ 评析]结构化程序设计中,基本的控制结构为顺序、选择、循环。
各种具体的程序设计语言中的一些控制结构都可以划分到这些类中 比 如 V B 里 的 Select C ase语 句 、If...Elseif...Else...End If, C/C++中的 switch 、if{}......都属于选择控制结构相应的 for循环和while语句都属于循环结构按从上到下顺序执行的即是顺序控制结构32)数 据 的 存 储 结 构 是 指 A .数据所占的存储空间量B .数据的逻辑结构在计算机中的表示C .数据在计算机中的顺序存储方式D .存储在外存中的数据(32)[ 答案1B[ 考点] 数据结构与算法[ 评析]这是个基本概念题存储空间量只是数据的存储结构的一个属性,答案C 也太片面,比如链表也是种存储方式,而非线性的还有树、图……我们所学的数据结构不涉及到数据在计算机外存( 比如硬盘、软盘) 具体的方式,而仅关心它们在内存中逻辑结构,比如数组,它是内存中一片连续的数据存储,我们对每一个元素都可以顺序地访问,只需要知道某一个元素的地址,其它数据元素的地址可以据库下标与数组类型( 如字符型、整型……)所占的存储空间就可算出每个元素的地址,故顺序访问所有元素。
但是对于具体数据在内存中的物理存储,我们很少关心比如某个数组建立时,它的首地址具体是多少?它们在内存中的二进制表示是什么的?另,什么叫物理结构,什么叫逻辑结构,可以这样来理解,就好比物理结构是一个人的肉体, 逻辑结构是一个人的灵魂, 类似于计算机中硬件与软件的说法 就好比我们上,发送消息、接收消息,基本上近似大众人的思维,但发送消息与接收消息这些的具体技术过程或它们在CPU和硬盘上的活动,甚至二进制是什么呢?去问腾讯公司(33)设有下列二叉树:对此二叉树中序遍历的结果为 OA. ABCDEFB. DBEAFCC. ABDECFD. DEBFCA(33)[ 答案] B[ 考点I数据结构与算法[ 评析]该题原稿没图,故无从解释,此知识点的详解部分请看53题(34)在面向对象方法中,一个对象请求另一对象为其服务的方式是通过发送 oA .调用语句B .命令C. 口令D .消息(34)[ 答案] D[ 考点I程序设计基础[ 评析]通过消息机制太理论方面的不多说,现举例说明C++:比如在VC++中,单击了一个菜单命令项“ 退出“ ,我们要实现退出程序,如何来实现?很简单,只要向窗体发送一个PostQuitMessage(O);就可以关闭窗体。
这个在VB中还简单, 三个字符“ End”即可解决, 相当于向所有窗体发送一个销毁窗体的消息,即“ Unload窗体名” 语句 如果是单个窗体的话,即相当于Unload Me语句)VB:Public a As IntegerPrivate Sub Commandl ClickOa = 20Print aEnd SubPrivate Sub Commandl ClickOForm_Load “ 这里调用 Form_Load()过程,实用 a=10Print aEnd SubPrivate Sub Form_Load()a = 10End Sub命令按纽Command!向其母窗体发送一个消息,使其为Command!服务Command!是 CommandButton类的一个对象,主窗体是窗体类的一个对象关于类与对象的理解,请大家看前面的题的详解35)检查软件产品是否符合需求定义的过程称为 oA .确认测试B .集成测试C .验证测试D .验收测试(35)[ 答案] A[ 考点| 软件工程基础[ 评析]A、C、D 相近,但 A 为比较正规的说法名词确认测试也称合格测试或验收测试,主要由用户参加,检验软件规格说明的技术标准的符合程度,是保证软件质量的最后关键环节。
单元测试主要采用白盒法,之后再采用集成测试,主要采用黑盒法这些主要由开发者的工作,而无用户参与,不是检查是否符合需求定义的什么叫白盒黑盒?相当于这样理解吧:白盒测试,我们要注意到代码;黑盒,我们只关心程序运行的输入输出是否正确,一般是大量的测试,主要于非增量测试中使用,而非增量测试又一般适用于规模较小的系统开发可以想象,一个很大很复杂的系统,我们用黑盒法来集成测试,效果可想而知36)下列工具中属于需求分析常用工具的是A. PADB. PFDC. N-SD. DFD(36)[ 答案] D[ 考点| 软件工程基础[ 评析]P A D ,问题分析图,常用于详细设计;P F D ,程序流程图,常用于详细设计,我们很多如C、VB…程序设计书上都有简单的实例;N -S ,方框图,比程序流程图更灵活,也常用于详细设计;D F D ,数据流图,远离具体在计算机上的实现,不懂计算机的用户也能看懂,用于需求分析什么叫详细设计?它与我们编程有什么区别?这样理解吧,公司的高级程序员,就是软件设计师,他们会搞详细设计的( 在概要设计之后) ,比如用PAD或N -S画个图,它不涉及具体的某种程序设计语言的实现,但程序员们都能看懂,程序员再用某种语言( 比如C、VB、JAVA • )按照图来写代码。
这个过程,高级程序员完成设计工作,程序员完成写代码工作3 7 )下面不属于软件设计原则的是 oA .抽象B .模块化C .自底向上D .信息隐蔽(3 7 )[ 答案] C[ 考点I 软件工程基础[ 评析]我们无论是设计与编写代码,无论是画数据流图还是程序流图,习愦性思维都是先有输入才有输出,从下至下自底向上不是软件设计的原则3 8 )索引属于 oA . 模式B . 内模式C . 外模式D . 概念模式(3 8 )[ 答案] B[ 考点I 数据库设计基础[ 评析]要特别记住此题的答案索引的写入修改了数据库的物理结构,而不是简单的逻辑设计内模式规定了数据在存储介质上的物理组织方式、记录录址方式3 9 )在关系数据库中,用来表示实体之间联系的是 oA . 树结构B . 网结构C . 线性表D . 二维表(3 9 )[ 答案] D[ 考点I数据库设计基础[ 评析1关系数据库中的关系,用二维表表示,A 为层次数据模型的,B 为网状数据模型的数据库模型分为:层次模型、网状模型、关系模型、面向对象模型40)将 E-R图转换到关系模式时,实体与联系都可以表示成 oA .属 性 B .关系C .键D .域(40)[ 答案] B[ 考点I数据库设计基础[ 评析]基本概念题,实体与联系可以表示成关系,关系可以表示成二维表。
41)在下列选项中,哪个不是一个算法一般应该具有的基本特征 oA .确定性B .可行性C .无穷性D .拥有足够的情报(41)[ 答案] C[ 考点] 程序设计基础[ 评析]算法具有确定性、可行性,并拥有足够的情报42)希尔排序法属于哪一种类型的排序法 oA .交换类排序法B .插入类排序法C .选择类排序法D .建堆排序法(42)[ 答案] B[ 考点I数据结构与算法[ 评析]Shell排序法输入:数组名称( 也就是数组首地址) 、数组中元素个数思想为:在直接插入排序算法中,每次插入一个数,使有序序列只增加1个节点,并且对插入下一个数没有提供任何帮助如果比较相隔较远距离( 称为增量) 的数,使得数移动时能跨过多个元素,则进行一次比较就可能消除多个元素交换D.L.shell于1959年在以他名字命名的排序算法中实现了这一思想算法先将要排序的一组数按某个增量d分成若干组,每组中记录的下标相差d.对每组中全部元素进行排序,然后再用一个较小的增量对它进行,在每组中再进行排序当增量减到1时,整个要排序的数被分成一组,排序完成下面的函数是一个希尔排序算法的一个实现,初次取序列的一半为增量,以后每次减半,直到增量为1。
以C语言为例void shell_sort(int *x, int n)int h, j, k, t;for (h=n/2; h>0; h=h/2) /*控制增量* /for 0=h; j
比如n为4 ,最坏的情况要比较3次;n为1 8 ,最坏的情况要比较5次二分法适用于已排序的顺序表( 我们二级语言中都是数组) ,考二级书里的,这里不再罗嗦45)信息隐蔽的概念与下述哪一种概念直接相关 oA .软件结构定义B .模块独立性C .模块类型划分D .模拟耦合度(45)[ 答案] B[ 考点I软件工程基础[ 评析]模块独立性越强,则信息隐蔽性越好举个例,VB:在多重窗体设计时,每个窗体里的变量尽量与其它窗体里变量无关,比如少用Public声明的变量,即全局变量,当多个窗体共享全局变量越多时,窗体的独立性就越差C:头文件里的一些函数,一般不用到全局变量,否则在主程序里出乱子的情况很多,我们在模块化开发时,尽量使每个模块独立,强功能内聚,分工明确,调试程序也要方便得多C++:考此项的朋友估计不用我多讲,类的封装性就是一个很好的说明46)面向对象的设计方法与传统的的面向过程的方法有本质不同,它的基本原理是A .模拟现实世界中不同事物之间的联系B .强调模拟现实世界中的算法而不强调概念C .使用现实世界的概念抽象地思考问题从而自然地解决问题D .鼓励开发者在软件开发的绝大部分中都用实际领域的概念去思考(46)[ 答案] C[ 考点| 软件工程基础[ 评析]我们举个例,从各种语言的结构体类型出发,我们知道,结构体中可以定义很多变量,对每个变量执行相同的操作,挨个挨个写出,很麻烦。
假设该结构体有如下变量:草鱼、田鱼、鲫鱼……它们都在一口池塘里,现在执行:它们都上来传统的程序设计是:草鱼上来田鱼上来鲫鱼上来一条一条都写出,是不是很麻烦?改进一下,我们用个循环:n等于从1到10 ( 假设共有10种鱼)第n种鱼上来还是很麻烦,现实中我们很易想到用” 面向对象的思想” ,池塘里所有的鱼都是一个结构体变量,名为鱼,执行:鱼上来意思即所有的鱼都上来现特定于面象对象语言中的类,鱼,就可以看作为一类这 就 属 于C项:使用现实世界的概念抽象地思考问题从而自然地解决问题这样罗嗦的解释望大家别晕,旨在帮助部分人的确难想通的,为应试,你能背下答案也行(47)在结构化方法中,软件功能分解属于下列软件开发中的阶段是 oA .详细设计B .需求分析C总体设计D .编程调试(47)[ 答案] C[ 考点] 软件工程基础[ 评析]从先到后一排,是:需求分析、总体设计、详细设计、编程调试需求分析远离在计算机上的实现,谈不上功能的分解;有了需求分析的报告,软件设计员可以思考我要让软件怎么做,开始总体设计,其间将软件的功能分解,确定模块之间的接口;有了每个模块功能的分解,再对每个模块进入详细设计阶段;接下来再是程序员的任务,编写代码,开始编程调试。
48)软件调试的目的是 oA .发现错误B .改正错误C .改善软件的性能D .挖掘软件的潜能(48)[ 答案]B[ 考点| 软件工程基础[ 评析]倒!一个程序调试是为了干什么?还不是为了改正错误?发现错误?这只是一个过程,改正错误之前必须先发现错误,总不能目的就仅为发现错误吧49)按条件f 对关系R 进行选择,其 关 系 代 数 表 达 式 为A. R|X|RB. R|X|RfC. 6f(R)D. IIf(R)(49)[ 答案] C[ 考点I数据库设计基础[ 评析]C 是选择一行,D 是投影一列,二者要区分开如果不仅谈此题的话,有关关系代数,内容有些多,这里不是一两句能说清,可以看看相 关 《 数据库》的资料中的关系代数,里面写得很详细为应试,情急之下能记住几个题答案就行50)数据库概念设计的过程中,视图设计一般有三种设计次序,以下各项中不对的是A .自顶向下B .由底向上C . 由内向外D . 由整体到局部(5 0 )[ 答案] D[ 考点] 数据库设计基础[ 评析]通常有如下几种方法:1 、自顶向下先全局框架,然后逐步细化2 、自底向上先局部概念结构,再集成为全局结构3 、由里向外。
先核心结构,再向外扩张4 、混合策略1 与 2 相结合,先自顶向下设计一个概念结构的框架,再自底向上为框架设计局部概念结构(5 1 )在计算机中,算法是指 oA . 查询方法B . 加工方法C . 解题方案的准确而完整的描述D . 排序方法(5 1 )[ 答案] C[ 考点] 数据结构与算法[ 评析]A 、B 、D 都过于片面,此题直接选答案也很简单5 2 )栈和队列的共同点是 oA . 都是先进后出B .都是先进先出C .只允许在端点处插入和删除元素D .没有共同点(52)[ 答案]C[ 考点I数据结构与算法[ 评析]栈是先进后出的,队列是先进先出的,共同点是只允许在端点处插入和删除元素栈都是在一端进与出,而队列是在一端进在另一端出53)已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是A. cedbaB. acbedC. decabD. deabc(53)[ 答案]A[ 考点I数据结构与算法[ 评析]后序又叫后根,一次递归过程是先左再右最后根;中序是先左再根最后右比如下图:前序是:abc中序是:bac后序是:bca题中据后序遍历序列,一眼得知c 结点是根,那么据中序deba结点都在一边,或都在根结点左边,或右边;据中序遍历序列得知全在根结点的左边。
接下来据后序得出e 结点是紧挨着c 结点的左子女,再据中序得知d 是 e 的左子女,ba是右子树再据后序得b 是 e 的右子女,再据中序得a 是 b 的右子女分析结果得二叉树图示如下:因为我茂叶数据结构是自学的, 分析此类型的题我都是用自己的方法( 递归分析的方法) ,要边分析边画图,一步一步连结起来,最后再根据题中的遍历检查图是否画对,如果都符合题目,最后再可根据图来得所求的遍历再次声明,此所有二级公基题全是我一人的思路写的,如果你觉得不可靠,可以看其它的书5 4 )在下列几种排序方法中,要 求 内 存 量 最 大 的 是A .插入排序B . 选择排序C . 快速排序D .归并排序(5 4 )[ 答案] D[ 考点I 数据结构与算法[ 分析I我们对比一个排序方法的优越性有“ 平均时间“ 、“ 最坏情况时间” 和“ 辅助空间” 其中辅助空间一般是排序中需要额外的内存开销,这些内存开销一般据一些如中间变量( 暂存变量) 、比较与交换等等来决定插入排序和选择排序的辅助空间都是 ( 1),快速排序是o(nlog2n),归并排序是o(n)o可知归并排序要求内存量最大,我们也可以从其变量及循环个数也以看出归并排序要求内存量最大。
55)在设计程序时,应采纳的原则之一是 oA .程序结构应有助于读者理解B .不限制goto语句的使用C .减少或取消注解行D .程序越短越好(55)[ 答案] A[ 考点| 程序设计基础[ 评析]前面的题中已解释过, 二级的各种程序设计语言教程都会对结构化程序设有一定的介绍,比如goto语句的限制使用,基本上每本书上都会提到其 中 A , 即易读性比程序的效率更显得重要,这是结构化程序设计原则提倡的,也是我们进行开发时非常重要的一点56)下列不属于软件调试技术的是 oA .强行排错法B .集成测试法C .回溯法D .原因排除法(56)[ 答案] B[ 考点| 软件工程基础[ 评析1耍个小聪明: )我们严格区分调试与测试,调试是已知有错误而来找错误,是被动的;测试有很多种,比如未发现错误但不能保证程序没错而来找B U G , 还比如我们运行测试程序是否符合用户的要求,是主动的不用说答案就是B 了 : )A 、C 、D 都是具体的程序调试方法,而 B 是宏观的程序测试方法测试有单元测试、集成测试、确认测试、系统测试比如我们在进行单元测试时,发现程序有错误,我们再可以根据A 、C 、D 的方法来找错误。
题外话:很多人学软件工程时认为软件工程太无聊了,似乎全部都是些背背记记的东西,但对于一个软件构架师,软件工程是非常重要的,这就不能是些背背的东西了,最重要的是理解,要彻底地理解,还得有些开发经验才行《 软件工程》这学科是从实践中得出来的,同样也需要赋予给实践中去,这样才有用!(5 7 )下列叙述中,不 属 于 软 件 需 求 规 格 说 明 书 的 作 用 的 是A .便于用户、开发人员进行理解和交流B . 反映出用户问题的结构,可以作为软件开发工作的基础和依据C . 作为确认测试和验收的依据D . 便于开发人员进行需求分析(5 7 )[ 答案] D[ 考点] 软件工程基础[ 评析]A、B、C都是作用,D说法有一定的错误,开发人员包括很多,比如程序员的工作就不是进行需求分析58)在数据流图(D FD )中,带有名字的箭头表示 oA .控制程序的执行顺序B .模块之间的调用关系C .数据的流向D .程序的组成成分(58)[ 答案] C[ 考点| 软件工程基础[ 评析]顾名思义,数据流图就是带有方框( 外部实体) 、圆圈( 变换/ 加工) 和带有名字的箭头以表示数据的流向需求分析中常用的分析图,它远离计算机上的具体实现,软件人员和用户都能看懂,有益于和用户交流。
59) SQL语言又称为 0A .结构化定义语言B .结构化控制语言C .结构化查询语言D .结构化操纵语言(59)[ 答案] C[ 考点I数据库设计基础[ 评析]学VF和ACCESS的朋友轻而易举选出答案,考其它的朋友们若没学数据库技术这一章节,则要记一下了Structured Query Language结构化查询语言( 语句)(6 0 )视图设计一般有3 种设计次序,下列不属于视图设计的是 oA .自顶向下B . 由外向内C . 由内向外D .自底向上(6 0 )[ 答案] B[ 考点I 数据库设计基础[ 评析]通常有如下几种方法:1 、自顶向下先全局框架,然后逐步细化2 、自底向上先局部概念结构,再集成为全局结构3 、由里向外先核心结构,再向外扩张4 、混合策略1 与 2 相结合,先自顶向下设计一个概念结构的框架,再自底向上为框架设计局部概念结构(6 1 )数据结构中,与所使用的计算机无关的是数据的 oA . 存储结构B. 物理结构C . 逻辑结构D . 物理和存储结构(6 1 )[ 答案] C[ 考点I 数据结构与算法[ 评析1通过前面的一些题的解释,相信此题对大家也很简单了。
逻辑结构更接近人的思想,比如栈的先进后出的结构,这是逻辑结构,如果研究到了栈在内存中的结构,如地址、地址里的内容等等,这就是物理结构了,我们一般无须过于深入底层地钻研6 2 )栈底至栈顶依次存放元素A 、B 、C 、D , 在第五个元素E 入栈前,栈中元素可以出栈,则出栈序列可能是 OA. ABCEDB. DBCEAC. CDABED. DCBEA(6 2 )[ 答案] D[ 考点I 数据结构与算法[ 评析]栈是先进后出的,因为在E 放入前,A 、B 、C 、D 已经依次放进栈里了,故这四个元素出栈的顺序只能是D 、C 、B 、A, E 可是其中排序的任何位置,答案只有D 符合了6 3 )线性表的顺序存储结构和线性表的链式存储结构分别是 oA . 顺序存取的存储结构、顺序存取的存储结构B . 随机存取的存储结构、顺序存取的存储结构C . 随机存取的存储结构、随机存取的存储结构D . 任意存取的存储结构、任意存取的存储结构(6 3 )[ 答案] B[ 考点I 数据结构与算法[ 评析]顺序存储结构可以以数组为例子,它在内存中的一片连续的储存空间,从第一个元素到最后一个元素,只要根据下标就可以访问。
二级的各种程序设计语言都有链式存储结构可以以C/ C++语言中的链表为例,各个链结点无须存放在一片连续的内存空间,而只需要指针变量指过来指过去,实现随机存取6 4 )在单链表中,增加头结点的目的是 oA . 方便运算的实现B . 使单链表至少有一个结点C . 标识表结点中首结点的位置D . 说明单链表是线性表的链式存储实现(6 4 )[ 答案] A[ 考点I 数据结构与算法[ 评析]举个例子,假如我们写一个实现链表删除一个元素的函数(或过程) ,供共享用,函数的参数有2个,一个指针变量(指向链表的头结点) ,一个字符变量(待删除的元素) 通过链表头结点的指针传给函数的第一个指针变量参数,就可方便实现是哪一个链表的操作如果你考的科目没有指针,此题答案记一下就行了6 5 )软件设计包括软件的结构、 数据接口和过程设计, 其中软件的过程设计是指 oA . 模块间的关系B .系统结构部件转换成软件的过程描述C .软件层次结构D .软件开发过程(65)[ 答案] B[ 考点| 软件工程基础[ 评析]相当于详细设计,比如N -S图就是一种,它不用具体的某种语言实现,但描述了程序的思路,有了这就可以很轻松转换为某种语言的程序源代码。
这是一种系统结构部件转换成软件的过程描述66)为了避免流程图在描述程序逻辑时的灵活性,提出了用方框图来代替传统的程序流程图,通常也把这种图称为 0A. PAD 图B. N-S 图C .结构图D .数据流图(66)[ 答案] B[ 考点| 软件工程基础[ 评析]二级科目的很多教程都在前N-S图的例子,比如C 语言教程基本上都有,程序流程图大部分科目也有例子这里再举个例子比如:如果2 等于3 , 则变量a=l,否则a=0o我们用N-S图表示:转换成V B :If 2 = 3 Thena= lelsea= 0End If转换成 C/ C++/ JAVA:if(2 = 3 )a= l;elsea= 0 ;(6 7 )数据处理的最小单位是 oA .数据B . 数据元素C . 数据项D . 数据结构(6 7 )[ 答案] C[ 考点] 数据结构与算法【 评析]此题比较弱智,本来无从解释 数据“ 过于宏观,比如数据库里的所有内容都可叫数据,它是不是数据处理的最小单位呢?“ 数据元素“ 中的“ 元素” ,如果要死钻牛角尖,的确没” 数据项“ 说得更合适 数据结构” ,这个范围又过于大了68)下列有关数据库的描述,正确的是 oA .数据库是一个DBF文件B .数据库是一个关系C .数据库是一个结构化的数据集合D .数据库是一组文件(68)[ 答案] C[ 考点I数据库设计基础[ 评析]A 错,比如ACCESS数据库的文件是mdb格式的。
B 错,数据库里可能有很多个二维表,一个二维表就是一个关系D 错,虽有些数据库底层是些文件组成的,但是从逻辑结构上来说它与文件完全是2 个概念,数据库管理比文件管理更容易、效率更高、安全性更强69)单个用户使用的数据视图的描述称为 oA .外模式B .概念模式C .内模式D .存储模式(69)[ 答案] A[ 考点I数据库设计基础[ 评析]外模式、模式( 概念模式)、内模式( 存储模式),分别是视图级、概念级、物理级视图级即是用户使用的数据视图级,主要为局部逻辑结构,因为模式上很多个外模式,外模式到模式的映射定义了局部数据逻辑结构与全局逻辑结构之间的对应关系,表现了数据的逻辑独立性模式到内模式则表现了数据物理独立性7 0 )需求分析阶段的任务是确定 oA . 软件开发方法B . 软件开发工具C . 软件开发费用D . 软件系统功能(7 0 )[ 答案] D[ 考点| 软件工程基础[ 评析]据前面的题的解释,相信大家对需求分析有个理性认识了分析员对用户的要求作出分析,并画出数据流程图,该图通俗易懂,不涉及到如何在计算机上实现,这是需求分析阶段,用户也参与,确定软件系统功能是一个重要的任务。
7 1 )算法分析的目的是 oA . 找出数据结构的合理性B . 找出算法中输入和输出之间的关系C . 分析算法的易懂性和可靠性D . 分析算法的效率以求改进(7 1 )[ 答案] D[ 考点I数据结构与算法[ 评析]为什么要讲各种各样的算法,只要达到功能不就行了吗?有些场合为了让程序效率更高,必须改进算法我们二级熟悉的算法改进,如二分法查找比顺序查找更快,仔细分析这些算法以求效率改进再比如选择排序、插值排序、冒泡排序,哪个效率高?我们分析算法,可知如果序列初始比较有序的情况下,冒泡法效率最高各种例子都说明D 是正确答案72) n 个 顶 点 的 强 连 通 图 的 边 数 至 少 有A. n-1B. n(n-l)C. nD. n+1(72)[ 答案] C[ 考点I数据结构与算法[ 评析]此题超纲不用看啦!图这一节超纲,软考的程序员的难度也不考的,等考三级也考不到,只有计算机四级与高级程序员或以上级别才考到关于图的概念,我们在这里结合树来讲通过前面的一些题,我们了解了树与二叉树,其实树也算是图的一种,树从上到下是一对多关系的,而图不单从上到下,而且可以是任意的多对多联系,它还可以有回路( 结点与线合成回路) ,无方向的叫无向图,有箭头方向的叫有向图。
连 通 图 ( 又叫弱连通图) :有顶点间存在通路( 就 是 2点间有条路径,从这可到那)( 如果是有向图,则略去方向) 强连通图:图中任何两点都可相互到达( 有向图不能略去方向) 强连通图一定是弱连通图此题问要是强连通图至少应有的边数,我们可以设想个一个环的特例,假设箭头全部是顺 时 针 ( 或逆时针) ,可以构成任何两点都可到达的强连通图,假设有n 个顶点,我们很快得出它的边数也为n0( 7 3 )已知数据表A 中每个元素距其最终位置不远, 为节省时间, 应采用的算法是 oA .堆排序B . 直接插入排序C快速排序D . 直接选择排序( 7 3 )[ 答案] B[ 考点I 数据结构与算法[ 评析]做此题时,我们可以回想一下每个选项的排序原理堆排序是边建堆边排序的过程,而建堆排序时的效率元素距其最终位置的远近关系不大插入排序是把每个元素挨个比较之前的元素,插入到合适的位置,这种排序的比较次数很不固定,它决定于每个元素距其最终位置快速排序的每一趟可确定一个元素的最终位置,但以某个元素为标准的比较次数还是得比较剩下所有的,它的最大的特点是序列初始无序的情况下排序最快 初始有序并不是每个元素距其最终位置不远,而是有一些最终相邻的元素初始已经相邻了或大致左右的顺序已经好了) 。
直接选择排序,就是每一趟选择序列剩下的元素的一个最大值( 或最小值)挨个排在首端 ( 或尾端) ,是人脑最常使用的方法,所以被人脑最易理解在电脑上,这种排序效率不受其初始位置的影响茂叶特注:上述解释都是我自己的理解,书上并没有如此解释,有错误还望大侠们指正!( 74)用链表表示线性表的优点是 oA .便于插入和删除操作B . 数据元素的物理顺序与逻辑顺序相同C . 花费的存储空间较顺序存储少D . 便于随机存取( 74)[ 答案] A[ 考点I 数据结构与算法[ 评析]我们知道,如果是紧凑排列的话,数组在删除一个其中一个元素时极为不方便,因为它需要把后面的元素都要往前移一个位置( 插入的话则往后移) 而用链表就绝然不同了,它只需要改变指针的指向,指向这指向那的,其它元素都不用动所以便于插入和删除操作 75)下列不属于结构化分析的常用工具的是 oA .数据流图B . 数据字典C . 判定树D. PAD 图(75)[ 答 案 ] D[ 考点| 软件工程基础[ 评 析 1通过前面题的解释,数据流图属于分析阶段相信大家都有所了解了数据字典也是一种分析阶段的工具什 么叫数据字典,我们可以这样理解。
假设给了你一个数据流图,但上面的文字说明,比如“ 看书“ 、“ 练习“ 、“ 考 试 “ 、“ 拿证书” … ( 假设这 些 是 数 据 ( 知 识 )的处理过程,但 可能有些人 认 为 有 个 “ 测 试 ” ,实际上他的意思是“考 试 ” ,如果写在数据流图上,其它人认为是“ 练习测试” 的意思,这就造成了数据流图不一 致 的 理 解 ,而数据流图是开发人员和用户都能看懂的,理解肯定是一致的所以必须有 个数据字典,它标识了数据流图的所有名词述语,就好比我们用英汉词典一样,不会再有不一致的理解了判定树和判定表都是加工描述方法,当然也是分析阶段的P A D 图 ( 问题分析图)是详细设计阶段的工具,它的作用类似于程序流程图和N - S 图关 于 程 序 流 图 和 N - S 图,二级很多科目都有介绍,前面的题中我也解释过 7 6 )软 件 开 发 的 结 构 化 生 命 周 期 方 法 将 软 件 生 命 周 期 划 分 成 A .定 义 、开发、运行维护B .设计阶段、编程阶段、测试阶段C .总体设计、详细设计、编程调试D .需求分析、功能定义、系统设计( 7 6 )[ 答案] A[ 考点| 软件工程基础[ 评析]我们可从一个软件的从无到有的过程来看,就是分析人员先分析,开发人员再开发,最终运行和维护。
7 7 )在软件工程中,白箱测试法可用于测试程序的内部结构此方法将程序看做是A . 循环的集合B . 地址的集合C . 路径的集合D .目标的集合(7 7 )[ 答案] C[ 考点| 软件工程基础[ 评析]白盒测试,我们要深入源代码的内部;而黑盒测试,我们只关心输入与输出数据是否符合要求7 8 )在数据管理技术发展过程中,文件系统与数据库系统的主要区别是数据库系统具有A . 数据无冗余B . 数据可共享C . 专门的数据管理软件D . 特定的数据模型(7 8 )[ 答案] D[ 考点I 数据库设计基础[ 评析]文件根据一些压缩技术也可减少冗余,数据库也有冗余,只是比文件少;文件也可共享,只是比数据库共享性能差;也有专门的文件管理软件;数据库发展的模型依次是:层次模型、网状模型、关系模型、面向对象模型其中关系模型目前应用最广泛79)分布式数据库系统不具有的特点是 oA .分布式B .数据冗余C .数据分布性和逻辑整体性D .位置透明性和复制透明性(79)[ 答案] B[ 考点I数据库设计基础[ 评析]如果论特点,当然是优点,数据冗余是种害处,怎能论特点?何况分布式数据库还减少了冗余80)下列说法中,不 属 于 数 据 模 型 所 描 述 的 内 容 的 是。
A .数据结构B .数据操作C .数据查询D .数据约束(80)[ 答案] C[ 考点I数据库设计基础[ 评析]数据模型的三要素1 . 数据结构数据结构用于描述系统的静态特性在数据库系统中,通常按照其数据结构的类型来命名数据模型2 . 数据操作数据操作用于描述系统的动态特征 数据操作是指对数据库中各种对象( 型) 的实例( 值)允许执行的操作的集合,包括操作及有关的操作规则操作有检索、插入、删除、修改3 . 数据完整性约束数据完整性约束是一组完整性规则的集合完整性规则是给定的数据模型中数据及其联系所具有的制约和储存规则,用以限定符合数据模型的数据库状态以及状态的变化,以保证数据的正确、有效和相容数据模型应该反映和规定本数据模型必须遵守的、基本的、通用的完整性约束此外,数据模型还应该提供定义完整性约束的机制,以反映具体应用所涉及的数据必须遵守的特定的语义约束4 0 个填空题(1 )算法的复杂度主要包括 复杂度和空间复杂度答:时间(2 )数据的逻辑结构在计算机存储空间中的存放形式称为数据的 o答:模式# 逻辑模式# 概念模式(3 )若按功能划分,软件测试的方法通常分为白盒测试方法和 测试方法。
答:黑盒(4 )如果一个工人可管理多个设施, 而一个设施只被一个工人管理, 则实体“ 工人” 与实体” 设备” 之间存在 联系答:一对多#1 : N#l: n(5 )关系数据库管理系统能实现的专门关系运算包括选择、连接和 o答:投影(6 )在先左后右的原则下,根据访问根结点的次序,二叉树的遍历可以分为三种:前序遍历、遍历和后序遍历答:中序(7 )结构化程序设计方法的主要原则可以概括为自顶向下、 逐步求精、和限制使用goto语句o答:模块化(8 )软件的调试方法主要有:强行排错法、和原因排除法答:回溯法(9 )数据库系统的三级模式分别为 模式、内部级模式与外部级模式答:概念# 概念级(1 0 )数据字典是各类数据描述的集合,它通常包括5个部分,即数据项、数据结构、数据流、和处理过程答:数据存储(11)设一棵完全二叉树共有500个结点,则在该二叉树中有 个叶子结点答:250(12)在最坏情况下,冒 泡 排 序 的 时 间 复 杂 度 为答:n(n-l)/2#n*(n-l)/2#O(n(n-l)/2)#O(n*(n-l)/2)(13)面向对象的程序设计方法中涉及的对象是系统中用来描述客观事物的一个 o答:实体(14)软件的需求分析阶段的工作,可以概括为四个方面:、需求分析、编写需求规格说明书和需求评审。
答:需求获取( 15) 是数据库应用的核心答:数据库设计(16)数据结构包括数据的 结构和数据的存储结构答:逻辑(17)软件工程研究的内容主要包括:技术和软件工程管理答:软件开发(18)与结构化需求分析方法相对应的是 方法答:结构化设计(1 9 )关系模型的完整性规则是对关系的某种约束条件,包括实体完整性、和自定义完整性答:参照完整性(2 0 )数据模型按不同的应用层次分为三种类型,它们是 数据模型、逻辑数据模型和物理数据模型答:概念(2 1 )栈的基本运算有三种:入栈、退栈和 o答:读栈顶元素# 读栈顶的元素# 读出栈顶元素(2 2 )在面向对象方法中,信息隐蔽是通过对象的 性来实现的答:封装(2 3 )数据流的类型有 和事务型答:变换型(2 4 )数据库系统中实现各种数据管理功能的核心软件称为答:数据库管理系统# D B M S(2 5 )关系模型的数据操纵即是建立在关系上的数据操纵,一般有、增加、删除和修改四种操作答:查询(2 6 )实现算法所需的存储单元多少和算法的工作量大小分别称为算法的 答:空间复杂度和时间复杂度(2 7 )数据结构包括数据的逻辑结构、数据的 以及对数据的操作运算。
答:存储结构(2 8 ) 一个类可以从直接或间接的祖先中继承所有属性和方法采用这个方法提高了软件的 O答:可重用性(2 9 )面向对象的模型中,最基本的概念是对象和 0答:类(3 0 )软件维护活动包括以下几类:改正性维护、适应性维护、维护和预防性维护答:完善性(3 1 )算法的基本特征是可行性、确定性、和拥有足够的情报答:有穷性(3 2 )顺序存储方法是把逻辑上相邻的结点存储在物理位置 的存储单元中答:相邻(33) Jackson结构化程序设计方法是英国的M.Jackson提出的, 它是一种面向 的设计方法答:数据结构(34)数据库设计分为以下6 个设计阶段:需求分析阶段、、逻辑设计阶段、物理设计阶段、实施阶段、运行和维护阶段答:概念设计阶段# 数据库概念设计阶段(35)数据库保护分为:安全性控制、、并发性控制和数据的恢复答:完整性控制(36)测试的目的是暴露错误,评价程序的可靠性;而 的目的是发现错误的位置并改正错误答:调试(37)在最坏情况下,堆 排 序 需 要 比 较 的 次 数 为答:O(nlog2n)(38)若串s="Program”,则 其 子 串 的 数 目 是答:29(39) 一个项目具有一个项目主管,一个项目主管可管理多个项目,则实体” 项目主管” 与实体” 项目” 的联系属于 的联系。
答:1对多#1: N(4 0 )数据库管理系统常见的数据模型有层次模型、网状模型和 三种答:关系模型。
