面試易錯題(整理)(2014迅雷筆試)

14、看以下代碼:
  1. class parent  
  2. {  
  3. public:  
  4.     virtual void output();  
  5. };  
  6. void parent::output()  
  7. {  
  8.     printf("parent!");  
  9. }  
  10.   
  11. class son : public parent  
  12. {  
  13. public:  
  14.     virtual void output();  
  15. };  
  16. void son::output()  
  17. {  
  18.     printf("son!");  
  19. }  
則以下程序段:
son s;
::memset(&s , 0 , sizeof(s));
parent& p = s;
p.output();
執行結果是()

A、parent!       B、son!       C、son!parent!           D、沒有輸出結果,程序運行出錯

11、看以下代碼:

  1. class A  
  2. {  
  3. public:  
  4.     ~A();  
  5. };  
  6. A::~A()  
  7. {  
  8.     printf("delete A ");  
  9. }  
  10.   
  11. class B : public A  
  12. {  
  13. public:  
  14.     ~B();  
  15. };  
  16. B::~B()  
  17. {  
  18.     printf("delete B ");  
  19. }  
請問執行以下代碼
A *pa = new B();
delete pa;
輸出的串是()A
A、delete A       B、delete B        C、delete B delete A          D、delete A delete B

12、文件長度是一個大於0的整數,用變量unsigned file_length; 來表示,把文件分成塊,每塊的長度也是一個大於0的整數,用變量unsigned block_length; 來表示,則文件被分成的塊數爲()
A、file_length/block_length                                            B、file_length/block_length+1         
C、(file_length+block_length-1)/block_length                D、((file_length-1)/block_length+1 

10、看以下代碼:
A *pa = new A[10];
delete pa;
則類A的構造函數和析構函數分別執行了幾次()
A、1   1          B、10   10          C、1   10                D、10   1

15、函數的局部變量所需存儲空間,是在哪裏分配的()
A、進程的數據段      B、進程的棧上    C、進程的堆上       D、以上都可以
1、已知一段文本有1382個字符,使用了1382個字節進行存儲,這段文本全部是由a、b、c、d、e這5個字符組成,a出現了354次,b出現了483次,c出現了227次,d出現了96次,e出現了232次,對這5個字符使用哈夫曼(Huffman)算法進行編碼,則以下哪些說法正確()
A、使用哈夫曼算法編碼後,用編碼值來存儲這段文本將花費最少的存儲空間
B、使用哈夫曼算法進行編碼,a、b、c、d、e這5個字符對應的編碼值是唯一確定的
C、使用哈夫曼算法進行編碼,a、b、c、d、e這5個字符對應的編碼值可以有多套,但每個字符編碼的位(bit)數是確定的
D、b這個字符的哈夫曼編碼值位數應該最短,d這個字符的哈夫曼編碼值位數應該最長

5、下面模板聲明中,哪些是非法的()
A、template<class Type>class C1;
B、template<class T,U , class V>class C2;
C、template<class C1 , typename C2>class C3{};
D、template<typename myT , class myT>class C4{};

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章