面試訓練海濤56題

2021-06-09 00:36:15 字數 994 閱讀 6806

問題(16):執行如下的c++**,輸出是什麼?

class a}; 

class b: public a};

int main()

思路;開始一眼看出這題很基本當然 雖然是a是 a類的引用,但是確指向的是類b。這裡a.fun()由於是虛函式 通過虛函式指標在虛函式表裡面找到 fun函式

所以輸出b:fun with number沒有問題,但是至於函式裡面的形式引數的話,我就拿不準了。

海濤日誌裡面分析的十分透徹,應該輸出10

為什麼你,濤哥裡面說 因為預設引數實在編譯期間處理的,編譯期間 a a是a類,但在執行中,虛函式動態的指向b類的fun函式,但是number的值為10

因此 輸出

b::fun with number  10
執行如下的

c**,輸出是什麼?

char* getstring1()

char* getstring2()

int _tmain(int argc, _tchar* argv)

陣列p為函式的區域性變數,退出函式空間立即**

*p是字串常量存放在常量資料區,為全域性的

因此 getstring1 returns:一串亂碼

getstring2 returns:hello world

問題(

19)

執行下圖中

c**,輸出的結果是什麼

int _tmain(int argc, _tchar* argv)

str1,str2為陣列 要為其分配儲存空間,當然位址不同

「hello world」為字串常量,存放在常量資料區,當然*str3,和*str4指向的位址相同。它在記憶體中只有乙個拷貝

5 6思維訓練

a guest from the past 題解 暴力迴圈會超時。買玻璃瓶有返還,而塑料瓶沒有,應當優先考慮玻璃瓶。玻璃瓶的實際 為b c,但當前 要 b才能買。設買了n瓶,先減去最後一瓶的錢 不包括返還 然後前面的瓶一定能買下並且 為b c。然後剩餘的錢買塑料瓶即可。include using n...

56 合併區間(高頻題)

是否有重疊區間的問題,直接貪心思路,根據陣列的end或者start進行公升序排序,再看看start和end的大小關係來判斷是否重疊。像435題就是一樣的型別。不過本題要注意,一定要根據start的公升序排列,不能根據end來排列,不然就會出現下圖所示的情況 否則,將這兩個區間合併為 x1,max x...

構造題訓練

由於noip之前沒有怎麼做過構造,導致吃了大虧。構造 互動 基本問題 有一些數,假設有 n 個,有 m 個被標記,我們可以詢問乙個集合。我們可以得知這個集合內是否存在被標記的數。要求次數 o m log 2n 做法1 分治 考慮分治到當前區間 l,r 詢問 l,r 有沒有被標記的數。如果沒有,則返回...