经过下列栈的运算后EmptyStack(s)的值是() InitStack(s);Push(s,a);Push(s,b);Pop(s,x);Pop(s,x) ;
第1题:
设栈的存储空间为S(1:m),初始状态为top=m+1。经过一系列入栈与退栈操作后,top=m。现又在栈中退出一个元素后,栈顶指针top值为()。
A.m+1
B.0
C.m-1
D.产生栈空错误
第2题:
此题为判断题(对,错)。
第3题:
下列叙述中,正确的是( )。
A.入栈运算只需将新元素插到栈顶指针指向的位置
B.出栈运算只需将栈顶元素赋给一个指定变量
C.出栈运算与读栈顶元素是相同的操作
D.读栈顶元素不删除栈顶元素
第4题:
一个栈(Stack)对象有三种状态:S1——栈空;S2——栈非空也非满;S3——栈满。则各个状态的条件如下:
S1:(t0)创建栈对象时初始化,这是系统做的
(t1)在S2状态下执行置空运算setEmpty()
(t2)在S3状态下执行置空运算setEmpty()
(t3)在S2状态下执行出栈运算Pop()
S2:(t4)在S1状态下执行进栈运算Push()
(t5)在S3状态下执行出栈运算Pop()
S3:(t6)在S2状态下执行进栈运算Push()
为简化问题,假设栈Stack的容量为2,栈元素的数据类型为整数。
根据题意,画出栈对象的状态迁移图;

第5题:
下列选项中,不是关于栈的基本运算的叙述是______。
A.从栈顶删除一个元素
B.判断一个栈是否为空
C.在栈中的第i个元素之前插入一个新元素
D.读取栈顶元素的值
第6题:
设栈的存储空间为S(1:m),初始状态为top=m+1。经过一系列入栈与退栈操作后,top=1。现又要将一个元素进栈,栈顶指针t叩值变为( )。
A.发生栈满的错误
B.2
C.m
D.0
第7题:
设栈的顺序存储空间为S(1:m),初始状态为top=m+1。现经过一系列入栈与退栈运算后,top=20,则当前栈中的元素个数为()。
A.30
B.20
C.m-19
D.m-20
第8题:
第9题:
4个元素进S栈的顺序是A、B、C、D,进行两次Pop(S,x)操作后,栈顶元素的值是()。
第10题:
f
c
a
b
第11题:
A
B
C
D
第12题:
a
b
1
0
第13题:
经过下列栈的操作后,GetTop(ST)的值是()。InitStack(ST);push(ST,'a');push(ST,'b');pop(ST,x);
A、A
B、B
C、1
D、2
第14题:
AlnitStack(S)
BPush(S,X)
CPop(S)
Dempty(S)
第15题:
假定栈用顺序的方式存储,栈类型stack定义如下:
TYPE stack=RECORD
A: ARRAY[1..M0OF datatype;
t:0..M0;
END;
下面是栈的一种基本运算的实现:
PROCEDURE xxxx(VAR s:stack)
BEGIN
IF s.t=0
THEN print('underflow')
ELSE s.t:=s.t-1;
END;
请问这是栈的哪种基本运算?( )。
A) 栈的推入
B) 栈的弹出
C) 读栈顶元素
D) 将栈置为空栈
A.
B.
C.
D.
第16题:
阅读以下说明和C函数,将(1)~(5)空缺处的字句填写完整。
[说明]
计算机在处理算术表达式时,首先将其转换为后缀表达式。例如,表达式“46+5*120-37)”的后缀表达式形式为“46 5 120 37-*+”。
计算后缀表达式时,从左至右扫描后缀表达式:若遇到运算对象,则压入栈中;遇到运算符,则从栈中弹出相关运算对象进行计算,并将运算结果压入栈中。重复以上过程,直到后缀表达式扫描结束。例如,后缀表达式“46 5 120 37-*+”的计算过程如下:
a.依次将46、5、120、37压入栈中;
b.遇到“-”,取出37、120,计算120-37=83,将其压入栈中;
c.遇到“*”,取出83、5,计算5×83=415,将其压入栈中;
d.遇到“+”,取出415、46,计算46+415=461,将其压入栈中;
e.表达式结束,则计算过程完成。
函数computing(char expr[],int*result)的功能是基于栈计算后缀形式的表达式(以串形式存入字符数组 expr)的值,并通过参数result返回该值。函数的返回值为-1/0,分别表示表达式有/无错误。假设表达式中仅包含数字、空格和算术运算符号,其中所有项均以空格分隔,且运算符仅包含加(“+”)、减(“-”)、乘(“*”)、除(“\”)。
函数computing中所用栈的基本操作的函数原型说明如下。
● void InitStack(STACK*s):初始化栈。
● void Push(STACK*s,int e):将一个整数压栈,栈中元素数目增1。
● void Pop(STACK*s):栈顶元素出栈,栈中元素数目减1。
● int Top(STACK s):返回非空栈的栈顶元素值,栈中元素数目不变。
● int IsEmpty(STACKs):若s是空栈,则返回1;否则返回0。
[C函数]

