2013年计算机二级C语言考试了哪些内容?

Python019

2013年计算机二级C语言考试了哪些内容?,第1张

第1章应试指南11.1 二级C语言考试大纲(最新版)11.1.1 公共基础知识11.1.2 C语言程序设计21.2 笔试方法和技巧41.3 机试方法和技巧7第2章数据结构与算法92.1 算法的基本概念102.1.1 考点1:算法的定义102.1.2 考点2:算法复杂度102.2 数据结构的定义112.2.1 考点1:什么是数据结构112.2.2 考点2:数据结构的图形表示132.3 线性表132.3.1 考点1:线性表132.3.2 考点2:线性表的顺序存储结构142.3.3 考点3:线性表的插入和删除操作142.4 栈152.4.1 考点1:什么是栈152.4.2 考点2:栈的顺序存储结构152.4.3 考点3:栈的插入和删除运算152.5 队列162.5.1 考点1:什么是队列162.5.2 考点2:队列的顺序存储结构162.5.3 考点3:队列的插入和删除运算172.6 线性单链表、双向链表与循环链表172.6.1 考点1:线性单链表182.6.2 考点2:循环链表182.6.3 考点3:双向链表192.6.4 考点4:链表的基本操作192.7 树192.7.1 考点1:树的定义202.7.2 考点2:二叉树的定义212.7.3 考点3:二叉树的顺序存储结构222.7.4 考点4:二叉树的链式存储结构222.7.5 考点5:二叉树的遍历222.8 查找算法242.8.1 考点1:顺序查找242.8.2 考点2:二分查找242.9 排序算法252.9.1 考点1:排序概述252.9.2 考点2:插入类排序262.9.3 考点3:交换类排序262.9.4 考点4:选择类排序272.10 小结282.11 同步训练282.11.1 选择题282.11.2 填空题302.12 同步训练答案302.12.1 选择题302.12.2 填空题30第3章程序设计基础313.1 程序设计313.1.1 考点1:程序设计的方法323.1.2 考点2:程序设计的风格323.2 结构化程序设计343.2.1 考点1:结构化程序设计的提出343.2.2 考点2:结构化程序设计的基本特征353.2.3 考点3:结构化程序设计的3种基本结构353.2.4 考点4:结构化程序设计方法383.2.5 考点5:结构化程序设计方法的原则383.3 面向对象程序设计393.3.1 考点1:面向对象程序设计方法的提出393.3.2 考点2:面向对象程序设计方法的基本概念393.3.3 考点3:面向对象程序设计的基本思想和方法403.4 小结413.5 同步训练413.5.1 选择题413.5.2 填空题433.6 同步训练答案433.6.1 选择题433.6.2 填空题44第4章软件工程基础454.1 软件工程的基本概念464.1.1 考点1:软件与软件工程概述464.1.2 考点2:软件生命周期474.1.3 考点3:软件工具与软件开发环境484.2 结构化分析方法484.2.1 考点1:结构化分析方法概述484.2.2 考点2:数据流图494.2.3 考点3:数据字典514.2.4 考点4:软件需求规格说明书524.3 软件设计524.3.1 考点1:概要设计524.3.2 考点2:详细设计554.4 软件测试584.4.1 考点1:软件测试的目的584.4.2 考点2:测试方法584.4.3 考点3:测试用例设计594.4.4 考点4:软件测试策略614.5 程序调试644.5.1 考点1:静态调试644.5.2 考点2:动态调试644.5.3 考点3:调试策略644.6 软件维护654.7 小结664.8 同步训练664.8.1 选择题664.8.2 填空题684.9 同步训练答案684.9.1 选择题684.9.2 填空题68第5章数据库设计基础695.1 数据库基础知识705.1.1 考点1:数据库705.1.2 考点2:数据库管理系统715.1.3 考点3:数据库系统715.1.4 考点4:数据管理技术的发展725.2 数据模型735.2.1 考点1:数据模型的概述735.2.2 考点2:实体联系模型及E-R图745.2.3 考点3:层次、网状、关系模型775.2.4 考点4:从E-R图导出关系数据模型785.3 关系运算795.3.1 考点1:关系代数795.3.2 考点2:传统的集合运算805.3.3 考点3:专门的关系运算815.4 数据库设计835.4.1 考点1:数据库设计概述835.4.2 考点2:数据库设计方法835.4.3 考点3:数据库设计步骤845.4.4 考点4:数据库的规范化855.5 小结855.6 同步训练865.6.1 选择题865.6.2 填空题875.7 同步训练答案885.7.1 选择题885.7.2 填空题88第6章C程序设计的初步知识896.1 C程序简介896.1.1 考点1:C源程序编译与执行896.1.2 考点2:程序设计步骤906.2 C程序构成与格式906.2.1 考点1:C程序构成和格式906.3 数据类型916.3.1 考点1:标识符916.3.2 考点2:常量926.3.3 考点3:变量926.3.4 考点4:整型数据926.3.5 考点5:实型数据936.3.6 考点6:字符型数据936.4 运算符和表达式946.4.1 考点1:算术运算符946.4.2 考点2:算术表达式956.4.3 考点3:赋值表达式956.4.4 考点4:自加、自减运算符966.4.5 考点5:逗号运算符和逗号表达式976.5 同步训练976.5.1 选择题976.5.2 填空题1026.6 同步训练答案1046.6.1 选择题1046.6.2 填空题104第7章顺序结构程序设计1057.1 基本概念1057.1.1 考点1:顺序程序概述1057.1.2 考点2:赋值语句、复合语句和空语句1067.2 数据输出1077.2.1 考点1:单字符输出函数putchar1077.2.2 考点2:字符串输出函数puts1087.2.3 考点3:格式输出函数printf1087.3 数据输入1107.3.1 考点1:字符输入函数getchar1107.3.2 考点2:字符串输入函数gets1117.3.3 考点3:格式输入函数scanf1127.4 同步训练1137.4.1 选择题1137.4.2 填空题1167.5 同步训练答案1177.5.1 选择题1177.5.2 填空题117第8章选择结构程序设计1188.1 基本概念1188.1.1 考点1:关系运算和逻辑运算1188.2 if语句与条件表达式1208.2.1 考点1:if语句及条件表达式1208.3 switch语句与goto语句1228.3.1 考点1:switch语句的使用1228.3.2 考点2:goto语句1248.4 同步训练1258.4.1 选择题1258.4.2 填空题1278.5 同步训练答案1288.5.1 选择题1288.5.2 填空题128第9章循环结构程序设计1299.1 while和do-while循环结构1299.1.1 考点1:while语句1299.1.2 考点2:do-while语句1319.2 for循环结构1319.2.1 考点1:for语句的基本用法1319.3 循环结构嵌套及流程控制1349.3.1 考点1:循环结构嵌套1349.3.2 考点2:break语句的使用1359.3.3 考点3:continue语句的使用1369.4 同步训练1379.4.1 选择题1379.4.2 填空题1429.5 同步训练答案1449.5.1 选择题1449.5.1 填空题144第10章函数14510.1 函数基本概念14510.1.1 考点1:函数的概念14510.1.2 考点2:函数的定义14610.1.3 考点3:函数的调用方式14710.2 函数调用中的数据传递14810.2.1 考点1:参数的传递14810.2.2 考点2:函数的返回值14910.3 函数的递归调用15210.3.1 考点1:函数的嵌套调用15210.3.2 考点2:函数的递归调用15210.4 函数的存储分类和变量的存储分类15410.4.1 考点1:内部函数和外部函数15410.4.2 考点2:局部变量和全局变量15410.4.3 考点3:变量的存储类型15510.5 同步训练15910.5.1 选择题15915.2.2 填空题16710.6 同步训练答案16810.6.1 选择题16810.6.2 填空题168第11章指针与数组16911.1 指针基础知识16911.1.1 考点1:地址、指针和指针变量16911.1.2 考点2:指针变量的定义与引用17011.2 指针在函数数据传递中的应用17311.2.1 考点1:指针变量作为函数参数17311.2.2 考点2:指向函数的指针17511.3 数组基础知识17611.3.1 考点1:一维数组的定义与初始化17711.3.2 考点2:一维数组的引用17711.3.3 考点3:二维数组的定义与初始化17911.3.4 考点4:二维数组的引用18111.4 数组与指针18311.4.1 考点1:指针与变量的地址18311.4.2 考点2:指针与一维数组18311.4.3 考点3:指针与二维数组18711.4.4 考点4:指针数组与指向指针的指针18911.5 数组与函数参数19011.5.1 考点1:数组元素作为函数参数19011.5.2 考点2:数组名作为函数参数19011.6 字符数组与字符串19211.6.1 考点1:字符数组与字符串的定义19211.6.2 考点2:字符指针变量与字符串19411.6.3 考点3:典型字符串处理函数19611.6.4 考点4:字符数组与字符串的应用19711.7 同步训练19911.7.1 选择题19911.7.2 填空题21111.8 同步训练答案21611.8.1 选择题21611.8.2 填空题216第12章编译预处理与动态存储分配21712.1 编译预处理21712.1.1 考点1:预处理概述21712.1.2 考点2:宏定义21812.1.3 考点3:文件包含21912.1.4 考点4:条件编译22112.2 动态存储分配22212.2.1 考点1:动态存储分配常用函数22212.3 同步训练22312.3.1 选择题22312.3.2 填空题22612.4 同步训练答案22712.4.1 选择题22712.4.2 填空题227第13章结构体与联合体22813.1 类型定义符22813.1.1 考点1:typedef22813.2 结构体22913.2.1 考点1:结构变量说明22913.2.2 考点2:结构变量的赋值和初始化23213.2.3 考点3:结构指针变量23413.2.4 考点4:结构数组23713.2.5 考点5:利用结构体变量构成链表23813.3 联合体24513.3.1 考点1:联合的定义和联合变量的说明24513.4 同步训练24713.4.1 选择题24713.4.2 填空题25713.5 同步训练答案25913.5.1 选择题25913.5.2 填空题259第14章位运算26014.1 位运算符26014.1.1 考点1:常用位运算符26014.2 位运算操作26114.2.1 考点1:移位运算26114.2.2 考点2:按位逻辑运算26114.3 同步训练26214.3.1 选择题26214.3.2 填空题26314.4 同步训练答案26314.4.1 选择题26314.4.2 填空题263第15章文件操作26415.1 文件指针26415.1.1 考点1:文件基本概念26415.1.2 考点2:文件类型指针26515.2 文件打开与关闭26515.2.1 考点1:文件的打开26515.2.2 考点2:文件的关闭26615.3 文件的读写26715.3.1 考点1:字符的读写26715.3.2 考点2:字符串的读写26715.3.3 考点3:格式化读写26715.3.4 考点4:成块读写26715.4 文件的定位26815.4.1 考点1:文件的定位268

