2023年全国计算机等级考试二级C语言知识点超全整打印版.docx
《2023年全国计算机等级考试二级C语言知识点超全整打印版.docx》由会员分享,可在线阅读,更多相关《2023年全国计算机等级考试二级C语言知识点超全整打印版.docx(64页珍藏版)》请在咨信网上搜索。
全国计算机 等级考试 目录 第一部分 公共基础知识 第 1 章 算法与数据结构 1 考点 1 算法 1 考点 2 数据结构 1 考点 3 线性表及其顺序存储结构 1 考点 4 栈和队列 1 考点 5 线性链表 2 考点 6 树与二叉树 2 考点 7 查找技术 3 考点 8 排序技术 3 第 2 章 程序设计基础 4 考点 1 程序设计方法与风格 4 考点 2 结构化程序设计 5 考点 3 面向对象的程序设计 5 第 3 章 软件工程基础 5 考点 1 软件工程基本概念 5 考点 2 软件分析方法 6 考点 3 结构化设计方法 7 考点 4 软件测试 8 考点 5 程序的调试 9 第 4 章 数据库设计基础 9 考点 1 数据库系统的基本概念 9 考点 2 数据库系统的基本概念 10 考点 3 关系代数 12 考点 4 数据库设计与管理 12 第二部分 二级 C 语言 第 1 章 程序设计基本概念 14 考点 1 程序设计 14 考点 2 C 程序的结构和格式 14 考点 3 常量和变量 14 考点 4 算术表达式 15 考点 5 赋值表达式 16 考点 6 自加、自减和逗号运算 16 第 2 章 顺序结构 17 考点 1 字符型常量与变量 17 考点 2 putchar 与 getchar 函数 17 考点 3 printf 函数 17 考点 4 scanf 函数 18 考点 5 位运算的含义和应用 18 第 3 章 选择结构 19 考点 1 关系运算符和关系表达式 19 考点 2 逻辑运算符和逻辑表达式 19 考点 3 if 语句及其构成的选择结构 19 考点 4 switch 语句与 break 语句 20 第 4 章 循环结构 20 考点 1 while 循环结构 20 考点 2 do-while 循环结构 21 考点 3 for 循环结构 21 考点 4 嵌套循环语句 21 第 5 章 函数 21 考点 1 库函数 21 考点 2 函数的调用 22 考点 3 参数传递 22 考点 4 函数的递归调用 23 考点 5 局部、全局变量和存储分类 23 第 6 章 地址与指针 23 考点 1 变量的地址和指针 23 考点 2 指针变量的操作 24 考点 3 函数之间地址的传递 24 第 7 章 数组 24 考点 1 一维数组的定义及元素的引用.. 24 考点 2 函数对一维数组及元素的引用.. 25 考点 3 二维数组的定义 25 考点 4 二维数组和指针 25 考点 5 二维数组名和指针数组作为实参... 26 第 8 章 字 符串 26 考点 1 用一维字符数组存放字符串 26 考点 2 使指针指向字符串 26 考点 3 字符串的输入和输出 26 考点 4 字符串数组 27 考点 5 用于字符串处理的函数 27 第 9 章 编译预处理和动态存储分配 27 考点 1 编译预处理 27 考点 2 宏替换 27 考点 3 文件包含处理 28 考点 4 动态存储分配 28 第 10 章 结构体、共用体和用户定义类型28 考点 1 结构体 28 考点 2 共用体 29 考点 3 用户定义类型 29 第 11 章 文件 29 考点 1 文件指针 29 考点 2 文件的读写 30 第一部分 公共基础知识第 1 章 算法与数据结构 考点 1 算法 1.什么是算法 算法是指对解题方案的准确而完整的描述。计算机程序本质上就是一个算法,它告诉计算机确切的环节来执行一个指定的任务。 (1)算法的基本特性 一般来说,算法应具有:可行性、拟定性、有穷性、拥有足够的情报这几个特性。 (2)算法的组成要素 通常,一个算法由两部分组成:一是对数据对象的运算和操作,二是算法的控制结构。 2.算法的复杂度 算法的复杂度是算法规模的度量,一个算法的复杂度高低体现在运营该算法所需要的计算机资源的多少,所需的资源越多,就说明该算法的复杂度越高;反之,所需的资源越少,则该算法的复杂度越低。算法复杂度涉及算法的时间复杂度和算法的空间复杂度。 考点 2 数据结构 1.数据结构的概念 所谓数据结构是指由某一数据对象及该对象中所有数据成员之间的关系组成的集合。成员之间的关系有很多种,最常见的是前后件关系。 2.数据的逻辑结构 (1)逻辑结构的定义 数据的逻辑结构,是指反映数据之间逻辑关系的数据结构。对于电脑上的数据而言,逻辑结构就是可以用眼睛看到的数据形式,涉及在屏幕上看到的文本、图片、视频等。 (2)逻辑结构的分类 根据数据结构中各元素之间前后关系的复杂限度,将数据的逻辑结构提成线性结构和非线性结构。一个非空的线性结构假如满足以下两个条件:①有且只有一个根结点;②每一个结点最多有一个前件,也最多有一个后件。 3.数据的存储结构 数据的存储结构也称为数据的物理结构, 是指数据在计算机中存放的方式,涉及数据元素的存储和关系的存储。通常,一种数据的逻辑结构根据需要可以表达成多种存储结构,常用的存储结构有顺序、链式存储结构。 考点 3 线性表及其顺序存储结构 1.线性表的基本概念 线性表是由 n 个数据元素组成的有限序列,是最简朴、最常用的数据结构。其中的数据元素有着广泛的含义,可以是一个单独的数字或字母,可以是矩阵中的一行或一列向量, 也可以是二维表中的一条记录。线性表是一种线性结构。数据元素在线性表中的位置,只取决于它们自己的序号,即数据元素之间的相对位置是线性的。 2.线性表的顺序存储结构 一种数据的逻辑结构根据需要可以表达成多种存储结构。线性表的存储结构常用的是顺序存储,也称为顺序分派。线性表的顺序存储结构具有以下两个基本特点:①线性表中所有元素所占的存储空间是连续的;②线性表中各数据元素在存储空间中是按逻辑顺序依次存放的。 3.顺序表的插入 所谓“顺序表”指的是使用顺序存储结构的线性表。在顺序表中插入一个新的数据元素,就像是在排队买票的时候进来了一个插队的人。 4.顺序表的删除 在顺序表中删除一个数据元素,就像是在排队买票的时候其中的一个人离开了。在平均情况下,要在线性表中删除一个元素,需要移动线性表中一半的数据元素。 考点 4 栈和队列 1.栈及其基本运算 (1)什么是栈 栈是一种特殊的线性表。在这种特殊的线性表中,其插入和删除运算都只能在线性表的一端进行。一端是封闭的,不允许插入和删除数据元素;另一端是敞开的,允许插入和删除数据元素。 在栈中,允许插入和删除数据元素的一端称为栈顶,而不允许插入和删除数据元素的一端称为栈底。栈顶元素总会是被最后插入的元素,从而也是最先被删除的元素;栈底元素总是最先被插入的元素,从而也是最后才干被删除的元素。即栈是按照“先进后出”或“后进先出”的原则组织数据的。栈具有记忆的功能, 支持子程序的调用。通常用指针 top 来指示栈顶位置,用指针 bottom 来指示栈底的位置。往栈中插入一个元素称为入栈运算,从栈中删除一 个元素称为退栈运算。通过栈顶指针 top 来反反映栈中元素的动态变化情况。 (2)栈的基本运算 栈的基本运算有 3 种:入栈、退栈与读栈顶元素。①入栈运算。入栈运算是指在栈顶位置插入一个新元素。这个运算有两个基本操作:一方面将栈顶指针进一(即top 加 1),然后将新元素插入到栈顶指针指向的位置。②退栈运算。退栈运算是指取出栈顶元素并赋给指定的变量。这个运算有两个基本操作:一方面将栈顶元素赋值给一个指定的变量,然后将栈顶指针退一(即 top 减 1)。③读栈顶元素。读栈顶元素是指将栈顶元素赋给一个指定的变量,但是不删除栈顶元素。因此,在这个运算中,栈顶指针不会改变。当栈顶指针为 0 时,说明栈空,读不到栈顶元素。 2.队列及其基本运算 (1)什么是队列 队列是指允许在表的一端进行插入、而在另一端进行删除的线性表。允许插入的一端称为队尾,通常用一个队尾指针(rear)指向队尾元素,队尾指针总是指向最后被插入的元素;允许删除的一端称为排头(也称为队头),通常也用一个排头指针(front)指向排头元素的前一个位置。 (2)循环队列及其运算 队列的顺序存储结构一般采用循环队列的形式。所谓的循环队列,就是将队列的存储空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。 ①入队运算。入队运算是指在循环队列的队尾加入一个新元素。这个运算有两个基本操作:一方面将队尾指针进一(即 rear=rera+1),并当 rear=m+1 时置 rear=1;然后将新元素插入到队尾指针指向的位置。②退队运算。退队运算是指在循环队列的排头位置退出一个元素并赋值给指定的变量。这个运算有两个基本操作:一方面将排头指针进一(即 front=front+1),并当 front=m+1 时置 front=1;然后将排头指针指向的元素赋给指定的变量。 考点 5 线性链表 1.线性链表 (1)线性链表 线性表的链式存储结构称为线性链表。在 线性链表中,存储空间上的每一个存储结点都要提成两部分:一部分用于存储数据元素的值,称为数据域;另一部分用于存储该数据元素的存储序号(存储结点的地址,即指向后件结点),称为指针域。 (2)线性链表的查找 在非空的线性链表中查找指定元素的操作:从头指针指向的结点开始往后沿着指针进行扫描,假如找到要查找的内容,则查找成功; 假如没有相应的要查找的元素,则查找失败。为了填补线性单链表的这个缺陷,对线性链表中的每个结点设立两个指针,一个称为左指针 (Llink),用以指向其前件结点;另一个称为右指针(Rlink),用来指向其后件结点。这样的线性表称为双向链表。 (3)线性链表的插入 在向线性链表中插入一个新元素之前,我们先要给该元素分派一个新结点,其中涉及值域和指针域以便用于存储该元素的值。然后找到插入位置,将插入位置前件的指针指向新结点,将新接点的指针指向插入位置后件的结点。 (4)线性链表的删除 要从线性表中删除一个元素,一方面将要删除元素的前后件两个指针断开,然后把要删除结点的前件的指针,指向删除结点后的数据元素。 2.循环链表 循环链表与单链表唯一的不同,就是最后一个结点的指针域中的值不同。单链表的最后一个结点的指针域存放的是一个空指针,而循环链表的最后一个结点的指针域存放的是指向第一个结点的指针。 考点 6 树与二叉树 1.树的基本概念 树是一种比较简朴的非线型结构。在树中所有的数据元素之间具有明显的层次关系。之所以将这种数据结构命名为“树”,是由于其结构看上去像一棵倒长着的树。在树的图形表达中,上端的结点是前件,下端的结点是后件。 2.二叉树及基本性质 (1)二叉树 二叉树是一种特殊的树,是一种很有用的非线型结构。所有树结构上的术语都可以用在二叉树上。二叉树具有以下两个特性:① 非空二叉树只有一个根结点;② 每个结点最多有两棵子树, 且分别称为该结点的左子树和右子树。在二叉树中,每个结点的度最大为 2,所有的左子树和右子树也均是二叉树。同时,在二叉树中所有的结点可以没有左子树,也可以没有右子树。即没有左子树又没有右子树的结点是叶子结点。 (2)满二叉树 所谓满二叉树是指:除最后一层外,每一层上的所有结点都有两个子结点。这就是说,在满二叉树中,每一层上的结点数都达成最大值,即满二叉树的第 k 层上有 2k-1 个结点,且深度为m 的满二叉树有 2m-1 个结点。 (3)完全二叉树 所谓的完全二叉树是指:除最后一层外, 每一层上的结点数均达成最大值,最后一层上只缺少右边的若干个结点。 完全二叉树就是去掉最后一层若干个右边结点的满二叉树。 (4)二叉树的基本性质 ①二叉树的基本性质。二叉树具有以下几个基本性质:性质 1:在二叉树的第 K 层上最多有 2k-1(k≥1)个结点。性质 2:深度为 m 的二叉树最多有 2m-1 个结点。性质 3:在任意一棵二叉树中,叶子结点(即度为0 的结点),总比度为 2 的结点多一个。性质 4:具有 n 个结点的二叉树,其深度至少为[log2n]+1。 ②完全二叉树的两项特性。完全二叉树还具有以下两项特性:性质 5:具有 n 个结点的 完全二叉树,其深度为[log2n]+1。性质 6:设完全二叉树共有 n 个结点。假如从根结点开始, 按层序(每一层从左到右)用自然数“1,2,„, n”给结点进行编号。 3.二叉树的遍历 二叉树的遍历是指按照一定的顺序访问二叉树中的结点,每个结点只被访问一次。为了保证所有结点被不重不漏地访问,必须按照一定的顺序进行。 (1)前序遍历(DLR) 一方面访问根结点,然后遍历左子树,最后遍历右子树;在遍历左、右子树时,也按上述的顺序执行。可见前序遍历二叉树是一个递归的过程。对于二叉树的前序遍历,具有如下的规则:对于空的二叉树,不进行操作返回空值。对于非空的二叉树的遍历按下列顺序执行:①访问根结点; ②前序遍历左子树;③前序遍历右子树。 (2)中序遍历(LDR) 一方面遍历左子树,然后访问根结点,最后遍历右子树;在遍历左、右子树时,也按上述的顺序执行。可见中序遍历二叉树也是一个递归的过程。对于二叉树的中序遍历,具有的规则:①对于空的二叉树,不进行操作返回空值。②对于非空的二叉树的遍历按下列顺序执行:中序遍历左子树;访问根结点;中序遍历右子树。 (3)后序遍历(LRD) 一方面遍历左子树,然后遍历右子树,最后访问根结点;在遍历左、右子树时,也按上述的顺序执行。可见后序遍历二叉树同样也是一个递归的过程。对于二叉树的后序遍历,具有的规则:①对于空的二叉树,不进行操作返回空值。②对于非空的二叉树的遍历按下列顺序执行:后序遍历左子树;后序遍历右子树;访问根结点。 考点 7 查找技术 查找就是从给定的一个数据结构中,找出指定的数据元素。本节中我们只学习对线性表的查找,常用的查找方法有顺序查找和二分法查找。 1.顺序查找 顺序查找的过程是:从线性表的第一个元素开始,依次将线性表中的数据与要查找的数据进行比较,假如找到了相等的数据,则查找成功, 停止向下查找;假如比较完了线性表中的所有数据元素,没有找到相等的数据,则查找失败。 2.二分法查找 二分法查找又称为折半查找,只能应用于顺序存储的有序表。有序表是指线性表中的元素已经按值非递减(从整体上看是升序,但相邻的元素的值可以相同)排列。 考点 8 排序技术 排序就是将一组无序的数据按照一定的顺序排列起来。本节中所指的顺序是非递减顺序 (整体上呈升序,但相邻的数据可以相等),基本排序算法重要有互换类排序、插入类排序和选择类排序 3 大类。 1.互换类排序 互换排序就是借助数据元素之间的互相互换进行排序的方法。常用的互换排序方法有冒泡排序和快速排序。 (1)冒泡排序 冒泡排序的过程简朴,它的基本思想是通 过对相邻元素进行比较,并根据比较的结果互换位置,从而逐步由任意序列变为有序序列。过程是:先从头往后扫描、然后从后往头 扫描、再反复上述过程 (2)快速排序 快速排序就是一种可以通过一次互换而消除多个逆序的排序方法,因此相对冒泡排序法而言,速度要快。 2.插入类排序 插入排序,就是将无序序列中的各个元素依次插入到已经排好序的线性表中。常用的插入排序的方法有简朴插入排序和希尔排序。 (1)简朴插入排序 简朴插入排序的方法是:在初始序列中, 将只包含第 1 个元素的子序列当作是一个有序序列,然后从第 2 个元素起,依次将每个元素插入到前 1 个有序子序列中。 (2)希尔排序 希尔排序的基本思想是:将整个无序序列分割成若干个子序列,对每个子序列分别进行简朴插入排序,最后再对全体元素进行一次简朴插入排序。与简朴插入排序的子序列构成方式不同,希尔排序是将原序列中相隔某个增量 h 的元素构成一个子序列。在排序过程中逐步减少这个增量,最后当 h 减到 1 时,进行一次插入排序,排序就完毕了。增量序列一般取 hi = n/2k (k=1,2,„,[log2n]),其中 n 为待排序序列的长度。希尔排序的效率与所选取的增量序列有关。通过希尔排序法对长度为 n 的线性表进行排序,假如选取了上述增量序列,最坏情况下,需要比较的次数为 O(n1.5)。 3.选择类排序 常用的选择排序有两种,简朴选择排序和堆排序。 (1)简朴选择排序 简朴选择排序的基本环节是: ①在一组n 个数据中选择出最小值;②若它不是这组数据中的第 1 个数据,则将它与这组数据中的第 1 个数据互换位置;③对剩下的子表采用同样的方法,直到子表空为止。 (2)堆排序法 在学习堆排序之前,我们先来看一下堆的定义,堆的定义如下: 具有n 个元素的序列(h1,h2,…,hn), 当且仅当满足 或 (i=1,2, …,n/2)时称之为堆。第 2 章 程序设计基础 考点 1 程序设计方法与风格 程序是一组计算机指令的集合,是程序设计的最终成果。程序设计方法所要做的工作是,如何对实际问题进行抽象和归纳以及对程序进行编排,才干使程序的可读性、稳定性、可维护性、效率等更好。目前,重要有两种程序设计方法:结构化程序设计和面向对象程序设计。 1.源程序文档化 ①符号名的命名:符号名的命名应尽量表达一些实际意义,以增强程序的可读性。②程序注释:良好的注释可以帮助读者理解程序。注释一般分为序言性注释和功能性注释,以给出程序的整体说明和程序的重要功能。序言性注释一般位于每一个程序的开头部分,它给出程序的整体说明;功能性注释一般嵌在原程序之中。③视觉组织:为使程序的结构清楚明了, 可以在程序中运用空行、空格、缩进等技巧使程序层次清楚。 2.数据说明的方法 在编写程序时,一定要注意数据说明的方法。为使程序中的数据说明易于理解和维护。 3.语句的结构 程序的语句应当简朴易懂,在编写程序时,应注重:每一行只写一条语句。程序编写优先考虑清楚性。一般情况下,在编写程序时, 要做到清楚第一,效率第二。一方面要保证程序的对的性,然后再提高速度。避免使用临时变量而使程序的可读性下降。尽也许使用库函数。避免不必要的转移。运用信息隐蔽,保证每一个模块的独立性。避免使用复杂的条件嵌套语句。避免使用无条件转移语句。尽量做到模块功能单一化。不要修补不好的程序,要重新编写。 4.输入和输出 输入和输出的方式应尽也许方便用户的使用。系统能否让用户接受,往往取决于输入和输出的风格。 考点 2 结构化程序设计 1.结构化程序设计的原则 结构化程序设计必须遵守模块化、自顶向下、逐步求精、限制使用 goto 语句的原则。 2.结构化程序设计的基本结构与特点 结构化程序设计方法是一种程序设计的先进方法。实事证明,在程序设计时,只要使用 3 种程序结构就可以实现所有的结构形式, 它们是顺序结构、选择结构和循环结构。 3.结构化程序设计原则和方法的应用 结构化程序设计的效率较高,但是在实际设计程序时,应要注意:使用程序设计语言中的顺序、选择、循环等有限的控制结构表达程序的控制逻辑。选用的控制结构只允许有一个入口和一个出口。程序语句组成容易辨认的语句序列块,每块只允许有一个入口和一个出口。复杂结构的程序设计时,仅用嵌套的基本控制结构进行组合嵌套来实现。语言中所没有的控制结构,应采用前后一致的方法来模拟。严格控制 goto 语句的使用,但不是完全不能用。 考点 3 面向对象的程序设计 面向对象方法,现在已经发展为一种主流的软件开发方法。它历经了数年的研究和发展,已经日益成熟和完善,应用也越来越进一步和广泛。 1.面向对象方法的特点 面向对象的程序设计,是在结构化程序设计的基础上,以更接近人们通常思维的方式来解决问题的一种全新的软件开发技术。 面向对象的程序设计以对象为核心,强调对象的“封装性”“继承性”“抽象性”和“多态性”。其本质就是主张从客观世界固有的事物出发来构造系统,提倡用人类在现实生活中常用的思维方法来结识、理解和描述客观事物。 2.面向对象方法的基本概念 (1)对象(object) 面向对象方法认为:现实世界是由一系列的对象组成的。对象是现实世界中彼此相关并互通信息的实体。每个对象都包含了两部分的内容:描述对象状态的数据和描述对象行为。对象是面向对象方法中最基本的概念。因此, 面向对象方法中的对象是由描述该对象属性的数据以及可以对这些数据施加的所有操作封装在一起构成的整体。对象可以做的操作表达它 的动态行为,在面向对象分析和面向对象设计中,通常把对象的操作也称为方法或服务。 (2)类和实例 类是具有共同属性、共同方法的对象的集合,是关于对象的抽象描述,反映属于该对象类型的所有对象的性质。 (3)消息(Message) 消息传递是对象间通信的手段,一个对象通过向另一对象发送信息来请求其服务。消息机制统一了数据流和控制流,一个消息由下述 3 部分组成:接受消息的对象名称、消息名、零个或多个参数。 (4)继承(Inheritance) ①类的继承:继承广义地说,是指可以直接获得已有的属性和特性,而不必反复地定义。②继承的传递性:继承具有传递性,假如类 A 继承类 B,类 B 继承类 C,则类 A 继承类 C。因此,一个类事实上继承了它上层的所有基类特性,也就是说,属于某类的对象除了具 有该类定义的特性外,还具有该类上层所有基类定义的特性。单继承:一个子类只有唯一的一个父类,这种继承称为单继承。多重继承: 一个子类也可以有多个父类,它可以从多个父类中继承特性。③继承的优点:相似的对象可以共享程序代码和数据,从而大大减少了程序 中的冗余信息,提高软件的可重用性,便于软件修改维护。 (5)多态性(Polymorphism) 多态性:对象根据所接受的消息而做出动作,同样的消息被不同的对象接受时可导致完全不同的行为,该现象称为多态性。 第 3 章 软件工程基础 考点 1 软件工程基本概念 1.软件的定义与特点 (1)软件的定义 一般认为计算机软件是计算机系统中与硬件互相依存的另一部分,涉及程序、数据及相关文档的完整集合。可见软件可分为两个部分:一是机器可执行的程序和数据;二是机器不可执行的,与软件开发、运营、维护、使用相关的文档。 (2)软件的特点 计算机软件具有如下的几个特点:软件是一种逻辑实体,而不是物理实体,具有抽象性; 与硬件的生产不同,软件没有明显的制作过程;软件在使用期间不存在磨损、老化问题; 对硬件和环境具有依赖性;软件复杂度高,成本昂贵;软件开发涉及诸多的社会因素。 (3)软件的分类 计算机软件按功能可分为 3 类:应用软件、系统软件、支撑软件(或称为工具软件)。 2.软件危机和软件工程 软件工程概念的出现源自软件危机。 (1)软件危机 “软件危机”是 20 世纪 60 年代末以后出现的,其泛指在计算机软件的开发和维护过程中所碰到的一系列严重问题。事实上,几乎所有的软件都不同限度地存在这些问题。 随着计算机技术的发展和应用领域的扩大,软件已经成为计算机科学发展的“瓶颈”。 (2)软件工程 为了消除软件危机,通过认真研究软件危机的方法,结识到软件工程是使计算机软件走向工程科学的途径,逐步形成了软件工程概念,开辟了工程学的新兴领域——软件工程学。它是采用工程的概念、原理、技术和方法来开发与维护软件,把通过时间考验而证明对的的管理技术与当前可以得到的最佳的技术方法结合起来,经济地开发出高质量的软件并有效地维护它。 3.软件工程过程与软件生命周期 (1)软件工程过程 ISO 9000 定义:软件工程过程是指把输入转化为输出的一组彼此相关的资源和活动。 (2)软件生命周期 软件生命周期是指软件产品从提出、实现、使用维护到停止使用退役的整个过程。也就是说,软件产品从考虑其概念开始,到该软件产品不能使用为止的整个时期都属于软件生命周期。一般涉及可行性研究与需求分析、设计、实现、测试、交付使用以及维护等活动。这些阶段可以有反复,执行时也可以有迭代。 4.软件工程的目的与原则 (1)软件工程的目的 软件工程的目的是:在给定成本、进度的前提下,开发出具有有效性、可靠性、可维护性、可重用性、可适应性、可移植性、可追踪性和可互操作性且满足用户需求的产品。 为实现软件工程的目的,软件工程的理论和技术性研究的内容重要涉及软件开发技术和软件工程管理两个方面。 (2)软件工程的原则 为了达成上述的软件工程目的,在软件开发过程中,必须遵循以下软件工程的基本原则:抽象、拟定性、模块化、信息隐蔽、局部化、完备性、一致性、可验证性。 5.软件开发工具与软件开发环境 软件工程技术鼓励研制和采用各种先进的软件开发方法、工具和环境。工具和环境的使用进一步提高了软件的开发效率、维护效率和软件质量。 (1)软件开发工具 软件开发工具的发展是从单项工具的开发逐步向集成工具发展的,软件开发工具为软件工程方法提供了自动的或半自动的软件支撑环境。 (2)软件开发环境 软件开发环境或称软件工程环境是指全面支持软件开发全过程的软件工具的集合。计算机辅助软件工程(CASE)是当前软件开发环境中富有特色的研究工作和发展方向。 考点 2 软件分析方法 软件开发方法是指软件开发过程所遵循的方法和环节,其目的在于有效地得到一些工作产品, 即满足质量规定的程序和文档。软件开发方法涉及分析方法、设计方法和程序设计方法。 1.需求分析与需求分析方法 软件需求是指用户对目的软件系统在功能、行为、性能、设计约束等方面的盼望。需求分析的任务是发现需求、求精、建模和定义需求的过程。需求分析的目的是创建所需的数据模型、功能模型和控制模型。 (1)需求分析的定义 1997 年 IEEE 软件工程标准词汇表对需求分析定义如下: ①用户解决问题或达成目的所需的条件或 功能;②系统或系统部件要满足协议、标准、规范或其他正式规定文档所需具有的条件或功能;③一种反映①或②所描述的条件或功能的文档说明。 (2)需求分析阶段的工作 需求分析阶段的工作重要分为 4 个方面: 需求获取、需求分析、编写需求规格说明书、 需求评审。 (3)需求分析方法 常用的需求分析方法有两种:①结构化分析方法。重要涉及:面向数据结构的 Jackson 方法(JSD),面向数据流的结构化分析方法 (SA),面向数据结构的结构化数据系统开发方法(DSSD)。②面向对象的分析方法(OOA)。从需求分析建立的模型的特性来分,需求分析方法又分为静态分析方法和动态分析方法。 2.结构化分析方法 (1)结构化分析方法的基本概念 结构化分析方法是面向数据流、自顶向下、逐步求精、进行需求分析的方法。该方法使用简朴易读符号,根据软件内部数据传递、变换的关系,自顶向下、逐层分解,描绘出满足规定的软件模型。 (2)结构化分析的常用工具 结构化分析方法运用图形等结构化的描述方式表达需求,简明易懂,用它们形成需求说明书中的重要部分。这种方法所用的常用工具有:数据流图、数据字典、鉴定树和鉴定表。 3.软件需求规格说明书 软件需求规格说明书(SRS)是需求分析阶段得出的最重要的文档。它通常用自然语言完整、准确、具体地描述系统的数据规定、功能需求、性能需求、可靠性和可用性规定、犯错解决需求、接口需求、约束、逆向需求以及将来也许提出的规定。 ①软件需求规格说明书的作用 软件需求规格说明书具有几个作用:便于用户、开发人员进行理解和交流;反映出用户问题的结构,可以作为软件开发工作的基础和依据;作为确认测试和验收的依据。 ②软件需求规格说明书的内容 软件需求规格说明书是作为需求分析的一部分而制定的可交付文档。 ③软件需求规格说明书的特点 软件需求规格说明书是保证软件质量的有力措施,衡量软件需求规格说明书质量的标准:对的性、无歧义性、完整性、一致性、可理解性、可验证性、可修改性和可追踪性。 考点 3 结构化设计方法 1.软件设计的基本概念 (1)软件设计的基础 软件设计是一个把软件需求转化为软件 表达的过程,是软件工程的重要阶段。软件设计的基本目的是用比较抽象、概括的方式拟定目的系统如何完毕预定的任务,即软件设计是拟定系统的物理模型。 (2)软件设计的基本原理 软件设计应遵循软件工程的基本目的和原则,建立合用于在软件设计中应当遵守的基本原理和软件设计中的有关概念。 模块化、抽象、信息隐藏和局部化、模块独立性。 (3)结构化设计方法 结构化设计方法是目前采用最为广泛的一种软件设计方法,其基本思想是将软件设计成由相对独立、单一功能的模块组成的结构 2.概要设计 概要设计又称为总体设计或初步设计。软件概要设计的基本任务是: ①设计软件的系统结构。在需求分析阶段, 已经把系统分解成层次结构,而在概要设计阶段, 需要进一步分解,划分为模块以及模块的层次结构。②数据结构及数据库设计。数据设计是实现需求定义和规格说明过程中提出的数据对象的逻辑表达。③编写概要设计文档。在概要设计阶段, 需要编写的文档有:概要设计说明书、数据库设计说明书、集中测试计划等。 ④概要设计文档评审。在概要设计中,对设计部分是否完整地实现了需求中规定的功能、性能等规定,设计方案的可行性,关键的解决及内外部接口定义对的性、有效性,各部分之间的一致性等都要进行评审,以免在以后的设计中出现大的问题而返工。 2.概要设计工具 结构图(SC),也称程序结构图,是描述软件结构的图形工具,是常用的软件结构设计工具。模块用一个矩形表达,矩形内注明模块的功能和名字;箭头或直线表达模块间的调用关系。在结构图中还可以用带注释的箭头表达模块调用过程中来回传递的信息。常用的结构图有 4 种模块类型:传入模块、传出模块、变换模块和协调模块。 3.面向数据流的设计方法 在需求分析阶段,重要是分析信息在系统中的加工和流动情况。面向数据流的设计方法的目的是给出设计软件结构的一个系统化的 途径。 (1)数据流类型。典型的数据流类型有两种:变换型和事务型。 (2)面向数据流设计方法的实行要点与 设计过程。 4.设计的准则 通过大量设计实践证明,以下设计准则可以借鉴为设计的指导和对软件结构图进行优化。 提高模块独立性、模块规模适中、深度、宽度、扇出和扇入适当、使模块的作用域在该模块的控制域内、应减少模块的接口和界面的复杂性、设计成单入口、单出口的模块和设计功能可预测的模块。 3.具体设计 具体设计的任务就是为软件结构图中的每一个模块拟定实现算法和局部数据结构,用某种选定的表达工具表达算法和数据结构的细节。 常用的设计工具有以下几种: (1)图形工具 ①程序流程图:程序流程图是软件过程的设计表达工具,表达直观、清楚,易于学习和掌握。②N-S 图:N-S 图是用方框图来代替传统的程序流程图的技术。基本图形有 5 种。③ PAD 图: PAD 图即问题分析图( Problem Analysis Diagram)。它是继程序流程图和方框图之后,提出的又一种描述软件具体设计的图形工具。基本图形有 5 种。 (2)表格工具 用表格来描述解决动作及相应的各种条件或描述输入、解决、输出的过程。 (3)语言工具 用与程序设计语言很相近的伪码描述解决过程的细节。过程设计语言(PDL)也称为结构化的英语和伪码,它是一种混合语言,采用英语的词汇和结构化程序设计语言的语法,类似编程语言。考点 4 软件测试 软件测试就是在软件投入运营之前,尽也许多地发现软件中的错误。它是对软件规格说明、设计和编码的最后复审。通常,软件测试的工作量往往占软件开发总工作量的40%以上。 1.软件测试的目的 软测试的目的:测试是为了发现错误而执行程序的过程;一个好的测试用例是指很也许 找到迄今为止尚未发现的错误的用例;一个成功的测试是发现了至今尚未发现的错误的测试;测试是要以查找错误为中心,而不是为了演示软件的对的功能。 2.软件测试的准则 要作好软件测试,必须设计有效的测试方案和好的测试用例。 3.软件测试技术和方法 软件测试的方法是多种多样的。若从是否需要执行被测软件的角度划分,可以分为静态测试和动态测试;若按照功能划分,可以分为白盒测试和黑盒测试。 (1)静态测试与动态测试 ①静态测试:静态测试涉及代码检查、静态结构分析、代码质量度量等。静态测试重要由人工进行,充足发挥人的逻辑思维优势,也可以借助软件工具自动进行。②动态测试:动态测试是基于计算机的测试,是为了发现错误而执行程序的过程。 (2)白盒测试与测试用例设计 白盒测试的方法也称结构测试或逻辑测试。它是根据软件的内部工作过程,检查内部成分,以确认每种内部操作是否符合设计规定。白盒测试允许测试人员运用程序内部的逻辑结构及有关信息来设计和选择测试用例,对程序所有的逻辑途径进行测试。 ①逻辑覆盖测试。逻辑覆盖测试泛指以程序内部的逻辑结构为基础的测试用例设计书。从覆盖源程序语句的详尽限度分析,大体有以下一些不同的覆盖标准:语句覆盖、鉴定覆盖、条件覆盖、判断-条件覆盖。 ②基本途径测试。基本途径测试的思想和环节是,根据软件过程性描述中的控制流程拟定程序的环路复杂性度量,用此度量定义基本途径集合,并由此导出一组测试用例对每一条独立执行途径进行测试。 (3)黑盒测试与测试用例设计 黑盒测试也称功能测试或数据驱动测试, 是对软件已经实现的功能是否满足需求进行测试和验证。所以,黑盒测试的测试用例是根据程序的外部功能进行设计的,在软件接口处进行,完毕功能验证。 4.软件测试的实行 软件测试是保证软件质量的重要手段。为 使软件测试工作系统化,我们应制定测试流程。所谓测试流程就是软件测试这个过程规定的程序。 软件测试过程一般按 4 个环节进行,即单元测试、集成测试、验收测试(确认测试)和系统测试。 考点 5 程序的调试 1.基本概念 在对程序进行了成功的测试之后将进入程序调试(通常称 Debug,即排错)。程序调试的任务是诊断和改正程序中的错误。 (1)程序调试的基本环节 ①错误定位:从错误的外部表现形式入手,研究有关部分的程序,拟定程序中犯错位置,找犯错误的内在因素。②修改设计和代码,以排除错误: 排错是软件开发过程中一项艰苦的工作,这也决定了调试工作是一个具有很强技术性和技巧性的工作。③进行回归测试,防止引进新的错误:反复进行暴露这个错误的原始测试或某些有关测试,以确认该错误是否被排除、是否引进了新的错误。 (2)程序调试的原则 调试活动由对程序中错误的定性、定位和排错两部分组成,因此调试原则也从拟定错误的性质和位置时的注意事项和修改错误的原则两个方面考虑。 2.软件测试方法 调试的关键在于推断程序内部的错误位置及因素。软件调试可以分为静态调试和动态调试。软件测试中讨论的静态分析方法同样合用静态调试。静态调试重要指通过人的思维来分析源程序代码和排错,是重要的调试手段,而动态调试是辅助静态调试的。重要的调试方法有强行排错法、回溯法和因素排除法。 第 4 章 数据库设计基础 考点 1 数据库系统的基本概念 1.数据、数据库、数据库管理系统 (1)数据 数据:描述事物的符号记录。 计算机中的数据一般提成两部分,其中一部分与程序仅有短时间的交互关系,随着程序的结束而消亡,这样的数据称为临时性数据, 一般存放在计算机内存中;而另一部分数据则对系统起着长期持久的作用,这样的数据称为持久性数据,一般存放在计算机的长期存储设 备(如硬盘)中。数据库系统中解决的就是这种持久性数据。 (2)数据库- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 2023 全国 计算机等级考试 二级 语言 知识点 超全整 打印
咨信网温馨提示:
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
1、咨信平台为文档C2C交易模式,即用户上传的文档直接被用户下载,收益归上传人(含作者)所有;本站仅是提供信息存储空间和展示预览,仅对用户上传内容的表现方式做保护处理,对上载内容不做任何修改或编辑。所展示的作品文档包括内容和图片全部来源于网络用户和作者上传投稿,我们不确定上传用户享有完全著作权,根据《信息网络传播权保护条例》,如果侵犯了您的版权、权益或隐私,请联系我们,核实后会尽快下架及时删除,并可随时和客服了解处理情况,尊重保护知识产权我们共同努力。
2、文档的总页数、文档格式和文档大小以系统显示为准(内容中显示的页数不一定正确),网站客服只以系统显示的页数、文件格式、文档大小作为仲裁依据,个别因单元格分列造成显示页码不一将协商解决,平台无法对文档的真实性、完整性、权威性、准确性、专业性及其观点立场做任何保证或承诺,下载前须认真查看,确认无误后再购买,务必慎重购买;若有违法违纪将进行移交司法处理,若涉侵权平台将进行基本处罚并下架。
3、本站所有内容均由用户上传,付费前请自行鉴别,如您付费,意味着您已接受本站规则且自行承担风险,本站不进行额外附加服务,虚拟产品一经售出概不退款(未进行购买下载可退充值款),文档一经付费(服务费)、不意味着购买了该文档的版权,仅供个人/单位学习、研究之用,不得用于商业用途,未经授权,严禁复制、发行、汇编、翻译或者网络传播等,侵权必究。
4、如你看到网页展示的文档有www.zixin.com.cn水印,是因预览和防盗链等技术需要对页面进行转换压缩成图而已,我们并不对上传的文档进行任何编辑或修改,文档下载后都不会有水印标识(原文档上传前个别存留的除外),下载后原文更清晰;试题试卷类文档,如果标题没有明确说明有答案则都视为没有答案,请知晓;PPT和DOC文档可被视为“模板”,允许上传人保留章节、目录结构的情况下删减部份的内容;PDF文档不管是原文档转换或图片扫描而得,本站不作要求视为允许,下载前自行私信或留言给上传者【二***】。
5、本文档所展示的图片、画像、字体、音乐的版权可能需版权方额外授权,请谨慎使用;网站提供的党政主题相关内容(国旗、国徽、党徽--等)目的在于配合国家政策宣传,仅限个人学习分享使用,禁止用于任何广告和商用目的。
6、文档遇到问题,请及时私信或留言给本站上传会员【二***】,需本站解决可联系【 微信客服】、【 QQ客服】,若有其他问题请点击或扫码反馈【 服务填表】;文档侵犯商业秘密、侵犯著作权、侵犯人身权等,请点击“【 版权申诉】”(推荐),意见反馈和侵权处理邮箱:1219186828@qq.com;也可以拔打客服电话:4008-655-100;投诉/维权电话:4009-655-100。
关于本文