计算机二级公共基础备考资料

  

千里教育

二级公共基础知识总结

第一章数据结构与算法

1.1算法

算法:是指解题方案的确切而完整的描述。

算法不等于程序,也不等计算机技巧,程序的编制不可能优于算法的设计。

算法的基本特点:是一组严谨地定义运算次序的规则,每一个规则都是有效的,是明晰的,此次序将在有限的次数下中止。特点包括:

(1)可行性;

(2)确定性,算法中每一步骤都必须有明晰定义,不充许有模棱两可的解释,不容许有多义性;

(3)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后中止,包括合理的执行时间的含意;

(4)拥有足够的情报。

算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。

指令系统:一个计算机系统能执行的所有指令的集合。

基本运算包括:算术运算、逻辑运算、关系运算、数据传输。

算法的控制结构:次序结构、选择结构、循环结构。

算法基本设计方式:列出法、归纳法、递推、递归、减斗递推技术、回溯法。

算法复杂度:算法时间复杂度和算法空间复杂度。

算法时间复杂度是指执行算法所须要的估算工作量。

算法空间复杂度是指执行这个算法所须要的显存空间。

1.2数据结构的基本概念

数据结构研究的三个方面:

(1)数据集合中各数据元素之间所固有的逻辑关系,即数据的逻辑结构;

(2)在对数据进行处理时,各数据元素在计算机中的储存关系,即数据的储存结构;

(3)对各类数据结构进行的运算。

数据结构是指互相有关联的数据元素的集合。

数据的逻辑结构包含:

(1)表示数据元素的信息;

(2)表示各数据元素之间的前后件关系。

数据的储存结构有次序、链接、索引等。

线性结构条件:

(1)有且只有一个根结点;

(2)每一个结点最多有一个前件,也最多有一个后件。

非线性结构:不满足线性结构条件的数据结构。

1.3线性表及其次序储存结构

线性表是由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。

在复杂线性表中,由若干项数据元素组成的数据元素称为记录,而由多个记录构成的线性表又称为文件。

非空线性表的结构特点:

(1)且只有一个根结点a1,它无前件;

(2)有且只有一个终端结点an,它无后件;

(3)除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。结点个数n称为线性表的宽度,当n=0时,称为空表。

线性表的次序储存结构具有以下两个基本特征:

(1)线性表中所有元素的所占的储存空间是连续的;

(2)线性表中各数据元素在储存空间中是按逻辑次序依次储存的。

ai的储存地址为:ADR(ai)=ADR(a1)+(i-1)k,,ADR(a1)为第一个元素的地址,k代表每位元素占的字节数。

次序表的运算:插入、删除。(详见14--16页)

1.4栈和队列

栈是限定在一端进行插入与删掉的线性表,容许插入与删掉的一端称为栈顶,不容许插入与删掉的另一端称为栈底。

栈根据“先进后出”(FILO)或“后进先出”(LIFO)组织数据,栈具有记忆作用。用top表示栈顶位置,用表示栈底。

栈的基本运算:(1)插入元素称为入栈运算;(2)删掉元素称为退栈运算;(3)读栈顶元素是将栈顶元素赋给一个指定的变量,此时表针无变化。

队列是指容许在一端(队尾)步入插入,而在另一端(队头)进行删掉的线性表。Rear表针指向队尾,front表针指向队头。

队列是“先进行出”(FIFO)或“后进后出”(LILO)的线性表。

队列运算包括(1)入队运算:从队尾插入一个元素;(2)退队运算:从队头删掉一个元素。

循环队列:s=0表示队列空,s=1且front=rear表示队列满

循环队列计算机元素个数:

(real-front+)%

1.5线性数组

数据结构中的每一个结点对应于一个储存单元,这些储存单元称为储存结点,简称结点。

结点由两部份组成:(1)用于储存数据元素值,称为数据域;(2)用于储存表针,称为表针域,用于指向前一个或后一个结点。

在链式储存结构中,储存数据结构的储存空间可以不连续,各数据结点的储存次序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由表针域来确定的。

链式储存方法即可用于表示线性结构,也可用于表示非线性结构。

线性数组,HEAD称为头表针,HEAD=NULL(或0)称为空表,倘若是两表针:左表针(Llink)指向前件结点,右表针(Rlink)指向后件结点。

线性数组的基本运算:查找、插入、删除。

1.6树与二叉树

树是一种简单的非线性结构,所有元素之间具有显著的层次特点。

