当前位置:首页 > 开发 > 编程语言 > 编程 > 正文

栈和队列:选择题

发表于: 2012-08-07   作者:128kj   来源:转载   浏览:
摘要: 1. 对于栈操作数据的原则是(   )。    A. 先进先出    B. 后进先出    C. 后进后出     D. 不分顺序 2. 在作进栈运算时,应先判别栈是否(  ①  ),在作退栈运算时应先判别栈是否( ② &
1. 对于栈操作数据的原则是(   )。
   A. 先进先出    B. 后进先出    C. 后进后出     D. 不分顺序

2. 在作进栈运算时,应先判别栈是否(  ①  ),在作退栈运算时应先判别栈是否( ②   )。当栈中元素为n个,作进栈运算时发生上溢,则说明该栈的最大容量为(  ③  )。
为了增加内存空间的利用率和减少溢出的可能性,由两个栈共享一片连续的内存空间时,应将两栈的 ( ④   )分别设在这片内存空间的两端,这样,当(  ⑤  )时,才产生上溢。
①, ②:  A. 空         B. 满          C. 上溢        D. 下溢     
③:     A. n-1        B. n           C. n+1         D.  n/2
④:     A. 长度       B. 深度        C. 栈顶        D. 栈底
⑤:     A. 两个栈的栈顶同时到达栈空间的中心点.
        B. 其中一个栈的栈顶到达栈空间的中心点.
        C. 两个栈的栈顶在栈空间的某一位置相遇.
        D. 两个栈均不空,且一个栈的栈顶到达另一个栈的栈底.

3. 一个栈的输入序列为123…n,若输出序列的第一个元素是n,输出第i(1<=i<=n)个元素是(    )。
  A. 不确定          B. n-i+1          C.  i           D. n-i

4. 若一个栈的输入序列为1,2,3,…,n,输出序列的第一个元素是i,则第j个输出元素是(     )。
  A. i-j-1          B. i-j            C. j-i+1      D. 不确定的

5. 若已知一个栈的入栈序列是1,2,3,…,n,其输出序列为p1,p2,p3,…,pN,若pN是n,则pi是(    )。
    A. i            B. n-i        C. n-i+1       D. 不确定

6. 有六个元素6,5,4,3,2,1 的顺序进栈,问下列哪一个不是合法的出栈序列?(    )
  A. 5 4 3 6 1 2     B. 4 5 3 1 2 6     C. 3 4 6 5 2 1    D. 2 3 4 1 5 6

7. 设栈的输入序列是1,2,3,4,则(  )不可能是其出栈序列。
  A. 1,2,4,3,        B. 2,1,3,4,        C. 1,4,3,2,
  D. 4,3,1,2,        E. 3,2,1,4,

8. 一个栈的输入序列为1 2 3 4 5,则下列序列中不可能是栈的输出序列的是(    )。
   A. 2 3 4 1 5     B. 5 4 1 3 2     C. 2 3 1 4 5      D. 1 5 4 3 2

9. 设一个栈的输入序列是 1,2,3,4,5,则下列序列中,是栈的合法输出序列的是(    )。
A. 5 1 2 3 4        B. 4 5 1 3 2      C. 4 3 1 2 5        D. 3 2 1 5 4

10. 某堆栈的输入序列为a, b,c ,d,下面的四个序列中,不可能是它的输出序列的是(    )。
    A. a,c,b,d         B. b, c,d,a    C. c, d,b, a         D. d, c,a,b

11. 设abcdef以所给的次序进栈,若在进栈操作时,允许退栈操作,则下面得不到的序列为(    )。
  A.fedcba       B. bcafed        C. dcefba        D. cabdef

12. 设有三个元素X,Y,Z顺序进栈(进的过程中允许出栈),下列得不到的出栈排列是(     )。
  A.XYZ           B. YZX            C. ZXY            D. ZYX

13. 输入序列为ABC,可以变为CBA时,经过的栈操作为(    )
    A. push,pop,push,pop,push,pop        B. push,push,push,pop,pop,pop
    C. push,push,pop,pop,push,pop        D. push,pop,push,push,pop,pop

14. 若一个栈以向量V[1..n]存储,初始栈顶指针top为n+1,则下面x进栈的正确操作是(    )。
  A.top:=top+1;  V [top]:=x            B.  V [top]:=x; top:=top+1   
  C. top:=top-1;  V [top]:=x            D.  V [top]:=x; top:=top-1

15. 若栈采用顺序存储方式存储,现两栈共享空间V[1..m],top[i]代表第i个栈( i =1,2)栈顶,栈1的底在v[1],栈2的底在V[m],则栈满的条件是(    )。
  A. |top[2]-top[1]|=0   B. top[1]+1=top[2]    C. top[1]+top[2]=m     D. top[1]=top[2]

16. 栈在(    )中应用。
  A. 递归调用        B. 子程序调用       C. 表达式求值    D. A,B,C

17. 一个递归算法必须包括(    )。
  A. 递归部分      B. 终止条件和递归部分     C. 迭代部分      D.终止条件和迭代部分

18. 执行完下列语句段后,i值为:(    )
     int   f(int x){
       return  ((x>0) ? x* f(x-1):2);
     }
      int i  ;
      i =f(f(1));
  A.2            B. 4          C. 8           D. 无限递归

19. 表达式a*(b+c)-d的后缀表达式是(    )。
  A.abcd*+-     B. abc+*d-    C. abc*+d-     D. -+*abcd

20. 表达式3* 2^(4+2*2-6*3)-5求值过程中当扫描到6时,对象栈和算符栈为(   ),其中^为乘幂 。
  A. 3,2,4,1,1;(*^(+*-     B. 3,2,8;(*^-    C. 3,2,4,2,2;(*^(-      D. 3,2,8;(*^(-

21. 设计一个判别表达式中左,右括号是否配对出现的算法,采用(    )数据结构最佳。
  A.线性表的顺序存储结构       B. 队列     C. 线性表的链式存储结构      D. 栈

22. 用链接方式存储的队列,在进行删除运算时(    )。
   A. 仅修改头指针   B. 仅修改尾指针    C. 头、尾指针都要修改    D. 头、尾指针可能都要修改

23. 用不带头结点的单链表存储队列时,其队头指针指向队头结点,其队尾指针指向队尾结点,则在进行删除操作时(     )。
  A.仅修改队头指针          B. 仅修改队尾指针
  C. 队头、队尾指针都要修改  D. 队头,队尾指针都可能要修改

24. 递归过程或函数调用时,处理参数及返回地址,要用一种称为(    )的数据结构。
  A.队列             B.多维数组           C.栈             D. 线性表

25. 假设以数组A[m]存放循环队列的元素,其头尾指针分别为front和rear,则当前队列中的元素个数为(    )。
  A.(rear-front+m)%m     B.rear-front+1      C.(front-rear+m)%m      D.(rear-front)%m

26. 循环队列A[0..m-1]存放其元素值,用front和rear分别表示队头和队尾,则当前队列中的元素数是(    )。
  A. (rear-front+m)%m      B. rear-front+1    C.  rear-front-1    D.  rear-front

27. 循环队列存储在数组A[0..m]中,则入队时的操作为(    )。
    A. rear=rear+1               B. rear=(rear+1) mod (m-1)
    C. rear=(rear+1) mod m       D. rear=(rear+1)mod(m+1)

28. 若用一个大小为6的数组来实现循环队列,且当前rear和front的值分别为0和3,当从队列中删除一个元素,再加入两个元素后,rear和front的值分别为多少?(  )
    A. 1和 5         B. 2和4          C. 4和2         D. 5和1 

29. 已知输入序列为abcd 经过输出受限的双向队列后能得到的输出序列有(    )。
    A. dacb     B. cadb      C. dbca       D. bdac     E. 以上答案都不对 

30. 若以1234作为双端队列的输入序列,则既不能由输入受限的双端队列得到,也不能由输出受限的双端队列得到的输出序列是(   )。
    A. 1234         B. 4132          C. 4231         D. 4213

31. 最大容量为n的循环队列,队尾指针是rear,队头是front,则队空的条件是  (    )。
     A. (rear+1) MOD n=front                   B. rear=front                                                         
     C.rear+1=front                           D. (rear-l) MOD n=front

32. 栈和队列的共同点是(    )。
    A. 都是先进先出                        B. 都是先进后出  
    C. 只允许在端点处插入和删除元素        D. 没有共同点

33. 栈的特点是(  ①  ),队列的特点是(  ②  ),栈和队列都是(  ③  )。若进栈序列为1,2,3,4 则(  ④  )不可能是一个出栈序列(不一定全部进栈后再出栈);若进

队列的序列为1,2,3,4 则(  ⑤  )是一个出队列序列。
①, ②: A. 先进先出          B. 后进先出        C. 进优于出      D. 出优于进
③: A.顺序存储的线性结构     B.链式存储的线性结构 
    C.限制存取点的线性结构   D.限制存取点的非线性结构
④, ⑤: A. 3,2,1,4    B. 3,2,4,1    C. 4,2,3,1   D. 4,3,2,1    F. 1,2,3,4    G. 1,3,2,4

34. 栈和队都是(    )
  A.顺序存储的线性结构       B. 链式存储的非线性结构
  C. 限制存取点的线性结构     D. 限制存取点的非线性结构

35. 设栈S和队列Q的初始状态为空,元素e1,e2,e3,e4,e5和e6依次通过栈S,一个元素出栈后即进队列Q,若6个元素出队的序列是e2,e4,e3,e6,e5,e1则栈S的容量至少应该是(    )。
   A. 6          B. 4          C. 3          D. 2
36. 用单链表表示的链式队列的队头在链表的(    )位置。
  A.链头             B.链尾               C.链中

37. 依次读入数据元素序列{a,b,c,d,e,f,g}进栈,每进一个元素,机器可要求下一个元素进栈或弹栈,如此进行,则栈空时弹出的元素构成的序列是以下哪些序列?
A.{d ,e,c,f,b,g,a}     B. {f,e,g,d,a,c,b}
C. {e,f,d,g,b,c,a}      D. {c,d,b,e,f,a,g}

参考答案:
1、B   2、BABDC  3、B 4、D 5、D 6、C  7、D  8、B 9、D 10、D 11、D 12、C
13、B 14、C 15、B 16、D 17 B 18、B 19、B 20、D 21、D 22、D 23、D 24、C
25、A 26、A 27、D 28、B 29、B 30、C 31、B 32、C 33、BACCF 34、C
35、C 36、A  37、AD

栈和队列:选择题

  • 0

    开心

    开心

  • 0

    板砖

    板砖

  • 0

    感动

    感动

  • 0

    有用

    有用

  • 0

    疑问

    疑问

  • 0

    难过

    难过

  • 0

    无聊

    无聊

  • 0

    震惊

    震惊

推荐文章
编辑推荐
版权所有 IT知识库 CopyRight © 2009-2015 IT知识库 IT610.com , All Rights Reserved. 京ICP备09083238号