《计算机二级公共学习基础知识材料.doc》由会员分享,可在线阅读,更多相关《计算机二级公共学习基础知识材料.doc(13页珍藏版)》请在淘文阁 - 分享文档赚钱的网站上搜索。
1、+第一章 数据结构与算法1.算法算法:是指解题方案的准确而完整的描述。算法不等于程序,也不等于计算方法,程序的编制不可能优于算法的设计。 算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。特征包括: (1)可行性; (2)确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可的解释,不允许有多义性; (3)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义; (4)拥有足够的情报。 算法的基本要素:一是对数据对象的运算和操作;二是算法的控制结构。算法的三种基本控制结构:顺序结构、选择结构、循环结
2、构。算法复杂度包括:算法时间复杂度和算法空间复杂度。算法时间复杂度是指执行算法所需要的计算工作量。算法空间复杂度是指执行这个算法所需要的内存空间。 案例0.算法的有穷性是指 (D)A.算法只能被有限的用户使用B.算法程序的长度是有限的C.算法程序所处理的数据量是有限的D.算法程序的运行时间是有限的案例1.下列叙述中正确的是 (BG) A.一个算法的时间复杂度大,则其空间复杂度必定小B.算法的时间复杂度与空间复杂度没有直接关系C.一个算法的空间复杂度大,则其时间复杂度也必定大D.算法的时间复杂度与空间复杂度一定相关E.算法的效率只与问题的规模有关,而与数据的存储结构无关F.数据的逻辑结构与存储结
3、构是一一对应的G.算法的时间复杂度是指执行算法所需要的计算工作量2.栈及其基本运算 栈是限定在一端进行插入与删除运算的线性表。 在栈中,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。栈顶元素总是最后被插入的元素,栈底元素总是最先被插入的元素。即栈是按照“先进后出”或“后进先出”的原则组织数据的。 栈的基本运算:1) 插入元素称为入栈运算;2)删除元素称为退栈运算;案例2.一个栈的初始状态为空。先将元素1,2,3,A,B,C依次入栈,然后再依次出栈,则元素出栈的顺序是_ _ (C,B,A,3,2,1)3.队列及其基本运算 队列是指允许在一端(队尾)进入插入,而在另一端(队头)进
4、行删除的线性表。尾指针(Rear)指向队尾元素,头指针(front)指向排头元素的前一个位置(队头)。 队列是“先进先出”或“后进后出”的线性表。 队列运算包括:1)入队运算:从队尾插入一个元素;2)退队运算:从队头删除一个元素。案例3.下列与队列结构有关联的是 (A)A.先到先服务的作业调度B.函数的递归调用C.数组元素的引用D.多重循环的执行4.循环队列及其运算:所谓循环队列,就是将队列存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。在循环队列中,用队尾指针rear指向队列中的队尾元素,用排头指针front指向排头元素的前一个位置,因此,从头指针front指向的
5、后一个位置直到队尾指针rear指向的位置之间,所有的元素均为队列中的元素。 循环队列中元素的个数=rear-front。 案例4.下列叙述中正确的是 (B)A.循环队列有队头和队尾两个指针,因此循环队列是非线性结构B.循环队列中元素的个数是由队头指针和队尾指针共同决定C.在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况D.在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况案例5.设循环队列的存储空间为Q(1:35),初始状态为front=rear=35.现经过一系列入队与退队运算后, front=15, rear=15,则循环队列中的元素个数为 (A)A.0或35 B.1
6、5C.20D.16解析:循环队列中的元素个数的计算方法是:队尾-队头1.如果大于0,rear-front 即为元素的个数。2.如果小于0,rear-front+空间容量 即为元素个数。3.如果等于0,元素个数为0或空间容量。5.二叉树及其基本性质 二叉树是一种非线性结构,它具有以下两个特点:1)非空二叉树只有一个根结点;2)每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树。 根据二叉树的概念可知,二叉树的度可以为0(叶结点)、1(只有一棵子 树)或2(有2棵子树)。 二叉树考点1:在任意一棵二叉树中,度数为0的结点(即叶子结点)总比度为2的结点多一个。叶子数(度为0)=度为2结点数+
7、1二叉树考点2: 二叉树的深度即二叉树的层次数二叉树考点3:总结点数=度为2的结点数+度为1的结点数+度为0的结点数(叶子)案例6.某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层) _ 。 (7)案例7.一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为_ _ 。 (16)_解析:叶子结点数=度为2的结点数+1 5 = ? +1求得度为2的结点数为4 总结点数=度为2的结点数+度为1的结点数+度为0的结点数(叶子) 25 =4 + ? +5求得度为1的结点数为16二叉树考点4:二叉树的遍历二叉树的遍历是指不重复地访问二叉树中的所有结点。二叉树的
8、遍历可以分为以下三种: (1)前序遍历:若二叉树为空,则结束返回。否则:首先访问根结点,然后遍历 左子树,最后遍历右子树。 (2)中序遍历:若二叉树为空,则结束返回。否则:首先遍历左子树,然后访问根结点,最后遍历右子树。 (3)后序遍历:若二叉树为空,则结束返回。否则:首先遍历左子树,然后遍历右子树,最后访问根结点。案例8. 对下列二叉树进行前序遍历的结果为_ _ (ABDYECFXZ)6.线性表由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的称为线性表。线性表是由n(n0)个数据元素组成的一个有限序列,表中的每一个数据元素,除了第一个外,有且只有一个前件,除了
9、最后一个外,有且只有一个后件。线性表中数据元素的个数称为线性表的长度。线性表可以为空表。 线性表是一种存储结构,它的存储方式:顺序和链式。 线性表的顺序存储结构具有两个基本特点:(1)线性表中所有元素所占的存储空间是连续的;(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。 由此可以看出,在线性表的顺序存储结构中,其前后件两个元素在存储空间中是紧邻的,且前件元素一定存储在后件元素的前面,可以通过计算机直接确定第i个结点的存储地址。 顺序表的插入、删除运算线性表的链式存储结构(线性链表) 数据结构中的每一个结点对应于一个存储单元,这种存储单元称为存储结点,简称结点。 结点由两部分组成:
10、(1)用于存储数据元素值,称为数据域;(2)用于存放指针,称为指针域,用于指向前一个或后一个结点。 在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的。 链式存储方式既可用于表示线性结构,也可用于表示非线性结构。 线性结构条件: (1)有且只有一个根结点; (2)每一个结点最多有一个前件,也最多有一个后件。 非线性结构:不满足线性结构条件的数据结构。 案例9.下列叙述中正确的是 (A)A.循环队列是队列的一种顺序存储结构B.循环队列是非线性结构 C.循环队列是一种逻辑结构 D.循环队列是队列的一
11、种链式存储结构解析:常见的线性结构有:队列、栈。非线性结构有:树、二叉树 案例10.下列叙述中正确的是 (CE)A.线性表链式存储结构与顺序存储结构所需要的存储空间是相同的 (不相同)B.线性表链式存储结构所需要的存储空间一般要少于顺序存储结构 (多于)C.线性表链式存储结构所需要的存储空间一般要多于顺序存储结构D.线性表链式存储结构与顺序存储结构的存储空间都是连续的E.线性表链式存储结构的存储空间可以是连续的,也可以是不连续的7.排序排序是指将一个无序序列整理成按值非递减顺序排列的有序序列,即是将无序的记录序列调整为有序记录序列的一种操作。冒泡排序、快速排序、直接插入排序:假设线性表的长度为
12、n,则在最坏情况下,需要比较的次数为n(n-1)/2堆排序:在最坏情况下,需要比较的次数为nlog2n8.顺序查找和二分查找顺序查找又称为顺序搜索。顺序查找一般是指在线性表中查找指定的元素下面两种情况1.如果线性表为无序表(即表中元素排序是无序的),则不管是顺序存储结构还是链式存储结构,都只能用顺序查找2.即使是有序线性表,如果采用链式存储结构,也只能用于顺序查找二分查找只适用于顺序存储的有序表。在此所说的有序表是指线性表中的元素按值非递减排序(即从小到大,但允许相邻元素值相等)。当有序线性表为顺序存储时才能采用二分查找,对于长度为n的有序线性表,在最坏情况下,二分查找只需要比较log2n次
13、,而顺序查找需要比较n次。案例11.对长度为n的线性表排序,在最坏情况下,比较次数不是n(n-1)/2的排序方法是 (C)A.快速排序 B.冒泡排序C.堆排序 D.直接插入排序案例12.在长度为n的有序线性表中进行二分查找,最坏情况下需要比较的次数是 (A)A.O(log2n) B.O(nlog2n)C.O(n2)D.O(n)案例13.对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次(B)A.9 B.45C.90D.10第二章 软件工程基本概念1.计算机软件是包括程序、数据及相关文档的完整集合。 软件按功能分为应用软件、系统软件、支撑软件(或工具软件)。 软件危机主要表现在成本、质量、
14、生产率等问题。 软件周期:软件产品从提出、实现、使用维护到停止使用退役的过程。 软件生命周期三个阶段:软件定义、软件开发、运行维护,主要活动阶段是: (1)可行性研究与计划制定;(2)需求分析; (3)软件设计;(4)软件实现;(5)软件测试;(6)运行和维护。 衡量软件模块独立性使用耦合性和内聚性两个定性的度量标准。 在程序结构中各模块的内聚性越强,则耦合性越弱。优秀软件应高内聚,低耦合。 内聚性是指一个模块内部各个元素间彼此结合的紧密程度耦合性是指模块间相互连接的紧密程度2.软件测试 软件测试的目的:发现错误而执行程序的过程。 软件测试方法:静态测试和动态测试。 静态测试包括代码检查、静态
15、结构分析、代码质量度量。不实际运行软件,主要通过人工进行。 动态测试:是基本计算机的测试,主要包括白盒测试方法和黑盒测试方法。 白盒测试:在程序内部进行,主要用于完成软件内部CAO作的验证。主要方法有逻辑覆盖、基本基路径测试。 黑盒测试:在黑盒测试方法中,设计测试用例的主要根据是程序外部功能。主要方法有等价类划分法、边界值分析法、错误推测法、因果图等。 软件测试过程一般按4个步骤进行:单元测试、集成测试、验收测试(确认测试)和系统测试。 3.程序的调试 程序调试的任务是诊断和改正程序中的错误,主要在开发阶段进行。 案例14.软件详细设计产生的图如下: (C)该图是A.PAD图B.E-R图C.程
16、序流程图D.N-S图第三章 数据库设计基础1.数据库系统的基本概念 数据库管理系统:一种系统软件,负责数据库中的数据组织、数据操纵、数据维护、控制及保护和数据服务等,是数据库的核心。 (1)数据定义语言:负责数据的模式定义与数据的物理存取构建; (2)数据操纵语言:负责数据的操纵,如查询与增、删、改等; (3)数据控制语言:负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等。 数据语言按其使用方式具有两种结构形式:交互式命令(又称自含型或自主型语言)宿主型语言(一般可嵌入某些宿主语言中)。 数据库管理员:对数据库进行规划、设计、维护、监视等的专业管理人员。 数据库系统:由数据库(数据)
17、、数据库管理系统(软件)、数据库管理员(人员)、硬件平台(硬件)、软件平台(软件)五个部分构成的运行实体。 数据库应用系统:由数据库系统、应用软件及应用界面三者组成。文件系统阶段:提供了简单的数据共享与数据管理能力,但是它无法提供完整的、统一的、管理和数据共享的能力。层次数据库与网状数据库系统阶段:为统一与共享数据提供了有力支撑。 关系数据库系统阶段 数据库系统的基本特点:数据的集成性 、数据的高共享性与低冗余性 、数据独立性(物理独立性与逻辑独立性)、数据统一管理与控制。 2.数据库系统的三级模式: (1)概念模式:数据库系统中全局数据逻辑结构的描述,全体用户公共数据视图; (2)外模式:也
18、称子模式与用户模式。是用户的数据视图,也就是用户所见到的数据模式; (3)内模式:又称物理模式,它给出了数据库物理存储结构与物理存取方法。 数据模型 数据模型的概念:是数据特征的抽象,从抽象层次上描述了系统的静态特征、动态行为和约束条件,为数据库系统的信息表与操作提供一个抽象的框架。描述了数据结构、数据操作及数据约束。 E-R模型的基本概念 (1)实体:现实世界中的事物; (2)属性:事物的特性; (3)联系:现实世界中事物间的关系。实体集的关系有一对一、一对多、多对多的联系。 案例15.若实体A和B是一对多的联系,实体B和C是一对一的联系,则实体A和C的联系是_。一间宿舍可住多个学生,则实体
19、宿舍和学生之间的联系是_。 (一对多) (一对多)E-R模型三个基本概念之间的联接关系:实体是概念世界中的基本单位,属性有属性域,每个实体可取属性域内的值。一个实体的所有属性值叫元组。 E-R模型的图示法:(1)实体集表示法; (2)属性表法; (3)联系表示法。 在二维表中凡能唯一标识元组的最小属性称为键或码。从所有侯选健中选取一个作为用户使用的键称主键。表A中的某属性是某表B的键,则称该属性集为A的外键或外码。 关系中的数据约束: (1)实体完整性约束:约束关系的主键中属性值不能为空值; (2)参照完全性约束:是关系之间的基本约束; (3)用户定义的完整性约束:它反映了具体应用中数据的语义
20、要求。 3.关系代数 关系数据库系统的特点之一是它建立在数据理论的基础之上,有很多数据理论可以表示关系模型的数据操作,其中最为著名的是关系代数与关系演算。 关系模型的基本运算: (1) 插入 (2)删除 (3)修改 (4)查询(包括投影、选择、笛卡尔积运算) 解析: -R1 选择 R2 ABABCa12b21Ca12 b21c31ABa1b2c3R1 投影 R2 ABCa12 b21c31案例16.有三个关系R、S和T如下: (A)则由关系R和S得到关系T的操作是A.自然连接B.并C.投影D.交案例17.有三个关系R,S 和T如下: (A)则由关系R和S得到关系T的操作是A.并B.交C.投影D
21、.选择案例18.有三个关系R,S 和T如下: (D)则由关系R和S得到关系T的操作是A.选择B.交C.并D.差案例19.有两个关系R和S如下 (A)则由关系R 得到关系S的操作是A.选择B.并C.自然连接D.投影案例20.有两个关系R,S如下: (C)由关系R通过运算得到关系S,则所使用的运算为A.连接B.插入C.投影D.选择第四章 程序设计基础1.面向对象的程序设计和结构化程序设计面向对象方法的主要优点: (1)与人类习惯的思维方法一致; (2)稳定性好; (3)可重用(注释1) 性好; (4)易于开发大型软件产品; (5)可维护性好。 对象是面向对象方法中最基本的概念,可以用来表示客观世界
22、中的任何实体,对象是实体的抽象。面向对象的程序设计方法中的对象是系统中用来描述客观事物的一个实体,是构成系统的一个基本单位,由一组表示其静态特征的属性和它可执行的一组操作组成。对象是属性和方法的封装体。 属性即对象所包含的信息,它在设计对象时确定,一般只能通过执行对象的操作来改变。 操作描述了对象执行的功能,操作也称为方法或服务。操作是对象的动态属性。 一个对象由对象名、属性和操作三部分组成。 对象的基本特点:标识惟一性,分类性,多态性,封装性,模块独立性好。 (1)标识惟一性。指对象是可区分的,并且由对象的内在本质来区分,而不是 通过描述来区分。 (2)分类性。指可以将具有相同属性的操作的对
23、象抽象成类。(3)多态性。指同一个操作可以是不同对象的行为。(4)封装性。信息隐蔽是通过对象的封装性来实现的。(5)模块独立性好。消息是一个实例与另一个实例之间传递的信息。在面向对象方法中,一个对象请求另一个对象为其服务的方式是通过发送消息。 继承是指能够直接获得已有的性质和特征,而不必重复定义他们。继承分单继承和多重继承。单继承指一个类只允许有一个父类,多重继承指一个类允许有多个父类。 类的继承性是类之间共享属性和操作的机制,它提高了软件的可重用性。 多态性是指同样的消息被不同的对象接受时可导致完全不同的行动的现象。结构化程序设计(面向过程的程序设计方法) 结构化程序设计方法的主要原则可以概括为:自顶向下,逐步求精,模块化 结构化程序的基本结构:顺序结构,选择结构,重复结构。限制使用goto语句。案例21.结构化程序设计的基本原则不包括 (BE)A.模块化B.多态性C.逐步求精 D.自顶向下 E.可封装案例22.在面向对象方法中,不属于”对象”基本特点的是 (D)A.多态性B.分类性C.标识唯一性 D.一致性
限制150内