小編如下為大家分享的是完美世界的完整版筆試題,大家敬請收藏和練習!
1、設有矩陣A1(3035)、A2(3515)、A3(155)、A4(510),M=A1A2A3A4,下列組合計算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 執(zhí)行出錯 執(zhí)行出錯 func
B、執(zhí)行出錯 func 執(zhí)行出錯 執(zhí)行出錯 func
C、執(zhí)行出錯 執(zhí)行出錯 執(zhí)行出錯 執(zhí)行出錯 執(zhí)行出錯
D、func func func func func
E、func func 執(zhí)行出錯 func func
F、以上選項都不對