2021 数据结构与算法(天水师范学院)1465435458 最新满分章节测试答案
本答案对应课程为:点我自动跳转查看
本课程起止时间为:2021-08-23到2022-01-31
本篇答案更新状态:已完结
第3章 栈和队列 【Test】单元测试 – 栈和队列
1、 问题:经过以下栈运算后,x的值是( )。InitStack(s); Push(s,a); Push(s,b); Pop(s,x); GetTop(s,x);
选项:
A:a
B:b
C:1
D:0
答案: 【a】
2、 问题:若让元素1,2,3,4,5依次进栈,则出栈次序不可能出现在( )种情况。
选项:
A:5,4,3,2,1
B:2,1,5,4,3
C:4,3,1,2,5
D:2,3,5,4,1
答案: 【4,3,1,2,5】
3、 问题:若链栈采用无头结点的单链表存储,top指向栈顶。若想摘除栈顶结点,并将删除结点的值保存到x中,则应执行操作( )。
选项:
A:x=top->data;top=top->next;
B:top=top->link;x=top-> next;
C:x=top;top=top-> next;
D:x=top-> next;
答案: 【x=top->data;top=top->next;】
4、 问题:数组Q[n]用来表示一个循环队列,f为当前队列头元素的前一位置,r为队尾元素的位置,假定队列中元素的个数小于n,计算队列中元素个数的公式为( )。
选项:
A:r-f
B:(n+f-r)%n
C:n+r-f
D:n+r-f)%n
答案: 【n+r-f)%n】
5、 问题:设有一个递归算法如下 int fact(int n) { //n大于等于0
if(n<=0)
return 1;
else
return n*fact(n-1);
}则计算fact(n)需要调用该函数的次数为( )。
选项:
A:n-1
B:n
C:n+1
D:n+2
答案: 【n+1】
6、 问题:栈在 ( )中有所应用。
选项:
A:递归调用
B:函数调用
C:表达式求值
D:其他三个选项
答案: 【其他三个选项】
7、 问题:为解决计算机主机与打印机间速度不匹配问题,通常设一个打印数据缓冲区。主机将要输出的数据依次写入该缓冲区,而打印机则依次从该缓冲区中取出数据。该缓冲区的逻辑结构应该是( )。
选项:
A:栈
B:队列
C:线性表
D:有序表
答案: 【队列】
8、 问题:设栈S和队列Q的初始状态为空,元素e1、e2、e3、e4、e5和e6依次进入栈S,一个元素出栈后即进入Q,若6个元素出队的序列是e2、e4、e3、e6、e5和e1,则栈S的容量至少应该是( )。
选项:
A:2
B:3
C:4
D:6
答案: 【3】
9、 问题:若一个栈以一维数组V[1..n]存储,初始栈顶指针top设为n+1,则元素x进栈的正确操作是( )。
选项:
A:top–; V[top]=x;
B:top++; V[top]=x;
C:V[top]=x; top++;
D:V[top]=x; top–;
答案: 【top–; V[top]=x;】
10、 问题:设计一个判别表达式中左,右括号是否配对出现的算法,采用( )数据结构最佳。
选项:
A:线性表的顺序存储结构
B:线性表的链式存储结构
C:栈
D:队列
答案: 【栈】
11、 问题:用链式方式存储的队列,在进行删除运算时( )。
选项:
A:仅修改头指针
B:仅修改尾指针
C:头、尾指针都要修改
D:头、尾指针可能都要修改
答案: 【头、尾指针可能都要修改】
12、 问题:循环队列存储在数组A[0..m]中,则入队时的操作为( )。
选项:
A:rear=(rear+1)%(m+1)
B:rear=(rear+1)%(m-1)
C:rear=rear+1
D:rear=(rear+1)%m
答案: 【rear=(rear+1)%(m+1) 】
13、 问题:最大容量为n的循环队列,队尾指针是rear,队头是front,则队空的条件是( )。
选项:
A:(rear+1)%n==front
B:rear==front
C:rear+1==front
D:(rear-l)%n==front
答案: 【rear==front】
14、 问题:栈和队列的共同点是( )。
选项:
A:都是先进先出
B:都是先进后出
C:只允许在端点处插入和删除元素
D:没有共同点
答案: 【只允许在端点处插入和删除元素】
15、 问题:将递归算法转换成非递归算法时,通常要借助的数据结构是( )。
选项:
A:线性表
B:栈
C:队列
D:树
答案: 【栈】
16、 问题:一个递归算法必须包括( )。
选项:
A:递归部分
B:终止条件和递归部分
C:迭代部分
D:终止条件和迭代部分
答案: 【终止条件和递归部分】
17、 问题:执行完下列程序后,i的值为( )。int f (int x)
{
if (x > 0)
return x * f (x – 1);
else
return 2;
}
int i = f(f(1));
选项:
A:2
B:4
C:8
D:无限递归
答案: 【4】
18、 问题:下列算法的功能是:已知有n个自然数1,2,…,n存放在一维数组A[n]中,该递归算法输出这n个自然数的全排列。请在空白处选择正确的语句。#include
using namespace std;
void perm(int A[], int i, int n)
{
int j;
int temp;
if(i == 0) {
for (j = 0; j < n; j++)
printf (“%d”, A[j]);
printf (“”);
}
else {
for(j = 0; j <= i; j++) {
temp = A[i];
A[i] = A[j];
A[j] = temp;
__;
temp = A[i];
A[i] = A[j];
A[j] = temp;
}
}
}
/
例如,当a[] = {1, 2, 3, 4, 5}, i = 2, n = 5时,输出结果为:
23145
32145
31245
13245
21345
12345
/
选项:
A:perm(A, i-1, n-1)
本文章不含期末不含主观题!!
本文章不含期末不含主观题!!
支付后可长期查看
有疑问请添加客服QQ 2356025045反馈
如遇卡顿看不了请换个浏览器即可打开
请看清楚了再购买哦,电子资源购买后不支持退款哦