1、国家二级 C语言(数据结构与算法)机试模拟试卷 3及答案与解析 一、选择题 1 下关于算法的叙述错误的是 ( A)算法可以用伪代码、流程图等多种形式来描述 ( B)朋流程图描述的算法可以用任何一种计算机高级语言编写程序代码 ( C)一个正确的算法必须有输入 ( D)一个正确的算法必须有输出 2 算法的空间复杂度是指 ( A)算法在执行过程中所需要的计算机存储空间 ( B)算法所处理的数据量 ( C)算法程序中的语句或指令条数 ( D)算法在执行过程中所需要的临时工作单元数 3 下列叙述中正确的是 ( A)一个算法的空间复杂度大,则其时间复杂度也必定大 ( B)一个算法的空间复杂度大,则其时间复
2、杂度必定小 ( C)一个算法的时间复杂度大,则其空间复杂度必定小 ( D)算法的时间复杂度与空间复杂度没有直接关系 4 计算机网络的主要特点是 ( A)运算速度快 ( B)运算精度高 ( C)资源共享 ( D)人机交换 5 在 Windows菜单中,暗淡的命令名项目表示该命令 ( A)暂时不能用 ( B)正在执行 ( C)包含下一层菜单 ( D)包含对话框 6 下列描述中正确的是 ( A)一个逻辑数据 结构只能有一种存储结构 ( B)数据的逻辑结构属于线性结构,存储结构属于非线性结构 ( C)一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率 ( D)一个逻辑数据结构可以有
3、多种存储结构,且各种存储结构影响数据处理的效率 7 下列数据结构中,属于非线性结构的是 ( A)循环队列 ( B)带链队列 ( C)二叉树 ( D)带链栈 8 下列关于栈的叙述正确的是 ( A)栈按 “先进先出 ”组织数据 ( B)栈按 “先进后出 ”组织数据 ( C)只能在栈底插入数据 ( D)不能删除数据 9 下列关于栈叙述正确的是 ( A)栈顶元素最先能被删除 ( B)栈顶元素最后才能被删除 ( C)栈底元素永远不能被删除 ( D)以上三种说法都不对 10 一个栈的初始状态为空。现将元素 1、 2、 3、 4、 5、 A、 B、 C、 D、 E依次入栈,然后再依次出栈,则元素出栈的顺序是
4、 ( A) 12345ABCDE ( B) EDCBA54321 ( C) ABCDE12345 ( D) 54321EDCBA 11 按照 “后进先出 ”原则组织数据的数据结构是 ( A)队列 ( B)栈 ( C)双向链表 ( D)二叉树 12 下列叙述中正确的是 ( A)栈是 “先进先出 ”的线性表 ( B)队列是 “先进后出 ”的线性表 ( C)循环队列是非线性结构 ( D)有序线性表既可以采用顺序存储结构,也可以采用链式存储结构 13 对于循环队列,下列叙述中正确的是 ( A)队头指针是固定不变的 ( B)队头指针一定大于队尾指针 ( C)队头指针一定小于队尾指针 ( D)队头指针可以
5、大于队尾指针,电可以小于队尾指针 14 在一个容量为 15的循环队列中,若头指针 front=6,尾指针 rear=9,则循环队列中的元素个数为 ( A) 2 ( B) 3 ( C) 4 ( D) 5 15 下列与队列结构有关联的是 ( A)函数的递归调用 ( B)数组元素的引用 ( C)多重循环的执行 ( D)先到先服务的作业调度 16 下列叙述中正确的是 ( A)线性表链式存储结构的存储空间一般要少于顺序存储结构 ( B)线性表链式存储结构与顺序存储结构的存储空间都是连续的 ( C)线性表链式存储结构的存储空间可以是连续的,也可以是不连续的 ( D)以上都不正确 17 下列叙述中正确的是
6、( A)顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连 续的 ( B)顺序存储结构只针对线性结构,链式存储结构只针对非线性结构 ( C)顺序存储结构能存储有序表,链式存储结构不能存储有序表 ( D)链式存储结构比顺序存储结构节省存储空间 18 对下列二叉树,进行中序遍历的结果是 ( A) ACBDFEG ( B) ACBDFGE ( C) ABDCGEF ( D) FCADBEG 19 某二叉树中有 n个度为 2的结点,则该二叉树中的叶子结点数为 ( A) n+1 ( B) n-1 ( C) 2n ( D) n 2 20 一棵二叉树中共有 80个叶予结点与 70个度为 1的结
7、 点,则该二叉树中的总结点数为 ( A) 219 ( B) 229 ( C) 230 ( D) 231 21 某二叉树共有 12个结点,其中叶子结点只有 1个。则该二义树的深度为 (根结点在第 1层 ) ( A) 3 ( B) 6 ( C) 8 ( D) 12 22 在深度为 7的满二叉树中,叶子结点的个数为 ( A) 32 ( B) 31 ( C) 64 ( D) 63 23 对长度为 n的线性表进行顺序查找,在最坏情况下所需要的比较次数为 ( A) log 2 n ( B) n 2 ( C) n ( D) n+1 24 在长度为 n的有 序线性表中进行二分查找,最坏情况下需要比较的次数是
8、( A) O(n) ( B) O(n 2 ) ( C) 0(log 2 n) ( D) O(nlog 2 n) 25 对长度为 10的线性表进行冒泡排序,最坏情况下需要比较的次数为 ( A) 9 ( B) 10 ( C) 45 ( D) 90 26 对长度为 n的线性表排序,在最坏情况下,比较次数不是 n(n-1) 2的排序方法是 ( A)快速排序 ( B)冒泡排序 ( C)直接插入排序 ( D)堆排序 国家二级 C语言(数据结构与算法)机试模拟试卷 3答案与解析 一、 选择题 1 【正确答案】 C 【试题解析】 本题考查算法的基本概念。选项 C)错误,算法不一定需要输入,但是一定有输出。 【
9、知识模块】 数据结构与算法 2 【正确答案】 A 【试题解析】 算法的空间复杂度是指执行这个算法所需要的内存空间。这个内存空间包括算法程序所占的空间。输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。 【知识模块】 数据结构与算法 3 【正确答案】 D 【试题解析】 算法的复杂度主要包括时间复杂度和空间复杂度。算法的时间复杂度是指执 行算法所需要的计算工作量,算法的工作量用算法所执行的基本运算次数来度量,而算法所执行的基本运算次数是问题规模的函数,即算法的工作量=f(n),其中 n是问题的规模;算法的空间复杂度,一般是指执行这个算法所需要的内存空间。一个算法所占用的存储空间包括算
10、法程序所占用的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。根据各自的定义可知,算法的时间复杂度与空间复杂度并不相关。 【知识模块】 数据结构与算法 4 【正确答案】 C 【试题解析】 计算机网络主要特点是资源共享。 【知识模块】 数据结构与算法 5 【正确答案】 A 【试题解析】 在 Windows菜单中暗淡的命令名项目表示该命令在当前状态下不可用,或是已被禁用。 【知识模块】 数据结构与算法 6 【正确答案】 D 【试题解析】 数据的逻辑结构是指数据集合中各数据元素之间所固有的逻辑关系;数据的存储结构是在对数据进行处理时,各数据元素在计算机中的存储关系。数据的存储结
11、构是指数据的逻辑结构在计算机中的表示,一种逻辑结构可以表示成多种存储结构:而采用不同的存储结构,其数据处理的效率是不同的。 【知识模块】 数据结构与算法 7 【正确答案】 C 【试题解析】 根据数据结构中各数据元素之间的前后件关系的复杂程度,一般将数据结构分为两大类:线性结构和非线性结构。循环队列、带链队列和带链栈都是线性结构,而二叉树是非线性结构。 【知识模块】 数据结构与算法 8 【正确答案】 B 【试题解析】 栈是限定在一端进行插入和删除的线性表,允许进行插入和删除元素的一端称为栈顶,另一端称为栈底。栈是按照 “先进后出 ”的原则组织数据的。 【知识模块】 数据结构与算法 9 【正确答案
12、 】 A 【试题解析】 栈是先进后出的线性表,栈顶的元素最先被删除,栈底的元素最后被删除。 【知识模块】 数据结构与算法 10 【正确答案】 B 【试题解析】 栈是按照 “先进后出 ”或 “后进先出 ”的原则组织数据的。所以出栈顺序是 EDCBA54321。 【知识模块】 数据结构与算法 11 【正确答案】 B 【试题解析】 栈是限定在一端进行插入与删除的线性表。在栈中,允许插入与删除的一端为栈顶,不允许插入与删除的另一端称为栈底。栈顶元素总是最后被插入的元素,也是最先被删除的元素 ;栈底元素总是最先被插入的元素,也是最后才能被删除的元素。即栈是按照 “后进先出 ”(Last In First
13、 Out,简称 LtFO)或 “先进后出 ”(First In Last Out,简称 FILO)的原赠组织数据的。因此,栈也称为 “后进先出表 ”或 “先进后出 ”表。 【知识模块】 数据结构与算法 12 【正确答案】 D 【试题解析】 本题主要考查了栈、队列、循环队列的概念,栈是先进后出的线性表,队列是先进先出的线性表。根据数据结构中各数据元素之间的前后件关系的复杂程度,一般将数据结构分为两大类型 :线性结构与非线性结构。有序线性表既可以采用顺序存储结构,又可以采用链式存储结构。 【知识模块】 数据结构与算法 13 【正确答案】 D 【试题解析】 所谓循环队列就是将队列存储空间的最后一个位
14、置绕到第一个位置,形成逻辑上的环状空间,供队列循环使用。在循环队列中,用队尾指针 rear指向队列中的队尾元素,用队头指针丘 front指向队头元素的前一个位置。循环队列的主要操作是:入队运算和退队运算。每进行一次入队运算,队尾指针就进一。每进行一次退队运算,队头指针就进一。当 rear或 front等于队 列的长度加 1时,就把 rear或 front值置为 1。所以在循环队列中,队头指针可以大于队尾指针,也可以小于队尾指针。 【知识模块】 数据结构与算法 14 【正确答案】 B 【试题解析】 循环队列中, rear表示尾指针, front表示头指针,当有元素入队时, rear=rear+1
15、,而元素出队的时候, front=front+1,当 rear值大于 front值时,队列中的元素个数为 rear-front,当 rear的值小于 front时,列队中的元素个数为 rear-front+m(m表示队列的容量 )。 【知识模块】 数据结构与算法 15 【正确答案】 D 【试题解析】 队列中最先插入的元素将最先被删除,最后插入的元素将最后被删除。 【知识模块】 数据结构与算法 16 【正确答案】 C 【试题解析】 线性表的存储分为顺序存储和链式存储。在顺序存储中,所有元素所占的存储空间是连续的。而在链式存储的方式中,将存储空间的每一个存储结点分为两部分,一部分用于存储数据元素的
16、值,称为数据域:另一部分用于存储下一个元素的存储序号,称为指针域。所以线性表的链式存储方式比顺序存储方式的存储空间要 大一些。 【知识模块】 数据结构与算法 17 【正确答案】 A 【试题解析】 顺序存储方式主要用于线性的数据结构,它把逻辑上相邻的数据元素存储在物理上相邻的存储单元里,结点之间的关系由存储单元的邻接关系来体现。而链式存储结构的存储空间不一定是连续的。 【知识模块】 数据结构与算法 18 【正确答案】 A 【试题解析】 本题考查二叉树的遍历,中序遍历首先遍历左子树,然后访问根节点,最后遍历又子树,选 A)。 【知识模块】 数据结构与算法 19 【正确答案】 A 【 试题解析】 在
17、任意一棵二叉树中,度为 0的结点 (即叶子结点 )总是比度为 2的结点多一个。所以该二叉树的叶子结点数等于 n+1。 【知识模块】 数据结构与算法 20 【正确答案】 B 【试题解析】 根据二叉树的性质,在任意二叉树中,度为 0的结点 (即叶子结点 )总是比度为 2的结点多一个。故总结点数 =叶子节点数 +度为 2的节点数 +度为 1的节点数 =80+79+70=229。 【知识模块】 数据结构与算法 21 【正确答案】 D 【试题解析】 根据二叉树的性质,度为 0的结点 (即叶子结点 )总是比度 为 2的结点多一个。题目中的二叉树的叶子结点为 1,因此度为 2的结点的数目为 0,故该二叉树为
18、 12层,每层只有一个结点。 【知识模块】 数据结构与算法 22 【正确答案】 C 【试题解析】 所谓满二叉树是指这样的一种二叉树:除最后一层外,每一层上的所有结点都有两个子结点。也就是在满二叉树中,每一层上的结点数都是最大结点数,即在满二叉树的第 k层上有 2 k-1 个结点,且深度为 m的满二叉树有 2 m -1个结点。对于深度为 7的满二叉树,叶子结点所在的是第 7层,一共有 2 7-1 =64个叶子结点。全部结点共 2 7 -1=127个。 【知识模块】 数据结构与算法 23 【正确答案】 C 【试题解析】 在进行顺序查找过程中,如果被查的元素是线性表中的最后一个元素,或者被查元素根本
19、不在线性表中,则为了查找这个元素需要与线性表中的所有元素进行比较,这是顺序查找的最坏情况,需要比较的次数为 n次。 【知识模块】 数据结构与算法 24 【正确答案】 C 【试题解析】 对于长度为 n的有序线性表,在最坏情况下,二分法查找只需比较log 2 n次,而顺序查找需要比较 n次。 【知识模块】 数据结构与 算法 25 【正确答案】 C 【试题解析】 线性表的长度为 n,最坏情况下冒泡排序需要比较的次数为 n(n-1) 2。 【知识模块】 数据结构与算法 26 【正确答案】 D 【试题解析】 各种排序方法中最坏情况下需要比较的次数分别为:冒泡排序 n(n-1), 2、快速排序 n(n-1) 2、简单插入排序 n(n-1) 2、希尔排序 O(n1 5)、简单选择排序 n(n-1) 2、堆排序 O(nlog 2 n)。 【知识模块】 数据结构与算法
copyright@ 2008-2019 麦多课文库(www.mydoc123.com)网站版权所有
备案/许可证编号:苏ICP备17064731号-1