搜狗實習筆試題與解析

2021-08-31 17:55:53 字數 662 閱讀 2030

1.為什麼基類的析構函式是虛函式?

答:編譯器總是根據型別來呼叫類成員函式。但是乙個派生類的指標可以安全地轉化為乙個基類的指標。這樣刪除乙個基類的指標的時候,c++不管這個指標指向乙個基類物件還是乙個派生類的物件,呼叫的都是基類的析構函式而不是派生類的。如果你依賴於派生類的析構函式的**來釋放資源,而沒有過載析構函式,那麼會有資源洩漏。所以建議的方式是將析構函式宣告為虛函式。如果你使用mfc,並且以cobject或其派生類為基類,那麼mfc已經為你做了這件事情;cobject的析構函式是虛函式。乙個函式一旦宣告為虛函式,那麼不管你是否加上virtual 修飾符,它在所有派生類中都成為虛函式。但是由於理解明確起見,建議的方式還是加上virtual 修飾符。

2.union和sturct區別(是以選擇題形式出現,乙個具體的例子)

答:1. struct和union都是由多個不同的資料型別成員組成, 但在任何同一時刻, union中只存放了乙個被選中的成員, 而struct的所有成員都存在。在struct中,各成員都占有自己的記憶體空間,它們是同時存在的。乙個struct變數的總長度等於所有成員長度之和。在union中,所有成員不能同時占用它的記憶體空間,它們不能同時存在。union變數的長度等於最長的成員的長度。

2.對於union的不同成員賦值, 將會對其它成員重寫, 原來成員的值就不存在了, 而對於struct的不同成員賦值是互不影響的。

搜狗筆試題

乙個長度為n的陣列a 0 a 1 a n 1 現在更新陣列的名個元素,即a 0 變為a 1 到a n 1 的積 a 1 變為a 0 和a 2 到a n 1 的積,a n 1 為a 0 到a n 2 的積。程式要求 要求具有線性複雜度。不能使用除法運算子。演算法思想 設共有n個數 n 7 建立乙個陣列...

搜狗筆試題

1 下面 中for迴圈共執行了多少次?unsigned short i,j for i 0,j 2 i j i 5,j 7 unsigned short占用2個位元組,當資料範圍到頭了 2 16 1 就又從0開始計數了,這個其實就是兩輛汽車行駛在乙個圓圈裡的汽車追及問題。乙個速度為5,乙個速度為7,...

搜狗筆試題

搜狗 1,有n n個正方形格仔,每個格仔裡有正數或者0,從最左上角往最右下角走,只能向下和向右走。一共走兩次,把所有經過的格仔的數加起來,求最大值。且兩次如果經過同乙個格仔,則該格仔的數隻加一次。思路 搜尋 一共搜 2n 2 步,每一步有四種走法。考慮不相交等條件可以剪去很多枝。複雜度為o 4 n ...