一、选择题
1、以下代码的输出是(B)
std::map<int,int> m;
m[0] = 1;
m[1] = 2;
m[2] = 3;
m[3] = 4;
m[4] = 5;
for(auto it = m.begin(); it != m.end;)
{
if(it->second ==2)
{
m.erase(it++);
printf("map after erase:%d\n",it->second);
}
else
{
++it;
}
}
std:vector<int> v;
v.push_back(1);
v.push_back(2);
v.push_back(3);
v.push_back(4);
v.push_back(5);
for(auto it = v.begin();it != v.end();)
{
if(*it == 2)
{
v.erase(it++);
printf("vector after erase:%d\n",*it);
}
else
{
++it;
}
}
A
map after erase:3
vector after erase:3
B
map after erase:3
vector after erase:4
C
map after erase:4
vector after erase:4
D
map after erase:4
vector after erase:3
2、64位系统中以下结构体的大小为(C)
typedef struct
{
unsigned int rztFlags;
unsigned int nResultinfo;
unsigned char* pResultInfo;
int reserved[16];
}BMD_DataInfo;
A 24
B 76
C 80
D 88
分析: 正确答案C,如果是 32 位系统 sizeof(BMD_DataInfo) = 76;如果是 64 位系统 sizeof(BMD_DataInfo) = 80;
3、下列哪项不是进程的标准状态(C)
A 运行态
B 就绪态
C 调度态
D 等待态
分析: 进程的标准状态只有就绪态、运行态和等待态
4、32位系统上,以下程序的运行结果是(B)
void count(int* a,int b)
{
static int c = 0;
*a = ++c + *a + b;
return;
}
int main(void)
{
char* str = NULL;
int i,sum = 0;
str = (char*) malloc(16);
memset(str,'0',16);
strcpy(str,"12345678")