c 常見筆試題(4)

2021-07-28 03:48:56 字數 2203 閱讀 5876

40. 鍊錶題:乙個鍊錶的結點結構

struct

node  

;  typedef

struct

node node ; 

(1)已知鍊錶的頭結點head,寫乙個函式把這個鍊錶逆序 ( intel)

node * reverselist(node *head) 

//鍊錶逆序

p2->next = p1 ;  

head = p2 ;  

return

head ;  

}

(2)已知兩個鍊錶head1 和head2 各自有序,請把它們合併成乙個鍊錶依然有序。(保留所有結點,即便大小相同)

node * merge(node *head1 , node *head2)  

else

node *pcurrent = head ;  

while

( p1 != null && p2 != null)  

else

}  if( p1 != null )  

pcurrent->next = p1 ;  

if( p2 != null )  

pcurrent->next = p2 ;  

return

head ;  

}

(3)已知兩個鍊錶head1 和head2 各自有序,請把它們合併成乙個鍊錶依然有序,這次要求用遞迴方法進行。 (autodesk)

答案:

node * mergerecursive(node *head1 , node *head2)  

else

return

head ;  

}

41. 分析一下這段程式的輸出 (autodesk)

class

b    

~b()  

b(inti):data(i) 

//b(int) works as a converter ( int -> instance of b)

private

:  int

data;  

};  

b play( b b)  

(1) results:  

intmain(

intargc, 

char

* argv) constructed by parameter 5  

destructed t1  

(2) results:  

intmain(

intargc, 

char

* argv) constructed by parameter 5  

destructed t2 注意順序!  

destructed t1  

42. 寫乙個函式找出乙個整數陣列中,第二大的數 (microsoft)

答案:

const

intminnumber = -32767 ;  

intfind_sec_max( 

intdata , 

intcount)  

else

}  return

sec_max ;  

}

43. 寫乙個在乙個字串(n)中尋找乙個子串(m)第乙個位置的函式。

kmp演算法效率最好,時間複雜度是o(n+m)。

44. 多重繼承的記憶體分配問題:比如有class a : public class b, public class c {}那麼a的記憶體結構大致是怎麼樣的?

這個是compiler-dependent的, 不同的實現其細節可能不同。

如果不考慮有虛函式、虛繼承的話就相當簡單;否則的話,相當複雜。

45. 如何判斷乙個單鏈表是有環的?(注意不能用標誌位,最多只能用兩個額外指標)

struct node

bool check(const node* head) {} //return false : 無環;true: 有環

一種o(n)的辦法就是(搞兩個指標,乙個每次遞增一步,乙個每次遞增兩步,如果有環的話兩者必然重合,反之亦然):

bool

check(

const

node* head)  

return

false

;   

}

(4)CSS屬性常見筆試題

已設定上外邊距 1.執行上面 雖然給p元素定義了15px的上外邊距,為什麼失效了?答 浮動元素會脫離正常流,clear屬性會讓元素增加上外邊距,使其在浮動元素的下面。在上面 中,浮動元素的高是80px,所以clear屬性會給p元素增加80px的上外邊距,比定義的15px要大,因此最終的上外邊距是80...

筆試 c 筆試題

1 在派生類中通過 base 呼叫基類成員 解析 2 方法重寫使用關鍵字 override 解析 使用virtual和override關鍵字實現方法重寫 3 關於抽象類下面說法錯誤的是 選一項 a 抽象類可以包含非抽象方法 b 含有抽象方法的類一定是抽象類 c 抽象類不能被例項化 d 抽象類可以是密...

常見筆試題記錄

linux命令 1 tcpdump dump the traffic on a network,根據使用者的定義對網路上的資料報進行截獲的包分析工具。tcpdump 可以將網路中傳送的資料報的 頭 完全截獲下來提供分析。它支援針對網路層 協議 主機 網路或埠的過濾,並提供 and or not等邏輯...