数据结构期末考试(题集)
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
数据结构的基本概念
选择题
(1)顺序存储结构中数据元素之间的逻辑关系是由()表示的,存储结构中的数据元素之间的逻辑关系是由()表示的。
A.线性结构B.非线性结构C.存储位置D.指针
(2)假设有如下遗产继承规则:丈夫和妻子可以相互继承遗产,子女可以继承父亲或母亲的遗产;子女间不能相互继承,则表示该遗产继承关系的最合适的数据结构
应该是()。
A.树B.图C.线性表D.集合
(3)计算机所处理的数据一般具有某种在联系,这是指()。
A.数据和数据之间存在某种关系B.元素和元素之间存在某种关系
C.元素部具有某种结构D.数据项和数据项之间存在某种关系
(4)在数据结构中,与所使用的计算机无关的是数据的()。
A.树B.图C.线性表D.集合
(5)在存储数据时,通常不仅要存储各数据元素的值,还要存储()。
A.数据的处理方法B.数据元素的类型
C.数据元素之间的关系D.数据的存储方法
(6)在存储结构中,要求()。
A.每个结点占用一片连续的存储区域B.所有结点占用一片连续的存储区域
C.结点的最后一个域是指针类型D.每个结点有多少个后继就设多少个指针
(7)下列说法不正确的是()。
A.数据元素是数据的基本单位B.数据项是数据中不可分割的最小单位
C.数据可由若干个数据项构成D.数据元素可由若干个数据项构成
(8)以下与数据的存储结构无关的术语是()。
A.循环队列B.链表C.散列表D.栈
(9)以下术语属于逻辑结构的是()。
A.顺序表B.哈希表C.有序表D.单链表
(10)可以用()定义一个完整的数据结构。
A.数据元素B.数据对象C.数据关系D.抽象数据类型
(11)对于数据结构的描述,下列说法中不正确的是()。
A.相同的逻辑结构对应的存储结构也必相同
B.数据结构由逻辑结构、存储结构和基本操作三方面组成
C.数据结构基本操作的实现与存储结构有关
D.数据的存储结构是数据的逻辑结构的机实现
(12)以下关于存储结构的叙述中,()是不正确的。
A.结点除数据信息外还包括指针域,因此存储密度小于顺序存储结构
B.逻辑上相邻的结点物理上不一定相邻
C.可以通过计算得到第i个结点的存储地址
D.插入和删除操作方便,不必移动结点
(13)可以用()、数据关系和基本操作定义一个完整的抽象数据类型。
A.数据元素B.数据对象C.原子类型D.存储结构
应用题
(14)设有数据结构(D,R),其中D={1,2,3,4,5,6},R={(1,2),(2,3),(2,4),(3,4),(3,5),(3,6),(4,5),(4,6)}。试画出其逻辑结构图并指
出属于何种结构。
(15)试描述数据结构和抽象数据类型的概念与程序设计语言中数据类型概念的区别。
(16)说明数据的逻辑结构和存储结构之间的关系。
(17)抽象数据类型的主要特点是什么?数据类型和抽象数据类型的关系如何?使用抽象数据类型的主要好处是什么?
1算法和算法分析
选择题
(1)算法指的是()。
A.对特定问题求解步骤的一种描述,是指令的有限序列
B.计算机程序
C.解决问题的计算方法
D.数据处理
(2)下面()不是算法所必须具备的特性。
A.有穷性B.确切性C.高效性D.可行性
(3)算法必须具备输入、输出和()等特性。
A.可行性、可移植性和可扩充性B.可行性、确定性和有穷性
C.确定性、稳定性和有穷性D.易读性、稳定性和健壮性
(4)算法应该具有确定性、可行性和有穷性,其中有穷性是指()。
A.算法在有穷的时间终止B.输入是有穷的
C.输出是有穷的D.描述步骤是有穷的
(5)当输入非法错误时,一个“好”的算法会进行适当处理,而不会产生难以理解的输出结果,这称为算法的()。
A.可读性B.健壮性C.正确性D.有穷性
(6)算法分析的目的是(),算法分析的两个主要方面是()。
A.找出数据结构的合理性B.研究算法中输入和输出的关系
C.分析算法的效率以求改进D.分析算法的易读性和文档性
E.空间性能和时间性能F.正确性和简明性
G.可读性和文档性H.数据复杂性和程序复杂性
(7)算法的时间复杂度与()有关。
A.问题规模B.计算机硬件性能
C.编译程序的质量D.程序设计语言
(8)算法的时间复杂度与()有关。
A.问题规模B.待处理数据的初态
C.算法的易读性D.A和B
(9)某算法的时间复杂度是○(n2),表明该算法()。
A.问题规模是n2B.执行时间等于n2
C.执行时间与n2成正比D.问题规模与n2成正比
(10)下面说法错误的是()。
①算法原地工作的含义是指示不需要如何额外的辅助空间
②在相同的规模n下,复杂度○(n)的算法在时间上总是优于复杂度○(2n)的算法
③所谓时间复杂度是指最坏情况下,估算算法执行时间的一个上界
④同一个算法,实现语言的级别越高,执行效率就越低
(11)算法
for (i=n-1; i>=1; i--)
for (j=1; j<=i; j++)
if (a[j]>a[j+1]) a[j]与a[j+1]交换;
其中n为正整数,则最后一行语句的频度(执行次数)在最坏情况下是()。
A.○(n) B.○(nlog2n) C.○(n3) D.○(n2)
(12)算法的时间复杂度属于一种()。
A.事前统计的方法B.事先分析估算的方法
C.事后统计的方法D.事后分析估算的方法
(13)设某算法完成对n个元素进行处理,所需的时间是T(n)=100 nlog2n+200n+500,则该算法的时间复杂度是()。
A.○(1) B.○(n) C.○(nlog2n) D.○(nlog2n+n)
(14)假设时间复杂度为○(n2)的算法在有200个元素的数组上运行需要3.1ms,则在有400个元素的数组上运行需要()ms。
A.3.1 B.6.2 C.12.4 D.x(无法确定)
(15)下列程序段加下划线的语句执行()次。
for (m=0,i=1; i<=1; i++)
for (j=1; j<=2*i; j++)
m=m+1;
A.n2B.3n C.n(n+1) D.n3
应用题
(16)将下列函数按它们的n→∞时的无穷大阶数,从小到大排列。
n,n-n3-7n5,nlog2n,2n/2,n3,log2n,n1/2+log2n,(3/2)n,n!,n2+log2n
(17)分析以下程序段,并用大○记号表示其执行时间。
①i=1;k=0;
while (i { k=k+10*i; i++; } ②i=1;j=0; while (i+j<=n) if (i>j) j++; else i++; ③for (i=1;i<=n;i++) for (j=1;j<=i;j++) for (k=1;k<=j;k++) x++; ④i=1;k=0; do