题目1、把数据存储到计算机中,并具体体现数据元素间的逻辑结构称为( )。
逻辑结构
算法的具体实现
给相关变量分配存储单元
物理结构
题目2、下列说法中,不正确的是( )。
数据元素是数据的基本单位
数据项可由若干个数据元素构成
数据项是数据中不可分割的最小可标识单位
数据可有若干个数据元素构成
题目3、一个存储结点存储一个( )。
数据类型
数据元素
数据结构
数据项
题目4、数据结构中,与所使用的计算机无关的是数据的( )。
物理结构
逻辑结构
存储结构
物理和存储结构
题目5、在线性表的顺序结构中,以下说法正确的是( )。
数据元素是不能随机访问的
逻辑上相邻的元素在物理位置上也相邻
进行数据元素的插入、删除效率较高
逻辑上相邻的元素在物理位置上不一定相邻
题目6、对链表, 以下叙述中正确的是( )。
插入删除元素的操作一定要要移动结点
不能随机访问任一结点
可以通过下标对链表进行直接访问
结点占用的存储空间是连续的
题目7、下列的叙述中,不属于算法特性的是( )。
输入性
可读性
可行性
有穷性
题目8、算法的时间复杂度与( )有关。
数据结构
计算机的操作系统
所使用的计算机
算法本身
题目9、设有一个长度为n的顺序表,要在第i个元素之前(也就是插入元素作为新表的第i个元素),插入一个元素,则移动元素个数为( )。
n-i+1
n-i-1
i
n-i
题目10、设有一个长度为n的顺序表,要删除第i个元素移动元素的个数为( )。
n-i-1
n-i
i
n-i+1
题目11、在一个单链表中,p、q分别指向表中两个相邻的结点,且q所指结点是p所指结点的直接后继,现要删除q所指结点,可用语句( )。
p->next=q->next
q->next=NULL
p->next=q
p=q->next
题目12、在一个单链表中p所指结点之后插入一个s所指的结点时,可执行( )。
s->next=p->next p->next=s
p->next=s->next
p->next= s s->next= p->next
p=s->next
题目13、非空的单向循环链表的尾结点满足( )(设头指针为head,指针p指向尾结点)。
p== head
p->next==NULL
p->next==head
p==NULL
题目14、链表不具有的特点是( )。国开形考答案请进:opzy.net或请联系微信:1095258436
插入删除不需要移动元素
不必事先估计存储空间
逻辑上相邻的元素在物理位置上不一定相邻
可随机访问任一元素
题目15、带头结点的链表为空的判断条件是( )(设头指针为head)。
head->next==head
head->next==NULL
head!=NULL
head ==NULL
题目16、在一个长度为n的顺序表中为了删除第5个元素,由第6个元素开始从后到前依次移动了15个元素。则原顺序表的长度为( )。
19
21
25
20
题目17、有关线性表的正确说法是( )。
除了一个和最后一个元素外,其余元素都有一个且仅有一个直接前驱和一个直接后继
每个元素都有一个直接前驱和一个直接后继
表中的元素必须按由小到大或由大到下排序
线性表至少要求一个元素
题目18、向一个有127个元素的顺序表中插入一个新元素,并保持原来的顺序不变,平均要移动( )个元素。
63
8
7
63、5
题目19、一个顺序表第一个元素的存储地址是90,每个元素的长度为2,则第6个元素的地址是( )。
98
100
106
102
题目20、 在一个不带头结点的单循环链表中,p、q分别指向表中第一个结点和尾结点,现要删除第一个结点,且p、q仍然分别指向新表中第一个结点和尾结点。可用的语句是p=p->next和( )。
q=p
q->next=p
p=q->next
p->next=q
题目21、数据元素可以有一个或多个数据项组成。
题目22、数据元素之间的抽象关系称为物理结构。
题目23、数据的逻辑结构在计算机中的表示称为逻辑结构。
题目24、数据的逻辑结构是与存储该结构的计算机相关的。
题目25、数据结构中,元素之间存在多对多的关系称为树状结构。
题目26、通常可以把一本含有不同章节的书的目录结构抽象成线性结构。
题目27、通常可以把某城市中各公交站点间的线路图抽象成树型结构。
题目28、 设有一个不带头结点的单向循环链表,结点的指针域为next,指针p指向尾结点,现要使p指向第一个结点,可用语句p=p->next。
题目29、 设有一个单向链表,结点的指针域为next,头指针为head,p指向尾结点,为了使该单向链表改为单向循环链表,可用语句p->next=head 。
题目30、 设有一个单向循环链表,结点的指针域为next,头指针为head,指针p指向表中某结点,若逻辑表达式p->next==head的结果为真,则p所指结点为尾结点。
题目31、 要在一个单向链表中p所指向的结点之后插入一个s所指向的新结点,若链表中结点的指针域为next,可执行 p->next=s s->next= p->next;的操作。
题目32、 要在一个单向链表中删除p所指向的结点,已知q指向p所指结点的直接前驱结点,若链表中结点的指针域为next,则可执行q->next= p->next;
题目33、 要在一个带头结点的单向循环链表中删除头结点,得到一个新的不带头结点的单向循环链表,若结点的指针域为next,头指针为head,尾指针为p,则可执行head=head-> next p->next=head;。
题目34、 设有一个单向循环链表,头指针为head,链表中结点的指针域为next,p指向尾结点的直接前驱结点,若要删除尾结点,得到一个新的单向循环链表,可执行操作p->next=head;。
题目35、 设线性表以不带头结点的单向链表存储,链表头指针为head,以下程序的功能是输出链表中各结点中的数据域data,完成程序中空格部分。
#define NULL 0
void main( )
{ NODE *head ,*p
p=head /*p为工作指针*/
do
{printf(“%d\n”, [[1]]
[[2]]
}while[[3]]
}
[[1]] -> {p->data / p=p->next / p!=NULL}
题目36、 设有一个头指针为head的不带头结点单向链表,p、q是指向链表中结点类型的指针变量,p指向链表中结点a, (设链表中没有结点的数据域与结点a的数据域相同),写出相关语句
(1)使该单向链表成为单向循环链表
(2)插入结点s,使它成为a结点的直接前驱
q=p x=p->data
while [[3]])q=q->next
q->next=head
q=p p=p->next
while(p->data!=x)
{ q=p
[[1]]
}
s->next=p
[[2]]
[[1]] -> {p=p->next / q->next=s / q->next!=NULL}