没有合适的资源?快使用搜索试试~ 我知道了~
上半年全国计算机等级考试C语言二级公共基础复习资料.pdf
1.该资源内容由用户上传,如若侵权请联系客服进行举报
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
2.虚拟产品一经售出概不退款(资源遇到问题,请及时私信上传者)
版权申诉
0 下载量 137 浏览量
2022-07-13
22:37:51
上传
评论
收藏 117KB PDF 举报
温馨提示
试读
14页
上半年全国计算机等级考试C语言二级公共基础复习资料.pdf
资源推荐
资源详情
资源评论
二级公共基础知识总结
第一章 数据结构与算法
1.1 算法
算法:是指解题方案的准确而完整的描述。
算法不等于程序,也不等计算机方法,程序的编制不可能优于算法的设计。
算法的基本特征:是一组严谨地定义运算顺序的规则,每一个规则都是有效的,是明确的, 此顺序将在有限的次数
下终止。特征包括:
(1 )可行性;
(2 )确定性,算法中每一步骤都必须有明确定义,不充许有模棱两可的解释,不允许有多义性;
(3 )有穷性,算法必须能在有限的时间内做完,即能在执行有限个步骤后终止,包括合理的执行时间的含义;
(4 )拥有足够的情报。
算法的基本要素: 一是对数据对象的运算和操作 ; 二是算法的控制结构 。
指令系统:一个计算机系统能执行的所有指令的集合。
基本运算包括: 算术运算、逻辑运算、关系运算、数据传输 。
算法的控制结构:顺序结构、选择结构、循环结构 。
算法基本设计方法:列举法、归纳法、递推、递归、减斗递推技术、回溯法。
算法复杂度:算法时间复杂度和算法空间复杂度。
算法时间复杂度是指执行算法所需要的计算工作量。
算法空间复杂度是指执行这个算法所需要的内存空间。
1.2 数据结构的基本基本概念
数据结构研究的三个方面 :
(1 )数据集合中各数据元素之间所固有的逻辑关系,即 数据的逻辑结构;
(2 )在对数据进行处理时,各数据元素在计算机中的存储关系,即 数据的存储结构 ;
(3 )对各种数据结构进行的运算。
数据结构是指相互有关联的数据元素的集合。
数据的逻辑结构包含:
(1 )表示数据元素的信息;
(2 )表示各数据元素之间的前后件关系。
数据的存储结构有顺序、链接、索引等。
线性结构条件:
(1 )有且只有一个根结点;
(2 )每一个结点最多有一个前件,也最多有一个后件。
非线性结构:不满足线性结构条件的数据结构 。
1 . 3 线性表及其顺序存储结构
线性表是由一组数据元素构成,数据元素的位置只取决于自己的序号,元素之间的相对位置是线性的。
在复杂线性表中,由若干项数据元素组成的数据元素称为 记录 ,而由多个记录构成的线性表又称为 文件 。
非空线性表的结构特征:
(1 )且只有一个根结点 a1 ,它无前件;
(2 )有且只有一个终端结点 an ,它无后件;
(3 )除根结点与终端结点外,其他所有结点有且只有一个前件,也有且只有一个后件。结点个数 n 称为 线性表的
长度 ,当 n=0 时,称为 空表 。
线性表的顺序存储结构具有以下两个基本特点:
(1 )线性表中所有元素的所占的存储空间是连续的;
(2 )线性表中各数据元素在存储空间中是按逻辑顺序依次存放的 。
ai 的存储地址为: ADR(ai)=ADR(a1)+(i-1)k, ,ADR(a1) 为第一个元素的地址, k 代表每个元素占的字节数。
顺序表的运算:插入、删除。 (详见 14--16 页)
1 . 4 栈和队列
栈是限定在一端进行插入与删除的线性表,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈
底。
栈按照 “先进后出 ”(FILO )或“后进先出 ”(LIFO )组织数据, 栈具有记忆作用。 用 top 表示栈顶位置, 用 bottom
表示栈底。
栈的基本运算: ( 1)插入元素称为入栈运算; ( 2)删除元素称为退栈运算; (3 )读栈顶元素是将栈顶元素赋给一
个指定的变量,此时指针无变化。
队列是指允许在一端(队尾)进入插入,而在另一端(队头)进行删除的线性表。 Rear 指针指向队尾, front 指
针指向队头。
队列是 “先进行出 ”(FIFO )或 “后进后出 ”( LILO )的线性表。
队列运算包括( 1 )入队运算:从队尾插入一个元素; ( 2)退队运算:从队头删除一个元素。
循环队列: s=0 表示队列空, s=1 且 front=rear 表示队列满
1 . 5 线性链表
数据结构中的每一个结点对应于一个存储单元,这种存储单元称为存储结点,简称结点。
结点由两部分组成: (1 )用于存储数据元素值,称为 数据域 ;(2)用于存放指针,称为 指针域, 用于指向前一个
或后一个结点。
在链式存储结构中, 存储数据结构的存储空间可以不连续, 各数据结点的存储顺序与数据元素之间的逻辑关系可以
不一致,而数据元素之间的逻辑关系是由指针域来确定的。
链式存储方式即可用于表示线性结构,也可用于表示非线性结构。
线性链表, HEAD 称为头指针, HEAD=NULL (或 0 )称为 空表 ,如果是两指针: 左指针 ( Llink )指向前件结点,
右指针 (Rlink )指向后件结点。
线性链表的基本运算:查找、插入、删除。
1 . 6 树与二叉树
树是一种简单的非线性结构 ,所有元素之间具有明显的层次特性。
在树结构中,每一个结点只有一个前件,称为父结点,没有前件的结点只有一个,称为 树的根结点 ,简称树的根。
每一个结点可以有多个后件,称为该结点的 子结点 。没有后件的结点称为叶子结点。
在树结构中, 一个结点所拥有的后件的个数称为该结点的度, 所有结点中最大的度称为树的度。 树的最大层次称为
树的深度。
二叉树的特点: (1)非空二叉树只有一个根结点; ( 2 )每一个结点最多有两棵子树,且分别称为该结点的左子树
与右子树。
二叉树的基本性质:
(1 )在二叉树的第 k 层上,最多有 2^(k-1) (k ≥1) 个结点;
(2 )深度为 m 的二叉树最多有 (2^m)-1 个结点 ;
(3 )度为 0 的结点(即叶子结点)总是比度为 2 的结点多一个;
(4 )具有 n 个结点的二叉树,其深度至少为 [log2n]+1, 其中 [log2n] 表示取 log2n 的整数部分;
(5 )具有 n 个结点的完全二叉树的深度为 [log2n]+1 ;
(6 )设完全二叉树共有 n 个结点。如果从根结点开始,按层序(每一层从左到右)用自然数 1 , 2 , ….n 给结点
进行编号( k=1,2 ….n ),有以下结论:
①若 k=1 ,则该结点为根结点,它没有父结点;若 k>1 ,则该结点的父结点编号为 INT(k/2) ;
②若 2k≤n,则编号为 k 的结点的左子结点编号为 2k ;否则该结点无左子结点(也无右子结点) ;
③若 2k+1≤n ,则编号为 k 的结点的右子结点编号为 2k+1 ;否则该结点无右子结点。
满二叉树是指除最后一层外,每一层上的所有结点有两个子结点,则 k 层上有 2k-1 个结点深度为 m 的满二叉树
有 2m-1 个结点。
完全二叉树是指除最后一层外,每一层上的结点数均达到最大值,在最后一层上只缺少右边的若干结点。
二叉树存储结构采用链式存储结构 ,对于满二叉树与完全二叉树可以按层序进行顺序存储。
二叉树的遍历:
(1 )前序遍历( DLR ),首先访问根结点,然后遍历左子树,最后遍历右子树;
(2 )中序遍历( LDR ),首先遍历左子树,然后访问根结点,最后遍历右子树;
(3 )后序遍历( LRD )首先遍历左子树,然后访问遍历右子树,最后访问根结点。
1 . 7 查找技术
顺序查找的使用情况:
(1 )线性表为无序表;
(2 )表采用链式存储结构。
二分法查找只适用于顺序存储的有序表 ,对于长度为 n 的有序线性表,最坏情况只需比较 log2n 次。
1 . 8 排序技术
排序是指将一个无序序列整理成按值非递减顺序排列的有序序列。
交换类排序法: ( 1)冒泡排序法,需要比较的次数为 n(n-1)/2 ; (2 )快速排序法。
插入类排序法: (1 )简单插入排序法,最坏情况需要 n(n-1)/2 次比较;(2)希尔排序法,最坏情况需要 O(n
1.5
)
次比较。
选择类排序法: (1 )简单选择排序法 , 最坏情况需要 n(n-1)/2 次比较;(2 )堆排序法, 最坏情况需要 O(nlog
2
n)
次比较。
第二章程序设计基础
2 . 1 程序设计设计方法和风格
如何形成良好的程序设计风格
1 、源程序文档化; 2 、数据说明的方法;
3 、语句的结构; 4 、输入和输出。
注释分序言性注释和功能性注释 ,语句结构清晰第一、效率第二 。
2 . 2 结构化程序设计
结构化程序设计方法的四条原则是: 1. 自顶向下; 2. 逐步求精; 3. 模块化; 4. 限制使用 goto 语句。
结构化程序的基本结构 和特点:
(1 )顺序结构 :一种简单的程序设计,最基本、最常用的结构;
(2 )选择结构 :又称分支结构,包括简单选择和多分支选择结构,可根据条件,判断应该选择哪一条分支来执行
相应的语句序列;
(3 )循环结构 :可根据给定条件,判断是否需要重复执行某一相同程序段。
2 . 3 面向对象的程序设计
面向对象的程序设计:以 60 年代末挪威奥斯陆大学和挪威计算机中心研制的 SIMULA 语言为标志。
面向对象方法的优点:
(1 )与人类习惯的思维方法一致;
(2 )稳定性好;
(3 )可重用性好;
(4 )易于开发大型软件产品;
(5 )可维护性好。
对象 是面向对象方法中最基本的概念,可以用来表示客观世界中的任何实体,对象是实体的抽象。
面向对象的程序设计方法中的对象是系统中用来描述客观事物的一个实体, 是构成系统的一个基本单位, 由一组表
示其静态特征的属性和它可执行的一组操作组成。
属性 即对象所包含的信息,操作描述了对象执行的功能, 操作也称为方法或服务 。
对象的基本特点:
(1 )标识惟一性;
(2 )分类性;
(3 )多态性;
(4 )封装性;
(5 )模块独立性好。
类是指具有共同属性、共同方法的对象的集合。所以类是对象的抽象,对象是对应类的一个实例。
消息是一个实例与另一个实例之间传递的信息。
消息的组成包括( 1 )接收消息的对象的名称; (2 )消息标识符,也称消息名; (3 )零个或多个参数。
继承是指能够直接获得已有的性质和特征,而不必重复定义他们。
继承分单继承和多重继承。单继承指一个类只允许有一个父类,多重继承指一个类允许有多个父类。
多态性是指同样的消息被不同的对象接受时可导致完全不同的行动的现象
第三章软件工程基础
3 . 1 软件工程基本概念
计算机软件是包括程序、数据及相关文档的完整集合。
软件的特点包括:
(1 )软件是一种逻辑实体;
(2 )软件的生产与硬件不同,它没有明显的制作过程;
(3 )软件在运行、使用期间不存在磨损、老化问题;
剩余13页未读,继续阅读
资源评论
gy51338424
- 粉丝: 0
- 资源: 11万+
下载权益
C知道特权
VIP文章
课程特权
开通VIP
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- python-leetcode面试题解之第198题打家劫舍-题解.zip
- python-leetcode面试题解之第191题位1的个数-题解.zip
- python-leetcode面试题解之第186题反转字符串中的单词II-题解.zip
- 一个基于python的web后端高性能开发框架,下载可用
- python-leetcode面试题解之第179题最大数-题解.zip
- python-leetcode面试题解之第170题两数之和III数据结构设计-题解.zip
- python-leetcode面试题解之第168题Excel表列名称-题解.zip
- python-leetcode面试题解之第167题两数之和II输入有序数组-题解.zip
- python-leetcode面试题解之第166题分数到小数-题解.zip
- python-leetcode面试题解之第165比较版本号-题解.zip
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功