数据结构形考作业及答案Word文件下载.docx
《数据结构形考作业及答案Word文件下载.docx》由会员分享,可在线阅读,更多相关《数据结构形考作业及答案Word文件下载.docx(75页珍藏版)》请在冰豆网上搜索。
![数据结构形考作业及答案Word文件下载.docx](https://file1.bdocx.com/fileroot1/2022-11/22/8e439e9e-a4ad-46b2-82b6-4cfcc46923b8/8e439e9e-a4ad-46b2-82b6-4cfcc46923b81.gif)
9.算法分析的两个主要方面是(C)。
A.数据复杂性和程序复杂性
B.正确性和简明性
C.时间复杂性和空间复杂性
D.可读性和文档性
10.数据的存储结构包括数据元素的表示和(B)。
A.相关算法
B.数据元素间关系的表示
C.数据处理的方法
D.数据元素的类型
11.数据元素是数据的最小单位(错)。
对
错
12.数据的逻辑结构是指数据的各数据项之间的逻辑关系(错)。
13.算法的优劣与算法描述语言无关,但与所用计算机有关(错)。
14.算法是在数据结构的基础上对特定问题求解步骤的一种描述,也是若干条指令组成的优先序列(对)。
15.算法可以用不同的语言描述,如果用C语言等高级语言来描述,则算法实际上就是程序了(错)。
16.程序一定是算法(错)。
17.数据的物理结构是指数据在计算机内的实际存储形式(对)。
18.数据结构中评价算法的两个重要指标是时间复杂度和空间复杂度(对)。
19.在顺序存储结构中,有时也存储数据结构中元素之间的关系(错)。
20.线性表的顺序存储比链式存储最与利于进行(B)操作。
A.表头插入或删除
B.表尾插入或删除
C.查找
D.按值插入或删除
21.链表不具备的特点是(C)。
A.不必事先估计存储空间
B.所需空间与其长度成正比
C.可随机访问任一结点
D.插入、删除不需要移动元素
22.向一个有127个元素的顺序表中插入一个新元素,并保持原来的顺序不变,平均要移动(A)个元素。
A.63.5
B.8
C.63
D.7
23.在一个长度为n的顺序存储线性表中,向第i个元素(1≤i≤n)之前插入一个新元素时,需要依次后移(C)个元素。
A.n-i-1
B.n-i
C.n-i+1
D.i
24.在一个长度为n的顺序存储线性表中,删除第i个元素(1≤i≤n),需要前移(A)个元素。
A.n-i
B.n-i-1
25.一个顺序存储线性表的第一个元素的存储地址是90,每个元素的长度是2,则第6个元素的存储地址是(A)。
A.100
B.106
C.98
D.102
26.用链表表示线性表的优点是(B)。
A.花费的存储空间较顺序存储少
B.便于插入和删除
C.便于随机存取
D.数据元素的物理顺序和逻辑顺序相同
27.带头结点的链表为空的判断条件是(A)(设头指针为head)。
A.head->
next==NULL
B.head!
=NULL
C.head->
next==head
D.head==NULL
28.非空的单向循环链表的尾结点满足(A)(设头指针为head,指针p指向尾结点)。
A.p->
B.p==head
C.p->
D.p==NULL
29.在一个单链表中,p、q分别指向表中两个相邻的结点,且q所指结点是p所指结点的直接后继,现要删除q所指结点,可用语句(D)。
A.q->
next=NULL
B.p=q->
next
next=q
D.p->
next=q->
30.线性表在链式存储中各结点之间的地址(D)。
A.必须连续
B.部分地址必须连续
C.不能连续
D.连续与否无所谓
31.有关线性表的正确说法是(A)。
A.除了一个和最后一个元素外,其余元素都有一个且仅有一个直接前驱和一个直接后继
B.线性表至少要求一个元素
C.表中的元素必须按由小到大或由大到下排序
D.每个元素都有一个直接前驱和一个直接后继
32.若某线性表最常用的操作是存取任一指定序号的元素和在最后进行插入和删除运算,则利用(B)存储方式最省时间。
A.单向循环链表
B.顺序表
C.双向循环链表
D.带头结点的双向循环链表
33.在单链表中,若*p不是尾结点,在其后插入*s结点的操作是(D)。
next=s;
s->
next=p;
B.s->
p->
C.s->
next=p->
next;
p=s;
D.s->
34.在一个长度为n的顺序表中为了删除第5个元素,由第6个元素开始从后到前依次移动了15个元素。
则原顺序表的长度为(A)。
A.20
B.21
C.19
D.25
35.对于一个具有n个结点的单向链表,在给定值为x的结点之后插入一个新结点的时间复杂度为(B)。
A.O(n2)
B.O(n)
C.O
(1)
D.O(n3)
36.设顺序存储的线性表长度为n,对于插入操作,设插入位置是等概率的,则插入一个元素平均移动元素的次数为(B)。
A.n
B.n/2
D.n-1
37.线性表的顺序结构中,(A)。
A.逻辑上相邻的元素在物理位置上也相邻
B.数据元素是不能随机访问的
C.进行数据元素的插入、删除效率较高
D.逻辑上相邻的元素在物理位置上不一定相邻
38.以下说法中不正确的是(A)。
A.已知单向链表中任一结点的指针就能访问到链表中每个结点
B.单向循环链表中尾结点的指针域中存放的是头指针
C.双向循环链表中每个结点需要包含两个指针域
D.顺序存储的线性链表是可以随机访问的
39.以下表中可以随机访问的是(C)。
A.双向链表
B.单向循环链表
C.顺序表
D.单向链表
40.设链表中的结点是NODE类型的结构体变量,且有NODE*p;
为了申请一个新结点,并由p指向该结点,可用以下语句(C)。
A.p=(NODE)malloc(sizeof(p));
B.p=(NODE*)malloc(sizeof(p));
C.p=(NODE*)malloc(sizeof(NODE));
D.p=(*NODE)malloc(sizeof(NODE));
41.设head为非空的单向循环链表头指针,p指向链表的尾结点,则满足逻辑表达式(C)的值为真。
A.p-==head
B.p->
42.顺序存取的线性表乐意随机存取(对)。
43.由于顺序存储要求连续的存储区域,所以在存储管理上不够灵活(对)。
44.线性表中的元素可以是各种各样的,但同一线性表中的数据元具有相同的特性,因此是属于同一数据对象(对)。
45.在线性表的顺序存储结构中,逻辑上相邻的两个元素但是在物理上位置并不一定是相邻的(错)。
46.在单链表中,任何两个元素的存储位置之间都有固定的联系,因为可以从头结点进行查找任何一个元素(错)。
47.线性表的链式存储结构优于顺序存储结构(错)。
48.在线性表的顺序存储结构中,插入和删除元素时,移动元素的个数与该袁术的位置有关(对)。
49.在单链表中,要取得某个元素,只要知道该元素的指针机可,因此单链表是随机存取的存储结构。
(错)
50.顺序存储方式只能用于存储线性结构。
(错)
51.顺序存储方式的有点是存储密度大,且插入、删除运算效率高。
52.一个顺序栈一旦被声明,其占用空间的大小(D)。
A.不能固定
B.可以改变
C.动态变化
D.已固定
53.链栈和顺序栈相比,有一个比较明显的缺点,即(A)。
A.通常不会出现栈满的情况
B.不会出现栈空的情况
C.插入操作更加方便
D.删除操作更加方便
54.用单链表表示的链式队列的队头在链表的(B)位置。
A.任意位置
B.链头
C.链尾
D.链中
55.在解决计算机主机与打印机之间速度不匹配问题时通常设置一个打印数据缓冲区,主机将要输出的数据依次写入缓冲区中,而打印机则从缓冲区中取出数据打印,该缓冲区应该是一个(D)结构。
A.线性表
B.数组
C.堆栈
D.队列
56.在解决计算机主机与打印机之间速度不匹配问题时通常设置一个打印数据缓冲区,主机将要输出的数据依次写入缓冲区中,而打印机则从缓冲区中取出数据打印,该缓冲区应该是一个()结构。
57.循环队列A[m]存放其元素,用front和rear分别表示队头及队尾,则循环队列满的条件是(B)。
A.(rear+1)%m-1=front
B.(rear+1)%m=front
C.(rear=front
D.(rear=front+1
58.在一个栈顶指针为top的链栈中,将一个p指针所指的结点入栈,应执行(A)。
next=top;
top=p;
next=top->
top=top->
top->
D.top->
59.在一个栈顶指针为top的链栈中删除一个结点时,用x保存被删结点的值,则执行(A)。
A.x=top->
data;
B.x=top->
C.x=top;
top=top->
D.top=top->
x=top->
60.在链队列中,f和r分别为队头和队尾指针,要把s所指结点入队,应执行(B)。
A.r->
B.r->
r=s;
C.r->
next=s->
next;
D.r->
r=s;
61.设top是一个链栈的栈顶指针,栈中每个结点由一个数据域data和指针域next组成,设用x接收栈顶元素,则取栈顶元素的操作为(C)。
A.top->
data=x;
top=top->
C.x=top->
62.一个队列的入队序列是2,4,6,8,则队列的输出序列是(C)。
A.6,4,2,8
B.4,2,8,6
C.2,4,6,8
D.8,6,4,2
63.一个栈的进栈序列是5,6,7,8,则栈的不可能的出栈序列是(A)。
(进出栈操作可以交替进行)
A.5,8,6,7
B.7,6,5,8
C.8,7,6,5
D.7,6,8,5
64.栈的插入删除操作在(A)进行。
A.栈顶
B.任意位置
C.指定位置
D.栈底
65.栈和队列的相同点是(A)。
A.逻辑结构与线性表相同,都是操作规则受到限制的线性表
B.都是后进先出
C.都是后进后出
D.逻辑结构与线性表不同
66.以下说法正确的是(C)。
A.栈和队列的特点都是先进先出
B.栈和队列的特点都是先进后出
C.栈的特点是先进后出,队列的特点是先进先出
D.栈的特点是先进先出,队列的特点是先进后出
67.设有一个带头结点的链队列,队列中每个结点由一个数据域data和指针域next组成,front和rear分别为链队列的头指针和尾指针。
设p指向要入队的新结点(该结点已被赋值),则入队操作为(D)。
A.p=rear->
rear=p;
B.rear->
p=rear;
C.rear=p;
rear->
D.rear->
68.设有一个带头结点的链队列,队列中每个结点由一个数据域data和指针域next组成,front和rear分别为链队列的头指针和尾指针,要执行出队操作,用x保存出队元素的值,p为指向结点类型的指针,可执行如下操作:
p=front->
x=p->
然后指行(D)。
A.front=p->
B.front->
next=p;
C.front=p;
D.front->
69.以下说法不正确的是(A)。
A.顺序队列中,当尾指针已经超越队列存储空间的上界,则一定是队列已满
B.顺序栈中,栈空时再作出栈栈操作称为“下溢”
C.顺序队列中,队列的头指针和尾指针均超越队列存储空间的上界,则队列已空
D.顺序栈中,栈满时再进行进栈操作称为“上溢”
70.一个递归算法必须包括(D)。
A.终止条件和迭代部分
B.迭代部分
C.递归部分
D.终止条件和递归部分
71.假定一个链式队列的队头和队尾指针分别为front和rear,则判断队空的条件为(D)。
A.front=NULL
B.rear!
C.front!
D.front=rear
72.向顺序栈中压入新元素时,应当(C)。
A.同时进行
B.先后次序无关紧要
C.先存入元素,再移动栈顶指针
D.应当先移动栈顶指针,再存入元素
73.判断一个循环队列Q(最多元素为m)为满的条件是(A)。
A.Q->
front==(Q->
rear+1)%m
B.Q->
front==Q->
rear
C.Q->
rear!
=(Q->
front+1)%m
D.Q->
front=Q->
rear+1
74.判断栈满(元素个数最多n个)的条件是(D)。
A.top!
=0
B.top==n-1
C.top==0
D.top=-1
75.队列的删除操作是在(C)。
A.队后
B.队尾
C.队前
D.队头
76.一个队列的入队序列是a,b,c,d,按该队列的可能输出序列使各元素依次入栈,该栈的可能输出序列是(C)。
(进栈出栈可以交替进行)。
A.d,b,a,c
B.c,a,b,d
C.d,c,b,a
D.d,a,b,c
77.以下陈述中正确的是(D)。
A.串的长度必须大于零
B.空串就是空格串
C.串中元素只能是字母
D.串是一种特殊的线性表
78.设有两个串p和q,其中q是p的子串,q在p中首次出现的位置的算法称为(D)。
A.连接
B.求串长
C.求子串
D.匹配
79.串是(C)。
A.不少于一个字符的序列
B.任意个字母的序列
C.有限个字符的序列
D.不少于一个字母的序列
80.串的长度是指(A)。
A.串中所含字符的个数
B.串中所含非空格字符的个数
C.串中所含不同字母的个数
D.串中所含不同字符的个数
81.在C语言中,存储字符串“ABCD”需占用(5)字节。
A.3
B.2
C.5
D.4
82.下面关于串的叙述中,不正确的是(B)。
A.模式匹配是串的一种重要运算
B.空串是由空格构成的串
C.串即可以采用顺序存储,也可以采用链式存储
D.串是字符的有限序列
83.串与普通的线性表相比较,它的特殊性体现在(C)。
A.顺序的存储结构
B.数据元素可以任意
C.数据元素是一个字符
D.链接的存储结构
84.空串与空格串(A)。
A.不相同
B.相同
C.无法确定
D.可能相同
85.两个字符串相等的条件是(A)。
A.两串的长度相等,并且对应位置上的字符相同
B.两串包含的字符相同
C.两串的长度相等
D.两串的长度相等,并且两串包含的字符相同
86.在实际应用中,要输入多个字符串,且长度无法预定。
则应该采用(B)存储比较合适()。
A.堆结构
B.链式
D.顺序
87.下列关于串的叙述中,不正确的是(B)。
B.串是字符的有限序列
C.空串是由空格构成的串
D.串既可以采用顺序存储,也可以采用链式存储
88.串函数StrCmp(“abA”,”aba”)的值为(B)。
A.0
B.-1
C.1
D.“abAaba”
89.设主串为“ABcCDABcdEFaBc”,以下模式串能与主串成功匹配的是(C)。
A.BCd
B.Abc
C.Bcd
D.ABC
90.10.字符串a1=“AEIJING”,a2=“AEI”,a3=“AEFANG”,a4=“AEFI”中最大的是(B)。
A.a2
B.a1
C.a3
D.a4
91.字符串〝abcd321ABCD〞的子串是(A)。
A.〝21ABC〞
B.〝321a〞
C.〝abcABCD〞
D.abcD
92.数组a经初始化chara[]=“English”;
a[1]中存放的是(D)。
A.〝n〞
B.〝E〞
C.字符E
D.字符n
93.空串的长度为(B)。
A.1
B.0
C.3
D.2
94.一维数组A采用顺序存储结构,每个元素占用4个字节,第8个元素的存储地址为120,则该数组的首地址是(B)。
A.88
B.92
C.32
D.90
95.稀疏矩阵采用压缩存储的目的主要是(D)。
A.去掉矩阵中的多余元素
B.对矩阵元素的存取变得简单
C.表达变得简单
D.减少不必要的存储空间的开销
96.一个非空广义表的表头(C)。
A.只能是原子
B.不可能是原子
C.可以是子表或原子
D.只能是子表
97.常对数组进行的两种基本操作是(C)。
A.查找与索引
B.索引与、和修改
C.查找和修改
D.建立与删除
98.在二维数组A[8][10]中,每一个数组元素A[i][j]占用3个存储空间,所有数组元素相继存放于一个连续的存储空间中,则存放该数组至少需要的存储空间是(A)。
A.240
B.270
C.80
D.100
99.设有一个18阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素A10,8在一维数组B中的下标是(D)。
A.18
B.58
C.45
D.53
100.广义表((a))的表尾是(D)。
A.(a)
B.((a))
C.a
D.0
101.设有一个10阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则矩阵中元素A8,5在一维数组B中的下标是(D)。
A.32
B.85
C.41
D.33
102.设广义表类((a,b,c)),则L的长度和深度分别为(B)。
A.2和3
B.1和2
C.1和1
D.1和3
103.广义表(a,a,b,d,e,((i,j),k))的表头是__A__。
A.a
B.a,(a,b)
C.(a)
D.(a,b)
104.稀疏矩阵的压缩存储方式通常有两种,即(A)。
A.三元组和十字链表
B.二元组和三元组
C.三元组和散列
D.散列和十字链表
105.设有一个对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),B数组共有55个元素,则矩阵是(B)阶的对称矩阵。
B.10
C.15
D.5
106.设有一个18阶的对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),则数组中第53号元素对应于矩阵中的元素是(B)。
A.a7,6
B.a10,8
C.a8,1
D.a8,5
107.对稀疏矩阵进行压缩存储,可采用三元组表,一个10行8列的稀疏矩阵A共有73个零元素,其相应的三元组表共有(A)个元素。
A.7
B.10
C.8
D