在树结构中,每一个结点只有一个前件,称为父结点,没有前件的结点只有一个,称为树的根结点,简称树的根。每一个结点可以有多个后件,称为该结点的子结点。没有后件的结点称为叶子结点。

在树结构中,一个结点所拥有的后件的个数称为该结点的度,所有结点中最大的度称为树的度。树的最大层次称为树的深度。

二叉树的特征:(1)非空二叉树只有一个根结点;(2)每一个结点最多有两棵子树,且分别名为该结点的左子树与右子树。

二叉树的基本性质:

性质1:在二叉树的第k层上,最多有2k-1(k≥1)个结点。

性质2:深度为m的二叉树最多有2m-1个结点。

性质3:在任意一棵二叉树中,度为0的结点(即叶子结点)总比度为2的结点多一个。

性质4:具有n个结点的二叉树,其深度起码为[log2n]+1,其中[log2n]表示log2n的整数部份。

(5)具有n个结点的完全二叉树的深度为[log2n]+1;

(6)设完全二叉树共有n个结点。倘若从根结点开始,按层序(每一层从左到右)用自然数1,2,….n给结点进行编号(k=1,2….n),有以下推论:

①若k=1,则该结点为根结点,它没有父结点;若k>1,则该结点的父结点编号为INT(k/2);

②若2k≤n,则编号为k的结点的左子结点编号为2k;否则该结点无左子结点(也无右子结点);

③若2k+1≤n,则编号为k的结点的右子结点编号为2k+1;否则该结点无右子结点。

满二叉树是指除最后一层外,每一层上的所有结点有两个子结点,则k层上有2k-1个结点深度为m的满二叉树有2m-1个结点。

完全二叉树是指除最后一层外,每一层上的结点数均达到最大值,在最后一层上只缺乏一侧的若便秘点。

二叉树储存结构采用链式储存结构,对于满二叉树与完全二叉树可以按层序进行次序储存。

二叉树的遍历:

(1)前序遍历(DLR),首先访问根结点,之后遍历左子树,最后遍历右子树;

(2)中序遍历(LDR),首先遍历左子树,之后访问根结点,最后遍历右子树;

(3)后序遍历(LRD)首先遍历左子树,之后访问遍历右子树,最后访问根结点。

1.7查找技术

次序查找的使用情况:

(1)线性表为无序表;

(2)表采用链式储存结构。

二分法查找只适用于次序储存的有序表,对于宽度为n的有序线性表,最坏情况只需比较log2n次。

1.8排序技术

排序是指将一个无序序列整理成按值非递减次序排列的有序序列。

交换类排序法:(1)冒泡排序法,须要比较的次数为n(n-1)/2;(2)快速排序法。

插入类排序法:(1)简单插入排序法,最坏情况须要n(n-1)/2次比较;(2)希尔排序法,最坏情况须要O(n1.5)次比较。

选择类排序法:(1)简单选择排序法,最坏情况须要n(n-1)/2次比较;(2)堆排序法,最坏情况须要O()次比较。

第二章程序设计基础

2.1程序设计设计方式和风格

怎样产生良好的程序设计风格

1、源程序文档化;2、数据说明的技巧;

3、语句的结构;4、输入和输出。

注释分引言性注释和功能性注释,句子结构清晰第一、效率第二。

2.2结构化程序设计

结构化程序设计方式的四条原则是:1.自顶向上;2.逐渐求精;3.模块化;4.限制使用goto句子。

结构化程序的基本结构和特性:

(1)次序结构:一种简单的程序设计,最基本、最常用的结构;

(2)选择结构:又称分支结构,包括简单选择和多分支选择结构,可依照条件,判定应当选择哪一条分支来执行相应的句子序列;

(3)循环结构:可依照给定条件,判定是否须要重复执行某一相同程序段。

2.3面向对象的程序设计

面向对象的程序设计:以60年代末英国格拉斯哥学院和英国计算机中心研发的语言为标志。

面向对象方式的优点:

(1)与人类习惯的思维方式一致;

(2)稳定性好;

(3)可重用性好;

(4)便于开发小型软件产品;

(5)可维护性好。

对象是面向对象方式中最基本的概念,可以拿来表示客观世界中的任何实体,对象是实体的具象。

面向对象的程序设计方式中的对象是系统中拿来描述客观事物的一个实体,是构成系统的一个基本单位,由一组表示其静态特点的属性和它可执行的一组操作组成。

属性即对象所包含的信息,操作描述了对象执行的功能,操作称作为方式或服务。

对象的基本特征:

(1)标示唯一性;

(2)分类性;

(3)多态性;

(4)封装性;

(5)模块独立性好。

