国家二级VF机试(数据结构与算法)模拟试卷5
选择题
1.下列叙述中正确的是(D)
A. 算法就是程序
B. 设计算法时只需要考虑数据结构的设计
C. 设计算法时只需要考虑结果的可靠性
D. 以上三种说法都不对
解析:所谓算法是指解题方案的准确而完整的描述。是一组严谨地定义运算顺序的规则,并且每一个规则都是有效的,且是明确的,此顺序将在有限的次数下终止。算法不等于程序,也不等于计算方法。设计算法时不仅要考虑对数据对象的运算和操作,还要考虑算法的控制结构。
2.算法的时间复杂度是指(D)
A. 算法的执行时间
B. 算法所处理的数据量
C. 算法程序中的语句或指令条数
D. 算法在执行过程中所需要的基本运算次数
解析:算法的时间复杂度,是指执行算法所需要的计算工作量。算法的工作量可以用算法在执行过程中所需基本运算的执行次数来度量。
3.下列叙述中正确的是(D)
A. 一个算法的空间复杂度大,则其时间复杂度也必定大
B. 一个算法的空间复杂度大,则其时间复杂度必定小
C. 一个算法的时间复杂度大,则其空间复杂度必定小
D. 算法的时间复杂度与空间复杂度没有直接关系
解析:算法的复杂度主要包括时间复杂度和空间复杂度。算法的时间复杂度是指执行算法所需要的计算工作量,算法的工作量用算法所执行的基本运算次数来度量,而算法所执行的基本运算次数是问题规模的函数,即算法的工作量=f(n),其中n是问题的规模;算法的空间复杂度,一般是指执行这个算法所需要的内存空间。一个算法所占用的存储空间包括算法程序所占用的空间、输入的初始数据所占的存储空间以及算法执行过程中所需要的额外空间。根据各自的定义可知,算法的时间复杂度与空间复杂度并不相关。
4.下列描述中正确的是(D)
A. 一个逻辑数据结构只能有一种存储结构
B. 数据前逻辑结构属于线性结构,存储结构属于非线性结构
C. 一个逻辑数据结构可以有多种存储结构,且各种存储结构不影响数据处理的效率
D. 一个逻辑数据结构可以有多种存储结构,且各种存储结构影响数据处理的效率
解析:数据的逻辑结构是指数据集合中各数据元素之间所固有的逻辑关系;数据的存储结构是在对数据进行处理时,各数据元素在计算机中的存储关系。数据的存储结构是指数据的逻辑结构在计算机中的表示,一种逻辑结构可以表示成多种存储结构:而采用不同的存储结构,其数据处理的效率是不同的。
5.下列叙述中正确的是(B)
A. 有一个以上根结点的数据结构不一定是非线性结构
B. 只有一个根结点的数据结构不一定是线性结构
C. 循环链表是非线性结构
D. 双向链表是非线性结构
解析:在数据结构中,树这类的数据结构只有一个根结点,但它不是线性结构。
6.下列描述中正确的是(A)
A. 线性链表是线性表的链式存储结构
B. 栈与队列是非线性结构
C. 双向链表是非线性结构
D. 只有根结点的二叉树是线性结构
解析:线性表的链式存储结构称为线性链表。线性表链式存储结构的基本单位称为存储结点,每个存储结点包括数据域和指针域两个组成部分。各数据元素之间的前后件关系是由各结点的指针域来指示的,指向线性表中第一结点的指针HEAD称为头指针,当HEAD=NULL时称为空表。栈、队列和双向链表是线性结构,树是一种简单的非线性结构。在树这种数据结构中,所有数据元素的关系具有明显的层次特征。二叉树是非线性结构。线性结构和非线性结构是从数据的逻辑结构角度来讲的,与该数据结构中有多少个元素没有关系,即使是空的二叉树也是非线性结构。
7.下列关于栈的叙述正确的是(B)
A. 栈按“先进先出”组织数据
B. 栈按“先进后出”组织数据
C. 只能在栈底插入数据
D. 不能删除数据
解析:栈是限定在一端进行插入和删除的线性表,允许进行插入和删除元素的一端称为栈顶,另一端称为栈底。栈是按照“先进后出”的原则组织数据的。
8.下列数据结构中,能够按照“先进后出”原则存取数据的是(B)
A. 循环队列
B. 栈
C. 队列
D. 二叉树
解析:栈按照“先进后出”(FILO)或“后进先出”(LIFO)组织数据;队列是“先进先出”(FIFO)或“后进后出”(LILo)的线性表。
9.下列关于栈的叙述中,正确的是(C)
A. 栈底元素一定是最后入栈的元素
B. 栈顶元素一定是最先入栈的元素
C. 栈操作遵循先进后出的原则
D. 以上三种说法都不对
解析:栈是限定只能在表的一端进行插入和删除操作的线性表,必须按“后进先出”的规则操作元素。
10.一个栈的初始状态为空。现将元素1、2、3、4、5、A、B、C、D、E依次入栈,然后再依次出栈,则元素出栈的顺序是(B)
A. 12345ABCDE
B. EDCBA54321
C. ABCDE12345
D. 54321EDCBA
解析:栈是按照“先进后出”或“后进先出”的原则组织数据的。所以出栈顺序是EDCBA54321。
11.下列关于栈的描述中错误的是(B)
A. 栈是先进后出的线性表
B. 栈只能顺序存储
C. 栈具有记忆作用
D. 对栈的插入与删除操作中,不需要改变栈底指针
解析:栈是限定在一端进行插入与删除的线性表。栈顶(top):插入数据(即入栈)的一端;栈底(bottom):不能入栈也不能出栈的一端。栈存储数据的原则:“先进后出”或“后进先出”。栈的特性是具有记忆作用。
12.下列对队列的描述中正确的是(D)
A. 队列属于非线性表
B. 队列按“先进后出”原则组织数据
C. 队列在队尾删除数据
D. 队列按“先进先出”原则组织数据
解析:队列(queue)是指允许在一端进行插入、而在另一端进行删除的线性表。允许插入的一端称为队尾:允许删除的一端称为队头。在队列这种数据结构中,最先插入的元素将最先能够被删除;反之,最后插入的元素将最后才能被删除。因此,队列又称“先进先出”或“后进后出”的线性表。
13.下列叙述中正确的是(D)
A. 栈是“先进先出”的线性表
B. 队列是“先进后出”的线性表
C. 循环队列是非线性结构
D. 有序线性表既可以采用顺序存储结构,也可以采用链式存储结构
解析:本题主要考查了栈、队列、循环队列的概念,栈是先进后出的线性表,队列是先进先出的线性表。根据数据结构中各数据元素之间的前后件关系的复杂程度,一般将数据结构分为两大类型:线性结构与非线性结构。有序线性表既可以采用顺序存储结构,又可以采用链式存储结构。
14.下列叙述中正确的是(D)
A. 循环队列有队头和队尾两个指针,因此,循环队列是非线性结构
B. 在循环队列中,只需要队头指针就能反映队列中元素的动态变化情况
C. 在循环队列中,只需要队尾指针就能反映队列中元素的动态变化情况
D. 循环队列中元素的个数是由队头指针和队尾指针共同决定
解析:循环队列中元素的个数是由队头指针和队尾指针共同决定的,元素的动态变化也是通过队头指针和队尾指针来反映的。
15.下列叙述中正确的是(B)
A. 循环队列是队列的一种链式存储结构
B. 循环队列是队列的一种顺序存储结构
C. 循环队列是非线性结构
<本文档预览:3600字符,共8041字符,源文件无水印,下载后包含无答案版和有答案版,查看完整word版点下载