计算机二级C语言考试总分多少??几分能过?

计算机二级C语言分笔试和机试各100分,笔试和机试都大于等于60分才算通过计算机二级C语言考试。

两门如果有一门过了那也不算通过考试,但是通过的这一门成绩可以保留到下次考试。

计算机二级c语言考试 多少分算

你好!首先等级考试要是过的话,笔试和机试都得考过才可以拿到证书。过的话有及格和优秀,优秀笔试和机试都得大于85吧。关于笔试的话,就是按笔试的评分标准。机试的话,我想并不是按照你写多少就给你多少的分。比如:你填空花费了半天的时间还没有填完,后面的都没有写,即使你填对60个分,都可能不及格的。但是也许你每个题目都做了,即使没有完全答对,特别是程式设计题,只要你有你的思路,框架就Ok了,即使你没有做对60分也有可能及格的。

计算机二级C语言考试查分

到江苏省计算机等级考试网上查询啊。

:exam.nju.edu./cjcx.htm

:exam.nju.edu./index.

计算机二级C语言考试

公共基础有专门的书籍,不过我觉得只要做一些相关的练习题,掌握做题的方法就行了。看看近几年的试题会有很大帮助,公共基础会有十个选择题,五个填空题,要死记硬背,我觉得多做题目会有很大帮助。。。

