全国计算机二级JAVA笔试分类模拟题算法和数据结构程序设计基础.docx
- 文档编号:4697419
- 上传时间:2022-12-07
- 格式:DOCX
- 页数:13
- 大小:31.90KB
全国计算机二级JAVA笔试分类模拟题算法和数据结构程序设计基础.docx
《全国计算机二级JAVA笔试分类模拟题算法和数据结构程序设计基础.docx》由会员分享,可在线阅读,更多相关《全国计算机二级JAVA笔试分类模拟题算法和数据结构程序设计基础.docx(13页珍藏版)》请在冰豆网上搜索。
全国计算机二级JAVA笔试分类模拟题算法和数据结构程序设计基础
二级JAVA笔试分类模拟题算法和数据结构、程序设计基础
一、选择题
1.下列关于栈叙述正确的是______。
A.栈顶元素最先被删除
B.栈顶元素最后才能被删除
C.栈底元素永远不能被删除
D.以上三种说法部不对
答案:
A
栈是允许在同一端进行插入和删除操作的特殊线性表。
允许进行插入和删除操作的一端称为栈顶(Top),另一端为栈底(Bottom);栈底固定,而栈顶浮动;栈中元素个数为0时称为空栈。
插入一般称为进栈(PUSH),删除则称为退栈(POP)。
栈也称为先进后出表。
2.下列叙述中正确的是______。
A.有一个以上根节点的数据结构不一定是非线性结构
B.只有一个根节点的数据结构不一定是线性结构
C.循环链表是非线性结构
D.双向链表是非线性结构
答案:
B
循环链表是另一种形式的链式存储结构。
它的特点是表中最后一个节点的指针域指向头节点,整个链表形成一个环。
双向链表也叫双链表,是链表的一种,它的每个数据节点中都有两个指针,分别指向直接后继和直接前驱。
所以,从双向链表中的任意一个节点开始,都可以很方便地访问它的前驱节点和后继节点;循环链表和双向链表都是线性结构。
有一个以上根节点的结构一定是非线性结构。
3.某二叉树共有7个节点,其中叶子节点只有1个,则该二叉树的深度为______(假设根节点在第1层)。
A.3
B.4
C.6
D.7
答案:
D
二叉树是一种很有用的非线性结构,它具有以下两个特点:
1)非空二叉树只有一个根节点;
2)每一个节点最多有两棵子树,且分别称为该节点的左子树与右子树。
根据二叉树的概念可知,二叉树的度可以为0(叶子节点)、1(只有一棵子树)或2(有2棵子树)。
由于只有一个叶子节点,所以该二叉树没有分叉,7个节点连成一线,深度为7。
4.下列叙述正确的是______。
A.算法就是程序
B.设计算法时只需要考虑数据结构的设计
C.设计算法时只需要考虑结果的可靠性
D.以上三种说法都不对
答案:
D
算法是求解问题的方法。
程序设计时要设计算法,但算法不是程序。
设计算法除了要考虑数据结构外,还要考虑算法的可行性、可靠性等。
5.下列关于线性链表的叙述中,正确的是______。
A.各数据节点的存储空间可以不连续,但它们的存储顺序与逻辑顺序必须一致
B.各数据节点的存储顺序与逻辑顺序可以不一致,但它们的存储空间必须连续
C.进行插入与删除时,不需要移动表中的元素
D.以上三种说法都不对
答案:
C
节点的存储顺序和逻辑顺序不一定一致,存储空间也不一定连续。
插入和删除元素的时候,不需要移动表中的元素。
6.下列关于二叉树的叙述中,正确的是______。
A.叶子节点总是比度为2的节点少一个
B.叶子节点总是比度为2的节点多一个
C.叶子节点数是度为2的节点数的两倍
D.度为2的节点数是度为1的节点数的两倍
答案:
B
二叉树叶子节点总是比度为2的节点多一个,这是二叉树的性质。
7.下列叙述中正确的是______。
A.栈是一种先进先出的线性表
B.队列是一种后进先出的线性表
C.栈与队列都是非线性结构
D.以上三种说法都不对
答案:
D
栈和队列都是特殊的线性表,栈(Stack)只能在表的一端进行插入和删除运算,所以,栈是一种“先进后出”的线性表;而队列(Queue)只允许在一端删除,在另一端插入,所以,队列是一种“先进先出”的线性表。
8.一棵二叉树共有25个节点,其中5个是叶子节点,则度为1的节点数为______。
A.4
B.10
C.6
D.16
答案:
D
从题干中我们知道,在该二叉树中有5个叶子节点,由二叉树的性质之一:
任何一棵二叉树,度为0的节点(也就是叶子节点)总是比度为2的节点多一个。
可以得出,该二叉树度为2(有2棵子树)的节点数为4个,而该二叉树总共有25个节点,所以,度为1的节点数为:
25-5-4=16个。
9.下列链表中,其逻辑结构属于非线性结构的是______。
A.二叉链表
B.循环链表
C.双向链表
D.带链的栈
答案:
A
此题目主要考查数据结构中的非线性结构的基本知识。
其中,循环链表、双向链表、带链的栈都是线性结构,二叉链表是非线性链表。
10.设循环队列的存储空间为Q(1:
35),初始状态为front=rear=35。
现经过一系列入队与出队运算后,front=15,rear=15,则循环队列中的元素个数为______。
A.15
B.16
C.20
D.0或35
答案:
D
此题目主要考查数据结构中队列的存储规则,队列的元素个数为rear-front,如果差是非正数,加队列的长度。
当队首与队尾指向同一空间时,队列可能为空,也可能为满,所以选择D。
11.下列关于栈的叙述中,正确的是______。
A.栈底元素一定是最后入栈的元素
B.栈顶元素一定是最先入栈的元素
C.栈操作遵循先进后出的原则
D.以上三种说法都不对
答案:
C
栈的存储原则是先进后出,所以选择C。
12.下列叙述中错误的是______。
A.一种数据的逻辑结构可以有多种存储结构
B.数据的存储结构与数据的处理效率无关
C.数据的存储结构与数据的处理效率密切相关
D.数据的存储结构在计算机中所占的空间不一定是连续的
答案:
B
数据的存储结构分顺序存储结构和链式存储结构,一个数据的逻辑结构可以有多种存储结构。
顺序结构中数据元素所占的存储空间是连续的,而链式存储结构中,数据元素通过指针就联系在一起了,所以所占的存储空间不一定是连续的。
13.下列对队列的描述中正确的是______。
A.队列属于非线性表
B.队列按“先进后出”原则组织数据
C.队列在队尾删除数据
D.队列按“先进先出”原则组织数据
答案:
D
队列(Queue)是指允许在一端进行插入,而在另一端进行删除的线性表。
允许插入的一端称为队尾,允许删除的一端称为队头。
在队列这种数据结构中,最先插入的元素将能够最先被删除;反之,最后插入的元素最后才能被删除。
因此,队列又称“先进先出”或“后进后出”的线性表。
14.链表不具有的特点是______。
A.不必事先估计存储空间
B.可随机访问任一元素
C.插入、删除不需要移动元素
D.所需空间与线性表长度成正比
答案:
B
链表采用的是链式存储结构,它的节点空间可以动态申请和释放;它的数据元素的逻辑次序靠节点的指针来指示,插入或删除不需要移动数据元素。
但是链式存储结构也有不足之处,每个节点中的指针域需额外占用存储空间,它是一种非随机存储结构。
15.下列关于栈的描述中错误的是______。
A.栈是先进后出的线性表
B.栈只能顺序存储
C.栈具有记忆作用
D.对栈进行插入、删除操作时,不需要改变栈底指针
答案:
B
栈是线性表的一种,它的特点是先进后出,并且只能在表的一端进行插入和删除操作。
入栈和出栈都是在栈顶进行的,因此具有记忆作用。
栈可以采用顺序存储,也可以采用链式存储。
16.某二叉树中有n个度为2的节点,则该二叉树中的叶子节点数为______。
A.n+1
B.n-1
C.2n
D.n/2
答案:
A
在任意一棵二叉树中,度为0的节点(即叶子节点)总是比度为2的节点多一个,所以该二叉树的叶子节点数等于n+1。
17.对如图所示的二叉树进行前序遍历的结果为______。
二叉树
A.DYBEAFCZX
B.YDEBFZXCA
C.ABDYECFXZ
D.ABCDEFXYZ
答案:
C
二叉树前序遍历的简单描述为:
若二叉树为空,则返回节点;否则先访问根节点,然后前序遍历左子树,最后前序遍历右子树。
可见,前序遍历二叉树的过程是一个递归的过程。
根据题目中给出的二叉树的结构可知前序遍历的结果是ABDYECFXZ。
18.已知数据表A中每个元素距其最终位置不远,为了节省时间,应采用的算法是______。
A.堆排序
B.直接插入排序
C.快速排序
D.直接选择排序
答案:
B
若数据表A中每个元素距其最终位置不远,说明数据表A按关键字值的排序是有序的。
在待排序列基本有序的情况下,采用插入排序所用的时间最少。
19.下列描述中正确的是______。
A.数据的逻辑结构与存储结构必定是一一对应的
B.由于计算机存储空间是向量式的存储结构,因此,数据的存储结构一定是线性结构
C.利用数组只能处理线性结构
D.以上3种说法都不对
答案:
D
数据的逻辑结构是指反映数据元素之间逻辑关系的数据结构。
数据的逻辑结构在计算机存储空间中的存放形式称为数据的存储结构(也称数据的物理结构)。
一般来说,一种数据的逻辑结构根据需要可以表示成多种存储结构,常用的存储结构有顺序、链接和索引等。
20.算法分析的目的是______。
A.找出数据结构的合理性
B.找出算法中输入和输出之间的关系
C.分析算法的易懂性和可靠性
D.分析算法的效率以求改进
答案:
D
算法分析是指对一个算法的运行时间和占用空间做定量的分析,计算相应的数量级。
分析算法的目的就是要降低算法的时间复杂度和空间复杂度,提高算法的执行效率。
21.按照“先进先出”原则组织数据的结构是______。
A.队列
B.栈
C.双向链表
D.二叉树
答案:
A
队列是一种特殊的线性表示,只允许在表的一端插入元素;在表的另一端删除元素,插入元素的一端叫“队尾”,删除元素的一端叫“队头”;先插入的元素先被删除,是按“先进先出”的原则组织数据的。
22.栈和队列的共同点是______。
A.都是先进先出
B.都是先进后出
C.只允许在端点处插入和删除元素
D.没有共同特点
答案:
C
栈和队列都是操作受限的线性表,只允许在端点插入和删除。
不同点是栈只允许在表的一端进行插入和删除操作,而队列允许在表的一端进行插入操作,而在另一端进行删除操作。
23.线性表采用链式存储时,结构的存储地址______。
A.必须是不连续的
B.连续与否均可
C.必须是连续的
D.和头节点的存储地址相连续
答案:
B
在链式存储结构中,存储数据结构的存储空间可以不连续,各数据节点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据之间的逻辑关系是由指针域来确定的。
24.下列数据结构中,能用二分法进行查找的是______。
A.顺序存储的有序线性表
B.循环链表
C.二叉链表
D.链式存储的有序线性表
答案:
A
二分法查找只用于顺序存储的有序线性表,而顺序查找用于顺序存储的非有序线性表和线性链表。
25.线性表进行二分法检索,其前提条件是______。
A.线性表以顺序方式存储,并按关键码值排好序
B.线性表以顺序方式存储,并按关键码的检索频率排好序
C.线性表以链式存储,并按关键码值排好序
D.线性表以链式存储,并按关键码的检索频率排好序
答案:
A
对线性表进行检索,要求线性表是按顺序方式存储的,并按关键码的大小排好序,而不按关键码检索频率排序。
26.已知一个有序表为(13,18,34,47,50,62,83,90,115,134)。
当用二分法查找值为90的元素时,查找成功的比较次数为______。
A.1
B.2
C.3
D.9
答案:
B
根据二分法的查找过程,首先将90与表中的中间元素50进行比较,由于90大于50,所以在线性表的后半部分查找。
第二次比较的元素是后半部分的中间元素,即90,这时两者相等,即查找成功。
27.线性表中经常采用的两种存储结构是______。
A.顺序存储结构和链式存储结构
B.散列方法和索引方式
C.链表存储结构和数组
D.线性存储结构和非线性存储结构
答案:
A
线性表的存储通常有两种存储结构:
顺序存储结构和链式存储结构。
28.某序列的关键码序列为(33,18,25,67,82,53,95,12,70)。
要按关键码值递增的顺序,采取以第一个关键码为基准元素的快速排序法,第一趟排序后关键码被放到第______个位置。
A.3
B.5
C.7
D.9
答案:
B
快速排序的基本思想是:
经过一趟排序待排序记录分割成独立的部分,其中前半部分元素都比基准元素小,而后半部分元素都比基准元素大;再分别对这两个部分的记录继续进行排序,以达到整个序列有序。
在上述序列中,比关键码33小的元素有4个,因此第一趟排序完成后关键码33被放到第5个数的位置上。
29.用链表表示线性表的优点是______。
A.便于随机存取
B.花费的存储空间较顺序存储小
C.便于插入和删除操作
D.数据元素的物理顺序与逻辑顺序相同
答案:
C
数据的存储结构有顺序存储结构和链式存储结构两种,不同存储结构的数据处理效率不同。
由于链表采用链式存储结构,元素的物理顺序并不连续,对于插入和删除无需移动元素,很方便,但当查找元素时就需要逐个元素查找,因此查找的时间相对更长。
30.下列叙述中正确的是______。
A.线性链表中的各元素在存储空间中的位置必须是连续的
B.线性链表中的表头元素一定存储在其他元素的前面
C.线性链表中的各元素在存储空间中的位置不一定是连续的,但表头元素一定存储在其他元素的前面
D.线性链表中的各元素在存储空间中的位置不一定是连续的,且各元素的存储顺序也是任意的
答案:
D
线性链表的节点包括节点内容以及指向下一节点的指针,因此其各个元素在存储空间的位置不一定是连续的,同样表头元素也不一定存储在其他元素的前面。
31.以下关于算法的叙述中错误的是______。
A.算法可以用伪代码、流程图等多种形式来描述
B.一个正确的算法必须有输入
C.一个正确的算法必须有输出
D.用流程图描述的算法可以用任何一种计算机高级语言编写成程序代码
答案:
B
一个算法应该有0个或多个输入,但是必须有一个或多个输出。
32.下列选项中属于面向对象设计方法主要特征的是______。
A.继承
B.自顶向下
C.模块化
D.逐步求精
答案:
A
面向对象方法的主要特征包括继承、封装、多态。
而自顶向下、模块化、逐步求精是结构化设计的主要特征。
33.结构化程序所要求的基本结构不包括______。
A.顺序结构
B.GOTO跳转
C.选择(分支)结构
D.重复(循环)结构
答案:
B
结构化程序的基本结构有3种,即顺序结构、选择结构(又称分支结构)、循环结构。
1)顺序结构。
顺序结构是程序设计中最基本的结构。
在该结构中,程序的执行是按命令出现的先后顺序依次执行的。
2)分支结构。
分支结构是按给定的选择条件成立与否来确定程序的走向。
分支可分为单向选择分支、双向选择分支和多路分支。
在任何条件下,无论分支多少,只能选择其一。
3)循环结构。
循环结构是一种重复结构,程序的执行发生了自下而上的往复,某一程序段将重复执行。
按循环的嵌套层次,循环可分为单循环结构和多循环结构。
按循环体执行的条件性质,循环又可分为计数循环和条件循环。
无论何种类型的循环结构,都要确保循环的重复执行能够终止。
34.符合结构化原则的3种基本控制结构是:
选择结构、循环结构和______。
A.顺序结构
B.链表结构
C.分支结构
D.重复结构
答案:
A
结构化的3种基本控制结构为顺序结构、选择结构(分支结构)和循环结构(重复结构)。
35.面向对象的设计方法与传统的面向过程的设计方法有本质的不同,它的基本原理是______。
A.模拟现实世界中不同事物之间的联系
B.强调模拟现实世界中的算法而不强调概念
C.使用现实世界的概念抽象地思考问题,从而自然地解决问题
D.以上说法都不对
答案:
C
面向对象设计方法与面向过程设计方法有本质不同,其基本原理是,使用现实世界的概念抽象地思考问题从而自然地解决问题,其特点包括继承性、封装性、多态性等。
模块化是结构化程序设计的特点。
36.下列叙述中正确的是______。
A.在面向对象的程序设计中,各个对象之间具有密切的关系
B.在面向对象的程序设计中,各个对象都是公用的
C.在面向对象的程序设计中,各个对象之间相对独立,相互依赖性小
D.上述3种说法都不对
答案:
C
本题考查对面向对象的理解,面向对象的程序设计是对象模拟问题领域中的实体,各对象之间相互独立,相互依赖性小,通过消息来实现对象之间的相互联系。
37.源程序的文档化不包括______。
A.符号名的命名要有实际意义
B.正确的文档形式
C.良好的视觉组织
D.正确的程序注释
答案:
B
源程序的文档化主要包括3点:
符号名应具有一定含义,便于理解程序功能;正确的程序注释;良好的视觉组织:
利用空格、空行、缩进等技巧使程序层次清晰。
38.在面向对象的方法中,______描述的是具有相似属性与操作的一组对象。
A.属性
B.事件
C.方法
D.类
答案:
D
类描述的是具有相似属性与操作的一组对象,类是具体对象的实例。
39.下列叙述中正确的是______。
A.程序设计时不需要讲究风格
B.程序中的注释是可有可无的
C.程序只要求机器读懂就可以了,不需要去关心维护的问题
D.以上说法都不对
答案:
D
程序设计的风格总体而言应该简单和清晰,程序必须是可以理解的。
程序的正确注释有助于读者理解程序,不是可有可无的。
对程序的要求不仅是可以在机器上执行,给出正确的结果,而且要便于程序的调试和维护,这就要求编写的程序不仅自己看得懂,而且也要让别人能看懂。
40.在面向对象的方法中,一个对象请示另一个对象为其服务的方式是通过发送______。
A.调用语句
B.命令
C.口令
D.消息
答案:
D
在面向对象的方法中,对象之间能通过消息进行通信,消息中包含传递者的要求,它告诉接收者需要做哪些处理,但并不指示接收者应该怎么完成这些处理,接收者独立决定采用什么方式完成所需的处理。
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- 全国计算机 二级 JAVA 笔试 分类 模拟 算法 数据结构 程序设计 基础