10、循环队列中的元素个数与队头指针和队尾指针的变化而变化
11、队列的修改是依先进先出的原则进行的
12、设计算法时不仅要考虑对数据对象的运算和操作,还要考虑算法的控制结构
13、顺序表具有以下两个基本特征:
(1)线性表中所有元素所占的存储空间是连续的;
(2)线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。
(3)在顺序表中,每个元素占有相同的存储单元
14、设栈的顺序存储空间为S(0:
49),栈底指针bottom=X,栈顶指针top=Y(指向栈顶元素)。
则栈中的元素个数为X-Y+1
15、设栈的顺序存储空间为S(1:
m),初始状态为top=m+1(X)。
现经过一系列入栈与退栈运算后,top=20(Y),则当前栈中的元素个数为m+1-20=m-19(X-Y)
16、设栈的顺序存储空间为S(1:
50),初始状态为top=0。
现经过一系列入栈与退栈运算后,top=20(X),则当前栈中的元素个数为20(X)
二、程序设计基础
1、结构化程序设计的思想包括:
自顶向下、逐步求精、模块化、限制使用goto语句
2、结构化程序包括的基本控制结构只有三种,即顺序结构、选择结构与循环结构
3、在软件设计中使用的工具PAD图,不使用的工具数据流图(DFD图)
4、对象有如下一些基本特点:
标识唯一性、分类性、多态性、封装性、模块独立性好
5、多态性是指同一个操作可以是不同对象的行为
6、整数类实例包括:
十进制常量用0~9表示,不能以0开头;八进制常量用0~7表示,必须用0开头;十六进制常量用0~9和A~F(a~f)表示,必须以0x或0X开头。
7、字符实例的一般形式是用一对单引号括起来的一个字符。
另外ASCII码中还有一些控制字符,C语言中用转义字符的形式来书写这些常,转义字符一反斜杠(\)开始,后面跟1个字符或字符序列
8、继承是面向对象的方法的一个主要特征,是使用已有的类的定义作为基础建立新类的定义技术。
广义的说,继承是指能够直接获得已有的性质和特征,而不必重复定义它们,所以说继承是指类之间共享属性和操作的机制
三、软件工程基础
1、软件指的是计算机系统中与硬件相互依赖的另一部分,包括程序、数据和有关的文档
2、软件具有以下特点:
(1)软件是一种逻辑实体,具有抽象性;
(2)软件没有明显的制作过程;(3)软件在使用期间不存在磨损、老化问题;(4)对硬件和环境具有依赖性;(5)软件复杂性高,成本昂贵;(6)软件开发涉及诸多的社会因素,如知识产权等
3、软件生命周期可以分为软件定义、软件开发与软件运行维护三个阶段。
主要活动阶段是:
可行性研究与计划阶段,需求分析,软件设计,软件实现,软件测试,运行和维护(同9)
4、计算机软件按功能分为应用软件、系统软件、支撑软件(或工具软件)。
系统软件是管理计算机的资源,提高计算机的使用效率,为用户提供各种服务的软件,如操作系统、数据库管理系统、编译程序、汇编程序和网络软件等
5、数据定义语言:
负责数据的模式定义与数据的物理存取构建;数据操纵语言:
负责数据的操纵,包括查询及增、删、改等操作;数据控制语言:
负责数据完整性、安全性的定义与检查以及并发控制、故障恢复等功能。
6、软件工程包含3个要素:
方法、工具和过程
7、软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期
8、数据库系统的三级模式是概念模式、外模式和内模式。
概念模式是数据库系统中全局数据逻辑结构的描述,是全体用户公共数据视图。
外模式也称子模式或用户模式,它是用户的数据视图,给出了每个用户的局部数据描述。
内模式又称物理模式,它给出了数据库物理存储结构与物理存取方法
9、软件生命周期分为3个时期共8个阶段:
软件定义期,包括问题定义、可行性研究、需求分析;软件开发期,包括概要设计、详细设计、实现、测试;运行维护期,即运行维护阶段。
可行性研究属于软件定义期任务(同3)
10、可行性分析阶段:
可行性分析报告。
需求分析阶段:
软件规格说明书,初步的用户手册。
软件设计阶段:
概要设计说明书,详细设计说明书,测试计划初稿。
软件实践阶段:
用户手册,操作手册等面向用户的文档和单元测试计划。
软件测试阶段:
测试分析报告。
11、概要设计说明书是总体设计阶段产生的文档。
集成测试计划是在概要设计阶段编写的文档。
需求规格说明书是后续工作如设计、编码等需要的重要参考文档
12、需求分析阶段的工作可以分为4个方面:
需求获取、需求分析、编写需求规格说明书和需求评审,包括确定软件系统的功能
13、
(1)在测试之前制定测试计划,并严格执行,测试用例的选择不可随意,应选择有代表性的,尽可能发现迄今为止尚未发现的错误。
(2)测试根本目的是尽可能多地发现并排除软件中隐藏的错误(3)软件测试是保证软件质量、可靠性的关键步骤。
14、在需求分析阶段可以使用的工具有数据流图DFD图,数据字典DD,判定树与判定表
15、数据流图中带箭头的线段表示的是数据流
16、数据字典(DD)所定义的对象都包含于数据流图(DFD图)
17、软件需求规格说明书有以下几个方面的作用。
①便于用户、开发人员进行理解和交流;②反映出用户问题的结构,可以作为软件开发工作的基础和依据;③作为确认测试和验收的依据
18、软件设计中模块划分应遵循的准则是高内聚低偶合、模块大小规模适当、模块的依赖关系适当
19、从技术观点上看,软件设计包括软件结构设计、数据设计、接口设计、过程设计。
20、降低耦合性提高内聚性有利于提高模块的独立性(高内聚低耦合)
21、扇入指的是调用一个给定模块的模块个数
22、扇出指的是由一个模块直接调用的其他模块数
23、结构化程序的三种基本控制结构:
顺序、选择和循环(重复)
24、在数据流图中,用标有名字的箭头表示数据流。
在程序流程图中,用标有名字的箭头表示控制流。
25、软件测试的目的是为了发现错误而执行程序的过程。
程序调试的基本步骤有:
错误定位、修改设计和代码,以排除错误、进行回归测试,防止引进新的错误。
程序调试通常称为Debug,即排错。
软件测试的基本准则有:
所有测试都应追溯到需求、严格执行测试计划,排除测试的随意性、充分注意测试中的群集现象、程序员应避免检查自己的程序、穷举测试不可能、妥善保存测试计划等文件。
26、白盒测试又称为结构测试或逻辑驱动测试,对程序所有的逻辑路径进行测试
27、黑盒测试只是根据程序的功能说明来设计测试用例。
在使用黑盒测试法时,手头只需要有程序功能说明就可以了。
黑盒测试法:
等价类划分法、边界值分析法和错误推测法
四、数据库设计基础
1、数据库管理系统是数据库的机构,是一种在操作系统之上的系统软件。
2、数据管理技术的发展经历了3个阶段:
人工管理阶段、文件系统阶段和数据库系统阶段。
特点
人工管理阶段
文件系统阶段
数据库系统阶段
管理者
人
文件系统
数据库管理系统
面向对象
某个应用程序
某个应用程序
现实世界
共享程度
无共享,冗余度大
共享性差,冗余度大
共享性大,冗余度小
独立性
不独立,完全依赖于程序
独立性差
具有高度的物理独立性和一定的逻辑独立性
结构化
无结构
记录内有结构,整体无结构
整体结构化,用数据模型描述
控制能力
由应用程序控制
由应用程序控制
由DBMS提供数据安全性、完整性、并发控制和恢复
3、数据库应用系统中的核心问题是数据库的设计。
4、数据库中反映用户对数据要求的模式为外模式
5、数据模型通常由数据结构、数据操作及数据约束3部分组成
6、数据模型按照不同的应用层次分为3种类型:
概念数据模型、逻辑数据模型、物理数据模型
7、数据模型成熟并大量使用的数据模型有层次模型、网状模型、关系模型和面向对象模型等
8、关系模型实体间的联系采用二维表来表示,简称表:
网状结构为网状模型实体间的联系;树状结构为层次模型实体间的联系;属性刻画了实体。
9、在E-R图中实体集用矩形,属性用椭圆,联系用菱形
10、二维表中的一行称为元组。
候选键(码)是二维表中能唯一标识元组的最小属性集。
若一个二维表有多个候选码,则选定其中一个作为主键(码)供用户使用。
表M中的某属性集是表N的候选键或者主键,则称该属性集为表M的外键(码)。
11、1966年Boehm和Jacopini证明了程序设计语言仅仅使用顺序、选择和重复(循环)三种基本控制结构就足以表达出各种其他形式结构的程序设计方法
12、关系模型中可以有3类完整性约束:
实体完整性约束、参照完整性约束和用户定义的完整性约束。
实体完整性约束是指,若属性M是关系的主键,则属性M中的属性值不能为空值。
参照完整性约束是指,若属性(或属性组)A是关系M的外键,它与关系M的主码相对应,则对于关系M中的每个元组在A上的值必须为:
要么取空值;要么等于关系M中某个元组的主码值。
13、用于查询的3个操作无法用传统的集合运算表示,引入的运算为投影运算、选择运算、笛卡尔积。
常用的扩充运算有交、除、连接及自然连接等。
并:
RS是将S中的记录追加到R后面。
交:
RS结果是既属于R又属于S的记录组成的集合。
上述两种操作中,关系R与S要求有相同的结构,故A、D选项错误。
自然连接:
去掉重复属性的等值连接。
自然连接要求两个关系中进行,比较的是相同的属性,并且进行等值连接。
除运算可以近似地看作笛卡尔积的逆运算。
当S×T=R时,则必有R÷S=T,T称为R除以S的商。
设关系R有属性M1,M2,…,Mn,关系S有属性Mn-s+1,Mn-s+2,…,Mn,此时有:
R÷S=πM1,M2,…,Mn-s(R)-πM1,M2,…,Mn-s((πM1,M2,…,Mn-s(R)×S))。
由S中有属性A和A1,T中属性为B和B1,在R元组中找到对应于S中两个元组的T中元组为f3与n2。
R中最后一个元组与S中无对应关系,所以在T中也不会出现。
投影,从关系模式中指定若干个属性组成新的关系。
二级C语言
一、C语言概述
1、结构化程序设计把一个复杂问题的求解过程分阶段进行,需要保证自顶向下、逐步细化、模块化设计、结构化编码
2、函数体必须由{开始。
一个源程序文件可以包括预处理命令、全局声明、函数定义,程序总是从main函数开始执行的
3、算法不一定要包含所有三种基本结构,也可以只包含一种或两种
4、算法的复杂程序不是由操作步骤多少决定的,而是按时间复杂度与空间复杂度来衡量
5、C编译程序把文件后缀为.c的源程序文件编译成文件后缀为.obj的二进制文件,链接将一个或多个目标文件与程序用到的库文件连接起来,形成