下次报名时间2015年12月

计算机二级C语言考试难吗

不难,很基础的东西。

计算机二级c语言多少分能过

计算机等级2级是面向社会的,分笔试和上机2科考试,每科满分都是100分制,60分就及格了,当然要2门都60分,如果只通过了一门,那么没事,那门成绩给你保留半年有效,下次只考另外那门就OK了!

计算机二级c语言考试题

我参加了2013年3月的二级C语言考试。都是机试题。有40分的选择题,60分的大题。选择题一共40个,都是单选,并且选择题的介面只能进入一次就是说你进入选择题的介面就得把选择题做完并检查,出来后不能再进入选择题介面修改。大题60分,题型和以前上机试题一样。总分100,只要你考了60分及60分以上就算过了。90分以上是优秀,80到89分是良好。程式填空题 程式修改题 程式设计题各一个题。

2010年计算机二级c语言考试

是啊!而且非常重要它在笔试中占30%!

这是我找到的一些资料:第一章 资料结构与演算法

1.1 演算法

1、演算法是指解题方案的准确而完整的描述。换句话说,演算法是对特定问题求解步骤的一种描述。

*:演算法不等于程式,也不等于计算方法。程式的编制不可能优于演算法的设计。

2、演算法的基本特征

(1)可行性。针对实际问题而设计的演算法,执行后能够得到满意的结果。

