二级公共基础知识考试要点和习题.docx
- 文档编号:10230694
- 上传时间:2023-02-09
- 格式:DOCX
- 页数:30
- 大小:38.83KB
二级公共基础知识考试要点和习题.docx
《二级公共基础知识考试要点和习题.docx》由会员分享,可在线阅读,更多相关《二级公共基础知识考试要点和习题.docx(30页珍藏版)》请在冰豆网上搜索。
二级公共基础知识考试要点和习题
二级公共基础知识考试要点汇总
第一章数据结构与算法
1.1算法
算法:
是指解题方案的准确而完整的描述。
算法不等于程序,也不等于计算机方法,程序的编制不可能优于算法的设计。
算法的特征:
可行性、确定性、有穷性、拥有足够的情报。
算法的基本要素:
一是对数据对象的运算和操作;二是算法的控制结构。
算法的控制结构:
顺序结构、选择结构、循环结构。
指令系统:
一个计算机系统能执行的所有指令的集合。
基本运算和操作包括:
算术运算、逻辑运算、关系运算、数据传输。
算法的设计方法有:
列举法、归纳法、递推、递归、减半递推技术、回溯法。
算法复杂度包括:
时间复杂度、空间复杂度。
两者并不相关
时间复杂度是指执行算法所需要的计算工作量。
可以用执行算法过程中所需基本运算的执行次数来量度
空间复杂度是指执行这个算法所需要的内存空间。
习题
1.在计算机中,算法是指
A)加工方法B)解题方案的准确而完整的描述
C)排序方法D)查询方法
2.算法分析的目的是
A)找出数据结构的合理性B)找出算法中输入和输出之间的关系
C)分析算法的易懂性和可靠性D)分析算法的效率以求改进
3.算法的基本特征是可行性、确定性、_____和拥有足够的情报。
4.算法的工作量大小和实现算法所需的存储单元多少分别称为算法的________。
5.算法的时间复杂度是指
A)执行算法程序所需要的时间
B)算法程序的长度
C)算法执行过程中所需要的基本运算次数
D)算法程序中的指令条数
6.算法的空间复杂度是指_______。
A)算法程序的长度B)算法程序中的指令条数
C)算法程序所占的存储空间D)算法执行过程中所需要的存储空间
7.下面叙述正确的是_______。
A)算法的执行效率与数据的存储结构无关
B)算法的空间复杂度是指算法程序中指令(或语句)的条数
C)算法的有穷性是指算法必须能在执行有限个步骤之后终止
D)算法的时间复杂度是指执行算法程序所需要的时间
1.2数据结构
数据结构是指相互有关联的数据元素的集合。
数据结构包括:
数据的逻辑结构、存储(物理)结构;
数据的逻辑结构包含:
数据元素的信息、各数据元素之间的前后件关系,分线性结构和非线性结构。
存储结构是指数据的逻辑结构在计算机存储空间中的存放形式,包括顺序结构和链式结构,在数据的存储结构中,不仅要存放各数据元素的信息,还需要存放各数据元素之间的前后件关系的信息,顺序存储特点是数据元素按数据元素的逻辑次序,依次存放在一组地址连续的存储单元中,在存储单元中各元素的物理位置和逻辑结构中各结点间的相邻关系是一致的。
链式链式结构特点是存储单元中各元素的物理位置和逻辑结构中各结点间的相邻关系不一致。
线性结构既可以采用顺序存储也可采用链式存储,非线性结构一般采用链式存储,在某些情况下也可采用顺序存储。
线性结构条件:
有且只有一个根结点、结点最多有一个前件也最多有一后件。
非线性结构:
不满足线性结构条件的数据结构
习题:
8.数据结构作为计算机的一门学科,主要研究数据的逻辑结构、对各种数据结构进行的运算,以及
A)数据的存储结构B)计算方法
C)数据映象D)逻辑存储
9.数据结构中,与所使用的计算机无关的是数据的
A)存储结构B)物理结构
C)逻辑结构D)物理和存储结构
10.顺序存储方法是把逻辑上相邻的结点存储在物理位置______的存储单元中。
11.下列叙述中正确的是______。
A)一个逻辑数据结构只能有一种存储结构
B)数据的逻辑结构属于线性结构,存储结构属于非线性结构
C)一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率
D)一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率
1.3线性表及其顺序存储结构
线性表由N个数据元素组成的一个有限序列。
数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。
在复杂线性表中,由若干数据元素组成的数据元素称为记录,而由多个记录构成的线性表又称为文件。
线性表的顺序储有两个特点:
(1)线性表中所有元素的所占的存储空间是连续的;
(2)线性表中各数元素在存储空间中是按逻辑顺序依次存放的。
1.4栈和队列:
都是一种特殊的操作受限的线性表,只允许在端点进行插入与删除
允许插入与删除的一端称为栈顶,另端为栈底。
按照“先进后出”组织数据,栈具有记忆作用。
队列是指允许在一端(队尾)进入插入,而在另一端(队头)进行删除的线性表。
Rear指针指向队尾,front指针指向队头。
队列是“先进先出”(FIFO)的线性表。
可采用链式存储,带链的队列也属于线性结构
线性表是一种线性结构,数据元素在线性表中的位置只取决于它们自己的序号,即数据元素之间的相对位置是线性的;栈、队列、线性链表实际上也是线性表,故也是线性结构;树是一种简单的非线性结构。
1.5线性链表:
线性表的链式存储结构,其对应的逻辑结构也是线性的
数据结构中的每一个结点对应于一个存储单元,每个结点由两部分组成:
(1)用于存储据元素值,称为数据域;
(2)用于存放指针,称为指针域,用于指向前一个或后一个结点。
链式存储方式即可用于表示线性结构,也可用于表示非线性结构。
在链式存储结构中,存储数据结构的存储空间可以是连续的,也可以是不连续的,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致。
指向线性表中第一个结点的针HEAD称为头指针,HEAD=NULL(或0)称为空表
线性链表的基本运算:
查找、插入、删除。
线性链表是线性表的链式存储结构,二叉链表是二叉树的链式存储结构,栈和队列是特殊的线性表,循环队列是队列的一种顺序存储结构。
故线性链表、二叉链表、循环队列均属于存储结构,而栈和队列属于逻辑结构
1.6树与二叉树
树是一个或多个结点组成的有限集合
树是一种简单的非线性结构,所有元素之间具有明显的层次特性。
在树结构中,每个结点只有一个前件为父结点,没前件的结点为根。
每个结点可有多个后件,为子结点。
没后件的结点为叶子结点。
在树结构中,一结点拥有后件个数为该结点的度,结点中最大的度为树的度。
最大层次为树的深度。
二叉树的特点:
每个结点最多有两棵子树,分别称为该结点的左子树和右子树。
二叉树的基本性质:
1.第k层上最多有2k-1个结点;
2.深度m最多有2m-1个结点;
3.度为0的结点(叶子结点)总是比度为2的结点多一个;
满二叉树:
除最后一层外,每一层上的所有结点都有二个子结点
完全二叉树:
除最后一层外,每一层上的结点数达最大,在最后一层上只缺少右边的若干结点。
满二叉树也是完全二叉树,而完全二叉树一般不是满二叉树
二叉树存储采用链式存储结构,对于满二叉树与完全二叉树可以按层序进行顺序存储。
据二叉树性质“度为0结点总是比度为2有结点多一个”和完全二叉树定义“最多有1个度为1的结点”可得如下推论:
设一棵完全二叉树有N结点:
若N为偶数,则该二叉树中有N/2个叶子结点、(N/2)-1个度为2的结点、1个度为1的结点;
若N为奇数,则该二叉树中有(N/2)+1个叶子结点、N/2个度为2的结点、没有度为1的结点;
二叉树的遍历:
访问结点的顺序,大体上是从上往下,从左往右
前序DLR根左右中序LDR左根右后序LRD左右根
据前序和中序可定二叉树结构:
①前序第一个结点为根②中序根的左边结点即为根的左子树,右边的为右子树;③再分别对左右子树进行上述两步处理,直到找到正确位置。
1.7查找和排序
“最坏情况下”所需比较的次数为:
顺序查找:
n次二分查找:
Log2n次,
冒泡排序:
n(n-1)/2快速排序:
n(n-1)/2
简单插入排序:
n(n-1)/2希尔排序:
O(n1.5)
简单选择排序:
n(n-1)/2堆排序:
O(nLog2n)
从平均时间性能而言,快速排序最佳,其所需时间最少,但快速排序在最坏情况下的时间性能不如堆排序和归并排序。
当序列中的记录基本有序或元素个数较少时,冒泡排序和简单选择排序为最佳排序方法
习题:
12.数据结构分为逻辑结构与存储结构,线性链表属于,循环队列属于。
13.线性表L=(a1,a2,a3,…ai,…an),下列说法正确的是
A)每个元素都有一个直接前件和直接后件
B)线性表中至少要有一个元素
C)表中诸元素的排列顺序必须是由小到大或由大到小
D)除第一个元素和最后一个元素外,其余每个元素都有一个且只有一个直接前件和直接后件
14.下列关于栈的描述正确的是______。
A)在栈中只能插入元素而不能删除元素
B)在栈中只能删除元素而不能插入元素
C)栈是特殊的线性表,只能在一端插入或删除元素
D)栈是特殊的线性表,只能在一端插入元素,而在另一端删除元素
15.栈和队列的共同特点是
A)都是先进先出B)都是先进后出
C)只允许在端点处插入和删除元素D)没有共同点
16.下列叙述中正确的是
A)线性表是线性结构B)栈与队列是非线性结构
C)线性链表是非线性结构D)二叉树是线性结构
17.下面关于完全二叉树的叙述中,错误的是________。
A)除了最后一层外,每一层上的结点数均达到最大值
B)可能缺少若干个左右叶子结点
C)完全二叉树一般不是满二叉树
D)具有n个结点的完全二叉树的深度为[log2n]+1
18用链表表示线性表的优点是
A)便于随机存取B)花费的存储空间较顺序存储少
C)便于插入和删除操作D)数据元素的物理顺序与逻辑顺序相同
19.在深度为5的满二叉树中,叶子结点的个数为
A)32B)31C)16D)15
20.设有下列二叉树:
前序为:
ABTYPCXZ中序为:
TYBPAXZC后序为:
YTPBZXCA
21.已知二叉树后序遍历序列是dabec,中序遍历序列是debac,它的前序遍历序列是
A)acbedB)decab
C)deabcD)cedba
22.已知一棵二叉树前序遍历和中序遍历分别为ABDEGCFH和DBGEACHF,则该二叉树的后序遍历为
A)GEDHFBCAB)DGEBHFCA
C)ABCDEFGHD)ACBFEDHG
23.假设线性表的长度为n,则在最坏情况下,冒泡排序需要的比较次数为
A)log2nB)n2C)O(n1.5)D)n(n-1)/2
24.对长度为n线性表进行顺序查找,在最坏情况下所需要的比较次数为_______。
A)n+1B)nC)(n+1)/2D)n/2
25.在待排序的元素序列基本有序的前提下,效率最高的排序方法是
A)冒泡B)选择排序C)快速排序D)归并排序
26.下列数据结构中,能用二分法进行查找的是______。
A)顺序存储的有序线性表B)线性链表C)二叉链表D)有序线性链表
第二章程序设计基础
2.1良好的程序设计风格
1、源程序文档化;2、数据说明的方法;3、语句结构;4、输入和输出
注释分序言性注释和功能性注释,语名结构清晰第一、效率第二。
程序设计应该简单易懂,语句构造应该简单直接,不应该为提高效率而把语句复杂化
程序结构有三种:
、顺序结构、选择结构(分支结构)、重复结构(循环结构)
程序设计方法:
结构化程序设计、模块化程序设计、自顶向下逐步细化设计过程
结构化程序设计方法的四条原则是:
1、自顶向下;2、逐步求精;3、模块化;4、限制使用goto语句。
程序设计语言是用于书写计算机程序的语言,其基本成分有以下4种:
数据成分:
用来描述程序中的数据。
运算成分:
描述程序中所需的运算。
控制成分:
用来构造程序的逻辑控制结构。
传输成分:
定义数据传输成分,如输入输出语言
2.2面向对象的程序设计
在面向对象技术中,主要用到对象(object)、类(class)、方法(method)、消息(message)、
继承(inheritance)、封装(encapsulation)等基本概念。
面向对象的程序设计:
以60年代末挪威奥斯陆大学和挪威计算机中心研制的simula语言为标志。
面向对象方法的优点:
(1)与人类习惯的思维方法一致;
(2)稳定性好;(3)可重用性好;(4)易于开发大型软件产品;(5)可维护性好。
对象是面向对象方法中最基本的概念,用来描述客观事物的一个实体,是实体的抽象。
对象是系统中的一个基本单位,由一组表示其静态特征的属性和它可执行的一组操作组成。
属性即对象包含的信息,操作描述了对象执行的功能,操作也称为方法或服务。
对象基本特点:
标识惟一性、分类性、多态性、封装性、模块独立性。
对象是由数据及可以对这些数据施加的操作组成的统一体。
对象的内部,即处理能力的实行和内部状态,对外是看不见的,这一特性称做对象的封装。
封装是一种种信息屏蔽技术,目的在于将对象的使用者和设计者分开,用户只能看到对象封装界面上的信息,不必知道实现的细节
类是指具有共同属性、共同方法的对象的集合。
因此属性和操作相似的一组对象称为类
所以类是对象的抽象,对象是对应类的一个实例。
类是面向对象语言中必备的程序语言结构,用来实现抽象数据类型。
类与类之间的继承关系实现了类之间的共享属性和操作,一个类可以在另一个已定义的类的基础上定义,这样使该类型继承了其超类的属性和方法,当然,也可以定义自己的属性和方法
方法:
允许作用于某个对象上的各种操作。
消息是一个实例与另一个实例之间传递的信息。
它请求对象执行某一处理或回答某一要求的信息。
消息的组成包括
(1)接收消息的对象的名称;
(2)消息标识符,也称消息名;(3)零个或多个参数。
多态性是指同样的消息被不同的对象接受时可导致完全不同的行动的现象。
继承是使用已有的类定义做为基础建立新类的定义技术
继承:
表示类之间的相似性的机制。
是指能够直接获得已有的性质和特征,而不必重复定义他们。
继承分单继承和多重继承。
单继承指一个类只允许有一个父类,多重继承指一个类允许有多个父类。
继承的优点:
相似的对象可以共享程序代码和数据结构,从而大大减少了程序中的冗余,提高软件的可重用性。
习题:
1.对建立良好的程序设计风格,下面描述正确的是
A)程序应简单、清晰、可读性好B)符号名的命名只要符合语法
C)充分考虑程序的执行效率D)程序的注释可有可无
2.下面描述中,不符合结构化程序设计风格的是_______。
A)使用顺序、选择和循环三种基本控制结构表示程序的控制逻辑
B)自顶向下C)注重提高程序的执行效率D)限制使用goto语句
3.结构化程序设计的3种结构是
A)顺序结构、选择结构、转移结构B)分支结构、等价结构、循环结构
C)多分支结构、赋值结构、等价结构D)顺序结构、选择结构、循环结构
4.以下不属于对象的基本特点的是
A)分类性B)多态性C)继承性D)封装性
5.对象实现了数据和操作的结合,是指对数据和数据的操作进行
A)结合B)隐藏C)封装D)抽象
6.在面向对象方法中,类之间共享属性和操作的机制称为。
第三章软件工程基础
3.1软件工程
软件工程包括3个要素,即方法、工具和过程。
方法是完成软件工程项目的技术手段;工具支持软件的开发、管理、文档生成;过程支持软件开发的各个环节的控制、管理。
软件工程研究的内容包括:
软件开发技术、软件工程管理
软件工程源于软件危机(上世纪60、70年代,随计算机应用普及,软件量急剧膨胀,软件维护工作耗费惊人,甚至无法维护)。
软件危机主要表现在成本、质量、生产率等问题。
为了更有效的开发与维护软件,新兴了一门软件工程。
计算机软件是包括程序、数据及相关文档的完整集合。
软件的特点包括:
(1)软件是一种逻辑实体;
(2)软件的生产与硬件不同,它没有明显的制作过程;(3)软件在运行、使用期间不存在磨损、老化问题;(4)软件的开发、运行对计算机系统具有依赖性,受计算机系统的限制,这导致了软件移植的问题;(5)软件复杂性高,成本昂贵;(6)软件开发涉及诸多的社会因素。
软件按功能分为应用软件、系统软件、支撑软件(或工具软件)。
软件工程是应用于计算机软件的定义、开发和维护的一整套方法、工具、文档、实践标准和工序。
软件工程包括3个要素:
方法、工具和过程。
软件周期:
软件产品从提出、实现、使用维护到停止使用退役的过程。
软件生命周期分三个时期:
定义、开发、维护。
八个阶段是:
问题定义、可行性研究、需求分析、概要设计、详细设计、编码实现、测试、运行维护。
软件调试:
程序调试的任务是诊断和改正程序中的错误。
软件测试:
是为了发现错误而执行程序的过程。
软件测试贯穿整个软件生命周期,而调试主要在开发阶段。
黑盒测试与白盒测试
黑箱测试方法完全不考虑程序的内部结构和内部特征,而只是根据程序功能导出测试用例。
常用的黑箱测试有等价分类法、边值分析法、因果图法和错误推测法4种。
软件的白盒测试方法是把测试对象看做一个打开的盒子,它允许测试人员利用程序内部的逻辑结构及有关信息,设计或选择测试用例,对程序所有逻辑路径进行测试。
静态测试与动态测试:
静态测试包括代码检查、静态结构分析和代码质量度量等。
其中白盒和黑盒测试都属于动态测试
确认测试的任务是验证软件的功能和性能,以及其他特性是否满足需求规格说明定的各种需求;集成测试的主要目的是发现与接口有关的错误。
软件测试的目标是在精心控制的环境下执行程序,以发现程序中的错误,给出程序可靠性的鉴定;调试也称排错,它是一个与测试有联系又有区别的概念。
具体来说,测试的目的是暴露错误,评价程序的可靠性,而调试的目的是发现错误的位置,并改正错误。
软件测试过程一般按4个步骤进行,即单元测试、集成测试、验收测试和系统测试。
单元测试的技术可以采用静态分析和动态测试。
对动态测试多采用白盒动态测试为主,辅之以黑盒测试。
软件工程的目标:
在给定成本、进度的前提下,开发出具有有效性、可靠性、可理解性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品。
基本原则:
抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。
软件工程的理论和技术性研究的内容主要包括:
软件开发技术和软件工程管理。
软件开发技术包括:
软件开发方法学、开发过程、开发工具和软件工程环境。
软件工程管理包括:
软件管理学、软件工程经济学、软件心理学等内容。
软件管理学包括人员组织、进度安排、质量保证、配置管理、项目计划等。
软件工程原则包括抽象、信息隐蔽、模块化、局部化、确定性、一致性、完备性和可验证性。
评价模块独立性标准有:
耦合性和内聚性。
一般优秀的软件设计,应尽量做到高内聚,低耦合,即减弱模块之间的耦合性和提高模块内的内聚性,有利于提高模块的独立性。
内聚性是一个模块内部各个元素间彼此结合的紧密程度的度量,内聚是从功能角度来度量模块内的联系;耦合性是模块间互相连接的紧密程度的度量。
3.2结构化分析方法
结构化分析的常用工具有数据流图、数据字典、判定树和判定表。
而PAD图是常见的过程设计工具中的图形设计。
需求分析方法有
(1)结构化需求分析方法;
(2)面向对象的分析的方法。
从需求分析建立的模型的特性来分:
静态分析和动态分析。
结构化分析方法的实质:
着眼于数据流,自顶向下,逐层分解,建立系统的处理流程,以数据流图和数据字典为主要工具,建立系统的逻辑模型。
数据流图(简称DFD):
是用图形方式来表达系统的逻辑功能、数据在内部的逻辑流向、变换过程,它直接支持系统功能建模。
用于系统需求分析阶段
数据流图有二种典型结构:
变换型、事务型
数据流图组成符号:
(箭头细实线)数据流、(矩形)外部实体、(双横线)数据存储、(椭圆)数据处理
数据字典:
对所有与系统相关的数据元素的一个有组织的列表,以及精确的、严格的定义,使得用户和系统分析员对于输入、输出、存储成分和中间计算结果有共同的理解。
数据字典是结构化分析的核心
判定树:
从问题定义的文字描述中分清哪些是判定的条件,哪些是判定的结论,根据描述材料中的连接词找出判定条件之间的从属关系、并列关系、选择关系,根据它们构造判定树。
判定表:
与判定树相似,当数据流图中的加工要依赖于多个逻辑条件的取值,即完成该加工的一组动作是由于某一组条件取值的组合而引发的,使用判定表描述比较适宜。
。
软件需求规格说明书的特点:
正确性、无岐义性、完整性、可验证性、一致性、可理解性、可追踪性。
3.3结构化设计方法
结构化程序设计方法的主要原则可以概括为自顶向下、逐步求精、模块化及限制使用goto语句,总的来说可使程序结构良好、易读、易理解、易维护。
结构化设计方法中生成的结构图(SC)有四种成分:
模块(矩形框)是基本元素、调用(带箭头连线)、模块间信息传递(带有圆圈小箭头)、辅助符号
软件设计的基本目标是用比较抽象概括的方式确定目标系统如何完成预定的任务,软件设计是确定系统的物理模型。
软件设计是开发阶段最重要的步骤,是将需求准确地转化为完整的软件产品或系统的唯一途径。
从技术观点来看,软件设计包括软件结构设计、数据设计、接口设计、过程设计。
结构设计:
定义软件系统各主要部件之间的关系。
数据设计:
将分析时创建的模型转化为数据结构的定义。
接口设计:
描述软件内部、软件和协作系统之间以及软件与人之间如何通信。
过程设计:
把系统结构部件转换成软件的过程描述。
从工程管理角度来看:
概要设计和详细设计。
软件设计的一般过程:
软件设计是一个迭代的过程;先进行高层次的结构设计;后进行低层次的过程设计;穿插进行数据设计和接口设计。
软件维护是生命周期最后一个阶段,也是持续时间长、付出代价最大的阶段。
维护活动有四类:
改正性维护、适应性维护、完善性维护和预防性维护。
适应性维护是指为了使软件适应变化,而去修改软件的过程;
完善性维护是指为了满足用户对软件提出的新功能与性能要求,需要修改或再开发软件,以扩充软件功能、增强软件性能、改进加工效率、提高软件的可维护性;
预防性维护是为了提高软件的可维护性、可靠性等,为以后的进一步改进软件打下良好基础。
改正性维护是指在软件交付使用后,为了识别和纠正软件错误、改正软件性能上的缺陷、35排除实施中的误使用,应当进行的诊断和改正错误的过程;
习题
1.软件工程的出现是由于
A)程序设计方法学的影响B)软件产业化的需要
C)软件危机的出现D)计算机的发展
2.软件工程包括3个要素,即方法、工具和过程。
是完成软件工程项目的技术手段;支持软件的开发、管理、文档生成;支持软件开发的各个环节的控制、管理
3.软件开发的结构化生命周期方法将软件生命周期划分成
A)定义、开发、运行维护B)设计阶段、编程阶段、测试阶段
C)总体设计、详细设计、编程调试D)需求分析、功能定义、系统设计
4.在软件生命周期中,能准确地确定软件系统必须做什么和必须具备哪些功能的阶段是________。
A)概要设计B)详细设计C)可行性分析D)需求分析
5.下列叙述中,不属于软件需求规格说明书的作用的是
A)便于用户、开发人员进行理解和交流
B)反映出用户问题的结构,可以作为软件开发工作的基础和依据
C)作为确认测试和验收的依据
D)便于开发人员进行需求分析
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 二级 公共 基础知识 考试 要点 习题
![提示](https://static.bdocx.com/images/bang_tan.gif)