形考作业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
一、单项选择题(每小题2分,共50分)
1、若让元素1,2,3依次进栈,则出栈顺序不可能为( )。
A.1,3,2
B.3,2,1
C.2,1,3
D.3,1,2
正确答案是:3,1,2
2、一个队列的入队序列是1,2,3,4。则队列的输出序列是( )。
A.
4,3,2,1
B.
1,4,3,2
C.
1,2,3,4
D.
3,2,4,1
正确答案是:1,2,3,4
3、向顺序栈中压入新元素时,应当( )。
A.同时进行
B.先存入元素,再移动栈顶指针
C.先移动栈顶指针,再存入元素
D.先后次序无关紧要
正确答案是:先移动栈顶指针,再存入元素
4、在一个栈顶指针为top的链栈中,将一个p指针所指的结点入栈,应执行( )。
A.p->next=top;top=p;
B.top->next=p;
C.p->next=top->next;top->next=p;
D.p->next=top->next;top=top->next;
正确答案是:p->next=top;top=p;
5、在一个栈顶指针为top的链栈中删除一个结点时,用 x保存被删结点的值,则执行( )。
A.x=top->data;
B.x=top;top=top->next;
C.x=top->data;top=top->next;
D.top=top->next;x=top->data;
正确答案是:x=top->data;top=top->next;
6、判断一个顺序队列(最多元素为m)为空的条件是( )。
A.rear==m-1
B.rear=m
C.front==rear
D.front==rear+1
正确答案是:front==rear
7、判断一个循环队列为满的条件是( )。
A.(rear+1)%MaxSize==front
B.rear%MaxSize= =front
C.front==rear+1
D.rear=MaxSize
正确答案是:(rear+1)%MaxSize==front
8、判断栈满(元素个数最多n个)的条件是( )。
A.top=-1
B.top==0
C.top==n-1
D.top!=0
正确答案是:top==n-1
9、设有一个20阶的对称矩阵A(第一个元素为a1,1),采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始), 则矩阵元素a6,2在一维数组B中的下标是( )。
A.28
B.17
C.21
D.23
正确答案是:17
10、在解决计算机主机与打印机之间速度不匹配问题时通常设置一个打印数据缓冲区,主机将要输出的数据依次写入缓冲区中,而打印机则从缓冲区中取出数据打印,该缓冲区应该是一个( )结构。
A.队列
B.线性表
C.堆栈
D.数组
正确答案是:队列
11、一个递归算法必须包括( )。
A.终止条件和迭代部分
B.递归部分
C.终止条件和递归部分
D.迭代部分
正确答案是:终止条件和递归部分
12、在一个链队中,假设f和r分别为队头和队尾指针,则删除一个结点的运算为( )。
A.r=f->next;
B.r=r->next;
C.f=r->next;
D.f=f->next;
正确答案是:f=f->next;
13、在一个链队中,假设f和r分别为队头和队尾指针,则插入s所指结点的运算为( )。
A.f->next=s;f=s;
B.s->next=r;r=s;
C.r->next=s;r=s;
D.s->next=f;f=s;
正确答案是:r->next=s;r=s;
14、数组a经初始化char a[ ]=“English”;a[7]中存放的是( )。
A.”h”
B.字符串的结束符
C.字符h
D.变量h
正确答案是:字符串的结束符
15、设主串为“ABcCDABcdEFaBc”,以下模式串能与主串成功匹配的是( )。
A.Bcd
B.Abc
C.ABC
D.BCd
正确答案是:Bcd
16、字符串 a1=”AEIJING”,a2=”AEI”,a3=”AEFANG”,a4=”AEFI”中最大的是( )。
A.a1
B.a2
C.a4
D.a3
正确答案是:a1
17、两个字符串相等的条件是( )。
A.两串的长度相等,并且两串包含的字符相同
B.两串的长度相等,并且对应位置上的字符相同
C.两串的长度相等
D.两串包含的字符相同
正确答案是:两串的长度相等,并且对应位置上的字符相同
18、一维数组A采用顺序存储结构,每个元素占用6个字节,第6个元素的存储地址为100,则该数组的首地址是( )。
A.90
B.28
C.70
D.64
正确答案是:70
19、一个非空广义表的表头( )。
A.只能是原子
B.不可能是原子
C.可以是子表或原子
D.只能是子表
正确答案是:可以是子表或原子
20、对稀疏矩阵进行压缩存储,可采用三元组表,一个10 行8列的稀疏矩阵A,其相应的三元组表共有6个元素,矩阵A共有( )个零元素。
A.10
B.8
C.72
D.74
正确答案是:74
21、对稀疏矩阵进行压缩存储,可采用三元组表,一个10 行8列的稀疏矩阵A共有73个零元素,A的右下角元素为6,其相应的三元组表中的第7个元素是( )。
A.(10,8,7)
B.(10,8,6)
C.(7,8,10)
D.(7,10,8)
正确答案是:(10,8,6)
22、对一个栈顶指针为top的链栈进行入栈操作,通过指针变量p生成入栈结点,并给该 结点赋值a,则执行: p=(struct node *)malloc(sizeof(struct node);p->data=a;和( )。
A.p->next=top;top=p;
B.p->next=top;p=top;
C.top->next=p;p=top;
D.top=top->next;p=top;
正确答案是:p->next=top;top=p;
23、头指针为head的带头结点的单向链表为空的判定条件是( )为真。
A.head->next==NULL
B.head==NULL
C.head->next!=NULL
D.head->next!=NULL
正确答案是:head->next==NULL
24、设有一个对称矩阵A,采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始),B数组共有55个元素,则该矩阵是( )阶的对称矩阵。
A.5
B.10
C.20
D.15
正确答案是:10
25、数组a经初始化char a[ ]=“English”;a[1]中存放的是( )。
A.”n”
B.字符E
C.字符n
D.”E”
正确答案是:字符n
二、判断题(每小题2分,16题,共32分 )
26、设有一个链栈,栈顶指针为hs,现有一个s所指向的结点要入栈,则可执行操作。hs=s;s-> next=hs;
正确答案是“错”。
27、设有一个非空的链栈,栈顶指针为hs,要进行出栈操作,用x保存出栈结点的值,栈结点的指针域为next,则可执行hs=hs->next ;x=hs->data;
正确答案是“错”。
28、有一个链栈,栈顶指针为h,现有一个p所指向的结点要入栈,则可执行操作p->next=h;和h=p;
正确答案是“对”。
29、设有一个非空的链栈,栈顶指针为hs,要进行出栈操作,用x保存出栈结点的值,栈结点的指针域为next,数据域为data,则可执行hs= hs->next; x= hs->data;
正确答案是“错”。
30、在一个链队中,f和r分别为队头和队尾指针,队结点的指针域为next,则插入所指结点的操作为r->next=s;r=s;
正确答案是“对”。
31、在一个链队中,f和r分别为队头和队尾指针,队结点的指针域为next,s指向一个要入 队的结点,则入队操作为r=s;r->next=s;
正确答案是“错”。
32、在一个不带头结点的非空链队中,f和r分别为队头和队尾指针,队结点的数据域为data,指针域为next,若要进行出队操作,并用变量x存放出队元素的数据值,则相关操作为x=f->data; f=f->next;
正确答案是“对”。
33、对稀疏矩阵进行压缩存储,可采用三元组表,一个6行7列的稀疏矩阵A相应的三元组表共有8个元素,则矩阵A共有34个零元素。
正确答案是“对”。
34、循环队列的最大存储空间为MaxSize,队头指针为f,队尾指针为r,当(r+1)%MaxSize=f 时表明队列已满。
正确答案是“对”。
35、循环队列的队头指针为f,队尾指针为r,当r= =f时表明队列已满。
正确答案是“错”。
36、空串的长度是0;空格串的长度是空格字符的个数。
正确答案是“对”。
37、对稀疏矩阵进行压缩存储,矩阵中每个非零元素对应的三元组包括该元素的行下标、列下标、和非零元素值三项信息。
正确答案是“对”。
38、循环队列的引入,目的是为了克服假上溢。
正确答案是“对”。
39、设有n阶对称矩阵A,用一维数组s压缩存储A的下三角元素,s的下标从零开始,元素 s[26]相应于A中的元素为a 7,5。
正确答案是“错”。
40、循环队列的最大存储空间为MaxSize=6,采用少用一个元素空间以有效的判断栈空或栈满,若队头指针front=4,当队尾指针rear=3时队满。
正确答案是“对”。
41、循环队列的最大存储空间为MaxSize=6,采用少用一个元素空间以有效的判断栈空或栈满,若队头指针front=4,队尾指针rear=3时,队列中共有5个元素。
正确答案是“对”。
三、程序选择填空题(每小题9分,共18分。请点击正确选项,然后拖拽至相应的方框上)
42、以下函数为链栈的进栈操作,x是要进栈的结点的数据域,top为栈顶指针
struct node
{ ElemType data;
struct node *next;
};
struct node *top ;
void Push(ElemType x)
{
struct node *p;
p=(struct node*)malloc __(1)__;
p->data=x;
__(2)__;
__(3)__;
}
(1)sizeof(struct node)
(2)p->next = top
(3)top = p
43、以下函数为链队列的入队操作,x为要入队的结点的数据域的值,front、rear分别链队列的队头、队尾指针
struct node
{ ElemType data;
struct node *next;
};
struct node *front,*rear;
void InQueue(ElemType x)
{
struct node *p;
p= (struct node*) malloc __(1)__;
p->data=x;
p->next=NULL;
__(2)__;
rear= __(3)__;
}
(1)sizeof(struct node)
(2)rear->next = p
(3)p
本站所有文章,如无特殊说明或标注,均为本站原创发布。
任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。
如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
