完美世界笔试题和面试题答案(完整版)(一)
小编如下为大家分享的是完美世界的完整版笔试题,大家敬请收藏和练习!
1、设有矩阵A1(30*35)、A2(35*15)、A3(15*5)、A4(5*10),M=A1*A2*A3*A4,下列组合计算M所需数乘次数最少的是:
A、(A1(A2(A3A4))) B、(A1((A2A3)A4)) C、((A1A2)(A3A4)) D、((A1(A2A3))A4) E、(((A1A2)A3)A4)
2、在32位机器上,有如下代码:
[cpp] view plaincopy
char array[] = "abcdefg";
printf("%d\n",sizeof(array)); // 8
char *p = "abcdefg";
printf("%d\n",sizeof(p)); // 4
void func(char p[10])
{
printf("%d\n",sizeof(p)); // 4
}
void func(char (&p)[10])
{
printf("%d\n",sizeof(p)); // 10
}
int main(void)
{
printf("%d\n",sizeof(char[2])); // 2
printf("%d\n",sizeof(char&)); // 1
return 0;
}
其输出结果依次为:
A、8 4 4 10 2 1
B、4 4 4 10 4 1
C、8 4 4 10 2 4
D、8 4 4 4 2 1
E、8 4 4 10 4 4
F、以上答案都不对
3、
[cpp] view plaincopy
CONTAINER::iterator iter , tempIt;
for(iter = cont.begin() ; iter != cont.end() ; )
{
tempIt = iter;
++iter;
cont.erase(tempIt);
}
假设cont是一个CONTAINER的示例,里面包含数个元素,那么当CONTAINER为:
1、vector
2、list
3、map
4、deque
会导致上面的代码片段崩溃的CONTAINER类型是:
A、1,4 B、2,3 C、1,3 D、2,4
正确答案选择A(第1个、第4个都是线性的类型存储,所以会存在崩溃)
4、以下代码
[cpp] view plaincopy
class classA
{
public:
classA()
{
clear();
}
virtual ~classA()
{
}
void clear()
{
memset(this , 0 , sizeof(*this));
}
virtual void func()
{
printf("func\n");
}
};
class classB : public classA
{
};
int main(void)
{
classA oa;
classB ob;
classA * pa0 = &oa;
classA * pa1 = &ob;
classB * pb = &ob;
oa.func(); // 1
ob.func(); // 2
pa0->func(); // 3
pa1->func(); // 4
pb->func(); // 5
return 0;
}
A、func func 执行出错 执行出错 func
B、执行出错 func 执行出错 执行出错 func
C、执行出错 执行出错 执行出错 执行出错 执行出错
D、func func func func func
E、func func 执行出错 func func
F、以上选项都不对