2009.9.12日上午
迅雷1筆試題
第一大題 15道單選題
1:int (*p)[3] p的含義是什麼
2:699個結點的完全二叉樹,有葉子節點多少個()
3: int,a=3,b=4,c=5,問下列哪些表達式的值不爲0
(考&& || 算符的優先級 & ^)
eg a&&b&&c
a-=3 || a++ || a--
a&b&c
a^b....
4:虛函數可不可以重載爲內聯?
5:關於vector<>初始化問題
下面那個是非法的`
vector<string> svec;
vector<vector<int>> ivvec;
vector<vector<string>> svvec( "hello" );
6:關於下列操作哪個複雜度爲o(1)
vector<>中插入元素, set中查找元素 hasp_map中查找元素 deque尾部刪除元素
7:引用可不可以被重複修改,一個引用這次引用這個,下次引用那個,就像一個指針可以指向不同的地方一樣
8:swap()的幾種實現形式 swap(int* x, int* y) swap(int&x, int&y)等
9:關於移位運算,移位後,補進的位是0還是1?
對於左移,無論算術左移(對應有符號數)還是邏輯左移(對應無符號數)都是補0
對於右移,算術右移(對應有符號數)補進符號位,邏輯右移補0;
也就是說,對於邏輯移位,左右移位都補0
對於算術移位,左移補0,右移補符號位。
int a = -8;
00421d8e mov dword ptr [a],0fffffff8h
unsigned b = 8;
00421d95 mov dword ptr [b],8
a = a>>3;
00421d9c mov eax,dword ptr [a]
00421d9f sar eax,3 // a是有符號數,使用算術右移 sar, 結果a = -1;
00421da2 mov dword ptr [a],eax
b = b>>3;
00421da5 mov eax,dword ptr [b]
00421da8 shr eax,3 // b是無符號數,使用邏輯右移 shr, 結果b = 1;
00421dab mov dword ptr [b],eax
5: 關於考關於模板
class ta
{
public:
ta(){ m_n = n; };
unsigned m_n;
};
unsigned n=3;ta<n> ta; // 該語句對不對? 不對,因爲模板參數是編譯器就確定的 n是局部變量不可以做參數
ta<3> ta; // 該語句對不對?對。
6:靠關於虛函數 - 這裏給的代碼其實是設計模式中的(策略模式)
class b