公共基础教程笔记.docx
《公共基础教程笔记.docx》由会员分享,可在线阅读,更多相关《公共基础教程笔记.docx(49页珍藏版)》请在冰豆网上搜索。
公共基础教程笔记
第1天:
全部的基本概念
Point1:
算法的基本概念
-5-考点精讲
1、算法:
是指解题方案的准确而完整的描述。
(1)算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。
程序也可以作为算法的一种描述,但程序通常还要考虑程序运行时的环境限制等。
(2)算法,是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,是明确的,此顺序将在有限的次数下终止。
2、算法的基本特征:
(1)可行性,例如1012+1-1012的问题
(2)确定性,算法中每一步骤都必须有明确定义,不允许有模棱两可的解释,不允许有多义性;例在特殊情况时,数学公式是正确的,但计算机就是无法操作。
(3)有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义。
例如1/3的无理数问题。
(4)拥有足够的情报。
所有的各种可能情况都要考虑到。
3、一个算法的优劣将影响到算法乃至程序的效率。
算法分析的目的在于选择合适算法和改进算法。
一个算法的评价主要从时间复杂度和空间复杂度来考虑。
(1)算法的时间复杂度是指执行算法所需要的计算工作量,可以执行算法的过程中所需要的基本运算的执行次数来度量。
分析算法工作量的方法有:
平均性态分析、最坏情况分析。
(2)算法的空间复杂度是指执行这个算法所需要的内存空间。
主要包括:
算法程序所占的空间;输入的初始数据所占的空间;算法执行过程中所需要的额外空间。
真题分析
【真题1】算法的有穷性是指________。
(2008年4月)
A)算法程序的长度是有限的
B)算法只能被有限的用户使用
C)算法程序的运行时间是有限的
D)算法程序所处理的数据量是有限的
解析:
算法的有穷性,是指算法必须能在有限的时间内做完,即算法必须能在执行有限个步骤之后终止。
答案:
C
【真题2】问题处理方案的正确而完整的描述称为__【5】__。
(2005年4月)
解析:
算法是问题处理方案正确而完整的描述。
答案:
算法
【真题3】算法的空间复杂度是指________。
(2009年9月)
A)算法程序中的语句或指令条数
B)算法在执行过程中所需要的临时工作单元数
C)算法在执行过程中所需要的计算机内部存储空间
D)算法所处理的数据量
-6-解析:
算法的空间复杂度是指执行这个算法所需要的计算机内部存储空间(简称内存空间)。
答案:
C
【真题4】下列叙述中正确的是________。
(2007年3月)
A)数据的逻辑结构与存储结构是一一对应的
B)算法的时间复杂度与空间复杂度一定相关
C)算法的效率只与问题的规模有关,而与数据的存储结构无关
D)算法的时间复杂度是指执行算法所需要的计算工作量
解析:
1、算法的时间复杂度是指执行算法所需要的计算工作量。
算法的工作量用算法所执行的基本运算次数来度量,而算法所执行的基本运算次数是问题规模的函数;算法的空间复杂度一般是指执行这个算法所需要的内存空间。
2、算法的时间复杂度与空间复杂度并不相关。
3、数据的逻辑结构就是数据元素之间的逻辑关系,它是从逻辑上描述数据元素之间的关系,是独立于计算机的;数据的存储结构是研究数据元素和数据元素之间的关系如何在计算机中表示,它们并非一一对应。
4、算法的执行效率不仅与问题的规模有关,还与数据的存储结构有关。
答案:
D
【真题5】下列叙述中正确的是________。
(2006年9月)
A)一个算法的时间复杂度大,则其空间复杂度必定小
B)三种说法都不对
C)一个算法的空间复杂度大,则其时间复杂度也必定大
D)一个算法的空间复杂度大,则其时间复杂度必定小
解析:
1、时间复杂度是指一个算法执行时间的相对度量;空间复杂度是指算法在运行过程中临时占用所需存储空间大小的度量。
2、人们都希望选择一个既省存储空间、又节省执行时间的算法。
然而,有时为了加快算法的运行速度,不得不增加空间开销;有时为了能有效地存储算法和数据,又不得不牺牲运行时间。
时间和空间的效率往往是一对矛盾,很难做到两全。
但是,这不适用于所有的情况,也就是说时间复杂度和空间复杂度之间虽然经常矛盾,但是二者不存在必然的联系。
答案:
B
【真题6】算法复杂度主要包括时间复杂度和__【2】__复杂度。
(2005年9月)
解析:
算法的复杂度主要包括时间复杂度和空间复杂度。
所谓算法的时间复杂度,是指执行算法所需要的计算工作量。
一个算法的空间复杂度,一般是指执行这个算法所需要的内存空间规模。
答案:
空间
【真题7】算法的时间复杂度是指________。
(2010年3月)
A)算法程序中的语句或指令条数-7-
B)算法在执行过程中所需要的基本运算次数
C)算法的执行时间
D)算法所处理的数据量
解析:
算法复杂度包括时间复杂度和空间复杂度,是衡量一个算法好坏的度量。
算法的时间复杂度主要是基本运算次数。
答案:
B
Point2:
软件工程基本概念
考点精讲
1、计算机软件是包括程序、数据及相关文档的完整集合。
是计算机系统中与硬件相互依存的部分。
软件按功能分为应用软件、系统软件、支撑软件(或工具软件)。
2、软件工程源自于软件危机。
(1)软件危机主要表现在成本、质量、生产率等问题。
(2)软件工程的主要思想是强调在软件开发过程中需要应用工程化原则,软件工程学的主要研究对象包括软件开发与维护的技术、方法、工具和管理等方面。
(3)软件工程包括三个要素,即方法、工具和过程。
3、通常把软件产品从提出、实现、使用、维护到停止使用(退役)的过程称为软件生命周期。
(1)可以将软件生命周期分为软件定义、软件开发及软件运行维护三个阶段。
(2)软件生命周期的主要活动阶段是:
①可行性研究与计划制定;②需求分析;③软件设计;④软件实现;⑤软件测试;⑥运行和维护。
真题分析
【真题1】软件按功能可以分为:
应用软件、系统软件和支撑软件(或工具软件)。
下面属于应用软件的是________。
(2009年3月)
A)教务管理系统
B)汇编程序
C)编译程序
D)操作系统
解析:
编译程序和汇编程序属于支撑软件,操作系统属于系统软件,而教务管理系统属于应用软件。
答案:
A
【真题2】软件是指________。
(2007年9月)
-8-A)算法和数据结构
B)程序、数据和相关文档的完整集合
C)程序
D)程序和文档
解析:
计算机软件是指计算机系统中与硬件相互依存的另一部分,是程序、数据与相关文档的完整集合。
软件由两部分组成,一是机器可执行的程序和数据;二是机器不可执行的,与软件开发、运行、维护、使用等有关的文档。
答案:
B
【真题3】下列描述中正确的是________。
(2005年9月)
A)软件工程的主要思想是强调在软件开发过程中需要应用工程化原则
B)软件工程只是解决软件开发中的技术问题
C)软件工程只是解决软件项目的管理问题
D)软件工程主要解决软件产品的生产率问题
解析:
软件工程学是研究软件开发和维护的普遍原理与技术的一门工程学科。
所谓软件工程是指,采用工程的概念、原理、技术和方法指导软件的开发与维护。
软件工程学是研究软件开发和维护的普遍原理与技术的一门工程学科。
所谓软件工程是指,采用工程的概念、原理、技术和方法指导软件的开发与维护。
软件工程学的主要研究对象包括软件开发与维护的技术、方法、工具和管理等方面。
答案:
A
【真题4】下列描述中正确的是________。
(2005年4月)
A)软件既是逻辑实体,又是物理实体
B)软件是程序、数据与相关文档的集合
C)程序就是软件
D)软件开发不受计算机系统的限制
解析:
计算机软件是计算机系统中与硬件相互依存的另一部分,包括程序、数据及相关文档的完整集合。
答案:
B
【真题5】软件按功能可以分为:
应用软件、系统软件和支撑软件(或工具软件)。
下面属于系统软件的是________。
(2010年3月)
A)教务管理系统
B)浏览器
C)编辑软件
D)操作系统
解析:
只有操作系统是系统软件。
答案:
D
-9-【真题6】软件是__【4】__、数据和文档的集合。
(2010年3月)
解析:
软件=程序+数据+相关文档
答案:
程序
【真题7】软件工程三要素包括方法、工具和过程,其中__【3】__支持软件开发的各个环节的控制和管理。
(2008年9月)
解析:
软件工程包括的3个要素是方法、工具和过程。
方法是完成软件工程
项目的技术手段;工具支持软件的开发、管理、文档生成;过程支持软件开发
的各个环节的控制、管理。
答案:
过程
【真题8】软件生命周期可分为三个阶段,一般分为定义阶段、开发阶段和维护阶段。
编码和测试属于__【4】__阶段。
(2007年3月)
解析:
通常将软件产品从提出、实现、使用、维护到停止使用退役的过程称为
软件生命周期。
软件生命周期分为软件定义、软件开发和软件运行维护三个阶
段。
定义阶段包括可行性研究、初步项目计划和需求分析两个活动阶段;开发
阶段包括概要设计、详细设计、编码实现、测试四个活动阶段;维护阶段包括
使用、维护、退役三个活动阶段。
答案:
开发
【真题9】下面描述中,不属于软件危机表现的是________。
(2010年9月)
A)软件质量难以控制
B)软件成本不断提高
C)软件过程不规范
D)软件开发生产率低
解析:
在软件开发中遇到的问题找不到解决办法,使问题积累起来,形成了尖锐的矛盾,因而导致了软件危机。
软件危机表现在以下几个方面:
(1)经费预算经常突破,完成时间一再拖延。
(2)开发的软件不能满足用户要求。
(3)开发的软件可维护性差。
(4)开发的软件可靠性差。
(5)软件开发费用不断增加。
(6)软件开发生产效率低下。
答案:
C
【真题10】软件生命周期是指________。
(2010年9月)
A)软件的开发过程
B)软件的运行维护过程
C)软件产品从提出、实现、使用维护到停止使用退役的过程
D)软件从需求分析、设计、实现到测试完成的过程
-10-解析:
软件生命周期是指从软件定义、开发、使用、维护到报废为止的整个过程。
一般包括问题定义、可行性分析、需求分析、总体设计、详细设计、编码、测试和维护等阶段。
答案:
C
Point3:
数据库的基本概念
考点精讲
1、数据库的基本概念
(1)数据:
实际上就是描述事物的符号记录。
数据的特点:
有一定的结构,有型与值之分,如整型、实型、字符型等。
而数据的值给出了符合给定型的值,如整型值15。
(2)数据库(DataBase,简称为DB):
是数据的集合,具有统一的结构形式并存放于统一的存储介质内,是多种应用数据的集成,并可被各个应用程序共享。
数据库存放数据是按数据所提供的数据模式存放的,具有集成与共享的特点。
数据库技术的根本目标是要解决数据的共享问题。
2、数据库系统(DataBaseSystem,简称为DBS)由数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、硬件平台(硬件)、软件平台(软件)五个部分构成。
(1)数据库管理系统提供以下的数据语言:
①数据定义语言(DDL):
负责数据的模式定义与数据的物理存取构建;
②数据操纵语言:
负责数据的操纵,如查询与增加、删除、修改等;
③数据控制语言:
负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等。
(2)数据库系统的特点:
①数据的集成性;
②数据高共享性与低冗余性;
③数据独立性:
数据独立性是数据与程序之间互不依赖,也就是数据的逻辑结构、存储结构与存取方式的改变不会影响应用程序。
3、据库管理系统(DataBaseManagementSystem,简称为DBMS)是系统软件,负责对数据库的数据组织、数据操纵、数据维护、控制及保护和数据服务等。
数据库管理系统是数据库系统的核心。
4、数据管理经历了人工管理、文件系统、数据库系统三个阶段。
文件系统阶段的特点是数据满足一个特定格式而存储,不同程序中使用的数据仍会出现重复存储,也会导致数据冗余。
数据库技术的主要目的是有效地管理和存取大量的数据资源,数据库系统阶段的数据独立性最高。
5、数据独立性包括物理独立性和逻辑独立性。
-11-
(1)物理独立性:
数据的物理结构(如存储设备更换、物理存储方式)的改变,不影响数据库的逻辑结构,也不引起应用程序的变化。
(2)逻辑独立性:
数据库整体逻辑结构(如修改数据、增加新数据类型、改变数据间联系等)改变,不需要修改应用程序。
6、数据库系统在其内部具有三级模式:
概念模式、内部模式与外部模式。
(1)概念模式:
它是数据库系统中全局数据逻辑结构的描述,是全体用户(应用)的公共数据视图。
概念模式主要描述数据的概念记录类型以及它们之间的关系,它还包括一些数据间的语义约束,对它的描述可用DBMS中的DDL语言定义。
(2)内部模式:
又称物理模式,它给出了数据库物理存储结构与物理存取方法,如数据存储的文件结构、索引、集簇及hash等存取方式与存取路径,内模式的物理特性主要体现在操作系统及文件级上,它还未深入到设备级(如磁盘及磁盘操作)上。
DBMS一般提供相关的内模式描述语言(内模式DDL)。
(3)外部模式:
也称子模式或用户模式,它是用户的数据视图,也就是用户所见到的数据模式,它由概念模式推导而出。
在一般的DBMS中都提供相关的外模式描述语言(外模式DDL)。
7、数据库系统的两级映射:
概念模式到内部模式的映射,外部模式到概念模式的映射。
(1)数据的物理独立性:
当数据库的存储结构发生变化时,通过修改“概念模式到内部模式的映射”,使得数据库的概念模式不变,其外模式不变,应用程序不用修改,保证了数据的物理独立性。
(2)数据的逻辑独立性:
当概念模式发生变化时,通过修改“外部模式到概念模式的映射”,使得用户所用的外模式不变,从而应用程序也不用修改,保证了数据的逻辑独立性。
真题分析
【真题1】数据库管理系统是________。
(2009年9月)
A)一种编译系统
B)一种操作系统
C)操作系统的一部分
D)在操作系统支持下的系统软件
解析:
数据库管理系统是运行在操作系统之上的支撑软件,是数据库系统的核心。
答案:
D
【真题2】数据库系统的核心是__【4】__系统。
(2009年3月)
解析:
数据库管理系统是数据库的结构,它是一种系统软件,负责数据库中数据组织、数据操纵、数据维护、控制及保护和数据服务等。
数据库管理系统是数据库系统的核心。
答案:
数据库管理
-12-【真题3】在数据管理技术发展的三个阶段中,数据共享最好的是________。
(2008年9月)
A)数据库系统阶段
B)三个阶段相同
C)人工管理阶段
D)文件系统阶段
解析:
数据管理技术的发展经历了三个阶段:
人工管理阶段、文件系统阶段和数据库系统阶段。
人工管理阶段无共享,冗余度大;文件管理阶段共享性差,冗余度大;数据库系统管理阶段共享性大,冗余度小。
答案:
A
【真题4】在数据库管理系统提供的数据定义语言、数据操纵语言和数据控制语言中,__【5】__语言负责数据的模式定义与数据的物理存取构建。
(2008年4月)
解析:
在数据库管理系统提供的数据定义语言、数据操纵语言和数据控制语言中,数据定义语言负责数据的模式定义与数据的物理存取构建,数据操纵语言负责数据的操纵,包括查询及增、删、改等操作,数据控制语言负责数据完整性、安全性的定义与检查以及并发控制、恢复等功能。
答案:
数据定义
【真题5】下列叙述中正确的是________。
(2007年9月)
A)数据库管理系统就是数据库系统
B)三种说法都不对
C)数据库系统是一个独立的系统,不需要操作系统的支持
D)数据库技术的根本目标是要解决数据共享的问题
解析:
数据库系统由如下几个部分组成:
数据库(数据)、数据库管理系统(软件)、数据库管理员(人员)、系统平台的硬件平台(硬件)、系统平台的软件平台(软件)。
这五个部分构成了一个以数据库为核心的完整的运行实体,称为数据库
系统。
数据库技术的根本目的是要解决数据的共享问题。
数据库中的数据具有“集成”、“共享”之特点,亦即数据库集中了各种应用的数据,进行统一地构造与存储,从而使它们可被不同应用程序所使用。
数据库管理系统(DatabaseManagementSystem,简称DBMS)是一种系统软件,负责数据库中的数据组织、数据操作、数据维护、控制及保护和数据服务等,它是数据库系统的核心。
答案:
D
【真题6】下列叙述中错误的是________。
(2007年3月)
A)数据库设计是指在已有数据库管理系统的基础上建立数据库
B)数据库系统需要操作系统的支持
C)在数据库系统中,数据的物理结构必须与逻辑结构一致
D)数据库技术的根本目标是要解决数据的共享问题
考点精讲
1、养成良好的程序设计的设计风格,主要应考虑下述因素:
(1)源程序文档化:
①符号名的命名有一定含义,便于理解;②正确的注释帮助读者理解程序;③程序层次清晰。
-16-
(2)数据说明的方法:
①数据说明的次序规范化;②说明语句中变量安排有序化;③使月注释来说明复杂数据结构。
(3)语句的结构:
程序应该简单易懂,语句构造应该简单直接。
(4)输入和输出。
2、注释分序言性注释和功能性注释,语句结构清晰第一、效率第二。
真题分析
【真题1】下列选项不符合良好程序设计风格的是________。
(2006年9月)
A)避免滥用goto语句
B)模块设计要保证高耦合、高内聚
C)源程序要文档化
D)数据说明的次序要规范化
解析:
编程风格是在不影响性能的前提下,有效地编排和组织程序,以提高可读性和可维护性。
更直接地说,风格就是意味着要按照规则进行编程。
这些规则包括:
编程风格是在不影响性能的前提下,有效地编排和组织程序,以
提高可读性和可维护性。
更直接地说,风格就是意味着要按照规则进行编程。
(1)程序文档化。
就是程序文档包含恰当的标识符,适当的注解和程序的视觉组织等。
(2)数据说明。
出于阅读理解和维护的需要,最好使模块前的说明语句次序规范化。
此外,为方便查找,在每个说明语句的说明符后,数据名应按照字典顺序排列。
(3)功能模块化。
即把源程序代码按照功能划分为低耦合、高内聚的模块。
(4)注意goto语句的使用。
合理使用goto语句可以提高代码的运行效率,但goto语句的使用会破坏程序的结构特性。
因此,除非确实需要,否则最好不使用goto语句。
答案:
B
【真题2】下列叙述中,不符合良好程序设计风格要求的是________。
(2007年9月)
A)程序中要有必要的注释
B)输入数据前要有提示信息
C)程序的效率第一,清晰第二
D)程序的可读性好
解析:
一般来讲,程序设计风格是指编写程序时所表现出的特点、习惯和逻辑思路。
程序设计风格总体而言应该强调简单和清晰,程序必须是可以理解的。
著名的“清晰第一,效率第二”的论点已成为当今主导的程序设计风格。
答案:
C
Point5:
结构化程序设计
考点精讲
1、结构化程序设计的主要目的是使程序结构良好、易读、易理解、易维护。
它的原则主要包括:
①自顶向下;②逐步求精;③模块化;④限制使用goto语句。
2、结构化程序设计方法可用三种基本结构实现:
①顺序结构;②选择结构;③重复结构。
3、在结构化程序设计的具体实施中,要注意把握如下要素:
(1)使用程序设计语言中的顺序结构、选择结构、循环结构等控制结构来表示程序的控制逻辑。
(2)选用的控制结构只准许有一个入口和一个出口。
(3)程序语句组成容易识别的程序块,每块只有一个入口和一个出口。
(4)复杂结构应该用嵌套的基本控制结构进行组合嵌套来实现。
(5)语言中所没有的控制结构,应该采用前后一致的方法来模拟。
(6)严格控制goto语句的使用。
真题分析
【真题1】下列选项中不属于结构化程序设计原则的是________。
(2009年9月)
A)模块化
B)逐步求精
C)可封装
D)自顶向下
解析:
结构化程序设计的原则主要包括:
①自顶向下;②逐步求精;③模块化;④限制使用goto语句。
答案:
C
【真题2】符合结构化原则的三种基本控制结构是:
选择结构、循环结构和__【3】__结构。
(2009年3月)
解析:
结构化程序设计的3种基本控制结构是:
选择结构(分支结构)、循环
结构、顺序结构。
答案:
顺序
【真题3】结构化程序设计的基本原则不包括________。
(2008年4月)
A)模块化
B)逐步求精
C)多态性
D)自顶向下
-18-解析:
结构化程序设计方法的主要原则可以概括为:
自顶向下,逐步求精,模块化和限制使用GOTO语句,其中不包括多态性。
答案:
C
【真题4】下列选项中不属于结构化程序设计方法的是________。
(2006年4月)
A)模块化
B)可复用
C)自顶向下
D)逐步求精
解析:
结构化程序设计方法的主要原则有四点:
自顶向下(先从最上层总目标开始设计,逐步使问题具体化)、逐步求精(对于复杂问题,设计一些子目标作为过渡,逐步细化)、模块化(将程序要解决的总目标分解为分目标,再进一步分解为具体的小目标,每个小目标作为一个模块)、限制使用GOTO语句。
不存在可复用原则。
答案:
B
【真题5】仅由顺序、选择(分支)和重复(循环)结构构成的程序是__【4】__程序。
(2010年9月)
解析:
本题主要考查结构化程序的基本概念。
仅由顺序、选择(分支)和重复(循
环)结构构成的程序是结构化程序。
答案:
结构化
Point6:
面向对象的程序设计方法
考点精讲
1、对象(object):
对象用来表示客观世界中的任何实体。
面向对象的程序设计方法中涉及的对象是系统中用来描述客观事物的一个实体,是构成系统的一个基本单位,它由一组表示其静态特征的属性和它可执行的一组操作组成。
2、类(clas