Advertisement

北航 991 数据结构与C语言 1998~2015 真题

  • 5星
  •     浏览量: 0
  •     大小:None
  •      文件类型:AIGC


简介:
### 北航 991 数据结构与C语言 1998~2015 真题 #### 知识点解析 ##### 一、单项选择题 **1. 递归定义的问题** 递归算法与非递归算法在时间效率上的比较: - **选项A**:“前者要比后者快”不正确。递归算法通常会因为反复调用自身而带来额外的开销(如栈空间的管理),因此在很多情况下递归实现可能比非递归实现慢。 - **选项B**:“前者要比后者慢”可能更接近实际情况,尤其是在处理大规模问题时,递归算法的调用开销可能导致其运行速度较慢。 - **选项C**:“前者与后者相同”也并不总是成立,因为具体性能取决于递归的深度以及具体的实现方式。 - **选项D**:“两者不能做比较”并不准确,因为在特定条件下,可以通过分析算法的具体实现来比较两者的性能。 **正确答案**: B **2. 线性表采用顺序存储结构的优点** 线性表采用顺序存储结构的主要优点之一: - **选项A**:“存储密度(即存储利用率)高”正确。顺序存储由于所有元素紧密相连,没有额外的空间浪费,因此存储密度较高。 - **选项B**:“适用于各种逻辑结构的存储表示”不正确,顺序存储更适合于实现线性结构,如数组。 - **选项C**:“在表中进行插入操作的时间效率高”不正确,插入操作可能需要移动大量元素。 - **选项D**:“在表中进行删除操作的时间效率高”也不正确,删除操作同样可能导致大量元素的移动。 **正确答案**: A **3. 堆栈及其操作** 堆栈采用顺序存储结构的相关描述: - **选项A**:“堆栈的大小为n”正确,这里的n指的是最大容量。 - **选项B**:“堆栈为空时n=0”不正确,n表示的是堆栈的最大容量而非当前元素数量。 - **选项C**:“最多只能进行n次进栈和出栈操作”不正确,堆栈的进出栈操作不受限制,只要不超过最大容量即可。 - **选项D**:“n个元素依次进栈后,它们的出栈顺序一定与进栈顺序相反”正确。这是堆栈后进先出(LIFO)特性的直接体现。 **正确答案**: D **4. 二叉树形态** 形态上深度为n的二叉树的数量: - **选项A** 和 **选项B** 的描述存在显示问题,无法直接判断。 - **选项C** 和 **选项D** 同样存在显示问题,但根据常识推断,对于深度为n的二叉树,形态种类应该是2^(n-1)种。 **正确答案**: C 或 D (实际应为2^(n-1)) **5. 二叉树遍历方法** 给定的二叉树遍历顺序为4,6,7,5,2,3,1,根据这个顺序判断遍历方法: - **选项A**:“前序遍历”不正确,前序遍历根节点在前。 - **选项B**:“中序遍历”正确,中序遍历左子树—根节点—右子树。 - **选项C**:“后序遍历”不正确,后序遍历左子树—右子树—根节点。 - **选项D**:“按层次遍历”不正确,按层次遍历是从左到右,从上到下。 **正确答案**: B **6. 拓扑排序** 给定无回路有向图的邻接表,判断哪个顶点序列不是拓扑序列: - **选项A**:“v1,v2,v3,v5,v4”可能是拓扑序列。 - **选项B**:“v1,v2,v3,v4,v5”可能是拓扑序列。 - **选项C**:“v2,v1,v3,v5,v4”不可能是拓扑序列,因为拓扑排序要求所有入度为0的节点首先被列出。 - **选项D**:“v2,v1,v5,v3,v4”可能是拓扑序列。 **正确答案**: C **7. 连通图的邻接矩阵** 连通图邻接矩阵中的非零元素最少数量: - **选项A**:“2(n-1)”正确,连通图至少有一棵树构成,树中有n-1条边。 - **选项B** 和 **选项C** 不正确。 - **选项D**:“n/2”不正确。 **正确答案**: A **8. 折半查找** 长度为n的有序顺序表进行折半查找,每个元素的比较次数: - **选项A**:“大于”不正确。 - **选项B**:“等于”不正确。 - **选项C**:“小于”不正确。 - **选项D**:“小于或等于”正确。折半查找的比较次数不会超过对应判定树的深度。 **正确答案**: D **9. 散列表** 散列表的平均查找长度与哪些因素有关: - **选项A**:“与m直接相关”不完全正确。 - **选项B**:“与n直接相关”不完全正确。 - **选项C**:“与α直接相关”正确,α是装填因子,是影响散列表性能的关键指标。 - **选项D**:“与m、n和α都直接相关”最全面。 **正确答案**: D **10. 排序方法** 根据排序过程判断排序方法: - **选项A**:“插入排序法”不正确,插入排序每次只移动一个元素。 - **选项B**:“选择排序法”不正确,选择排序每次移动的都是当前未排序序列中的最小元素。 - **选项C**:“冒泡排序法”正确,冒泡排序每次将相邻元素比较并交换。 - **选项D**:“快速排序法”不正确,快速排序涉及分区操作。 **正确答案**: C ##### 二、填空题 **1. 线性表存储结构** 频繁插入或删除操作,线性表宜采用**链式存储结构**。 **2. 单链表链接** 若要以O(1)的时间代价链接两个单链表,则这两个链表的尾部结点应该分别具有指向另一个链表头部的指针,即**循环双链表**。 **3. 堆栈插入操作** 在基于单链表的堆栈中插入一个新结点的操作:`top->link = p; top = p;` **4. 满二叉树叶结点数目** 素数在20至40之间:23、29、31、37。满二叉树的叶结点数目为2^(log2(n)+1)-1,其中n为结点总数,所以n=23时,叶结点数目为12。 **5. 二叉树后序遍历** 给定的中序遍历和按层次遍历,构建二叉树后得到的后序遍历序列为**d,b,f,e,c,a**。 **6. 非连通无向图的顶点数** 至少有顶点数为36+1=37个,因为非连通无向图至少有一个孤立顶点。 **7. 判断有向图是否存在回路的方法** 除了拓扑排序,还可以使用**深度优先搜索**(DFS)来检测环的存在。 **8. 折半查找** 在给定顺序表中查找37的过程:65,37 **9. 散列函数构造** 为了降低散列冲突的可能性,最好选择一个与关键字范围内的数字**互质**的数作为p。 **10. 排序方法** 描述的排序方法是**快速排序**。 ##### 三、综合题 **1. 时间复杂度分析** 函数main的时间复杂度为**O(logn)**,因为x每次翻倍直到接近n/2,因此循环次数与n的对数成正比。 **2. 二叉树遍历** 给定的前序遍历序列A,B,E,F,G,C,H,D,构建二叉树后,可以得到相应的中序遍历序列和后序遍历序列等信息,这有助于理解二叉树的结构。 以上是对北航 991 数据结构与C语言 1998~2015 真题的部分知识点解析。