(2)确定性。每一条指令的含义明确,无二义性。并且在任何条件下,演算法只有唯一的一条执行路径,即相同的输入只能得出相同的输出。

(3)有穷性。演算法必须在有限的时间内完成。有两重含义,一是演算法中的操作步骤为有限个,二是每个步骤都能在有限时间内完成。

(4)拥有足够的情报。演算法中各种运算总是要施加到各个运算物件上,而这些运算物件又可能具有某种初始状态,这就是演算法执行的起点或依据。因此,一个演算法执行的结果总是与输入的初始资料有关,不同的输入将会有不同的结果输出。当输入不够或输入错误时,演算法将无法执行或执行有错。一般说来,当演算法拥有足够的情报时,此演算法才是有效的;而当提供的情报不够时,演算法可能无效。

*:综上所述,所谓演算法,是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,且是明确的,此顺序将在有限的次数下终止。

3、演算法复杂度主要包括时间复杂度和空间复杂度。

(1)演算法时间复杂度是指执行演算法所需要的计算工作量,可以用执行演算法的过程中所需基本运算的执行次数来度量。

(2)演算法空间复杂度是指执行这个演算法所需要的记忆体空间。

1.2 资料结构的基本概念

1、资料结构是指相互有关联的资料元素的集合。

2、资料结构主要研究和讨论以下三个方面的问题:

(1)资料集合中各资料元素之间所固有的逻辑关系,即资料的逻辑结构。

资料的逻辑结构包含:1)表示资料元素的资讯;2)表示各资料元素之间的前后件关系。

(2)在对资料进行处理时,各资料元素在计算机中的储存关系,即资料的储存结构。

资料的储存结构有顺序、连结、索引等。

1)顺序储存。它是把逻辑上相邻的结点储存在物理位置相邻的储存单元里,结点间的逻辑关系由储存单元的邻接关系来体现。由此得到的储存表示称为顺序储存结构。

2)连结储存。它不要求逻辑上相邻的结点在物理位置上亦相邻,结点间的逻辑关系是由附加的指标栏位表示的。由此得到的储存表示称为链式储存结构。

3)索引储存:除建立储存结点资讯外,还建立附加的索引表来标识结点的地址。

*:资料的逻辑结构反映资料元素之间的逻辑关系,资料的储存结构(也称资料的物理结构)是资料的逻辑结构在计算机储存空间中的存放形式。同一种逻辑结构的资料可以采用不同的储存结构,但影响资料处理效率。

(3)对各种资料结构进行的运算。

3、资料结构的图形表示

一个数据结构除了用二元关系表示外,还可以直观地用图形表示。在资料结构的图形表示中,对于资料集合D中的每一个数据元素用中间标有元素值的方框表示,一般称之为资料结点,并简称为结点;为了进一步表示各资料元素之间的前后件关系,对于关系R中的每一个二元组,用一条有向线段从前件结点指向后件结点。

4、资料结构分为两大型别:线性结构和非线性结构。

(1)线性结构(非空的资料结构)条件:1)有且只有一个根结点;2)每一个结点最多有一个前件,也最多有一个后件。

*:常见的线性结构有线性表、栈、伫列和线性连结串列等。

(2)非线性结构:不满足线性结构条件的资料结构。

*:常见的非线性结构有树、二叉树和图等。

1.3 线性表及其顺序储存结构

