1、线性结构只有一个节点且每个节点的前键后键均只有一个节点,队列、栈、串属于线性结构,数组、表、树、图属于非线性结构。线性表的第一个元素没有前件,最后一个元素没有后件。循环队列也是线性结构(存储结构)。
2、二叉树前序遍历、中序遍历、后序遍历以此为:根左右、左根右、左右根。
3、软件开发的五个阶段:问题的定义及规划、需求分析、软件设计(简单设计、详细设计、数据库设计等)、程序编码、软件测试。但在实际开发中,并不一定要按照这个顺序甚至这些步骤来做,所谓规则是死的人是活的,具体问题具体分析。
4、数据流图是结构化系统分析常用的方法,它是从数据传递和加工的角度,以图形化的方式来解释系统逻辑的,一般分为四个部分:数据源、加工(处理)、数据流(数据项组成)、存储。
5、软件调试的主要三种方法:强行排错法(是一种传统的调试方法,包括设置断点、程序暂停、观察程序状态、继续运行程序)、回溯法(适用于小规模程序,分析错误征兆,发现最先错误的位置)、原因排除法(演绎、归纳、二分法)。
6、结构化程序设计的三种结构:顺序结构、选择结构、循环结构。
7、软件生命周期有三个:软件定义、软件开发和软件运行维护。软件开发包括概要设计、详细设计、实现和测试。
8、数据库设计包括三个阶段:概念设计、逻辑设计、物理设计。概念设计可以用E-R图表示,逻辑设计是设计某种特定DBMS的数据模型,将E-R图转化为业务逻辑图。物理设计是设计某个DBMS的结构,并设计并实施数据的存储结构和存取方式。
9、数据库关系运算有传统的集合运算(并、交、差、广义笛卡尔积)和专门的关系运算(选择、投影、联接、除)。并是针对行,合并后去除重复的行;交针对行,是合并后留下重复的行;差针对行,是第一个集合减去重复的部分;选择针对行,是从水平方向上选择元组(where),投影针对列,是从垂直方向选择列(select)。连接是针对行(join),从第一张表中取出几行,第二张表中取出几行,两者的笛卡尔积便是联接,如果是自然连接就要去除相同属性的列。
10、耦合度和内聚度:影响耦合度的有两个因素,一个是模块之间的连接形式,而是模块接口的复杂度,接口复杂的一般耦合度高。并且,耦合度弱的模块,其内聚程度一定高。
11、数据库概念设计有两种方法:集中式模式设计法和视图集成设计法。前者是适用于小型的数据库设计,由一个人设计的全局模式。后者是适用于大型的数据库系统,现将系统分成各种子系统,子系统试图模式设计好后再形成整个系统的全局模式。
12、Dijkstra说:”测试只能证明程序有错,不能说明程序正确“,除非进行穷举测试。
13、顺序查找算法最坏情况下,需要查找的次数为n,而二分查找最坏情况下为log2n。
14、软件开发中,需求分析阶段可以使用的工具有数据流图(DFD图)、数据字典、判定树、判定表。软件详细设计阶段,使用的工具有程序流程图、盒图(NS图)、问题分析图(PAD),常用的语言描述工具是程序设计语言(PDL)。程序流程图中的箭头表示控制流,数据流程图中的箭头代表数据流。
15、面向对象方法中,对象具有的特点是:标志唯一性、分类性、多态性、封装性、模块独立性好。
16、软件测试有基本两种黑盒测试(功能测试)和白盒测试(结构测试)。前者是不考虑软件的内部结构,只是以用户的角度测试软件的功能模块,在接口处测试。后者测试软件的内部结构,是一种动态测试。白盒测试法的覆盖标准有逻辑覆盖、循环覆盖和基本路径测试,其中逻辑覆盖有语句覆盖、判定覆盖、条件覆盖、判定/条件覆盖、条件组合覆盖和路径覆盖。黑盒测试的方法有边界值分析。
17、数据库管理的三个历史阶段是人工管理阶段、文件系统阶段、数据库系统阶段。
18、C语言的基本组成单位是语句,C程序的基本组成单位是函数。程序模块化设计思路是自顶向下、逐步细化,把若干独立的模块组装成完整的程序。
19、满二叉树是满的二叉树,完全二叉树是除了最后一层上若干个右节点没有外,其它节点都有的二叉树。n层二叉树最多有2的n次-1个节点,每一层有2的(n-1)次个节点。
20、C语言的register关键字修饰的变量请求编译器将变量尽量存储在CPU的寄存器中,所以不是存在内存中,故不能用取址运算符&,局部变量和形参才可以用次关键字,全局变量不可以。