(2)取得数字字符“7” (ASCII码值为55)。
(3)取得数字字符“5” (ASCII码值为53)。
以下程序代码用于将一个数字字符串转换为对应的整数存入tnum显然tnum的初始值应为0。
因此(2)空缺处应填入“0”。对于(3)空缺所在表达式的功能是:将数字字符转换为数值因此 (3)空缺处填入“*ptr-48”。
(4)空缺处用于将转换所得的数值tnum压入栈顶根据题目中Push的原型“void Push(STACK*sint e)”调用时第一个实际参数是STACK类型变量的地址第二个实际参数是一个整数因此(4)空缺处填入“&stnum”。
由于函数computing(char expr[]int*result)通过参数result返回该表达式的值因此需要将存在栈顶的运算结果赋值给result指向的整型变量即(5)空缺处填入“*result”。
本试题目还考查了参数传递知识读者可通过上机实践加强基本概念的理解以及C程序设计能力的培养。
(2)取得数字字符“7” (ASCII码值为55)。
(3)取得数字字符“5” (ASCII码值为53)。
以下程序代码用于将一个数字字符串转换为对应的整数存入tnum,显然,tnum的初始值应为0。
因此,(2)空缺处应填入“0”。对于(3)空缺所在表达式的功能是:将数字字符转换为数值,因此 (3)空缺处填入“*ptr-48”。
(4)空缺处用于将转换所得的数值tnum压入栈顶,根据题目中Push的原型“void Push(STACK*s,int e)”,调用时第一个实际参数是STACK类型变量的地址,第二个实际参数是一个整数,因此,(4)空缺处填入“&s,tnum”。
由于函数computing(char expr[],int*result)通过参数result返回该表达式的值,因此需要将存在栈顶的运算结果赋值给result指向的整型变量,即(5)空缺处填入“*result”。
本试题目还考查了参数传递知识,读者可通过上机实践加强基本概念的理解,以及C程序设计能力的培养。
第17题:
已知关系R和S见表,则关系S是关系R经过下列( )的结果。

A.连接运算
B.选择运算
C.投影运算
D.除运算
第18题:
在下列栈的基本运算中,不是加工型运算的是______。
A.初始化
B.进栈
C.退栈
D.判栈空
第19题:
已知关系R和S,则关系S是关系R经过下列______的结果。

A.联接运算
B.选择运算
C.投影运算
D.除运算
第20题:
利用两个栈S1和S2模拟一个队列,如何利用栈的运算实现队列的插入和删除操作,请简述算法思想。
第21题:
顺序栈的上溢是指()。
第22题:
30
20
m-19
m-20
第23题:
栈满时作退栈运算
栈满时作进栈运算
栈空时作退栈运算
栈空时作进栈运算