#CSPJ2R05. 第二节-05 栈队列链表综合检测
第二节-05 栈队列链表综合检测
第二节-05 栈队列链表综合检测
CSP-J 第一轮专项训练。 本题全部为单项选择题,提交后自动判分。
1.
“撤销最近一次操作”最适合使用( )。
{{ select(1) }}
- A. 栈
- B. 队列
- C. 普通数组排序
- D. 二分查找
2.
“按到达先后叫号办理”最适合使用( )。
{{ select(2) }}
- A. 栈
- B. 队列
- C. 递归
- D. 二叉堆
3.
阅读程序:
stack<int> s;
s.push(2);
s.push(4);
s.push(6);
s.pop();
cout << s.top();
输出为( )。
{{ select(3) }}
- A. 2
- B. 4
- C. 6
- D. 0
4.
阅读程序:
queue<int> q;
q.push(2);
q.push(4);
q.push(6);
q.pop();
cout << q.front();
输出为( )。
{{ select(4) }}
- A. 2
- B. 4
- C. 6
- D. 0
5.
对于括号串 ([{}]),从左到右扫描并用栈匹配,扫描结束时栈应当( )。
{{ select(5) }}
- A. 含 1 个元素
- B. 含 2 个元素
- C. 为空
- D. 一定发生溢出
6.
固定入栈顺序为 1、2、3、4,下列出栈序列一定合法的是( )。
{{ select(6) }}
- A. 4 3 2 1
- B. 4 2 3 1
- C. 3 1 4 2
- D. 2 4 1 3
7.
循环队列长度为 6,当前位置 5 连续向后移动 3 次,最终位置是( )。
{{ select(7) }}
- A. 0
- B. 1
- C. 2
- D. 3
8.
队列初始为 [1,2,3,4],连续两次执行“队首出队后立即重新入队”,结果为( )。
{{ select(8) }}
- A. [1,2,3,4]
- B. [2,3,4,1]
- C. [3,4,1,2]
- D. [4,3,2,1]
9.
链表 1 -> 4 -> 7 -> null 中,p 初始指向 1,执行一次 p=p->next 后,p->next->data 为( )。
{{ select(9) }}
- A. 1
- B. 4
- C. 7
- D. 不存在
10.
原链表 A -> B -> C,p 指向 A,执行 x->next=p->next; p->next=x; 后结构为( )。
{{ select(10) }}
- A. X -> A -> B -> C
- B. A -> X -> B -> C
- C. A -> B -> X -> C
- D. A -> B -> C -> X
11.
原链表 2 -> 4 -> 6 -> null,p 指向 2,执行 p->next=p->next->next; 后,从 head 能遍历到的序列是( )。
{{ select(11) }}
- A. 2 4 6
- B. 2 6
- C. 4 6
- D. 6
12.
如果一个普通单链表有 n 个结点,访问第 n 个结点通常需要( )。
{{ select(12) }}
- A. O(1)
- B. O(log n)
- C. O(n)
- D. O(n²)
13.
阅读程序:
queue<int> q;
for (int i=1;i<=4;++i) q.push(i);
int x=q.front(); q.pop();
q.push(x+10);
cout << q.back();
输出为( )。
{{ select(13) }}
- A. 4
- B. 10
- C. 11
- D. 14
14.
阅读程序:
stack<int> s;
for (int i=1;i<=5;++i)
if (i%2) s.push(i);
int ans=0;
while(!s.empty()){
ans += s.top();
s.pop();
}
cout << ans;
输出为( )。
{{ select(14) }}
- A. 5
- B. 6
- C. 9
- D. 15
15.
下列说法正确的是( )。
{{ select(15) }}
- A. 栈和队列都只能保存整数
- B. 队列的
pop()删除队尾 - C. 普通单链表尾结点的
next通常为nullptr - D. 单链表可以像数组一样通过下标 O(1) 访问任意结点
相关
在下列比赛中:
粤公网安备44195502000252号