#CSPJDSR06. CSP-J 数据结构|R06 综合检测
CSP-J 数据结构|R06 综合检测
CSP-J 数据结构|R06 综合检测
训练重点: 结构体、指针、链表、栈、队列、循环队列、STL 容器与表达式综合
每题只有一个正确选项。建议按 CSP 初赛方式独立完成,程序阅读题必须在草稿纸上逐步模拟。
第 1 题
已知 Node *p 指向一个结点,要访问该结点成员 data,正确写法是( )。
{{ select(1) }}
p.datap->data*p.data&p.data
第 2 题
链表 10 -> 20 -> 30 中,pre 指向 10,p 指向 20。执行 pre->next=p->next; delete p; 后链表变为( )。
{{ select(2) }}
- 10 -> 20
- 10 -> 30
- 20 -> 30
- 只剩 30
第 3 题
执行下面代码后输出为( )。
stack<int> s;
s.push(1);
s.push(4);
s.push(7);
s.pop();
cout << s.top();
{{ select(3) }}
- 1
- 4
- 7
- 无法确定
第 4 题
执行下面代码后输出为( )。
queue<int> q;
q.push(2); q.push(6); q.push(9);
q.pop();
cout << q.front() << " " << q.back();
{{ select(4) }}
2 96 96 69 6
第 5 题
循环队列数组长度为 N,采用“空出一个位置”的方式。下列哪个条件表示队满?
{{ select(5) }}
front==rear(rear+1)%N==frontrear==Nfront==0
第 6 题
执行下面代码后,s.size() 为( )。
set<int> s={2,5};
s.insert(5);
s.insert(1);
s.erase(2);
{{ select(6) }}
- 1
- 2
- 3
- 4
第 7 题
执行下面代码后,mp.size() 为( )。
map<int,int> mp;
mp[3]++;
mp[3]++;
mp[5];
{{ select(7) }}
- 1
- 2
- 3
- 5
第 8 题
执行下面代码后,a[1] 为( )。
vector<int> a={4,1,3};
sort(a.begin(),a.end());
{{ select(8) }}
- 1
- 3
- 4
- 下标越界
第 9 题
中缀表达式 a*(b+c) 对应的后缀表达式是( )。
{{ select(9) }}
ab*c+abc+*ab+c**a+bc
第 10 题
下面程序最终输出是( )。
stack<int> s;
queue<int> q;
for(int i=1;i<=4;i++) s.push(i);
while(!s.empty()){ q.push(s.top()); s.pop(); }
while(!q.empty()){ cout << q.front() << " "; q.pop(); }
{{ select(10) }}
1 2 3 44 3 2 11 4 2 34 1 3 2
作答要求
- 栈题:画清 栈底 / 栈顶。
- 队列题:标清 队首 / 队尾。
- 循环队列:每次移动都写出取模后的下标。
- 链表题:逐句修改
next箭头,不要只靠心算。 - STL 题:特别注意函数是否会改变容器内容。
粤公网安备44195502000252号