全国计算机等级考试二级C语言公共基础知识点总结合集.docx
《全国计算机等级考试二级C语言公共基础知识点总结合集.docx》由会员分享,可在线阅读,更多相关《全国计算机等级考试二级C语言公共基础知识点总结合集.docx(12页珍藏版)》请在冰豆网上搜索。
全国计算机等级考试二级C语言公共基础知识点总结合集
2017年全国计算机等级考试二级公共基础知识总结汇总
1.1算法
算法:
是解题方案的正确而完好的描绘。
平常地说,算法就是计算机解题的过程。
算法不等于程序,也不等于计算方法,程序的编制不行能优于算法的设计。
(1)确立性,算法中每一步骤都一定有明确立义,不一样意有含糊其词的解说,不一样意有多义性;
(2)有穷性,算法一定能在有限的时间内做完,即能在履行有限个步骤后停止;
(3)可行性,算法原则上能够精准地履行;
(4)拥有足够的情报。
算法效率的胸怀—算法复杂度:
算法时间复杂度和算法空间复杂度。
★★★
算法时间复杂度:
指履行算法所需要的计算工作量。
即算法履行过程中所需要的基本运算次数。
算法空间复杂度:
指履行这个算法所需要的内存空间。
1.2数据构造的基本看法
数据构造:
指相互有关系的数据元素的会合。
数据构造研究的三个方面:
(1)数据会合中各数据元素之间所固有的逻辑关系,即数据的逻辑构造;
(2)在对数据进行办理时,各数据元素在计算机中的储存关系,即数据的储存构造;
(3)对各样数据构造进行的运算。
线性构造的条件,(一个非空数据构造):
(1)有且只有一个根结点;
(2)每一个结点最多有一个前件,也最多有一个后件。
非线性构造:
不知足线性构造条件的数据构造。
1.3线性表及其次序储存构造
线性表的次序储存构造拥有以下两个基本特色:
(1)线性表中所有元素所占的储存空间是连续的;
(2)线性表中各数据元素在储存空间中是按逻辑次序挨次寄存的。
次序表的运算:
查找、插入、删除。
数据构造中的每一个结点对应于一个储存单元,这类储存单元称为储存结点,简称结点。
结点由两部分构成:
(1)用于储存数据元素值,称为数据域;
(2)用于寄存指针,称为指针域,用于指向前一个或后一个结点。
在链式储存构造中,储存数据构造的储存空间能够不连续,各数据结点的储存次序与数据元素之间的逻辑关系能够不一致,而数据元素之间的逻辑关系是由指针域来确立的。
链式储存方式即可用于表示线性构造,也可用于表示非线性构造。
线性链表的基本运算:
查找、插入、删除。
1.5栈和行列★★★★
栈:
限制在一端进行插入与删除的线性表。
其同意插入与删除的一端称为栈顶,用指针top表示栈顶地点。
不一样意插入与删除的另一端称为栈底,用指针bottom表示栈底。
栈依据“先进后出”(FILO)或“后进先出”(LIFO)组织数据,栈拥有记忆作用。
栈的储存方式有次序储存和链式储存。
栈的基本运算:
(1)入栈运算,在栈顶地点插入元素;
(2)退栈运算,删除元素(拿出栈顶元素并赋给一个指定的变量);
(3)读栈顶元素,将栈顶元素赋给一个指定的变量,此时指针无变化。
行列:
指同意在一端(队尾)进入插入,而在另一端(队头)进行删除的线性表。
用rear指针指向队尾,用front指针指向队头元素的前一个地点。
行列是“先进先出”(FIFO)或“后进后出”(LILO)的线性表。
行列运算:
(1)入队运算:
从队尾插入一个元素;
(2)退队运算:
从队头删除一个元素;
计算循环行列的元素个数:
“尾指针减头指针”,若为负数,再加其容量即可。
即:
当尾指针-头指针>0时,尾指针-头指针
当尾指针-头指针<0时,尾指针-头指针+容量
计算栈的个数:
栈底–栈顶+1
3.1软件工程基本看法
1、软件的有关看法
计算机软件是包含程序、数据及有关文档的完好会合。
软件的特色包含:
1)软件是一种逻辑实体,而不是物理实体,拥有抽象性;2)软件的生产与硬件不一样,它没有显然的制作过程;3)软件在运转、使用时期不存在磨损、老化问题;4)软件的开发、运转对计算机系统拥有依靠性,受计算机系统的限制,这致使了软件移植的问题;5)软件复杂性高,成本昂贵;6)软件开发波及诸多的社会因素。
2、软件危机与软件工程
软件工程源自软件危机。
所谓软件危机是泛指在计算机软件的开发和保护过程中所碰到的一系列严重问题。
软件工程的主要思想是将工程化原则运用到软件开发过程,它包含3个因素:
方法、工具和过程。
方法是达成软件工程项目的技术手段;工具是支持软件的开发、管理、文档生成;过程支持软件开发的各个环节的控制、管理。
软件工程过程是把输入转变为输出的一组相互有关的资源和活动。
3、软件生命周期
软件生命周期:
软件产品从提出、实现、使用保护到停止使用退伍的过程。
软件生命周期分为软件定义、软件开发及软件运转保护三个阶段:
1)软件定义阶段:
包含拟订计划和需求剖析。
拟订计划:
确立总目标;可行性研究;商讨解决方案;拟订开发计划。
需求剖析:
对待开发软件提出的需求进行剖析并给出详尽的定义。
2)软件开发阶段:
软件设计:
分为纲要设计和详尽设计两个部分。
软件实现:
把软件设计变换成计算机能够接受的程序代码。
软件测试:
在设计测试用例的基础上查验软件的各个构成部分。
3)软件运转保护阶段:
软件投入运转,并在使用中不停地保护,进行必需的扩大和修改。
4、软件工程的目标和与原则
(1)软件工程目标:
在给定成本、进度的前提下,开发出拥有有效性、靠谱性、可理解性、
可保护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且知足用户需求的产品。
(2)软件工程需要达到的基本目标应是:
付出较低的开发成本;达到要求的软件功能;获得较好的软件性能;开发的软件易于移植;需要较低的保护花费;能准时达成开发,实时交托使用。
(3)软件工程原则:
抽象、信息隐蔽、模块化、局部化、确立性、一致性、齐备性和可考证性。
1)抽象:
2)信息隐蔽:
3)模块化:
4)局部化:
5)确立性:
6)一致性:
7)齐备性:
8)可考证性:
3.2构造化剖析方法
1、需求剖析
需求剖析方法有:
1)构造化需求剖析方法;2)面向对象的剖析方法。
2、构造化剖析方法
构造化剖析方法是构造化程序设计理论在软件需求剖析阶段的应用。
构造化剖析方法的本质:
着眼于数据流,自顶向下,逐层分解,成立系统的办理流程,以数据流图和数据词典为主要工具,成立系统的逻辑模型。
构造化剖析的常用工具:
1)数据流图(DFD);2)数据词典(DD);3)判断树;4)判断表。
数据流图的基本图形元素:
加工(变换):
输入数据经加工变换产生输出。
数据流:
沿箭头方向传递数据的通道,一般在旁边标明数据流名。
储存文件(数据源):
表示办理过程中寄存各样数据的文件。
源,潭:
表示系统和环境的接口,属系统以外的实体。
3.3构造化设计方法
1、软件设计的基础
从技术看法来看,软件设计包含软件构造设计、数据设计、接口设计、过程设计。
从工程角度来看,软件设计分两步达成,即纲要设计和详尽设计。
纲要设计:
又称构造设计,将软件需求转变为软件系统构造,确立系统级接口、全局数据构造或数据库模式。
详尽设计:
确立每个模块的实现算法和局部数据构造,用适合方法表示算法和数据构造的细节。
软件设计的基来源理包含:
抽象、模块化、信息隐蔽和模块独立性。
1)抽象。
抽象是一种思想工具,就是把事物本质的共同特征提拿出来而不考虑其余细节。
2)模块化。
解决一个复杂问题时自顶向下逐渐把软件系统区分红一个个较小的、相对独立但又不相互关系的模块的过程。
3)信息隐蔽。
每个模块的实行细节关于其余模块来说是隐蔽的。
4)模块独立性。
软件系统中每个模块只波及软件要求的详细的子功能,而和软件系统中其余的模块的接口是简单的。
*:
模块分解的主要指导思想是信息隐蔽和模块独立性。
模块的耦合性和内聚性是权衡软件的模块独立性的两个定性指标。
内聚性:
是一个模块内部各个元素间相互联合的密切程度的胸怀。
*:
按内聚性由弱到强摆列,内聚能够分为以下几种:
有时内聚、逻辑内聚、时间内聚、过程内聚、通讯内聚、次序内聚及功能内聚。
耦合性:
是模块间相互连结的密切程度的胸怀。
*:
按耦合性由高到低摆列,耦合能够分为以下几种:
内容耦合、公共耦合、外面耦合、控制耦合、标志耦合、数据耦合以及非直接耦合。
一个设计优秀的软件系统应拥有高内聚、低耦合的特色。
在构造化程序设计中,模块区分的原则是:
模块内拥有高内聚度,模块间拥有低耦合度。
2、整体设计(纲要设计)和详尽设计
(1)整体设计(纲要设计)
软件纲要设计的基本任务是:
1)设计软件系统构造;2)数据构造及数据库设计;3)编写纲要设计文档;4)纲要设计文档评审。
常用的软件构造设计工具是构造图,也称程序构造图。
程序构造图的基本图符:
模块用一个矩形表示,箭头表示模块间的调用关系。
在构造图中还能够用带说明的箭头表示模块调用过程中往返传达的信息。
还可用带实心圆的箭头表示传达的是控制信息,空心圆箭心表示传达的是数据信息。
(2)详尽设计
详尽设计是为软件构造图中的每一个模块确立实现算法和局部数据构造,用某种选定的表达工具表示算法和数据构造的细节。
常用的过程设计(即详尽设计)工拥有以下几种:
图形工具:
程序流程图、N-S(方盒图)、PAD(问题剖析图)和HIPO(层次图+输入/办理/输出图)。
表格工具:
判断表。
语言工具:
PDL(伪码)
3.4软件测试
1、软件测试定义:
使用人工或自着手段来运转或测定某个系统的过程,其目的在于查验它能否知足规定的需求或是弄清预期结果与本质结果之间的差异。
软件测试的目的:
尽可能地多发现程序中的错误,不可以也不行能证明程序没有错误。
软件测试的重点是设计测试用例,一个好的测试用例能找到迄今为止还没有发现的错误。
2、软件测试方法:
静态测试和动向测试。
静态测试:
包含代码检查、静态构造剖析、代码质量胸怀。
不本质运转软件,主要经过人工进行。
动向测试:
是鉴于计算机的测试,主要包含白盒测试方法和黑盒测试方法。
(1)白盒测试
白盒测试方法也称为构造测试或逻辑驱动测试。
它是依据软件产品的内部工作过程,检查内部成分,以确认每种内部操作切合设计规格要求。
白盒测试的基来源则:
保证所测模块中每一独立路径起码履行一次;保证所测模块所有判断的每一分支起码履行一次;保证所测模块每一循环都在界限条件和一般条件下起码各履行一次;考证所有内部数据构造的有效性。
*:
白盒测试法的测试用例是依据程序的内部逻辑来设计的,主要用软件的单元测试,主要方法有逻辑覆盖、基本路径测试等。
A、逻辑覆盖。
逻辑覆盖泛指一系列以程序内部的逻辑构造为基础的测试用例设计技术。
往常程序中的逻辑表示有判断、分支、条件等几种表示方法。
语句覆盖:
选择足够的测试用例,使得程序中每一个语句起码都能被履行一次。
路径覆盖:
履行足够的测试用例,使程序中所有的可能的路径都起码经历一次。
判断覆盖:
使设计的测试用例保证程序中每个判断的每个取值分支(T或F)起码经历一次。
条件覆盖:
设计的测试用例保证程序中每个判断的每个条件的可能取值起码履行一次。
判断-条件覆盖:
设计足够的测试用例,使判断中每个条件的所有可能取值起码履行一次,同时每个判断的所有可能取值分支起码履行一次。
*:
逻辑覆盖的强度挨次是:
语句覆盖<路径覆盖<判断覆盖<条件覆盖<判断-条件覆盖。
B、基本路径测试。
其思想和步骤是,依据软件过程性描绘中的控制流程确立程序的环路复杂性胸怀,用此胸怀定义基本路径会合,并由此导出一组测试用例,对每一条独立履行路径进行测试。
(2)黑盒测试
黑盒测试方法也称为功能测试或数据驱动测试。
黑盒测试是对软件已经实现的功能能否知足需求进行测试和考证。
黑盒测试主要诊疗功能不对或遗漏、接口错误、数据构造或外面数据库接见错误、性能错误、初始化和停止条件错误。
黑盒测试不关怀程序内部的逻辑,不过依据程序的功能说明来设计测试用例,主要方法有等价类区分法、界限值剖析法、错误推断法等,主要用软件确实认测试。
3、软件测试过程一般按4个步骤进行:
单元测试、集成测试、确认测试和系统测试。
3.5程序的调试
程序调试的任务是诊疗和更正程序中的错误,主要在开发阶段进行,调试程序应当由编制源程序的程序员来达成。
程序调试的基本步骤:
(1)错误定位;
(2)纠正错误;(3)回归测试。
软件的调试后要进行回归测试,防备引进新的错误。
软件调试可分为静态调试和动向调试。
静态调试主假如指经过人的思想来剖析源程序代码和排错,是主要的调试手段,而动向调试是协助静态调试。
对软件主要的调试方法能够采纳:
(1)强行排错法。
(2)回溯法。
(3)原由清除法。
4.1数据库系统的基本看法
1、数据、数据库、数据管理系统
(1)数据
(2)数据库(DB)
(3)数据库管理系统(DBMS):
一种系统软件,负责数据库中的数据组织、数据操控、数据保护、控制及保护和数据服务等,是数据库的中心。
数据库管理系统功能:
1)数据模式定义
2)数据存取的物理建立
3)数据操控
4)数据的完好性、安生性定义与检查
5)数据库的并发控制与故障恢复
6)数据的服务
数据库技术的根本目标是解决数据的共享问题。
2、数据库系统的发展
数据库管剪发展到现在已经历了三个阶段:
人工管理阶段、文件系统阶段和数据库系统阶段。
3、数据库系统的基本特色
(1)数据的高集成性。
(2)数据的高共享性与低冗余性。
(3)数据独立性:
数据独立性一般分为物理独立性与逻辑独立性两级。
物理独立性:
物理独立性即是数据的物理构造(包含储存构造,存取方式等)的改变,如储存设施的改换、物理储存的改换、存取方式改变等都不影响数据库的逻辑构造,进而不致惹起应用程序的变化。
逻辑独立性:
数据库整体逻辑构造的改变,如改正数据模式、增添新的数据种类、改变数据间联系等,不需要相应改正应用程序,这就是数据的逻辑独立性。
(4)数据一致管理与控制。
4、数据库系统的内部构造系统
(1)数据库系统的三级模式:
1)看法模式:
数据库系统中全局数据逻辑构造的描绘,是全体用户(应用)公共数据视图。
2)外模式:
也称子模式或用户模式,它是用户的数据视图,也就是用户所见到的数据模式,它由看法模式推导而出。
3)内模式:
又称物理模式,它给出了数据库物理储存构造与物理存取方法。
内模式的物理性主要表此刻操作系统及文件级上,它还未深入到设施级上(如磁盘及磁盘操作)。
内模式对一般用户是透明的,但它的设计直接影响数据库的性能。
(2)数据库系统的两级映照:
1)看法模式/内模式的映照:
实现了看法模式到内模式之间的相互变换。
当数据库的储存构造发生变化时,经过改正相应的看法模式/内模式的映照,使得数据库的逻辑模式不变,其外模式不变,应用程序不用改正,进而保证数据拥有很高的物理独立性。
2)外模式/看法模式的映照:
实现了外模式到看法模式之间的相互变换。
当逻辑模式发生变化时,经过改正相应的外模式/逻辑模式映照,使得用户所使用的那部格外模式不变,进而应用程序不用改正,保证数据拥有较高的逻辑独立性。
4.2数据模型
1、数据模型
2、实体联系模型及E-R图
E-R模型的图示法:
1)实体集:
用矩形表示。
2)属性:
用椭圆形表示。
3)联系:
用菱形表示。
4)实体集与属性间的联接关系:
用无向线段表示。
5)实体集与联系间的联接关系:
用无向线段表示。
3、数据库管理系统常有的数据模型有层次模型、网状模型和关系模型三种。
4.3关系代数
1、关系的数据构造
关系是由若干个不一样的元组所构成,所以关系可视为元组的会合。
n元关系是一个n元有序组的会合。
关系模型的基本运算:
1)插入;2)删除;3)改正;4)查问(包含投影、选择、笛卡尔积运算)。
2、关系操控
关系模型的数据操控即是成立在关系上的数据操控,一般有查问、增添、删除和改正四种操作。
3、会合运算及选择、投影、连结运算
(1)并(∪):
关系R和S拥有同样的关系模式,R和S的并是由属于R或属于S的元组构成的会合。
(2)差(-):
关系R和S拥有同样的关系模式,R和S的差是由属于R但不属于S的元组构成的会合。
(3)交(∩):
关系R和S拥有同样的关系模式,R和S的交是由属于R且属于S的元组构成的会合。
(4)广义笛卡尔积(×):
设关系R和S的属性个数分别为n、m,则R和S的广义笛卡尔
积是一个有(n+m)列的元组的会合。
每个元组的前n列来自R的一个元组,后m列来自S的一个元组,记为R×S。
*:
依据笛卡尔积的定义:
有n元关系R及m元关系S,它们分别有p、q个元组,则关系R与S经笛卡尔积记为R×S,该关系是一个n+m元关系,元组个数是p×q,由R与S的有序组组合而成。
例:
有两个关系R和S,分别进行并、差、交和广义笛卡尔积运算。
(5)在关系型数据库管理系统中,基本的关系运算有选择、投影与联接三种操作:
1)选择:
选择指的是从二维关系表的所有记录中,把那些切合指定条件的记录挑出来。
2)投影:
投影是从所有字段中选用一部分字段及其值进行操作,它是一种纵向操作。
3)联接:
联接将两个关系模式拼接成一个更宽的关系模式,生成的新关系中包含知足联接条件的元组。
4.4数据库设计方法和步骤
(1)数据库设计阶段包含:
需求剖析、看法剖析、逻辑设计、物理设计。
(2)数据库设计的每个阶段都有各自的任务:
1)需求剖析阶段:
这是数据库设计的第一个阶段,任务主假如采集和剖析数据,这一阶段采集到的基础数据和数据流图是下一步设计看法构造的基础。
2)看法设计阶段:
剖析数据间内在语义关系,在此基础上成立一个数据的抽象模型,即形成E-R图。
3)逻辑设计阶段:
将E-R图变换成指定RDBMS中的关系模式。
4)物理设计阶段:
对数据库内部物理构造作调整并选择合理的存取路径,以提升数据库接见速度及有效利用储存空间。