一、题型
单选10+不定项15+编程3
二、单选
1、关于c++的异常处理机制以下说法错误的是(A)
A、一次异常处理主要由“抛出”->”捕获“->”回退“等步骤构成。
B、异常被抛出、捕获并处理后,所有对象都会被析构,它们所占用的空间会被回收。
C、异常处理本质上是另外一种返回机制。
D、一个异常被抛出时,会引发c++的异常捕获机制。
解析:异常被抛出、捕获并处理后,所有生命期已结束的对象都会被正确地析构,它们所占用的空间会被正确地回收。
2、
#include <vector>
#include <iostream>
#include <map>
#include <string>
using namespace std;
void func(multimap<int,string>m){
for(auto it=m.begin();it!=m.end();){
cout<<it->second<<endl;
for(auto tempIt=++it;tempIt!=m.end();){
if(tempIt->first){
tempIt=m.erase(tempIt);
}
else{
tempIt++;
}
}
}
}
int main(){
multimap<int,string> m={{1,"das"},{2,"sdsd"}};
func(m);
return 0;
}
结果:
das
sdsd
das
3、某进程创建的若干个线程,这些线程不能共享的是(B)
A、全局变量
B、某线程的栈指针
C、进程打开的文件
D、进程的堆空间