形考作业1

一、单项选择题(每小题3分,共60分)

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、设有一个长度为n的顺序表,要在第i个元素之前(也就是插入元素作为新表的第i个元素),插入一个元素,则移动元素个数为( )。

A.n-i+1

B.n-i

C.i

D.n-i-1

正确答案是:n-i+1

10、设有一个长度为n的顺序表,要删除第i个元素移动元素的个数为( )。

A.i

B.n-i

C.n-i+1

D.n-i-1

正确答案是:n-i

11、在一个单链表中,p、q分别指向表中两个相邻的结点,且q所指结点是p所指结点的直接后继,现要删除q所指结点,可用语句( )。

A.p->next=q->next

B.p=q->next

C.p->next=q

D.q->next=NULL

正确答案是:p->next=q->next

12、在一个单链表中p所指结点之后插入一个s所指的结点时,可执行( )。

A.p->next=s->next;

B.p->next= s; s->next= p->next

C.p=s->next

D.s->next=p->next; p->next=s;

正确答案是:s->next=p->next; p->next=s;

13、非空的单向循环链表的尾结点满足( )(设头指针为head,指针p指向尾结点)。

A.p== head

B.p->next==head

C.p==NULL

D.p->next==NULL

正确答案是:p->next==head

14、链表不具有的特点是( )。

A.可随机访问任一元素

B.逻辑上相邻的元素在物理位置上不一定相邻

C.不必事先估计存储空间

D.插入删除不需要移动元素。

正确答案是:可随机访问任一元素

15、带头结点的链表为空的判断条件是( )(设头指针为head)。

A.head ==NULL

B.head!=NULL

C.head->next==head

D.head->next==NULL

正确答案是:head->next==NULL

16、在一个长度为n的顺序表中为了删除第5个元素,由第6个元素开始从后到前依次移动了15个元素。则原顺序表的长度为( )。

A.21

B.25

C.19

D.20

正确答案是:20

17、有关线性表的正确说法是( )。

A.除了一个和最后一个元素外,其余元素都有一个且仅有一个直接前驱和一个直接后继

B.表中的元素必须按由小到大或由大到下排序

C.线性表至少要求一个元素

D.每个元素都有一个直接前驱和一个直接后继

正确答案是:除了一个和最后一个元素外,其余元素都有一个且仅有一个直接前驱和一个直接后继

18、向一个有127个元素的顺序表中插入一个新元素,并保持原来的顺序不变,平均要移动( )个元素。

A.63.5

B.7

C.63

D.8。

正确答案是:63.5

19、一个顺序表第一个元素的存储地址是90,每个元素的长度为2,则第6个元素的地址是( )。

A.102

B.98

C.106

D.100

正确答案是:100

20、在一个不带头结点的单循环链表中,p、q分别指向表中第一个结点和尾结点,现要删除第一个结点,且p、q仍然分别指向新表中第一个结点和尾结点。可用的语句是p=p->next;和( )。

A.p->next=q

B.q=p

C.q->next=p

D.p=q->next

正确答案是:q->next=p

二、判断题( 每小题2分,14题,共28分)

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;。

正确答案是“对”。

三、程序填空题(每小题6分,共12分。请点击正确选项,然后拖拽至相应的方框上)

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
  • (2) p = p->next
  • (3) p != NULL

36、设有一个头指针为head的不带头结点单向链表,p、q是指向链表中结点类型的指针变量,p指向链表中结点a, (设链表中没有结点的数据域与结点a的数据域相同),写出相关语句

(1)使该单向链表成为单向循环链表

(2)插入结点s,使它成为a结点的直接前驱

q=p; x=p->data;

while __(1)__)q=q->next;

q->next=head;

q=p; p=p->next;

while(p->data!=x)

{ q=p;

__(2)__

}

s->next=p;

__(3)__

正确答案是:
选项2 p=p->next
选项1 q->next!=NULL
选项3 q->next=s

形考作业2

声明:
本站所有文章,如无特殊说明或标注,均为本站原创发布。
任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。
如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。