计算机专业基础综合数据结构(排序)模拟试卷2(题后含答案及解析)
- 格式:doc
- 大小:42.50 KB
- 文档页数:9
计算机专业基础综合历年真题试卷汇编2(总分:60.00,做题时间:90分钟)一、单项选择题(总题数:16,分数:32.00)1.单项选择题1-40小题。
下列每题给出的四个选项中,只有一个选项是最符合题目要求的。
(分数:2.00)__________________________________________________________________________________________解析:2.若无向图G=(V,E)中含有7个顶点,要保证图G在任何情况下都是连通的,则需要的边数最少是_______。
(分数:2.00)A.6B.15C.16 √D.21解析:解析:要保证无向图G在任何情况下都是连通的,即任意变动图G中的边,G始终保持连通,首先需要G的任意6个结点构成完全连通子图G1,需n(n-1)/2=6×(6-1)/2=15条边,然后再添一条边将第7个结点与G1连接起来,共需16条边。
3.下列关于图的叙述中,正确的是_______。
Ⅰ.回路是简单路径Ⅱ.存储稀疏图,用邻接矩阵比邻接表更省空间Ⅲ.若有向图中存在拓扑序列,则该图不存在回路(分数:2.00)A.仅ⅡB.仅Ⅰ、ⅡC.仅Ⅲ√D.仅Ⅰ、Ⅲ解析:解析:第一个顶点和最后一个顶点相同的路径称为回路;序列中顶点不重复出现的路径称为简单路径;回路显然不是简单路径,故Ⅰ错误;稀疏图是边比较少的情况,此时用邻接矩阵的空间复杂度为O(n 2),必将浪费大量的空间,而邻接表的空间复杂度为O(n+e),应该选用邻接表,故Ⅱ错误。
存在回路的有向图不存在拓扑序列,若拓扑排序输出结束后所余下的顶点都有前驱,则说明只得到了部分顶点的拓扑有序序列,图中存在回路,故Ⅲ正确。
4.设图的邻接矩阵A如下所示。
各顶点的度依次是_______(分数:2.00)A.1,2,1,2B.2,2,1,1C.3,4,2,3 √D.4,4,2,2解析:解析:邻接矩阵A为非对称矩阵,说明图是有向图,度为入度加出度之和。
计算机专业(基础综合)模拟试卷213(题后含答案及解析)题型有:1. 单项选择题 2. 综合应用题单项选择题1-40小题,每小题2分,共80分。
下列每题给出的四个选项中,只有一个选项是最符合题目要求的。
1.含有n个结点的三叉树的最小高度是( )。
A.nB.[n/3]C.[1og3nn]+1D.[log3(2n+1)]正确答案:D解析:设含有n个结点的三叉树的最小高度为h(为完全三叉树时高度最小),第h层至少有一个结点,至多有3h-1个结点,则有:1+31+32+…+3h-235,98},若在堆排序的第一阶段将该序列建成一个堆(大根堆),那么交换元素的次数为( )。
A.5B.6C.7D.8正确答案:B解析:考查初始堆的构造过程。
首先对以第「n/2」个结点为根的子树筛选,使该子树成为堆,之后向前依次对各结点为根的子树进行筛选,直到筛选到根结点。
序列{48,62,35,77,55,14,35,98)建立初始堆的过程如下所示:如图所示,(a)调整结点77,交换1次;(b)调整结点35,不交换;(c)调整结点62,交换2次;(d)调整结点48,交换3次。
所以上述序列建初始堆,共交换元素6次。
7.一个大型跨国公司的管理者从网络管理中心获得一个A类IP地121.O.O.0,需要划分1000个子网,选择子网号的位长为( )。
A.11B.10C.12D.13正确答案:B解析:该公司需要有1 000个物理网络,加上主机号全0和全1的两种特殊地址,子网数量至少为1002;选择子网号的位长为10,可以用来分配的子网最多为1 024,满足用户要求。
8.在文件系统中,下列关于当前目录(工作目录)的叙述中不正确的是( )。
A.提高文件目录的检索速度B.减少启动硬盘次数C.利用全路径查找文件D.当前目录可以改变正确答案:C解析:当一个文件系统含有许多级时,每访问一个文件,都要使用从树根开始直到树叶(数据文件)为止的、包括各中间节点(目录)名的全路径名。
数据结构模拟试卷及参考答案一、简答题(共10题,每题10分,共计100分)1. 什么是数据结构?请简要解释。
数据结构是计算机中用于组织和存储数据的方式,它包含了一系列的数据元素,以及这些数据元素之间的关系和操作。
通过使用不同的数据结构,可以更高效地存储、查找和操作数据。
2. 请解释什么是栈,并给出一个栈的应用场景。
栈是一种具有特定操作限制的数据结构,它遵循"先进后出"(LIFO)的原则。
栈的应用场景包括函数调用、表达式求值、撤销操作以及浏览器中的历史记录。
3. 什么是队列?请给出一个队列的实际应用例子。
队列是一种具有特定操作限制的数据结构,它遵循"先进先出"(FIFO)的原则。
一个实际应用例子是操作系统的进程调度,进程按照到达时间加入队列,并按照一定规则出队执行。
4. 请解释什么是链表,并给出一个链表的优点和缺点。
链表是一种动态数据结构,它由一系列节点构成,每个节点包含数据和指向下一个节点的指针。
链表的优点是可以动态地分配内存空间,且插入和删除节点的时间复杂度为O(1)。
缺点是访问链表某个具体节点的时间复杂度为O(n),且需要额外的内存空间存储指针。
5. 请解释什么是树,并给出一个树的实际应用例子。
树是一种分层次的数据结构,它由一系列节点和节点之间的关系构成。
一个实际应用例子是文件系统的目录结构,文件和文件夹通过树的结构进行组织和存储。
6. 请解释什么是图,并给出一个图的实际应用例子。
图是一种由节点和节点之间的连接关系组成的数据结构。
一个实际应用例子是社交网络,人与人之间的关系可以用图来表示,每个人是一个节点,节点之间的连接表示关系。
7. 请解释什么是散列(哈希)表,以及它的优势和劣势。
散列表是一种根据关键字直接访问的数据结构,它通过将关键字映射到表中的位置来实现快速的查找操作。
散列表的优势是查找操作的平均时间复杂度为O(1)。
劣势是如果存在多个关键字映射到同一个位置,就会发生冲突,需要解决冲突问题。
计算机专业(基础综合)模拟试卷152(题后含答案及解析)题型有:1. 单项选择题 2. 综合应用题单项选择题1-40小题,每小题2分,共80分。
下列每题给出的四个选项中,只有一个选项是最符合题目要求的。
1.采用邻接表存储的图的广度优先遍历算法类似于树的( )。
A.中根遍历B.先根遍历C.后根遍历D.按层次遍历正确答案:D解析:图的深度优先遍历类似于树的先序遍历;图的广度优先遍历类似于树的层次遍历。
2.图1-1中强连通分量的个数为( )。
A.2B.3C.4D.5正确答案:C解析:在有向图G中,如果两个顶点vi、vj间有一条从vi到vj的有向路径,同时还有一条从vj到vi的有向路径,则称两个顶点强连通。
如果有向图G的每两个顶点都强连通,称G是一个强连通图。
有向图的极大强连通子图,称为强连通分量。
本题中可以看出v2、v3、v4同属于一个连通分量,另外v1、v5、v6各自属于一个强连通分量,所以共有4个强连通分量。
3.在计算机中,微程序一般存放在( )。
A.主存储器B.存储器控制器C.控制存储器D.辅助存储器正确答案:C解析:微程序存放在控制存储器中,选C。
注意存控与控存的区别,控存是用来存放微程序,而存控是用来管理协调CPU、DMA控制器等对主存储器访问的部件。
4.在I/O设备控制的发展过程中,最主要的推动因素是( )。
A.提高资源利用率B.提高系统吞吐量C.提高I/O设备与CPU的并行操作程度D.减少主机对I/O控制的干预正确答案:D5.已知循环冗余码生成多项式G(x)=x5+x4+x+1,若信息位为10101100,则冗余码是( )。
A.1101B.1100C.1101D.1100正确答案:B解析:(1)确定生成多项式G(x)=x5+x4+x+1,次数F5,对应位串110011。
(2)在信息位串后补5个0即10101100 00000,对应的多项式xrM(x),(3)用模2不借位除法,计算xrM(x)/G(x)的余数R(x),R(x)就是冗余码。
计算机专业基础综合计算机组成原理(中央处理器)模拟试卷2(总分:46.00,做题时间:90分钟)一、单项选择题(总题数:9,分数:18.00)1.在CPU中跟踪指令后继地址的寄存器是( )。
A.主存地址寄存器B.程序计数器√C.指令寄存器D.状态条件寄存器2.指令周期是指( )。
A.CPU从主存取出一条指令的时间B.CPU执行一条指令的时间C.CPU从主存取出一条指令加上执行这条指令的时间√D.时钟周期时间3.同步控制是( )。
A.只适用于CPU控制的方式B.只适用于外围设备控制的方式C.由统一时序信号控制的方式√D.所有指令执行时间都相同的方式4.微程序控制器中,机器指令与微指令的关系是( )。
A.每一条机器指令由一条微指令来执行B.每一条机器指令由一段用微指令编成的微程序来解释执行√C.一段机器指令组成的程序可由一条微指令来执行D.一条微指令由若干条机器指令组成5.假设微操作控制信号用C n表示,指令操作码译码器输出用I m表示,节拍电位信号用M k表示,节拍脉冲信号用T i表示,状态反馈信息用B i表示,则硬联线控制器的基本原理可描述为( ),它可用门电路和触发器组成的树型网络来实现。
A.C n =f(I m,T i )B.C n =f(I m,B i )C.C n =f(M k,T i,B i )D.C n =f(I m,M k,T i,B i ) √6.下面描述的RISC机器基本概念中正确的句子是( )。
A.RISC机器不一定是流水CPUB.RISC机器一定是流水CPU √C.RISC机器有复杂的指令系统D.CPU配备很少的通用寄存器7.下列部件中不属于控制器的部件是( )。
A.指令寄存器B.操作控制器C.程序计数器D.状态条件寄存器√8.计算机操作的最小时间单位是( )。
A.时钟周期√B.指令周期C.CPU周期D.微指令周期9.下列说法中正确的是( )。
A.微程序控制方式和硬联线控制方式相比较,前者可以使指令的执行速度更快B.若采用微程序控制方式,则可用μPC取代PCC.控制存储器可以用掩模ROM、E 2 PROM或闪速存储器实现√D.指令周期也称为CPU周期二、设计题(总题数:6,分数:12.00)10.CPU的数据通路如图5.14所示。
数据结构考试试题库含答案解析数据结构习题集含答案⽬录⽬录 (1)选择题 (2)第⼀章绪论 (2)第⼆章线性表 (4)第三章栈和队列 (6)第四章串 (7)第五章数组和⼴义表 (8)第六章树和⼆叉树 (8)第七章图 (11)第⼋章查找 (13)第九章排序 (14)简答题 (19)第⼀章绪论 (19)第⼆章线性表 (24)第三章栈和队列 (26)第四章串 (28)第五章数组和⼴义表 (29)第六章树和⼆叉树 (31)第七章图 (36)第⼋章查找 (38)第九章排序 (39)编程题 (41)第⼀章绪论 (41)第⼆章线性表 (41)第三章栈和队列 (52)第四章串 (52)第五章数组和⼴义表 (52)第六章树和⼆叉树 (52)第七章图 (52)第⼋章查找 (52)第⼀章绪论1.数据结构这门学科是针对什么问题⽽产⽣的?(A )A、针对⾮数值计算的程序设计问题B、针对数值计算的程序设计问题C、数值计算与⾮数值计算的问题都针对D、两者都不针对2.数据结构这门学科的研究内容下⾯选项最准确的是(D )A、研究数据对象和数据之间的关系B、研究数据对象C、研究数据对象和数据的操作D、研究数据对象、数据之间的关系和操作3.某班级的学⽣成绩表中查得张三同学的各科成绩记录,其中数据结构考了90分,那么下⾯关于数据对象、数据元素、数据项描述正确的是(C )A、某班级的学⽣成绩表是数据元素,90分是数据项B、某班级的学⽣成绩表是数据对象,90分是数据元素C、某班级的学⽣成绩表是数据对象,90分是数据项D、某班级的学⽣成绩表是数据元素,90分是数据元素4.*数据结构是指(A )。
A、数据元素的组织形式B、数据类型C、数据存储结构D、数据定义5.数据在计算机存储器内表⽰时,物理地址与逻辑地址不相同,称之为(C )。
A、存储结构B、逻辑结构C、链式存储结构D、顺序存储结构6.算法分析的⽬的是(C )A、找出数据的合理性B、研究算法中的输⼊和输出关系C、分析算法效率以求改进D、分析算法的易懂性和⽂档型性7.算法分析的主要⽅法(A )。
计算机专业基础综合数据结构(集合)历年真题试卷汇编2(总分64, 做题时间90分钟)2. 填空题1.对于具有144个记录的文件,若采用分块查找法,且每块长度为8,则平均查找长度为__________。
【北方交通大学2001二、8】SSS_TEXT_QUSTI分值: 2答案:正确答案:14计算过程如下:144/8=18块,索引表顺序查找,故(18+1)/2+(8+1)/2=14。
2.有一个2000项的表,欲采用等分区间顺序查找方法进行查找,则每块的理想长度是 (1),分成 (2) 块最为理想,平均查找长度是 (3) 。
【中国矿业大学2000一、6(3分)】SSS_TEXT_QUSTI分值: 2答案:正确答案:(1)45 (2)45 (3)46(索引表顺序查找)3.分块检索中,若索引表和各块内均用顺序查找,则有900个元素的线性表分成__________块最好;若分成25块,其平均查找长度为__________。
【北京工业大学1999一、5(2分)】SSS_TEXT_QUSTI分值: 2答案:正确答案:30,31.5(索引表顺序查找)4.执行顺序查找时,储存方式可以是(1),二分法查找时,要求线性表(2),分块查找时要求线性表(3),而散列表的查找,要求线性表的存储方式是(4)。
【山东大学1998一、1(3分)】SSS_TEXT_QUSTI分值: 2正确答案:(1)顺序存储或链式存储 (2)顺序存储且有序(3)块内顺序存储,块间有序 (4)散列存储5.查找是非数值程序设计的一个重要技术问题,基本上分成(1)查找,(2)查找和(3)查找。
处理哈希冲突的方法有(4)、(5)、(6)和(7)。
【华北计算机系统工程研究所1999一(5分)】SSS_TEXT_QUSTI分值: 2答案:正确答案:(1)静态查找表 (2)动态查找表 (3)哈希表 (4)开放定址方法(5)链地址方法 (6)再哈希 (7)建立公共溢出区6.如果按关键码值递增的顺序依次将关键码值插入到二叉排序树中,则对这样的二叉排序树检索时,平均比较次数为__________。
计算机专业基础综合数据结构(树与二叉树)模拟试卷2(题后含答案及解析)题型有:1. 单项选择题 2. 综合应用题单项选择题1-40小题,每小题2分,共80分。
下列每题给出的四个选项中,只有一个选项是最符合题目要求的。
1.设树T的度为4,其中度为1、2、3和4的结点个数分别为4、1、1、1,则T中的叶子数为( )。
A.10B.11C.9D.7正确答案:D解析:根据题中条件可知,1×4+2×1+3+4+1=4+1+1+1+n0,由此可以得出:n0=1×4+2×1+3+4+1一(4+1+1+1)=14—7=7. 知识模块:数据结构2.用下列元素序列(22,8,62,35,48)构造平衡二叉树,当插入( )时,会出现不平衡的现象。
A.22B.35C.48D.62正确答案:C解析:由题中所给的结点序列构造二叉排序树的过程如下图:当插入48后,首次出现不平衡子树,虚线框内即为最小不平衡子树。
知识模块:数据结构3.下面的算法实现了将二叉树中每一个结点的左右子树互换。
addQ(Q,bt)为进队的函数,delQ(Q)为出队的函数,empty(Q)为判别队列是否为空的函数,空白处应填的内容是( )。
typedef struct node{ int data;struct node*lchild,*rchild;}btnode;void exchange(btnode*bt){ btnode*p,*q;if(bt){ addQ(Q,bt);while(!EMPTY(Q)){ p=delQ(Q);q=p->rchild;p一>rchild=p一>lchild;( (1) )=q;if(p->lchild) ( (2) );if(p->rchild)addQ(Q,p->rchild);} }} A.p->lchild,delQ(Q,p一>lchild)B.p->rchild,delQ(Q,p->lchild)C.p->lchild,addQ(Q,p->lchild)D.p->rchild,addQ(Q,p->lchild)正确答案:C 涉及知识点:数据结构4.已知有一棵二叉树,其高度为n,并且有且只有n个结点,那么二叉树的树形有( )种。
计算机专业基础综合(数据结构)模拟试卷2(总分:70.00,做题时间:90分钟)一、单项选择题(总题数:21,分数:42.00)1.单项选择题1-40小题。
下列每题给出的四个选项中,只有一个选项是最符合题目要求的。
(分数:2.00)__________________________________________________________________________________________ 解析:2.栈和队列的主要区别在于( )。
(分数:2.00)A.它们的逻辑结构不一样B.它们的存储结构不一样C.所包含的运算不一样D.插入和删除运算的限定不一样√解析:解析:栈和队列的逻辑结构都是线性的,都有顺序存储和链式存储,有可能包含的运算不一样,但不是其主要区别。
任何数据结构在针对具体问题时所包含的运算都可能不同。
所以正确答案是D。
3.若循环队列以数组Q[0..m-1]作为其存储结构,变量rear。
表示循环队列中的队尾元素的实际位置,其移动按rear=(rear+1)MOD m进行,变量length表示当前循环队列中的元素个数,则循环队列的队首元素的实际位置是( )。
(分数:2.00)A.rear-lengthB.(rear—length+m)MOD mC.(rear—length+1+m)MOD m √D.m-length解析:解析:按照循环队列的定义,因为元素移动按照rect=(rear+1)MOD m进行,则当数组Q[m—1]存放了元素之后,下一个入队的元素将存放到Q[0]中,因此队列的首元素的实际位置是(rear—length+1+m)MOD m。
4.一个以向量V[n]存储的栈,其初始栈顶指针top为n+1,则对于x,其正确的进栈操作是( )。
(分数:2.00)A.top=top+1;V[top]=xB.V[top]=x;top=top+1C.top=top-1;V[top]=x √D.V[top]=x;top=top-1解析:解析:此题考查的知识点是入栈的具体操作。
计算机专业基础综合计算机组成原理(多层次的存储器)模拟试卷2(总分:68.00,做题时间:90分钟)一、单项选择题(总题数:12,分数:24.00)1.存储周期是指( )。
A.存储器的读出时间B.存储器的写入时间C.存储器进行连续读和写操作所允许的最短时间间隔√D.存储器进行连续写操作所允许的最短时间间隔2.某单片机字长16位,它的存储容量64KB,若按字编址,那么它的寻址范围是( )。
A.64KB.32K √C.64KBD.32KB3.某DRAM芯片,其存储容量为512K×8位,该芯片的地址线和数据线数目为( )。
A.8,512B.512,8C.18,8D.19,8 √4.某计算机字长32位,其存储容量为4GB,若按字编址,它的寻址范围是( )。
A.1G √B.4GBC.4GD.1GB5.主存储器和CPU之间增加cache的目的是( )。
A.解决CPU和主存之间的速度匹配问题√B.扩大主存储器的容量C.扩大CPU中通用寄存器的数量D.既扩大主存容量又扩大CPU通用寄存器数量6.双端口存储器( )情况下会发生读/写冲突:A.左端口与右端口的地址码不同B.左端口与右端口的地址码相同√C.左端口与右端口的数据码相同D.左端口与右端口的数据码不相同7.下列说法中正确的是( )。
A.SRAM存储器技术提高了计算机的速度B.若主存由ROM和RAM组成,容量分别为2 n和2 m,则主存地址共需n+m位C.闪速存储器是一种高密度、非易失性的读/写半导体存储器√D.存取时间是指连续两次读操作所需间隔的最小时间8.在cache的地址映射中,若主存中的任意一块均可映射到cache内的任意一块的位置上,则这种方法称为( )。
A.全相联映射√B.直接映射C.组相联映射D.混合映射9.下列关于存储系统的描述中正确的是( )。
A.虚拟存储器技术提高了计算机的速度B.若主存由两部分组成,容量分别为2 n和2 m,则主存地址共需要n+m位C.闪速存储器是一种高密度、非易失性的只读半导体存储器√D.存取时间是指连续两次读操作所需间隔的最小时间10.下述有关存储器的描述中,正确的是( )。
计算机二级模拟试题及答案计算机二级考试是许多大学生和职场人士提升自身计算机技能的重要途径。
以下为大家提供一套计算机二级模拟试题及答案,希望能对您的备考有所帮助。
一、选择题(每题 2 分,共 40 分)1、下列叙述中正确的是()A 顺序存储结构的存储一定是连续的,链式存储结构的存储空间不一定是连续的B 顺序存储结构只针对线性结构,链式存储结构只针对非线性结构C 顺序存储结构能存储有序表,链式存储结构不能存储有序表D 链式存储结构比顺序存储结构节省存储空间答案:A解释:顺序存储结构的存储一定是连续的,而链式存储结构的存储空间不一定是连续的,A 选项正确。
顺序存储结构和链式存储结构都可以用于线性结构和非线性结构,B 选项错误。
两种存储结构都可以存储有序表,C 选项错误。
链式存储结构由于需要存储指针,通常比顺序存储结构更耗费存储空间,D 选项错误。
2、设一棵二叉树中有 3 个叶子结点,有 8 个度为 1 的结点,则该二叉树中总的结点数为()A 12B 13C 15D 不能确定答案:B解释:根据二叉树的性质,度为 0 的叶子结点数总是比度为 2 的结点数多 1。
已知有 3 个叶子结点,所以度为 2 的结点数为 2。
总的结点数=度为 0 的叶子结点数+度为 1 的结点数+度为 2 的结点数= 3 + 8 + 2 = 13。
3、在深度为 5 的满二叉树中,叶子结点的个数为()A 32B 31C 16D 15答案:C解释:在满二叉树中,叶子结点都在最底层。
深度为k 的满二叉树,叶子结点个数为 2^(k 1) 。
所以深度为 5 的满二叉树,叶子结点个数为 2^(5 1) = 16 。
4、下列排序方法中,最坏情况下比较次数最少的是()A 冒泡排序B 简单选择排序C 直接插入排序D 堆排序答案:D解释:冒泡排序、简单选择排序和直接插入排序在最坏情况下的比较次数均为 n(n 1) / 2 ,而堆排序在最坏情况下的比较次数为O(nlog₂n) ,所以堆排序在最坏情况下比较次数最少。
国家二级C语言机试(数据结构与算法)模拟试卷2(题后含答案及解析)题型有:1. 选择题选择题1.对长度为10的线性表进行冒泡排序,最坏情况下需要比较的次数为()。
A.9B.10C.45D.90正确答案:C解析:在最坏情况下,冒泡排序的时间复杂度为n(n-1)/2,为45,答案选C。
知识模块:数据结构与算法2.下列叙述中正确的是()。
A.算法的效率只与问题的规模有关,而与数据的存储结构无关B.算法的时间复杂度是指执行算法所需要的计算工作量C.数据的逻辑结构与存储结构是一一对应的D.算法的时间复杂度与空间复杂度一定相关正确答案:B解析:算法的时间复杂度是指执行算法所需要的计算工作量,与数据的存储结构有关,与算法的空间复杂度没有关系。
数据的逻辑结构与存储位置无关,即与存储结构无关,所以选择B。
知识模块:数据结构与算法3.下列叙述中正确的是()。
A.线性表链式存储结构的存储空间一般要少于顺序存储结构B.线性表链式存储结构与顺序存储结构的存储空间都是连续的C.线性表链式存储结构的存储空间可以是连续的,也可以是不连续的D.以上说法都不对正确答案:C解析:在链式存储结构中,存储数据结构的存储空间可以不连续,各数据结点的存储顺序与数据元素之间的逻辑关系可以不一致,而数据元素之间的逻辑关系是由指针域来确定的,所以选择C。
知识模块:数据结构与算法4.某二叉树共有12个结点,其中叶子结点只有1个。
则该二叉树的深度为(根结点在第1层)()。
A.3B.6C.8D.12正确答案:D解析:根据二叉树的性质,叶子结点比度为2的结点个数多一个,叶子结点只有1个,那么度为2的结点为0个,可以得出共有11个度为1的结点,那么该二叉树每一层上只能有一个结点,共12层,即深度为12。
知识模块:数据结构与算法5.对长度为n的线性表作快速排序,在最坏情况下,比较次数为()。
A.nB.n-1C.n(n-1)D.n(n-1)/2正确答案:D解析:在最坏情况下,快速排序需要比较n(n-1)/2次。
计算机专业基础综合数据结构(概论)历年真题试卷汇编2(总分:88.00,做题时间:90分钟)一、单项选择题(总题数:11,分数:22.00)1.数据元素之间的关系称为( )。
【北京理工大学2006九、2(1分)】(分数:2.00)A.操作B.结构√C.数据对象D.数据集合解析:2.(多选)一个算法具有( )等特点。
【华中科技大学2007二、17(2分)】(分数:2.00)A.有0个或多个输入量B.健壮性√C.正确性D.可行性解析:3.下面程序的时间复杂性为( )。
【南京理工大学2004一、4(1分)】for(int i=0;i(分数:2.00)A.O(n 2 )B.O(m*n) √C.O(m 2 )D.O(m+n)解析:4.在下列算法中,“x=x*2”的执行次数是( )。
【华中科技大学2006一、16(2分)】int suanfa].(int n){int i,j,x=1;for(i=0;i(分数:2.00)A.m(n+1)/2 √B.Nlog 2 nC.n 2D.n(n一1)/2解析:5.执行下列算法suanfa2(1000),输出结果是( )。
【华中科技大学2006一、17(2分)】void suanfa2(int n){int i=i;while(i<=n)i*=2;printf(“%d”,i);}(分数:2.00)A.2000B.512C.1024 √D.2 1000解析:6.当n足够大时下述函数中渐近时间最小的是( )。
【哈尔滨工业大学2005二、4(1分)】(分数:2.00)A.T(n)=nlog 2 n=1000log 2 nB.T(n)=nlog 2 3=1 000log 2 n √C.T(n)=n 2 =1000log 2 nD.T(n)=2nlog 2 n=1 000log 2 n解析:7.下面算法时间复杂度是( )。
【华中科技大学2006一、18(2分)】int suanfa3(int n){int i=i,s=l;while(s(分数:2.00)A.O(n) √B.O(2 2 )C.O(log 2 n)解析:8.下列函数中渐进时间复杂度最小的是( )。
计算机专业(基础综合)模拟试卷122(题后含答案及解析)题型有:1. 单项选择题 2. 综合应用题单项选择题1-40小题,每小题2分,共80分。
下列每题给出的四个选项中,只有一个选项是最符合题目要求的。
1.下面是有关DRAM和SRAM存储器芯片的叙述:ⅠDRAM芯片的集成度比SRAM高ⅡDRAM芯片的成本比SRAM高ⅢDRAM芯片的速度比SRAM快ⅣDRAM芯片工作时需要刷新,SRAM芯片工作时不需要刷新通常情况下,错误的是( )。
A.Ⅰ和ⅡB.Ⅱ和ⅢC.Ⅲ和ⅣD.Ⅰ和Ⅳ正确答案:B解析:DRAM的集成度高于SRAM,SRAM的速度高于DRAM,可以推出DRAM的成本低于SRAM,SRAM芯片工作时不需要刷新,DRAM芯片工作时需要刷新。
题时需要首先判断多段叙述中各自的正确性,然后再在四个选项中挑选正确的选项。
2.有2个优先级相同的并发进程P1和P2,它们的执行过程如下图所示,x、y和z是共享变量。
假设,当前信号量s1=0,s2=0,进程运行结束后,x、y和z的值分别为( )。
进程P1 进程P2 …………y:=20;x:=10;y:=y+1;x:=x+1;z:=y+1;P(s1);V(s1);x:=x+y;P:(s2);z:=x+z;y:=z+y;V(s2);A.33,42,22B.11,42,33C.33,76,55D.33,76,33正确答案:C解析:本题考查并发进程的特点,并结合信号量进行同步的原理。
由于进程并发,所以,进程的执行具有不确定性,在P1、P2执行到第一个PV操作前,应该是相互无关的。
现在考虑第一个对s1的PV操作,由于进程P2是P(s1)操作,所以,它必须等待P1执行完V(s1)操作以后才可继续运行,此时的xyz值分别为11,21,22,当进程P1执行完V(s1)以后便在P(s2)上阻塞,此时P2可以运行直到V(s2),此时的xyz值分别为33,21,55,进程P1继续运行直到结束,最终的xyz值分别为33,76,55。
计算机专业基础综合考试模拟试卷(二)一、单项选择题:第1~40小题,每小题2分,共80分。
下列每题给出的四个选项中,只有一个选项最符合试题要求。
1.设n是描述问题规模的正整数,下列程序片段的时间复杂度是()。
y=0;while(n>=(y+1)*(y+1))y++;A.O(log2n) B.O(n)C.O(nlog2n) D.2.循环队列用数组A[0…m-1]存放其元素值,头尾指针分别为front 和rear,front 指向队头元素,rear指向队尾元素的下一个元素,其移动按数组下标增大的方向进行(rear!=m-1时),则当前队列中的元素个数是()。
A.(rear-front+m)%m B.(rear-front+1)%mC.read-front-1 D.read-front3.将5个字母“ooops”按此顺序进栈,则有()种不同的出栈顺序可以仍然得到“ooops”。
A.1B.3 C.5D.64.设高度为100的二叉树上只有度为0 和度为2 的结点,则此类二叉树中所包含的结点数最少为()。
A.100 B.201 C.199D.2005.由某种序列可以唯一的确定一棵二叉树,不能唯一的确定一棵二叉树是()。
A.先序序列和中序序列B.后序序列和中序序列C.中序序列和层序序列D.先序序列和层序序列6.在含有15个结点的平衡二叉树上,查找关键字为28(存在该结点)的结点,则依次比较的关键字有可能是()。
A.30,36 B.38,48,28 C.48,18,38,28D.60,20,50,40,38,287.对于一组权值都相等的16个字母,构造相应的哈夫曼树,这棵哈夫曼树是一棵()。
A.完全二元树B.一般二元树 C.满二元树D.以上都不正确8.下列关于B-树和B+树的叙述中,不正确的是()。
A.B-树和B+树都能有效地支持顺序查找B.B-树和B+树都是平衡的多叉树C.B-树和B+树都能有效地支持随机查找D.B-树和B+树都可以用于文件索引结构9.对一组数据(25,84,21,47,15,27,68,35,20)进行排序,前三趟的排序结果如下:第一趟:20,15,21,25,47,27,68,35,84第二趟:15,20,21,25,35,27,47,68,84第三趟:15,20,21,25,27,35,47,68,84则所采用的排序方法是()。
计算机专业基础综合数据结构(排序)模拟试卷1(题后含答案及解析)题型有:1. 单项选择题 2. 综合应用题单项选择题1-40小题,每小题2分,共80分。
下列每题给出的四个选项中,只有一个选项是最符合题目要求的。
1.下面给出的4种排序方法中,( )排序法是不稳定性排序法。
A.插入B.冒泡C.二路归并D.堆正确答案:D解析:此题考查的知识点是排序算法的稳定性问题。
如果待排序的文件中,存在多个关键字相同的记录,经过排序后这些具有相同关键字的记录之间的相对次序保持不变,则称这种排序是稳定的排序:反之,若具有相同关键字的记录之间的相对次序发生变化,则称这种排序是不稳定的排序。
是否稳定与算法有关,相邻数据比较的算法是稳定的,不相邻数据比较会出现不稳定。
选项A、B、C 都是相邻元素比较,是稳定的。
所以选D。
知识模块:数据结构2.下列内部排序算法中,其比较次数(或交换次数)与序列初态无关的算法是( )。
A.快速排序B.直接插入排序C.二路归并排序D.冒泡排序正确答案:C解析:此题考查的知识点是各类排序算法的思想。
冒泡排序方法就是自底向上检查这个序列,若两个相邻的元素的顺序不对,则交换。
直到所有元素处理完为止。
与序列初态有关,D错。
直接插入排序思想是假设待排序的记录存放在数组R[n+1]中,排序过程中的某一时刻,R被分成两个子区间[R[1],R[i 一1]]和[R[i],R[n]],其中,前一个子区间是已排好序的有序区;后一个子区间是当前未排序的无序区。
直接插入排序的基本操作是将当前无序区的第i个记录R[i]插入到有序区中的适当位置,使得R[1]到R[i]变为新的有序区。
首先比较R[i]和R[i—1],如果R[i一1]≤R[i],则R[1..i]已排好序,第i遍处理就结束了;否则交换R[i]与R[i一1]的位置,继续比较R[i—1]和R[i一2],直到找到某一个位置j(1≤j≤i一1)使得R[j]≤R[j+1]时为止。
计算机专业基础综合(存储器系统的层次结构)模拟试卷2(题后含答案及解析)题型有:1. 单项选择题 2. 综合应用题单项选择题1-40小题,每小题2分,共80分。
下列每题给出的四个选项中,只有一个选项是最符合题目要求的。
1.下列关于DRAM和SRAM的说法中,错误的是( )。
Ⅰ.SRAM 不是易失性存储器,而DRAM是易失性存储器Ⅱ.DRAM比SRAM集成度更高,因此读写速度也更快Ⅲ.主存只能由DRAM构成,而高速缓存只能由SRAM构成Ⅳ.与SRAM相比,DRAM由于需要刷新,所以功耗较高A.Ⅱ、Ⅲ和ⅣB.Ⅰ、Ⅲ和ⅣC.Ⅰ、Ⅱ和ⅢD.Ⅰ、Ⅱ、Ⅲ和Ⅳ正确答案:D解析:SRAM和DRAM都属于易失性存储器,掉电就会丢失,故Ⅰ错误。
SRAM的集成度虽然更低,但速度更快,因此通常用于高速缓存Cache,故Ⅱ错误。
主存可以用SRAM实现,只是成本高,故Ⅲ错误。
与SRAM相比,DRAM 成本低、功耗低,但需要刷新,故Ⅳ错误。
知识模块:存储器系统的层次结构2.某机字长32位,主存容量1 MB,按字编址,块长512 B,Cache共可存放16个块,采用直接映射方式,则Cache地址长度为( )。
A.11位B.13位C.18位D.20位正确答案:A解析:主存地址中除去主存字块标记的部分就是Cache地址,结构如下所示:而Cache地址的格式如下图所示:其中,块长512B,主存按字(32位)编址,512B/4 B=128=27,即块内字地址7位;Cache共可存放16个块,采用直接映射方式,24=16,即Cache字块地址4位。
故Cache地址共4+7=11位,选A。
知识模块:存储器系统的层次结构3.在Cache和主存构成的两级存储体系中,Cache的存取时间是100ns,主存的存取时间是1000ns。
如果希望有效(平均)存取时间不超过(;ache存取时间的15%,则Cache的命中率至少应为( )。
A.90%B.98%C.95%D.99%正确答案:D解析:设Cache命中率为a,则(1000+100)(1—a)+100a≤115,解得a≥0.985,故至少为99%。
计算机专业(基础综合)模拟试卷105(题后含答案及解析)题型有:1. 单项选择题 2. 综合应用题单项选择题1-40小题,每小题2分,共80分。
下列每题给出的四个选项中,只有一个选项是最符合题目要求的。
1.关于线性表的顺序存储结构和链式存储结构的描述正确的是( )。
Ⅰ.线性表的顺序存储结构优于其链式存储结构Ⅱ.链式存储结构比顺序存储结构可更方便地表示各种逻辑结构Ⅲ.如频繁使用插入和删除结点操作,顺序存储结构更优于链式存储结构Ⅳ.顺序存储结构和链式存储结构都可以进行顺序存储A.仅Ⅰ、Ⅱ、ⅢB.仅Ⅱ、ⅣC.仅Ⅱ、ⅢD.仅Ⅲ、Ⅳ正确答案:B解析:Ⅰ:线性表的两种存储结构各有优缺点,顺序存储结构支持随机存储,对于表内任意元素的存取具有较高的效率,这一点优于链式存储结构;链式存储结构不需要一次性分配所有空间给线性表,即支持动态存储,这一点优于顺序存储结构,故Ⅱ错误。
Ⅱ:比如树和图等逻辑结构一般都是使用链式存储结构更为方便,故Ⅱ正确。
Ⅲ:链式存储应该更适合频繁使用插入和删除操作的线性表,因为不需要移动元素,仅需要修改指针即可;而线性存储可能需要大量移动元素,故Ⅲ错误。
Ⅳ:顺序存储结构既可以随机存储也能顺序存储;链式存储结构只能顺序存储。
综上所述,Ⅱ、Ⅳ正确。
2.相对于单向链表,使用双向链表存储线性表,其优点是( )。
Ⅰ.提高查找速度Ⅱ.节约存储空间Ⅲ.数据的插入和删除更快速A.仅ⅠB.仅Ⅰ、ⅢC.仅ⅢD.仅Ⅱ、Ⅲ正确答案:C解析:在双向链表中的查找仍然是顺序查找,故查找速度并没有提高;双向链表中有两个指针域,所以不但不能节约存储空间,相比单链表,还增加了空间;既然增加了空间,那必须是以空间来换取时间,导致的结果就是数据的插入和删除将会更快速。
3.对于一个满二叉树,共有n个结点和m个叶子结点,且深度为h,则下列等式中正确的是( )。
Ⅰ.n=h+mⅡ.h+m=2nⅢ.m=2h-1Ⅳ.n=2h-1 A.Ⅰ、Ⅱ、ⅢB.Ⅱ、ⅢC.Ⅱ、Ⅲ、ⅣD.Ⅲ、Ⅳ正确答案:D解析:对于深度为h的满二叉树,n=20+21+…+2h-1=2h-1;另外,根据满二叉树的性质可知,m=2h-1,故Ⅲ、Ⅳ正确;而Ⅰ、Ⅱ举反例很容易被排除。
计算机专业基础综合数据结构(排序)模拟试卷2(题后含答案及解析)题型有:1. 单项选择题 2. 综合应用题单项选择题1-40小题,每小题2分,共80分。
下列每题给出的四个选项中,只有一个选项是最符合题目要求的。
1.采用简单选择排序,比较次数与移动次数分别为( )。
A.O(n),O(log2n)B.O(log2n),O(n2)C.O(n2),O(n)D.O(nlog2n),O(n)正确答案:C解析:简单选择排序的关键字比较次数KCN与对象的初始排列无关。
第i 趟选择具有最小关键字对象所需的比较次数总是n—i—1次(此处假定整个待排序对象序列有n个对象)。
因此,总的关键字比较次数为:最坏情况是每一趟都要进行交换,总的对象移动次数为RMN=3(n一1)。
知识模块:数据结构2.就排序算法所用的辅助空间而言,堆排序、快速排序、归并排序的关系是( )。
A.堆排序<快速排序<归并排序B.堆排序<归并排序<快速排序C.堆排序>归并排序>快速排序D.堆排序>快速排序>归并排序正确答案:A解析:此题考查的知识点为排序的空间复杂性。
堆排序辅助空间为O(1),快速排序为O(log2n),归并排序为O(n)。
应选A。
知识模块:数据结构3.一组记录的关键码为(25,48,16,35,79,82,23,40,36,72),其中,含有5个长度为2的有序表,按归并排序的方法对该序列进行一趟归并后的结果为( )。
A.16,25,35,48,23,40,79,82,36,72B.16,25,35,48,79,82,23,36,40,72C.16,25,48,35,79,82,23,36,40,72D.16,25,35,48,79,23,36,40,72,82正确答案:A解析:对于(25,48,16,35,79,82,23,40,36,72),(25,48)和(16,35)归并的结果为(16,25,35,48)。
(79,82)和(23,40)归并后的结果为(23,40,79,82),余下的两个记录不归并,所以一趟归并后的结果为(16,25,35,48,23,40,79,82,36,72),本题答案为A。
知识模块:数据结构4.已知10个数据元素为(54,28,16,34,73,62,95,60,26,43),对该序列按从小到大排序,经过一趟冒泡排序后的序列为( )。
A.16,28,34,54,73,62,60,26,43,95B.28,16,34,54,62,73,60,26,43,95C.28,16,34,54,62,60,73,26,43,95D.16,28,34,54,62,60,73,26,43,95正确答案:B解析:冒泡排序每趟经过比较、交换,从无序区中产生一个最大的元素,所以选B。
知识模块:数据结构5.用某种排序方法对线性表(25,84,21,47,15,27,68,35,20)进行排序时,元素序列的变化情况如下:(1)25,84,21,47,15,27,68,35,20 (2)20,15,21,25,47,27,68,35,84 (3)15,20,21,25,35,27,47,68,84 (4)15,20,21,25,27,35,47,68,84 其所采用的排序方法是( )。
A.直接选择排序B.希尔排序C.归并排序D.快速排序正确答案:A解析:可以看到,每趟从无序区中找出一个最大的元素定位,所以答案为A。
知识模块:数据结构6.在对一组记录(50,40,95,20,15,70,60,45,80)进行直接插入排序时,当把第7个记录60插入到有序表时,为寻找插入位置需比较( )次。
A.1B.2C.3D.4正确答案:C解析:第6趟的结果为(15,20,40,50,70,95,60,45,80),此时插入60,要与95、70和50进行比较,共比较3次,本题答案为C。
知识模块:数据结构7.将两个各有N个元素的有序表归并成一个有序表,其最少的比较次数是( )。
A.NB.2N一1C.2ND.N一1正确答案:A解析:此题考查的知识点是归并排序思想。
当第一个有序表中所有的元素都小于第二个表中元素,或者都大于第二个表中元素时,比较次数最少为N。
知识模块:数据结构8.已知待排序的n个元素可分为n/k个组,每个组包含k个元素,且任一组内的各元素均分别大于前一组内的所有元素和小于后一组内的所有元素,若采用基于比较的排序,其时间下界应为( )。
A.O(nlog2n)B.O(nlog2k)C.O(klog2n)D.O(klog2k)正确答案:B解析:此题考查的知识点是分块排序的思想。
因组与组之间已有序,故将n /k个组分别排序即可,基于比较的排序方法每组的时间下界为O(klog2k)。
可以用二叉树分治形式描述,最好的情况是树的高度为log2k。
全部时间下界为O(nlog2k)。
应选B。
知识模块:数据结构9.已知关键序列5,8,12,19,28,20,15,22是小根堆(最小堆),插入关键字3,调整后得到的小根堆是( )。
A.3,5,12,8,28,20,15,22,19B.3,5,12,19,20,15,22,8,28C.3,8,12,5,20,15,22,28,19D.3,12,5,8,28,20,15,22,19正确答案:A解析:根据题目中给出的序列建立一个堆,并将其调整为小根堆,其过程如下:可以得出调整后的小根堆为3,5,12,8,28,20,15,22,19。
知识模块:数据结构10.归并排序中,归并的趟数是( )。
A.O(n)B.O(log2n)C.O(nlog2n)D.O(n2)正确答案:B解析:此题考查的知识点是归并排序。
第1遍归并的子序列长度为20,第2遍为21,…,第i遍为2i-1,所以由2i-1≥n知,对n个记录的数据集合,总共需要归并log2n次。
应选B。
知识模块:数据结构11.有一组数据(15,9,7,8,20,一1,7,4),用堆排序的筛选方法建立的初始堆为( )。
A.一1,4,8,9,20,7,15,7B.一1,7,15,7,4,8,20,9C.一1,4,7,8,20,15,7,9D.A、B、C均不对正确答案:C解析:此题考查的知识点是堆排序。
应选C。
知识模块:数据结构12.基于比较方法的n个数据的内部排序,最坏情况下的时间复杂度能达到的最好下界是( )。
A.O(nlog2n)B.O(log2n)C.O(n)D.D(n2)正确答案:A解析:此题考查的知识点是各类排序的效率。
理论上可以证明,对于基于关键字之间比较的分类,无论用什么方法都至少需要进行log2(n!)次比较。
由Stirling 公式可知,log2(n!)=nlog2n一1.44n+O(log2n)。
所以基于关键字比较的分类时间的下界是O(nlog2n)。
因此不存在时间复杂性低于此下界的基于关键字比较的分类。
应选A。
知识模块:数据结构13.以下排序方法中,稳定的排序方法是( )。
A.直接插入排序B.直接选择排序C.堆排序D.基数排序正确答案:A解析:下表为各种排序方法的性能比较。
由表可知,本题答案为A。
知识模块:数据结构14.在对一组记录(50,40,95,20,15,70,60,45,80)进行希尔排序时,假定d0=9,d1=4,d2=2,d3=1,则第二趟排序结束后前4条记录为( )。
A.(50,20,15,70)B.(60,45,80,50)C.(15,20,50,40)D.(15,20,80,70)正确答案:C解析:t=3,d0=9,d1=4,d2=2,d3=1,第1趟(d1=4)后的结果为(15,40,60,20,50,70,95,45,80),第2趟(d2=2)后的结果为(15,20,50,40,60,45,80,70,95),本题答案为(15,20,50,40)。
知识模块:数据结构15.在归并排序中,若待排序记录的个数为20,则共需要进行( )趟归并,在第三趟归并中,是把长度为( )的有序表归并为长度为( )的有序表。
A.5,4,8B.6,3,9C.7,4,3D.3,8,2正确答案:A解析:n=20,共需进行[log2n]=5趟归并,第1趟归并后成为10个有序表,第2趟归并后成为5个有序表(每个长度为4),第3趟归并将长度为4个的有序表归并为长度为8的有序表,本题答案为:5,4,8. 知识模块:数据结构综合应用题41-47小题,共70分。
16.已知关键字序列(K1,K2,K3,…,Kn-1)是大根堆。
试写出一算法将(K1,K2,K3,…,Kn-1,Kn)调整为大根堆,并利用调整算法写一个建大根堆的算法。
正确答案:void sift(RecType R[],int n){ //把R[n]调成大堆int j=n;R[0]=R[j];for(i=n/2;i>=1;i=i/2) if(R[0].key>R[i].key){R[j]=R[i];j=i;} else break;R[j]=R[0];} void HeapBuilder(RecType R[],int n){ for(i=2;i<=n;i++)sift(R,i);} 提示:此题考查的知识点是堆的插入算法。
从第n个记录开始依次与其双亲(n/2)比较,若大于双亲则交换,继而与其双亲的双亲比较,以此类推直到根为止。
涉及知识点:数据结构17.最小最大堆(min max Heap)是一种特定的堆,其最小层和最大层交替出现,根总是处于最小层。
最小最大堆中的任一结点的关键字值总是在以它为根的子树中的所有元素中最小(或最大)。
如图所示为一最小最大堆。
(1)画出在图中插入关键字为5的结点后的最小最大堆。
(2)画出在图中插入关键字为80的结点后的最小最大堆。
(3)编写一算法实现最小最大堆的插入功能。
假定最小最大堆存放在数组中,关键字为整数。
正确答案:此题考查的知识点是堆的算法。
将插入的元素放到最后,然后调整,方法同第13题。
(1)加入关键字值为5的结点后,最小最大堆如下图。
(2)加入关键字值为80的结点后,最小最大堆如下图。
(3)从插入位置进行调整,调整过程由下到上。
首先根据元素个数求出插入元素所在层次数,以确定其插入层是最大层还是最小层。
若插入元素在最大层,则先比较插入元素是否比双亲小,如是,则先交换,之后,将小堆与祖先调堆,直到满足小堆定义或到达根结点:若插入元素不小于双亲,则调大堆,直到满足大堆定义。
若插入结点在最小层,则先比较插入元素是否比双亲大,如是,则先交换,之后,将大堆与祖先调堆;若插入结点在最小层且小于双亲,则将小堆与祖先调堆,直到满足小堆定义或到达根结点。
void MinMaxHeapIns(RecType R[],int n){ //假设R[1..n一1]是最小最大堆,插入第n个元素,把R[1..n]调成最小最大堆j=n;R[0]=R[j];h=log2n+1;//求高度if(h%2==0){ //插入元素在偶数层,是最大层i=n/2;if(R[0].key<R[i].key){ //插入元素小于双亲,先与双亲交换,然后调小堆R[j]=R[i];j=i/4;while(j>0&&R[j]>R[i]){ R[i]=R[j];i=j;j=i/4;} //调小堆R[i]=R[0]i } else{ //插入元素大于双亲,调大堆i=n;j=i/4;while(j>0&&R[j]<R[i]){R[i]=R[1];i=j;j=i/4;} R[i]=R[0];} } else{ //插入元素在奇数层,是最小层i=n/2:if(R[0].key>R[i].key){ //插入元素大于双亲,先与双亲交换,然后调大堆R[j]=R[i];j=i/4;while(j>0&&R[j]<R[i]){ R[i]:R[j]=i:j;j=i/4;} //调大堆R[i]=R[0];} else{ //插入元素小于双亲,调小堆i=n;j=i/4;while(j>0&&R[j]>R[i]){ R[i]=R[j];i=j;j=i/4;} R[i]=R[0];} }} 涉及知识点:数据结构18.输入N个只含一位数字的整数,试用基数排序的方法,对这N个数排序。