1、线性表由一组资料元素构成,资料元素的位置只取决于自己的序号,元素之间的相对位置是线性的。线性表是由n(n≥0)个数据元素组成的一个有限序列,表中的每一个数据元素,除了第一个外,有且只有一个前件,除了最后一个外,有且只有一个后件。线性表中资料元素的个数称为线性表的长度。线性表可以为空表。

*:线性表是一种储存结构,它的储存方式:顺序和链式。

2、线性表的顺序储存结构具有两个基本特点:(1)线性表中所有元素所占的储存空间是连续的;(2)线性表中各资料元素在储存空间中是按逻辑顺序依次存放的。

*:由此可以看出,线上性表的顺序储存结构中,其前后件两个元素在储存空间中是紧邻的,且前件元素一定储存在后件元素的前面,可以通过计算机直接确定第i个结点的储存地址。

3、顺序表的插入、删除运算(学吧学吧独家稿件)

(1)顺序表的插入运算:在一般情况下,要在第i(1≤i≤n)个元素之前插入一个新元素时,首先要从最后一个(即第n个)元素开始,直到第i个元素之间共n-i+1个元素依次向后移动一个位置,移动结束后,第i个位置就被空出,然后将新元素插入到第i项。插入结束后,线性表的长度就增加了1。

*:顺性表的插入运算时需要移动元素,在等概率情况下,平均需要移动n/2个元素。

(2)顺序表的删除运算:在一般情况下,要删除第i(1≤i≤n)个元素时,则要从第i+1个元素开始,直到第n个元素之间共n-i个元素依次向前移动一个位置。删除结束后,线性表的长度就减小了1。

*:进行顺性表的删除运算时也需要移动元素,在等概率情况下,平均需要移动(n-1)/2个元素。插入、删除运算不方便。

1.4 栈和伫列

1、栈及其基本运算(学吧学吧独家稿件)

栈是限定在一端进行插入与删除运算的线性表。

在栈中,允许插入与删除的一端称为栈顶,不允许插入与删除的另一端称为栈底。栈顶元素总是最后 *** 入的元素,栈底元素总是最先 *** 入的元素。即栈是按照“先进后出”或“后进先出”的原则组织资料的。

栈具有记忆作用。

栈的基本运算:1)插入元素称为入栈运算;2)删除元素称为退栈运算;3)读栈顶元素是将栈顶元素赋给一个指定的变数,此时指标无变化。

栈的储存方式和线性表类似,也有两种,即顺序栈和链式栈。

2、伫列及其基本运算

伫列是指允许在一端(队尾)进入插入,而在另一端(队头)进行删除的线性表。尾指标(Rear)指向队尾元素,头指标(front)指向排头元素的前一个位置(队头)。

伫列是“先进先出”或“后进后出”的线性表。

伫列运算包括:1)入队运算:从队尾插入一个元素;2)退队运算:从队头删除一个元素。

回圈伫列及其运算:所谓回圈伫列,就是将伫列储存空间的最后一个位置绕到第一个位置,形成逻辑上的环状空间,供伫列回圈使用。在回圈伫列中,用队尾指标rear指向伫列中的队尾元素,用排头指标front指向排头元素的前一个位置,因此,从头指标front指向的后一个位置直到队尾指标rear指向的位置之间,所有的元素均为伫列中的元素。

*:回圈伫列中元素的个数=rear-front。

1.5 线性连结串列(学吧学吧独家稿件)

1、线性表顺序储存的缺点(学吧学吧独家稿件):(1)插入或删除的运算效率很低。在顺序储存的线性表中,插入或删除资料元素时需要移动大量的资料元素;(2)线性表的顺序储存结构下,线性表的储存空间不便于扩充;(3)线性表的顺序储存结构不便于对储存空间的动态分配。

2、线性连结串列:线性表的链式储存结构称为线性连结串列,是一种物理储存单元上非连续、非顺序的储存结构,资料元素的逻辑顺序是通过连结串列中的指标连结来实现的。因此,在链式储存方式中,每个结点由两部分组成:一部分用于存放资料元素的值,称为资料域;另一部分用于存放指标,称为指标域,用于指向该结点的前一个或后一个结点(即前件或后件),如下图所示:

线性连结串列分为单链表、双向连结串列和回圈连结串列三种类型。

在单链表中,每一个结点只有一个指标域,由这个指标只能找到其后件结点,而不能找到其前件结点。因此,在某些应用中,对于线性连结串列中的每个结点设定两个指标,一个称为左指标,指向其前件结点;另一个称为右指标,指向其后件结点,这种连结串列称为双向连结串列,如下图所示:

3、线性连结串列的基本运算

(1)线上性连结串列中包含指定元素的结点之前插入一个新元素。

*:线上性连结串列中插入元素时,不需要移动资料元素,只需要修改相关结点指标即可,也不会出现“上溢”现象(学吧学吧独家稿件)。

(2)线上性连结串列中删除包含指定元素的结点。

*:线上性连结串列中删除元素时,也不需要移动资料元素,只需要修改相关结点指标即可。

(3)将两个线性连结串列按要求合并成一个线性连结串列。

(4)将一个线性连结串列按要求进行分解。

(5)逆转线性连结串列。

(6)复制线性连结串列。

(7)线性连结串列的排序。

(8)线性连结串列的查询。

*:线性连结串列不能随机存取。

4、回圈连结串列及其基本运算

线上性连结串列中,其插入与删除的运算虽然比较方便,但还存在一个问题,在运算过程中对于空表和对第一个结点的处理必须单独考虑,使空表与非空表的运算不统一。为了克服线性连结串列的这个缺点,可以采用另一种连结方式,即回圈连结串列。

与前面所讨论的线性连结串列相比,回圈连结串列具有以下两个特点:1)在连结串列中增加了一个表头结点,其资料域为任意或者根据需要来设定,指标域指向线性表的第一个元素的结点,而回圈连结串列的头指标指向表头结点;2)回圈连结串列中最后一个结点的指标域不是空,而是指向表头结点。即在回圈连结串列中,所有结点的指标构成了一个环状链。

下图a是一个非空的回圈连结串列,图b是一个空的回圈连结串列:

回圈连结串列的优点主要体现在两个方面:一是在回圈连结串列中,只要指出表中任何一个结点的位置,就可以从它出发访问到表中其他所有的结点,而线性单链表做不到这一点;二是由于在回圈连结串列中设定了一个表头结点,在任何情况下,回圈连结串列中至少有一个结点存在,从而使空表与非空表的运算统一。

*:回圈连结串列是在单链表的基础上增加了一个表头结点,其插入和删除运算与单链表相同。但它可以从任一结点出发来访问表中其他所有结点,并实现空表与非空表的运算的统一。

1.6 树与二叉树(学吧学吧独家稿件)

1、树的基本概念

树是一种简单的非线性结构。在树这种资料结构中,所有资料元素之间的关系具有明显的层次特性。

在树结构中,每一个结点只有一个前件,称为父结点。没有前件的结点只有一个,称为树的根结点,简称树的根。每一个结点可以有多个后件,称为该结点的子结点。没有后件的结点称为叶子结点。

在树结构中,一个结点所拥有的后件的个数称为该结点的度,所有结点中最大的度称为树的度。树的最大层次称为树的深度。

2、二叉树及其基本性质

(1)什么是二叉树

二叉树是一种很有用的非线性结构,它具有以下两个特点:1)非空二叉树只有一个根结点;2)每一个结点最多有两棵子树,且分别称为该结点的左子树与右子树。

*:根据二叉树的概念可知,二叉树的度可以为0(叶结点)、1(只有一棵子树)或2(有2棵子树)。

(2)二叉树的基本性质(学吧学吧独家稿件)

性质1 在二叉树的第k层上,最多有 个结点。

性质2 深度为m的二叉树最多有个 个结点。

性质3 在任意一棵二叉树中,度数为0的结点(即叶子结点)总比度为2的结点多一个。性质4 具有n个结点的二叉树,其深度至少为 ,其中 表示取 的整数部分。

3、满二叉树与完全二叉树

满二叉树:除最后一层外,每一层上的所有结点都有两个子结点。

完全二叉树:除最后一层外,每一层上的结点数均达到最大值;在最后一层上只缺少右边的若干结点。

*:根据完全二叉树的定义可得出:度为1的结点的个数为0或1。

下图a表示的是满二叉树,下图b表示的是完全二叉树:

完全二叉树还具有如下两个特性:

性质5 具有n个结点的完全二叉树深度为 。

性质6 设完全二叉树共有n个结点,如果从根结点开始,按层序(每一层从左到右)用自然数1,2,…,n给结点进行编号,则对于编号为k(k=1,2,…,n)的结点有以下结论:

①若k=1,则该结点为根结点,它没有父结点;若k>1,则该结点的父结点的编号为INT(k/2)。

②若2k≤n,则编号为k的左子结点编号为2k;否则该结点无左子结点(显然也没有右子结点)。

③若2k+1≤n,则编号为k的右子结点编号为2k+1;否则该结点无右子结点。

4、二叉树的储存结构

在计算机中,二叉树通常采用链式储存结构。

与线性连结串列类似,用于储存二叉树中各元素的储存结点也由两部分组成:资料域和指标域。但在二叉树中,由于每一个元素可以有两个后件(即两个子结点),因此,用于储存二叉树的储存结点的指标域有两个:一个用于指向该结点的左子结点的储存地址,称为左指标域;另一个用于指向该结点的右子结点的储存地址,称为右指标域。

*:一般二叉树通常采用链式储存结构,对于满二叉树与完全二叉树来说,可以按层序进行顺序储存。

5、二叉树的遍历(学吧学吧独家稿件)

二叉树的遍历是指不重复地访问二叉树中的所有结点。二叉树的遍历可以分为以下三种:

(1)前序遍历(DLR):若二叉树为空,则结束返回。否则:首先访问根结点,然后遍历左子树,最后遍历右子树;并且,在遍历左右子树时,仍然先访问根结点,然后遍历左子树,最后遍历右子树。

(2)中序遍历(LDR):若二叉树为空,则结束返回。否则:首先遍历左子树,然后访问根结点,最后遍历右子树;并且,在遍历左、右子树时,仍然先遍历左子树,然后访问根结点,最后遍历右子树。

(3)后序遍历(LRD):若二叉树为空,则结束返回。否则:首先遍历左子树,然后遍历右子树,最后访问根结点,并且,在遍历左、右子树时,仍然先遍历左子树,然后遍历右子树,最后访问根结点。

1.7 查询技术(学吧学吧独家稿件)

查询:根据给定的某个值,在查询表中确定一个其关键字等于给定值的资料元素。

查询结果:(查询成功:找到;查询不成功:没找到。)

平均查询长度:查询过程中关键字和给定值比较的平均次数。

1、顺序查询

基本思想:从表中的第一个元素开始,将给定的值与表中逐个元素的关键字进行比较,直到两者相符,查到所要找的元素为止。否则就是表中没有要找的元素,查询不成功。

在平均情况下,利用顺序查询法线上性表中查询一个元素,大约要与线性表中一半的元素进行比较,最坏情况下需要比较n次。

顺序查询一个具有n个元素的线性表,其平均复杂度为O(n)。

下列两种情况下只能采用顺序查询:

1)如果线性表是无序表(即表中的元素是无序的),则不管是顺序储存结构还是链式储存结构,都只能用顺序查询。

2)即使是有序线性表,如果采用链式储存结构,也只能用顺序查询。

2、二分法查询

思想:先确定待查询记录所在的范围,然后逐步缩小范围,直到找到或确认找不到该记录为止。

前提:必须在具有顺序储存结构的有序表中进行。

查询过程:

1)若中间项(中间项mid=(n-1)/2,mid的值四舍五入取整)的值等于x,则说明已查到;

2)若x小于中间项的值,则线上性表的前半部分查询;

3)若x大于中间项的值,则线上性表的后半部分查询。

特点:比顺序查询方法效率高。最坏的情况下,需要比较log2n次。

*:二分法查询只适用于顺序储存的线性表,且表中元素必须按关键字有序(升序)排列。对于无序线性表和线性表的链式储存结构只能用顺序查询。在长度为n的有序线性表中进行二分法查询,其时间复杂度为O(log2n)。

1.8 排序技术(学吧学吧独家稿件)

排序是指将一个无序序列整理成按值非递减顺序排列的有序序列,即是将无序的记录序列调整为有序记录序列的一种操作。

1、交换类排序法(方法:气泡排序,快速排序)。

2、插入类排序法(方法:简单插入排序,希尔排序)。

3、选择类排序法(方法:简单选择排序,堆排序)。

总结:各种排序法比较:

本章应考点拨:本章内容在笔试中会出现5-6个题目,是公共基础知识部分出题量比较多的一章,所占分值也比较大,约10分。