类是指具有共同属性、共同方式的对象的集合。所以类是对象的具象,对象是对应类的一个实例。

消息是一个实例与另一个实例之间传递的信息。

消息的组成包括(1)接收消息的对象的名称;(2)消息标示符,俗称消息名;(3)零个或多个参数。

承继是指才能直接获得已有的性质和特点,而毋须重复定义她们。也指类之间共享属性和操作机制。

承继分单承继和多重承继。单承继指一个类只容许有一个父类,多重承继指一个类容许有多个父类。

多态性是指同样的消息被不同的对象接受时可造成完全不同的行动的现象

第三章软件工程基础

3.1软件工程基本概念

计算机软件是包括程序、数据及相关文档的完整集合。

软件的特性包括:

(1)软件是一种逻辑实体;

(2)软件的生产与硬件不同,它没有显著的制做过程;

(3)软件在运行、使用期间不存在锈蚀、老化问题;

(4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这引起了软件移植的问题;

(5)软件复杂性高,成本高昂;

(6)软件开发涉及众多的社会诱因。

软件按功能分为应用软件、系统软件、支撑软件(或工具软件)。

软件危机主要表现在成本、质量、生丰度等问题。

软件工程是应用于计算机软件的定义、开发和维护的一整套方式、工具、文档、实践标准和工序。

软件工程包括3个要素:方式、工具和过程。

软件工程过程是把软件转化为输出的一组彼此相关的资源和活动,包含4种基本活动:

(1)P——软件尺寸说明;

(2)D——软件开发;

(3)C——软件确认;

(4)A——软件演变。

软件周期:软件产品从提出、实现、使用维护到停止使用退役的过程。

软件生命周期三个阶段:软件定义、软件开发、运行维护,主要活动阶段是:

(1)可行性研究与计划拟定;

(2)需求剖析;

(3)软件设计;

(4)软件实现;

(5)软件测试;

(6)运行和维护。

软件工程的目标和与原则:

目标:在给定成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品。

基本目标:付出较低的开发成本;达到要求的软件功能;取得较好的软件性能;开发软件便于移植;须要较低的费用;能按量完成开发,及时交付使用。

基本原则:具象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。

软件工程的理论和技术性研究的内容主要包括:软件开发技术和软件工程管理。

软件开发技术包括:软件开发方式学、开发过程、开发工具和软件工程环境。

软件工程管理包括:软件管理学、软件工程经济学、软件心理学等内容。

软件管理学包括人员组织、进度安排、质量保证、配置管理、项目计划等。

软件工程原则包括具象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。

3.2结构化剖析方式

结构化方式的核心和基础是结构化程序设计理论。

需求剖析方式有(1)结构化需求剖析方式;(2)面向对象的剖析的方式。

从需求剖析构建的模型的特点来分:静态剖析和动态剖析。

结构化剖析方式的实质:着眼于数据流,自顶向上,逐层分解,构建系统的处理流程,以数据流图和数据字典为主要工具,构建系统的逻辑模型。

结构化剖析的常用工具

(1)数据流图;(2)数据字典;(3)判断树;(4)判断表。

数据流图:描述数据处理过程的工具,是需求理解的逻辑模型的图形表示,它直接支持系统功能建模。

数据字典:对所有与系统相关的数据元素的一个有组织的列表,以及精确的、严格的定义,致使用户和系统剖析员对于输入、输出、存储成份和中间估算结果有共同的理解。

判断树:从问题定义的文字描述短发清什么是判断的条件,什么是判断的推论,依照描述材料中的联接词找出判断条件之间的从属关系、并列关系、选择关系,依据它们构造判断树。

判断表:与判断树相像,当数据流图中的加工要依赖于多个逻辑条件的取值,即完成该加工的一组动作是因为某一组条件取值的组合而引起的,使用判别表描述比较适合。

数据字典是结构化剖析的核心。

软件需求尺寸说明书的特征:

(1)正确性;

(2)无岐义性;

(3)完整性;

(4)可验证性;

(5)一致性;

(6)可理解性;

(7)可追踪性。

3.3结构化设计方式

软件设计的基本目标是用比较具象概括的方法确定目标系统怎样完成预定的任务,软件设计是确定系统的数学模型。

软件设计是开发阶段最重要的步骤,是将需求确切地转化为完整的软件产品或系统的惟一途径。

从技术观点来看,软件设计包括软件结构设计、数据设计、接口设计、过程设计。

结构设计:定义软件系统各主要部件之间的关系。

数据设计:将剖析时创建的模型转化为数据结构的定义。

插口设计:描述软件内部、软件和协作系统之间以及软件与人之间怎样通讯。

过程设计:把系统结构部件转换成软件的过程描述。

从工程管理角度来看:概要设计和详尽设计。

软件设计的通常过程:软件设计是一个迭代的过程;先进行高层次的结构设计;后进行低层次的过程设计;穿插进行数据设计和插口设计。

评判软件模块独立性使用耦合性和内聚性两个定性的测度标准。

在程序结构中各模块的内聚性越强,则耦合性越弱。优秀软件应高内聚,低耦合。

软件概要设计的基本任务是:

(1)设计软件系统结构;(2)数据结构及数据库设计;

(3)编撰概要设计文档;(4)概要设计文档评审。

模块用一个圆形表示,箭头表示模块间的调用关系。

在结布光中还可以用带注释的箭头表示模块调用过程中来回传递的信息。还可用带实心圆的箭头表示传递的是控制信息,空心圆箭心表示传递的是数据。

结布光的基本方式:基本方式、顺序方式、重复方式、选择方式。

结布光有四种模块类型:传入模块、传出模块、变换模块和协调模块。

典型的数据流类型有两种:变换型和事务型。

变换型系统结布光由输入、中心变换、输出三部份组成。

事务型数据流的特征是:接受一项事务,按照事务处理的特征和性质,选择分派一个适当的处理单元,之后给出结果。

详尽设计:是为软件结布光中的每一个模块确定实现算法和局部数据结构,用某种选取的抒发工具表示算法和数据结构的细节。

常见的过程设计工具有:图形工具(程序流程图)、表格工具(判断表)、语言工具(PDL)。

3.4软件测试

软件测试定义:使用人工或手动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求或是弄清预期结果与实际结果之间的差异。

软件测试的目的:发觉错误而执行程序的过程。

软件测试方式:静态测试和动态测试。

静态测试包括代码检测、静态结构剖析、代码质量测度。不实际运行软件,主要通过人工进行。

动态测试:是基本计算机的测试,主要包括白盒测试方式和黑盒测试方式。

白盒测试:在程序内部进行,主要用于完成软件内部CAO作的验证。主要方式有逻辑覆盖、基本基路径测试。

黑盒测试:主要确诊功能不对或遗漏、界面错误、数据结构或外部数据库访问错误、性能错误、初始化和中止条件错,用于软件确认。主要方式有等价类界定法、边界值剖析法、错误推论法、因果图等。

软件测试过程通常按4个步骤进行:单元测试、集成测试、验收测试(确认测试)和系统测试。

3.5程序的调试

程序调试的任务是确诊和改正程序中的错误,主要在开发阶段进行。

程序调试的基本步骤:

(1)错误定位;

(2)更改设计和代码,以排除错误;

(3)进行回归测试,避免引进新的错误。

软件调试可分表静态调试和动态调试。静态调试主要是指通过人的思维来剖析源程序代码和排错,是主要的设计手段,而动态调试是辅助静态调试。主要调试方式有:

(1)强行排错法;

(2)回溯法;

(3)缘由排除法。

第四章数据库设计基础

4.1数据库系统的基本概念

数据:实际上就是描述事物的符号记录。

数据的特性:有一定的结构,有型与值之分,如整型、实型、字符型等。而数据的值给出了符合定型的值,如整型值15。

数据库:是数据的集合,具有统一的结构方式并储存于统一的储存介质内,是多种应用数据的集成,并可被各个应用程序共享。

数据库储存数据是按数据所提供的数据模式储存的,具有集成与共享的特性。

数据库管理系统:是在操作系统支持下的系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,是数据库的核心。

数据库管理系统功能:

(1)数据模式定义:即为数据库建立其数据框架;

(2)数据存取的数学建立:为数据模式的数学存取与建立提供有效的存取方式与手段;

(3)数据操纵:为用户使用数据库的数据提供便捷,如查询、插入、修改、删除等以及简单的算术运算及统计;

(4)数据的完整性、安生性定义与检测;

(5)数据库的并发控制与故障恢复;

(6)数据的服务:如拷贝、转存、重组、性能检测、分析等。

为完成以上六个功能,数据库管理系统提供以下的数据语言:

(1)数据定义语言:负责数据的模式定义与数据的数学存取建立;

(2)数据操纵语言:负责数据的操纵,如查询与增、删、改等;

(3)数据控制语言:负责数据完整性、安全性的定义与检测以及并发控制、故障恢复等。

数据语言按其使用方法具有两种结构方式:交互式命令(又称自含型或自主型语言)和寄主型语言(通常可嵌入个别寄主语言中)。

数据库管理员:对数据库进行规划、设计、维护、监视等的专业管理人员。

数据库系统:由数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、硬件平台(硬件)、软件平台(软件)五个部份构成的运行实体。

数据库应用系统:由数据库系统、应用软件及应用界面两者组成。

数据库应用系统的核心问题是:数据库设计。

数据管理技术发展经历的阶段:人工管理阶段、文件系统阶段、数据库系统阶段、分布式数据库系统阶段和面向对象的数据库系统阶段。数据共享性最好的阶段是数据库系统阶段。

数据库系统的基本特性:数据的集成性、数据的高共享性与低冗余性、数据独立性(化学独立性与逻辑独立性)、数据统一管理与控制。

数据库系统的五级模式:

(1)概念模式:数据库系统中全局数据逻辑结构的描述,全体用户公共数据视图;

一个数据库系统只用一个概念模式

(2)外模式:俗称子模式与用户模式。是用户的数据视图,也就是用户所看到的数据模式;

外模式反应了用户对数据的要求,一个数据库可以有多个外模式

(3)内模式:又称化学模式,它给出了数据库化学储存结构与化学存取方式。

一个数据库只用一个内模式

数据库系统的两级映射:

(1)概念模式到内模式的映射;

(2)外模式到概念模式的映射。

4.2数据模型

数据模型的概念:是数据特点的具象,从具象层次上描述了系统的静态特点、动态行为和约束条件,为数据库系统的信息表与操作提供一个具象的框架。描述了数据结构、数据操作及数据约束。

数据发展过程中形成三种基本的数据模型:层次模型、网状模型、关系模型。

E-R模型的基本概念

(1)实体:现实世界中的事物;

(2)属性:事物的特点;

(3)联系:现实世界中事物间的关系。实体集的关系有一对一、一对多、多对多的联系。

在E-R模型中,用方形表示实体型,用矩形表示实体之前的关系,用椭圆表示实体的属性。

E-R模型三个基本概念之间的连接关系:实体是概念世界中的基本单位,属性有属性域,每位实体可取属性域内的值。一个实体的所有属性值叫元组。

层次模型的基本结构是树状结构,具有以下特性:

(1)每棵树有且仅有一个无双亲结点,称为根;

(2)树中除根外所有结点有且仅有一个双亲。

从数论上看,网状模型是一个不加任何条件限制的无向图。

关系模型采用二维表来表示,简称表,由表结构及表的元组组成。一个二维表就是一个关系。

在二维表中凡能惟一标示元组的最小属性称为键或码。从所有侯选健中选定一个作为用户

使用的键称字段。表A中的某属性是某表B的键,则称该属性集为A的字段或外码。

一个关系应当有一个或则多个字段。

关系中的数据约束:

(1)实体完整性约束:约束关系的字段中属性值不能为空值;

(2)参照完全性约束:是关系之间的基本约束;

(3)用户定义的完整性约束:它反映了具体应用中数据的语义要求。

4.3关系代数

关系数据库系统的特征之一是它构建在数据理论的基础之上,有好多数据理论可以表示关系模型的数据操作,其中最为知名的是关系代数与关系演算。

关系模型的基本运算:

(1)插入(2)删掉(3)更改(4)查询(包括投影、选择、笛卡尔积运算)

4.4数据库设计与管理

数据库设计是数据应用的核心。

数据库设计的两种方式:

(1)面向数据:以信息需求为主,兼具处理需求;

(2)面向过程:以处理需求为主,兼具信息需求。

数据库的生命周期:需求剖析阶段、概念设计阶段、逻辑设计阶段、物理设计阶段、编码阶段、测试阶段、运行阶段、进一步更改阶段。

需求剖析常用结构析技巧和面向对象的方式。结构化剖析(简称SA)方式用自顶向上、逐层分解的方法剖析系统。用数据流图抒发数据和处理过程的关系。对数据库设计来讲,数据字典是进行详尽的数据搜集和数据剖析所获得的主要结果。

在数据库设计中,在需求剖析阶段构建数据字典

数据字典是各种数据描述的集合,包括5个部份:数据项、数据结构、数据流(可以是数据项,也可以是数据结构)、数据储存、处理过程。

数据库概念设计的目的是剖析数据内在语义关系。

 

文章来源:人力资源和社会保障

内容版权声明:除非注明,否则皆为本站原创文章。

转载注明出处:http://www.luzai.cnhttp://www.luzai.cn/html/220798.html