#1986. L3-06 阶段复习与测评

L3-06 阶段复习与测评

一、单选题 12题

第 1 题

以下关于栈和队列的代码,执⾏后输出是( )。

{{ select(1) }}

  • 1 3
  • 3 1
  • 3 3
  • 1 1

第 2 题

在一个循环队列中,front是指向队头的指针,rear指向队尾的指针,队列最大容量为maxSize 。判断队列已满的条件是( )。

{{ select(2) }}

  • rear == front
  • (rear + 1) % maxSize == front
  • (rear - 1 + maxSize) % maxSize == front
  • (rear - 1) == front

第 3 题

以下代码实现了循环队列的哪种操作?( )

{{ select(3) }}

  • ⼊队
  • 出队
  • 查看队⾸元素
  • 判断队列是否为空

第 4 题

阅读以下代码,下⾯哪⼀项是正确的?( )

{{ select(4) }}

  • 栈 s 的输出顺序是 1 2 3 4 5 ,队列 q 的输出顺序是 5 4 3 2 1 。
  • 栈 s 的输出顺序是 5 4 3 2 1 ,队列 q 的输出顺序是 1 2 3 4 5 。
  • 栈 s 的输出顺序是 1 2 3 4 5 ,队列 q 的输出顺序是 1 2 3 4 5 。
  • 栈 s 的输出顺序是 1 2 3 4 5 ,队列 q 的输出顺序是 1 2 3 4 5 ,程序不会正常执行。

第 5 题

对于入栈序列为a、b、c、d、e、f、g的序列,下列( )不是合法的出栈序列。

{{ select(5) }}

  • a、b、c、d、e、f、g
  • a、d、c、b、e、g、f
  • a、d、b、c、g、f、e
  • g、f、e、d、c、b、a

第 6 题

有6个元素,按照 6,5,4,3,2,1 的顺序进⼊栈S,下列的出栈序列是不能出现的( )

{{ select(6) }}

  • 5,4,3,6,1,2
  • 4,5,3,1,2,6
  • 3,4,6,5,2,1
  • 2,3,4,1,5,6

第 7 题

采⽤如下代码实现检查输⼊的字符串括号是否匹配,横线上应填⼊的代码为( )

{{ select(7) }}

  • top = st.top(); st.pop();
  • st.pop(); top = st.top();
  • st.pop(); top = st.front();
  • top = st.front(); st.pop();

第 8 题

下⾯代码判断队列的第⼀个元素是否等于,并删除该元素,横向上应填写( )。

{{ select(8) }}

  • is_equal = (q.front() == a);
  • is_equal = (q.front() == a); q.pop();
  • q.pop(); is_equal = (q.front() == a);
  • q.pop(); is_equal = (q.top() == a);

第 9 题

在栈数据结构中,元素的添加和删除是按照什么原则进⾏的?() {{ select(9) }}

  • 先进先出
  • 先进后出
  • 最⼩值先出
  • 随机顺序

第 10 题

要实现将⼀个输⼊的⼗进制正整数转化为⼆进制表⽰,下⾯横线上应填⼊的代码为( )。

{{ select(10) }}

  • cout << bin.top(); bin.pop();
  • bin.pop(); cout << bin.top();
  • cout << bin.back(); bin.pop();
  • cout << bin.front(); bin.pop();

第 11 题

在队列中,元素的添加和删除是按照( )原则进⾏的。

{{ select(11) }}

  • 先进先出
  • 先进后出
  • 最⼩值先出
  • 随机进出

第 12 题

给定⼀个空栈,执⾏以下操作序列: 操作序列: push(1), push(2), push(3), pop(), pop(), push(4), push(5), pop() 最终栈中的元素是( )。

{{ select(12) }}

  • 1, 2
  • 1, 4, 5
  • 1, 2, 5
  • 1, 4

二、判断题 2 题

第 1 题

为了实现⼀个队列,使其出队操作( pop )的时间复杂度为O(1) 并且避免数组删除⾸元素的O(n) 问题,⼀ 种常见且有效的⽅法是使⽤环形数组,通过调整队⾸和队尾指针来实现。

{{ select(13) }}

  • T
  • F

第 2 题

栈的基本操作包括⼊栈(push)和出栈(pop)。

{{ select(14) }}

  • T
  • F

第 15 题

波兰表达式的求值不需要考虑运算符的优先级和括号。( )
{{ select(15) }}

  • T
  • F

第 16 题

对于波兰表达式 “* + 3 4 - 10 5”,其对应的中缀表达式为 “(3+4)*(10-5)”。( )
{{ select(16) }}

  • T
  • F