离线详情
国家开放大学-数据结构
国开、奥鹏所有的在线答案、离线答案都可在首页进行搜索,搜不到的可以联系客服!所有答案都有!右下角微信扫码可以添加客服微信。
答案已添加至底下文档中,可登录下载完整版。
一、单项选择题(每小题2分,共50分)
题目1
若让元素1,2,3依次进栈,则出栈顺序不可能为(
)。
A. 1,3,2
B. 3,2,1
C. 2,1,3
D. 3,1,2
题目2
一个队列的入队序列是1,2,3,4。则队列的输出序列是( )。
A. 4,3,2,1
B. 1,2,3,4
C. 3,2,4,1
D. 1,4,3,2
题目3
向顺序栈中压入新元素时,应当(
)。
A. 先后次序无关紧要
B. 先存入元素,再移动栈顶指针
C. 同时进行
D. 先移动栈顶指针,再存入元素
题目4
在一个栈顶指针为top的链栈中,将一个p指针所指的结点入栈,应执行( )。
A. p->next=top->next;top=top->next;
B. top->next=p;
C. p->next=top->next;top->next=p;
D. p->next=top;top=p;
题目5
在一个栈顶指针为top的链栈中删除一个结点时,用
x保存被删结点的值,则执行( )。
A. x=top->data;
B. x=top->data;top=top->next;
C. top=top->next;x=top->data;
D. x=top;top=top->next;
题目6
判断一个顺序队列(最多元素为m)为空的条件是( )。
A. front==rear+1
B. rear==m-1
C. rear=m
D. front==rear
题目7
判断一个循环队列为满的条件是(
)。
A. (rear+1)%MaxSize==front
B. rear%MaxSize= =front
C. rear=MaxSize
D. front==rear+1
题目8
判断栈满(元素个数最多n个)的条件是( )。
A. top==n-1
B. top==0
C. top=-1
D. top!=0
题目9
设有一个20阶的对称矩阵A(第一个元素为a1,1),采用压缩存储的方式,将其下三角部分以行序为主序存储到一维数组B中(数组下标从1开始), 则矩阵元素a6,2在一维数组B中的下标是(
)。
A. 23
B. 17
C. 21
D. 28
题目10
在解决计算机主机与打印机之间速度不匹配问题时通常设置一个打印数据缓冲区,主机将要输出的数据依次写入缓冲区中,而打印机则从缓冲区中取出数据打印,该缓冲区应该是一个( )结构。
A. 堆栈
B. 队列
C. 线性表
D. 数组
题目11
一个递归算法必须包括(
)。
A. 终止条件和迭代部分
B. 递归部分
C. 终止条件和递归部分
D. 迭代部分
题目12
在一个链队中,假设f和r分别为队头和队尾指针,则删除一个结点的运算为( )。
A. r=r->next;
B. f=f->next;
C. r=f->next;
D. f=r->next;
题目13
在一个链队中,假设f和r分别为队头和队尾指针,则插入s所指结点的运算为( )。
A. f->next=s;f=s;
B. s->next=f;f=s;
C. s->next=r;r=s;
D. r->next=s;r=s;
题目14
数组a经初始化char a[ ]=“English”;a[7]中存放的是( )。
A. 字符h
B. "h"
C. 字符串的结束符
D. 变量h
题目15
设主串为“ABcCDABcdEFaBc”,以下模式串能与主串成功匹配的是( )。
A. BCd
B. Bcd
C. Abc
D. ABC
题目16
字符串
a1="AEIJING",a2="AEI",a3="AEFANG",a4="AEFI"中最大的是( )。
A. a4
B. a2
C. a3
D. a1
题目17
两个字符串相等的条件是(
)。
A. 两串的长度相等,并且两串包含的字符相同
B. 两串的长度相等
C. 两串的长度相等,并且对应位置上的字符相同
D. 两串包含的字符相同
题目18
一维数组A采用顺序存储结构,每个元素占用6个字节,第6个元素的存储地址为100,则该数组的首地址是( )。
A. 90
B. 70
C. 64
D. 28
题目19
一个非空广义表的表头(
)。
A. 只能是原子
B. 只能是子表
C. 可以是子表或原子
D. 不可能是原子
题目20
对稀疏矩阵进行压缩存储,可采用三元组表,一个10 行8列的稀疏矩阵A,其相应的三元组表共有6个元素,矩阵A共有(
)个零元素。
A. 72
B. 74
C. 10
D. 8
题目21
对稀疏矩阵进行压缩存储,可采用三元组表,一个10 行8列的稀疏矩阵A共有73个零元素,A的右下角元素为6,其相应的三元组表中的第7个元素是( )。
A. (7,8,10)
B. (10,8,7)
C. (7,10,8)
D. (10,8,6)
题目22
对一个栈顶指针为top的链栈进行入栈操作,通过指针变量p生成入栈结点,并给该 结点赋值a,则执行: p=(struct node *)malloc(sizeof(struct node);p->data=a;和( )。
A. top->next=p;p=top;
B. top=top->next;p=top;
C. p->next=top;top=p;
D. p->next=top;p=top;
题目23
头指针为head的带头结点的单向链表为空的判定条件是( )为真。
A. head->next!=NULL
B. head==NULL
C. head->next!=NULL
D. head->next==NULL
题目24
设有一个对称矩阵A,采用压缩存储的方式,将其下三角部分以行序主序存储到一维数组B中(数组下标从1开始),B数组共有55个元素,则该矩阵是(
)阶的对称矩阵。
A. 20
B. 10
C. 5
D. 15
题目25
数组a经初始化char a[ ]=“English”;a[1]中存放的是( )。
A. 字符n
B. 字符E
C. "E"
D. "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 空白 ;
p->data=x;
空白 ;
空白 ;
}
A.sizeof (struct node) top=p p‑>next=top
题目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 空白 ;
p->data=x;
p->next=NULL;
空白 ;
rear= 空白 ;
}
rear‑>next=p p(sizeof (struct node)