全国计算机二级公共基础知识.docx
《全国计算机二级公共基础知识.docx》由会员分享,可在线阅读,更多相关《全国计算机二级公共基础知识.docx(24页珍藏版)》请在冰豆网上搜索。
全国计算机二级公共基础知识
第二章程序设计基础
经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是结构化程序设计的原则、面向对象方法的基本概念,读者应对此部分进行重点学习。
详细重点学习知识点:
1.结构化程序设计方法的四个原则
2.对象、类、消息、继承的概念、类与实例的区别
2.1结构化程序设计
考点1结构化程序设计的原则
考试链接:
考点1在笔试考试中出现的几率为30%,主要是以选择题的形式出现,分值为2分,此考点为识记内容,读者应该识记结构化程序设计方法的四个主要原则。
20世纪70年代提出了"结构化程序设计"的思想和方法。
结构化程序设计方法引入了工程化思想和结构化思想,使大型软件的开发和编程得到了极大的改善。
结构化程序设计方法的主要原则为:
自顶向下、逐步求精、模块化和限制使用goto语句。
疑难解答:
如何进行自顶向下设计方法?
程序设计时,应先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标;不要一开始就过多追求众多的细节,先从最上层总目标开始设计,逐步使问题具体化。
2.2面向对象的程序设计
考点2面向对象方法的基本概念
考试链接:
考点2在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以填空题的形式出现,分值为2分,此考点为重点识记内容,读者应该识记几个基本要素的定义、对象的特征以及消息、继承、类的定义。
误区警示:
当使用"对象"这个术语时,既可以指一个具体的对象,也可以泛指一般的对象,但是当使用"实例"这个术语时,必须是指一个具体的对象。
面向对象方法涵盖对象及对象属性与方法、类、继承、多态性几个基本要素。
(1)对象
通常把对对象的操作也称为方法或服务。
属性即对象所包含的信息,它在设计对象时确定,一般只能通过执行对象的操作来改变。
属性值应该指的是纯粹的数据值,而不能指对象。
操作描述了对象执行的功能,若通过信息的传递,还可以为其他对象使用。
对象具有如下特征:
标识惟一性、分类性、多态性、封装性、模块独立性。
(2)类和实例
类是具有共同属性、共同方法的对象的集合。
它描述了属于该对象类型的所有对象的性质,而一个对象则是其对应类的一个实例。
类是关于对象性质的描述,它同对象一样,包括一组数据属性和在数据上的一组合法操作。
(3)消息
消息是实例之间传递的信息,它请求对象执行某一处理或回答某一要求的信息,它统一了数据流和控制流。
一个消息由三部分组成:
接收消息的对象的名称、消息标识符(消息名)和零个或多个参数。
(4)继承
广义地说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们。
继承分为单继承与多重继承。
单继承是指,一个类只允许有一个父类,即类等级为树形结构。
多重继承是指,一个类允许有多个父类。
(5)多态性
对象根据所接收的消息而做出动作,同样的消息被不同的对象接收时可导致完全不同的行动,该现象称为多态性。
疑难解答:
能举一下现实中的对象及其属性和操作吗?
一辆汽车是一个对象,它包含了汽车的属性(如颜色、型号等)及其操作(如启动、刹车等)。
一个窗口是对象,它包含了窗口的属性(如大小、颜色等)及其操作(如打开、关闭等)。
2.3例题详解
一、选择题
【例1】结构化程序设计方法提出于_______。
(考点1)
A)20世纪50年代B)20世纪60年代
C)20世纪70年代D)20世纪80年代
解析:
20世纪70年代提出了"结构化程序设计(structuredprogramming)"的思想和方法。
结构化程序设计方法引入了工程化思想和结构化思想,使大型软件的开发和编程得到了极大的改善。
答案:
C)
【例2】结构化程序设计方法的主要原则有下列4项,不正确的是_______。
(考点1)
A)自下向上B)逐步求精
C)模块化D)限制使用goto语句
解析:
结构化程序设计方法的主要原则为:
(1)自顶向下:
即先考虑总体,后考虑细节;先考虑全局目标,后考虑局部目标。
(2)逐步求精:
对复杂问题,应设计一些子目标作过渡,逐步细化。
(3)模块化:
把程序要解决的总目标分解为分目标,再进一步分解为具体的小目标,把每个小目标称为一个模块。
(4)限制使用goto语句。
答案:
A)
【例3】面向对象的开发方法中,类与对象的关系是_______。
(考点2)
A)抽象与具体B)具体与抽象
C)部分与整体D)整体与部分
解析:
现实世界中的很多事物都具有相似的性质,把具有相似的属性和操作的对象归为类,也就是说类是具有共同属性、共同方法的对象的集合,是对对象的抽象。
它描述了该对象类型的所有对象的性质,而一个对象则是对应类的一个具体实例。
所以本题正确答案为A)项。
答案:
A)
二、填空题
【例1】在面向对象方法中,使用已经存在的类定义作为基础建立新的类定义,这样的技术叫做_______。
(考点2)
解析:
继承是面向对象方法的一个主要特征。
继承是使用已有的类定义作为基础建立新类的定义技术。
已有的类可当作基类来引用,则新类相应地可当作派生类来引用。
答案:
继承
【例2】对象的基本特点包括_标识独立性、分类性、多态性、封装性和模块独立性好等5个特点。
(考点2)
解析:
对象具有如下的基本特点:
(1)标识惟一性。
对象是可区分的,并且由对象的内在本质来区分;
(2)分类性。
可以将具有相同属性和操作的对象抽象成类;
(3)多态性。
同一个操作可以是不同对象的行为;
(4)封装性。
只能看到对象的外部特征,无需知道数据的具体结构以及实现操作的算法;
(5)模块独立性。
面向对象是由数据及可以对这些数据施加的操作所组成的统一体。
答案:
标识惟一性
【例3】对象根据所接收的消息而做出动作,同样的消息被不同的对象所接收时可能导致完全不同的行为,这种现象称为多态性。
(考点2)
解析:
对象根据所接收的消息而做出动作,同样的消息被不同的对象接收时可导致完全不同的行为,该现象称为多态性。
答案:
多态性
第三章软件工程基础
经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是软件生命周期、软件设计的基本原理,软件测试的目的、软件调试的基本概念,读者应对此部分进行重点学习。
详细重点学习知识点:
1.软件的概念、软件生命周期的概念及各阶段所包含的活动
2.概要设计与详细设计的概念、模块独立性及其度量的标准、详细设计常用的工具
3.软件测试的目的、软件测试的4个步骤、
4.软件调试的任务
3.1软件工程基本概念
考点1软件定义与软件特点
考试链接:
考点1在笔试考试中,是一个经常考查的内容,考核的几率为70%,主要是以选择题的形式出现,分值为2分,此考点为识记内容,读者应该识记软件的定义,特点及其分类。
软件指的是计算机系统中与硬件相互依存的另一部分,包括程序、数据和相关文档的完整集合。
程序是软件开发人员根据用户需求开发的、用程序设计语言描述的、适合计算机执行的指令序列。
数据是使程序能正常操纵信息的数据结构。
文档是与程序的开发、维护和使用有关的图文资料。
可见,软件由两部分组成:
(1)机器可执行的程序和数据;
(2)机器不可执行的,与软件开发、运行、维护、使用等有关的文档。
软件的特点:
(1)软件是逻辑实体,而不是物理实体,具有抽象性;
(2)没有明显的制作过程,可进行大量的复制;
(3)使用期间不存在磨损、老化问题;
(4)软件的开发、运行对计算机系统具有依赖性;
(5)软件复杂性高,成本昂贵;
(6)软件开发涉及诸多社会因素。
根据应用目标的不同,软件可分应用软件、系统软件和支撑软件(或工具软件)。
小提示:
应用软件是为解决特定领域的应用而开发的软件;系统软件是计算机管理自身资源,提高计算机使用效率并为计算机用户提供各种服务的软件;支撑软件是介于两者之间,协助用户开发软件的工具性软件。
考点2软件工程过程与软件生命周期
考试链接:
考点2在笔试考试中,在笔试考试中出现的几率为30%,主要是以选择题的形式出现,分值为2分,此考点为识记内容,读者应该识记软件生命周期的定义,主要活动阶段及其任务。
软件产品从提出、实现、使用维护到停止使用退役的过程称为软件生命周期。
一般包括可行性分析研究与需求分析、设计、实现、测试、交付使用以及维护等活动,如图3-1所示。
图3-1软件生命周期
还可以将软件生命周期分为如上图所示的软件定义、软件开发和软件运行维护3个阶段。
生命周期的主要活动阶段是:
可行性研究与计划制定、需求分析、软件设计、软件实施、软件测试及运行与维护。
3.2结构化设计方法
考点3软件设计的基本概念
考试链接:
考点3在笔试考试中,是一个经常考查的内容,考核中几率为70%,主要是以选择题的形式出现,分值为2分,此考点为重点掌握内容,读者应该识记模块独立性中的耦合性和内聚性。
误区警示:
在程序结构中,各模块的内聚性越强,则耦合性越弱。
软件设计应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。
1.软件设计的基础
从技术观点上看,软件设计包括软件结构设计、数据设计、接口设计、过程设计。
(1)结构设计定义软件系统各主要部件之间的关系;
(2)数据设计将分析时创建的模型转化为数据结构的定义;
(3)接口设计是描述软件内部、软件和协作系统之间以及软件与人之间如何通信;
(4)过程设计则是把系统结构部件转换为软件的过程性描述。
从工程管理角度来看,软件设计分两步完成:
概要设计和详细设计。
(1)概要设计将软件需求转化为软件体系结构、确定系统级接口、全局数据结构或数据库模式;
(2)详细设计确立每个模块的实现算法和局部数据结构,用适当方法表示算法和数据结构的细节。
2.软件设计的基本原理
(1)抽象:
软件设计中考虑模块化解决方案时,可以定出多个抽象级别。
抽象的层次从概要设计到详细设计逐步降低。
(2)模块化:
模块是指把一个待开发的软件分解成若干小的简单的部分。
模块化是指解决一个复杂问题时自顶向下逐层把软件系统划分成若干模块的过程。
(3)信息隐蔽:
信息隐蔽是指在一个模块内包含的信息(过程或数据),对于不需要这些信息的其他模块来说是不能访问的。
(4)模块独立性:
模块独立性是指每个模块只完成系统要求的独立的子功能,并且与其他模块的联系最少且接口简单。
模块的独立程度是评价设计好坏的重要度量标准。
衡量软件的模块独立性使用耦合性和内聚性两个定性的度量标准。
内聚性是信息隐蔽和局部化概念的自然扩展。
一个模块的内聚性越强则该模块的模块独立性越强。
一个模块与其他模块的耦合性越强则该模块的模块独立性越弱。
内聚性是度量一个模块功能强度的一个相对指标。
内聚是从功能角度来衡量模块的联系,它描述的是模块内的功能联系。
内聚有如下种类,它们之间的内聚度由弱到强排列:
偶然内聚、逻辑内聚、时间内聚、过程内聚、通信内聚、顺序内聚、功能内聚。
耦合性是模块之间互相连接的紧密程度的度量。
耦合性取决于各个模块之间接口的复杂度、调用方式以及哪些信息通过接口。
耦合可以分为下列几种,它们之间的耦合度由高到低排列:
内容耦合、公共耦合、外部耦合、控制耦合、标记耦合、数据耦合、非直接耦合。
在程序结构中,各模块的内聚性越强,则耦合性越弱。
一般较优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。
小提示:
上面仅是对耦合机制进行的一个分类。
可见一个模块与其他模块的耦合性越强则该模块独立性越弱。
原则上讲,模块化设计总是希望模块之间的耦合表现为非直接耦合方式。
但是,由于问题所固有的复杂性和结构化设计的原则,非直接耦合是不存在的。
考点4详细设计
考试链接:
考点4在笔试考试中,在笔试考试中出现的几率为30%,主要是以选择题的形式出现,分值为2分,此考点为识记内容,读者应该识记过程设计包括哪些常用工具。
详细设计的任务是为软件结构图中的每个模块确定实现算法和局部数据结构,用某种选定的表达表示工具算法和数据结构的细节。
详细过程设计的常用工具有:
(1)图形工具:
程序流程图,N-S,PAD,HIPO。
(2)表格工具:
判定表。
(3)语言工具:
PDL(伪码)。
程序流程图的5种控制结构:
顺序型、选择型、先判断重复型、后判断重复型和多分支选择型。
方框图中仅含5种基本的控制结构,即顺序型、选择型、多分支选择型、WHILE重复型和UNTIL重复型。
PAD图表示5种基本控制结构,即顺序型、选择型、多分支选择型、WHILE重复型和UNTIL重复型。
过程设计语言(PDL)也称为结构化的语言和伪码,它是一种混合语言,采用英语的词汇和结构化程序设计语言,类似编程语言。
PDL可以由编程语言转换得到,也可以是专门为过程描述而设计的。
疑难解答:
程序流程图,N-S图,PAD图的控制结构的异同点是什么?
相同点是三种图都有顺序结构,选择结构和多分支选择,并且N-S图和PAD图还有相同的WHILE重复型、UNTIL重复型;不同点是程序流程图没有WHILE重复型、UNTIL重复型而有后判断重复型和先判断重复型。
3.3软件测试
考点5软件测试的目的
考试链接:
考点5在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择题的形式出现,分值为2分,此考点为理解内容,读者应该理解测试是为了发现错误。
软件测试是在软件投入运行前对软件需求、设计、编码的最后审核。
其工作量、成本占总工作量、总成本的40%以上,而且具有较高的组织管理和技术难度。
(1)软件测试是为了发现错误而执行程序的过程;
(2)一个好的测试用例是能够发现至今尚未发现的错误的用例;
(3)一个成功的测试是发现了至今尚未发现的错误的测试。
考点6软件测试的实施
考试链接:
考点6在笔试考试中出现的几率为30%,主要是以选择题的形式出现,分值为2分,此考点为识记内容,读者应该识记软件测试过程的4个步骤,单元测试的两种测试方式。
软件测试过程分4个步骤,即单元测试、集成测试、验收测试和系统测试。
单元测试是对软件设计的最小单位--模块(程序单元)进行正确性检验测试。
单元测试的技术可以采用静态分析和动态测试。
集成测试是测试和组装软件的过程,主要目的是发现与接口有关的错误,主要依据是概要设计说明书。
集成测试所设计的内容包括:
软件单元的接口测试、全局数据结构测试、边界条件和非法输入的测试等。
集成测试时将模块组装成程序,通常采用两种方式:
非增量方式组装和增量方式组装。
确认测试的任务是验证软件的功能和性能,以及其他特性是否满足了需求规格说明中确定的各种需求,包括软件配置是否完全、正确。
确认测试的实施首先运用黑盒测试方法,对软件进行有效性测试,即验证被测软件是否满足需求规格说明确认的标准。
系统测试是通过测试确认软件,作为整个基于计算机系统的一个元素,与计算机硬件、外设、支撑软件、数据和人员等其他系统元素组合在一起,在实际运行(使用)环境下对计算机系统进行一系列的集成测试和确认测试。
系统测试的具体实施一般包括:
功能测试、性能测试、操作测试、配置测试、外部接口测试、安全性测试等。
3.4软件的调试
考点7软件调试的基本概念
考试链接:
考点7在笔试考试中,是一个经常考查的内容,在笔试考试中出现的几率为70%,主要是以选择题的形式出现,分值为2分,此考点为重点识记内容,读者应该识记软件调试的概念。
误区警示:
程序经调试改错后还应进行再测试,因为经调试后有可能产生新的错误,而且测试是贯穿生命周期的整个过程。
在对程序进行了成功的测试之后将进入程序调试(通常称Debug,即排错)。
程序的调试任务是诊断和改正程序中的错误。
调试主要在开发阶段进行。
程序调试活动由两部分组成,一是根据错误的迹象确定程序中错误的确切性质、原因和位置;二是对程序进行修改,排除这个错误。
程序调试的基本步骤:
(1)错误定位。
从错误的外部表现形式入手,研究有关部分的程序,确定程序中出错位置,找出错误的内在原因;
(2)修改设计和代码,以排除错误;
(3)进行回归测试,防止引进新的错误。
调试原则可以从以下两个方面考虑:
(1)确定错误的性质和位置时的注意事项
分析思考与错误征兆有关的信息;避开死胡同;只把调试工具当作辅助手段来使用;避免用试探法,最多只能把它当作最后手段。
(2)修改错误原则
在出现错误的地方,很可能有别的错误;修改错误的一个常见失误是只修改了这个错误的征兆或这个错误的表现,而没有修改错误本身;注意修正一个错误的同时有可能会引入新的错误;修改错误的过程将迫使人们暂时回到程序设计阶段;修改源代码程序,不要改变目标代码。
疑难解答:
软件测试与软件调试有何不同?
软件测试是尽可能多地发现软件中的错误,而软件调试的任务是诊断和改正程序中的错误。
软件测试贯穿整个软件生命周期,调试主要在开发阶段。
3.5例题详解
一、选择题
【例1】对软件的特点,下面描述正确的是_______。
(考点1)
A)软件是一种物理实体
B)软件在运行使用期间不存在老化问题
C)软件开发、运行对计算机没有依赖性,不受计算机系统的限制
D)软件的生产有一个明显的制作过程
解析:
软件在运行期间不会因为介质的磨损而老化,只可能因为适应硬件环境以及需求变化进行修改而引入错误,导致失效率升高从而软件退化,所以本题正确答案为B)。
答案:
B)
【例2】以下哪项是软件生命周期的主要活动阶段?
_______(考点2)
A)需求分析B)软件开发
C)软件确认D)软件演进
解析:
B)、C)、D)项都是软件工程过程的基本活动,还有一个是软件规格说明。
答案:
A)
【例3】从技术观点看,软件设计包括_______。
(考点3)
A)结构设计、数据设计、接口设计、程序设计
B)结构设计、数据设计、接口设计、过程设计
C)结构设计、数据设计、文档设计、过程设计
D)结构设计、数据设计、文档设计、程序设计
解析:
技术角度,要进行结构、接口、数据、过程的设计。
结构设计是定义系统各部件关系,数据设计是根据分析模型转化数据结构,接口设计是描述如何通信,过程设计是把系统结构部件转化为软件的过程性描述。
答案:
B)
【例4】以下哪个是软件测试的目的?
_______(考点5)
A)证明程序没有错误B)演示程序的正确性
C)发现程序中的错误D)改正程序中的错误
解析:
关于测试目的的基本知识,IEEE的定义是:
使用人工或自动手段来运行或测定某个系统的过程,其目的在于检验它是否满足规定的需求,或是弄清预期结果与实际结果之间的差别,所以正确答案是C)。
答案:
C)
【例5】以下哪个测试要对接口测试?
_______。
(考点6)
A)单元测试B)集成测试
C)验收测试D)系统测试
解析:
检查对测试实施各阶段的了解,集成测试时要进行接口测试、全局数据结构测试、边界条件测试和非法输入的测试等,所以正确答案是B)。
答案:
B)
【例6】程序调试的主要任务是_______。
(考点7)
A)检查错误B)改正错误
C)发现错误D)以上都不是
解析:
程序的调试任务是诊断和改正程序中的错误。
调试主要在开发阶段进行。
答案:
B)
【例7】以下哪些不是程序调试的基本步骤?
_______(考点7)
A)分析错误原因B)错误定位
C)修改设计代码以排除错误D)回归测试,防止引入新错误
解析:
程序调试的基本步骤:
(1)错误定位。
从错误的外部表现形式入手,研究有关部分的程序,确定程序中出错位置,找出错误的内在原因。
(2)修改设计和代码,以排除错误。
(3)进行回归测试,防止引进新的错误。
答案:
A)
【例8】在修改错误时应遵循的原则有_______。
(考点7)
A)注意修改错误本身而不仅仅是错误的征兆和表现
B)修改错误的是源代码而不是目标代码
C)遵循在程序设计过程中的各种方法和原则
D)以上3个都是
解析:
修改错误原则:
(1)在出现错误的地方,很可能有别的错误;
(2)修改错误的一个常见失误是只修改了这个错误的征兆或这个错误的表现,而没有修改错误本身;
(3)注意修正一个错误的同时有可能会引入新的错误;
(4)修改错误的过程将迫使人们暂时回到程序设计阶段;
(5)修改源代码程序,不要改变目标代码。
答案:
D)
二、填空题
【例1】软件设计是软件工程的重要阶段,是一个把软件需求转换为_______的过程。
(考点3)
解析:
软件设计是软件工程的重要阶段,是一个把软件需求转换为软件表示的过程。
其基本目标是用比较抽象概括的方式确定目标系统如何完成预定的任务,即软件设计是确定系统的物理模型。
答案:
软件表示
【例2】_______是指把一个待开发的软件分解成若干小的简单的部分。
(考点3)
解析:
模块化是指把一个待开发的软件分解成若干小的简单的部分。
如高级语言中的过程、函数、子程序等。
每个模块可以完成一个特定的子功能,各个模块可以按一定的方法组装起来成为一个整体,从而实现整个系统的功能。
答案:
模块化
【例3】数据流图采用4种符号表示__数据存储
_、数据源点和终点、数据流向和数据加工。
(考点4)
解析:
数据流图可以表达软件系统的数据存储、数据源点和终点、数据流向和数据加工。
其中,用箭头表示数据流向,用圆或者椭圆表示数据加工,用双杠表示数据存储,用方框来表示数据源点和终点。
答案:
数据存储
第四章数据库设计基础
经过对部分考生的调查以及对近年真题的总结分析,笔试部分经常考查的是数据库管理系统,数据库基本特点,数据库系统的三级模式及二级映射,E-R模型,关系模型和关系代数,读者应对此部分进行重点学习。
详细重点学习知识点:
1.数据的概念、数据库管理系统提供的数据语言、数据管理员的主要工作、数据库系统阶段的特点、数据的物理独立性及逻辑独立性、数据统一管理与控制、三级模式及两级映射的概念
2.数据模型3个描述内容、E-R模型的概念及其E-R图表示法、关系操纵、关系模型三类数据约束
3.关系模型的基本操作、关系代数中的扩充运算
4.数据库设计生命周期法的4个阶段
4.1数据库系统的基本概念
考点1数据、数据库、数据库管理系统
考试链接:
考点1在笔试考试中,是一个经常考查的内容,在笔试考试中出现的机率为70%,主要是以选择题的形式出现,分值为2分,此考点为重点识记内容,读者还应该识记数据语言所包括的数据定义语言、数据操纵语言和数据控制语言。
数据是数据库中存储的基本对象,描述事物的符号记录。
数据库是长期储存在计算机内、有组织的、可共享的大量数据的集合,它具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序所共享。
数据库管理系统(DBMS,DatabaseManagementSystem)是数据库的机构,它是一种系统软件,负责数据库中的数据组织、数据操作、数据维护、控制及保护和数据服务等。
数据库管理系统是数据系统的核心,主要有如下功能:
数据模式定义、数据存取的物理构建、数据操纵、数据的完整性、安全性定义和检查、数据库的并发控制与故障恢复、数据的服务。
为完成数据库管理系统的功能,数据库管理系统提供相应的数据语言:
数据定义语言、数据操纵语言、数据控制语言。
数据库管理员的主要工作如下:
数据库设计、数据库维护、改善系统性能,提高系统效率。
考点2数据库系统的发展
考试链接:
考点2在笔试考试中出现的机率为30%,主要是以选择题的形式出现,分值为2分,此考点为识记内容,读者还应该注意各个阶段的特点。