全部评论 (0)

还没有任何评论哟~
客服
客服
  • 991 C 1998~2015
    优质
    ### 北航 991 数据结构与C语言 1998~2015 真题 #### 知识点解析 ##### 一、单项选择题 **1. 递归定义的问题** 递归算法与非递归算法在时间效率上的比较: - **选项A**:“前者要比后者快”不正确。递归算法通常会因为反复调用自身而带来额外的开销(如栈空间的管理),因此在很多情况下递归实现可能比非递归实现慢。 - **选项B**:“前者要比后者慢”可能更接近实际情况,尤其是在处理大规模问题时,递归算法的调用开销可能导致其运行速度较慢。 - **选项C**:“前者与后者相同”也并不总是成立,因为具体性能取决于递归的深度以及具体的实现方式。 - **选项D**:“两者不能做比较”并不准确,因为在特定条件下,可以通过分析算法的具体实现来比较两者的性能。 **正确答案**: B **2. 线性表采用顺序存储结构的优点** 线性表采用顺序存储结构的主要优点之一: - **选项A**:“存储密度(即存储利用率)高”正确。顺序存储由于所有元素紧密相连,没有额外的空间浪费,因此存储密度较高。 - **选项B**:“适用于各种逻辑结构的存储表示”不正确,顺序存储更适合于实现线性结构,如数组。 - **选项C**:“在表中进行插入操作的时间效率高”不正确,插入操作可能需要移动大量元素。 - **选项D**:“在表中进行删除操作的时间效率高”也不正确,删除操作同样可能导致大量元素的移动。 **正确答案**: A **3. 堆栈及其操作** 堆栈采用顺序存储结构的相关描述: - **选项A**:“堆栈的大小为n”正确,这里的n指的是最大容量。 - **选项B**:“堆栈为空时n=0”不正确,n表示的是堆栈的最大容量而非当前元素数量。 - **选项C**:“最多只能进行n次进栈和出栈操作”不正确,堆栈的进出栈操作不受限制,只要不超过最大容量即可。 - **选项D**:“n个元素依次进栈后,它们的出栈顺序一定与进栈顺序相反”正确。这是堆栈后进先出(LIFO)特性的直接体现。 **正确答案**: D **4. 二叉树形态** 形态上深度为n的二叉树的数量: - **选项A** 和 **选项B** 的描述存在显示问题,无法直接判断。 - **选项C** 和 **选项D** 同样存在显示问题,但根据常识推断,对于深度为n的二叉树,形态种类应该是2^(n-1)种。 **正确答案**: C 或 D (实际应为2^(n-1)) **5. 二叉树遍历方法** 给定的二叉树遍历顺序为4,6,7,5,2,3,1,根据这个顺序判断遍历方法: - **选项A**:“前序遍历”不正确,前序遍历根节点在前。 - **选项B**:“中序遍历”正确,中序遍历左子树—根节点—右子树。 - **选项C**:“后序遍历”不正确,后序遍历左子树—右子树—根节点。 - **选项D**:“按层次遍历”不正确,按层次遍历是从左到右,从上到下。 **正确答案**: B **6. 拓扑排序** 给定无回路有向图的邻接表,判断哪个顶点序列不是拓扑序列: - **选项A**:“v1,v2,v3,v5,v4”可能是拓扑序列。 - **选项B**:“v1,v2,v3,v4,v5”可能是拓扑序列。 - **选项C**:“v2,v1,v3,v5,v4”不可能是拓扑序列,因为拓扑排序要求所有入度为0的节点首先被列出。 - **选项D**:“v2,v1,v5,v3,v4”可能是拓扑序列。 **正确答案**: C **7. 连通图的邻接矩阵** 连通图邻接矩阵中的非零元素最少数量: - **选项A**:“2(n-1)”正确,连通图至少有一棵树构成,树中有n-1条边。 - **选项B** 和 **选项C** 不正确。 - **选项D**:“n/2”不正确。 **正确答案**: A **8. 折半查找** 长度为n的有序顺序表进行折半查找,每个元素的比较次数: - **选项A**:“大于”不正确。 - **选项B**:“等于”不正确。 - **选项C**:“小于”不正确。 - **选项D**:“小于或等于”正确。折半查找的比较次数不会超过对应判定树的深度。 **正确答案**: D **9. 散列表** 散列表的平均查找长度与哪些因素有关: - **选项A**:“与m直接相关”不完全正确。 - **选项B**:“与n直接相关”不完全正确。 - **选项C**:“与α直接相关”正确,α是装填因子,是影响散列表性能的关键指标。 - **选项D**:“与m、n和α都直接相关”最全面。 **正确答案**: D **10. 排序方法** 根据排序过程判断排序方法: - **选项A**:“插入排序法”不正确,插入排序每次只移动一个元素。 - **选项B**:“选择排序法”不正确,选择排序每次移动的都是当前未排序序列中的最小元素。 - **选项C**:“冒泡排序法”正确,冒泡排序每次将相邻元素比较并交换。 - **选项D**:“快速排序法”不正确,快速排序涉及分区操作。 **正确答案**: C ##### 二、填空题 **1. 线性表存储结构** 频繁插入或删除操作,线性表宜采用**链式存储结构**。 **2. 单链表链接** 若要以O(1)的时间代价链接两个单链表,则这两个链表的尾部结点应该分别具有指向另一个链表头部的指针,即**循环双链表**。 **3. 堆栈插入操作** 在基于单链表的堆栈中插入一个新结点的操作:`top->link = p; top = p;` **4. 满二叉树叶结点数目** 素数在20至40之间:23、29、31、37。满二叉树的叶结点数目为2^(log2(n)+1)-1,其中n为结点总数,所以n=23时,叶结点数目为12。 **5. 二叉树后序遍历** 给定的中序遍历和按层次遍历,构建二叉树后得到的后序遍历序列为**d,b,f,e,c,a**。 **6. 非连通无向图的顶点数** 至少有顶点数为36+1=37个,因为非连通无向图至少有一个孤立顶点。 **7. 判断有向图是否存在回路的方法** 除了拓扑排序,还可以使用**深度优先搜索**(DFS)来检测环的存在。 **8. 折半查找** 在给定顺序表中查找37的过程:65,37 **9. 散列函数构造** 为了降低散列冲突的可能性,最好选择一个与关键字范围内的数字**互质**的数作为p。 **10. 排序方法** 描述的排序方法是**快速排序**。 ##### 三、综合题 **1. 时间复杂度分析** 函数main的时间复杂度为**O(logn)**,因为x每次翻倍直到接近n/2,因此循环次数与n的对数成正比。 **2. 二叉树遍历** 给定的前序遍历序列A,B,E,F,G,C,H,D,构建二叉树后,可以得到相应的中序遍历序列和后序遍历序列等信息,这有助于理解二叉树的结构。 以上是对北航 991 数据结构与C语言 1998~2015 真题的部分知识点解析。
  • 天大学991C程序设计历年
    优质
    本书汇集了北京航空航天大学多年来数据结构与C语言课程考试的真题,旨在帮助学生掌握考试重点和难点,提高应试能力。 北航991数据结构与C语言程序设计历年真题集合内容清晰,并附有2019年的答案及内部讲义PPT。考上的学长分享了这份资料。
  • 考研自考C程序设计991及答案下载
    优质
    本资源提供北京航空航天大学考研和自考生适用的数据结构与C语言程序设计科目991试题及其详细解答,便于学生进行高效复习和自我检测。 我需要6套题,目标是数据结构与C语言程序设计991考试的60分水平,要求高清版本。
  • 991考研资料.zip
    优质
    本资料为北京航空航天大学99级研究生入学考试复习材料,涵盖专业课程历年试题及解析,适合备考学生深入学习和自我检测。 北京航空航天大学991考研真题.zip
  • 公园导 C
    优质
    本项目运用C语言编程实现了一个公园导航系统,采用数据结构技术优化地图路径查询与规划功能。 数据结构 公园导航图 C语言规划速度发高烧。
  • 软件工程991历年(98-15)
    优质
    本资料汇集了北京航空航天大学软件工程专业自1998年至2015年的历年考研真题,适合备考北航软工专业的学生使用。 北航软件工程991 98-15真题,其中2013年和2014年的有答案,其他年份的没有。
  • 2019年软院991.pdf
    优质
    该文档为2019年北京航空航天大学软件学院入学考试真题集,涵盖计算机科学与技术领域核心课程内容,适用于备考研究生入学考试的学生参考。 991数据结构与C语言程序设计真题 北京航空航天大学2019年硕士研究生招生考试初试试题 科目代码 901 数据结构与C语言程序设计(共7页) 考生注意:所有答题务必书写在考场提供的答题纸上,写在本试题单上的答题一律无效。 一、单项选择题(本题共20分,每小题各2分) 1. 设n为某问题的规模。若某算法的时间复杂度为O(n),则表示该算法的 A. 执行时间为n; B. 执行时间与n呈线性关系; C. 执行时间与n^2成正比关系; D. 执行时间与n无关。 2. 对于长度为n的非空线性表,下列4种操作中,在顺序表上实现比在链表上实现的时间效率更高的是 A. 输出表中第i个数据元素的值(1≤i≤n) B. 依次输出整个列表
  • 使用C解决校园导
    优质
    本项目运用C语言实现数据结构算法,旨在解决校园内的导航问题。通过构建高效的数据模型和路径搜索机制,提供准确、便捷的路线指引服务。 数据结构(使用C语言)校园导航问题源码 很好很完整的哦。
  • C++
    优质
    《C++语言的数据结构》一书深入浅出地介绍了数据结构的基本概念及其在C++中的实现方法,涵盖数组、链表、树和图等核心内容。 数据来源于清华大学MOOC课程上邓俊辉老师的配套教材第三版。
  • C#
    优质
    《C#语言的数据结构》是一本专注于使用C#编程语言实现数据结构和算法原理的教程,适合希望深入理解数据结构与提高编程技能的读者阅读。 如果你的程序用不到数据结构,只能说明你的技术含量不高。不要只满足于表面的工作,在程序设计中应用数据结构,可以提升你的技术水平。