程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 編程語言 >> C語言 >> C++ >> C++入門知識 >> [開心IT面試題] 面試題匯總

[開心IT面試題] 面試題匯總

編輯:C++入門知識

一、鏈表系列

1、單鏈表基礎


2、單鏈表排序、反轉


3、找出單鏈表的倒數第k個元素


4、找出單鏈表的中間元素


5、給定單鏈表,檢測是否有環


6、有兩個有序鏈表,各自內部是有序的,但是兩個鏈表之間是無序的,合並兩個鏈表。


7、*給定兩個非環單鏈表(first, second),檢測兩個鏈表是否有交點,如果有返回第一個交點。


8、n個數字(0,1,…,n-1)形成一個圓圈,從數字0開始,

每次從這個圓圈中刪除第m個數字(第一個為當前數字本身,第二個為當前數字的下一個數字)。

當一個數字刪除後,從被刪除數字的下一個繼續刪除第m個數字。

求出在這個圓圈中剩下的最後一個數字。


二、棧和隊列系列

1、*棧的順序棧、鏈棧實現


2、*隊列的順序表、鏈表實現


三、數組系列

1、*輸入一個已經按升序排序過的數組和一個數字,

在數組中查找兩個數,使得它們的和正好是輸入的那個數字。

要求時間復雜度是O(n)。如果有多對數字的和等於輸入的數字,輸出任意一對即可。

例如輸入數組1、2、4、7、11、15和數字15。由於4+11=15,因此輸出4和11。


2、假設你有一個用1001個整數組成的數組,這些整數是任意排列的,

但是你知道所有的整數都在1到1000(包括1000)之間。

此外,除一個數字出現兩次外,其他所有數字只出現一次。

假設你只能對這個數組做一次處理,用一種算法找出重復的那個數字。

如果你在運算中使用了輔助的存儲方式,那麼你能找到不用這種方式的算法嗎?


四、字符串系列

1、輸入一個表示整數的字符串,把該字符串轉換成整數並輸出。

例如輸入字符串"345",則輸出整數345。


五、排序系列

1、直接插入排序


2、希爾排序


3、冒泡排序


4、快速排序


5、直接選擇排序


6、堆排序


六、內存管理

1、malloc和free用法


2、realloc用法


七、常見面試題

1、如果每次可以往上爬1個或2個或3個台階,不能往下走,從第0個台階開始,爬到第n個台階有多少種方案?


2、如果每次可以往上爬1個或2個或3個台階,爬樓梯過程中允許最多往下走一次,每次走1個台階,從第0個台階開始,爬到第n個台階有多少種方案?


3、如果每次可以往上爬1個或2個或3個台階,爬樓梯過程中允許最多往下走k次,每次走1個台階,從第0個台階開始,爬到第n個台階有多少種方案?


4、*C實現大整數四則運算


5、求1+2+…+n,

要求不能使用乘除法、for、while、if、else、switch、case等關鍵字以及條件判斷語句(A?B:C)。


八、邏輯推理系列

1、村子裡有50個人,每人有一條狗,在這50條狗中有病狗(這種病不傳染),於是人們要找出病狗。


2、上排給出十個數,在其下排填出對應的十個數

要求下排每個數都是先前上排那十個數在下排出現的次數。
上排的十個數如下:
[0,1,2,3,4,5,6,7,8,9]


3、有兩個房間,一間房裡有三盞燈,另一間房有控制著三盞燈的三個開關,

這兩個房間是分割開的,從一間裡不能看到另一間的情況。

現在要求受訓者分別進這兩房間一次,然後判斷出這三盞燈分別是由哪個開關控制的。

有什麼辦法呢?


4、你讓一些人為你工作了七天,你要用一根金條作為報酬。金條被分成七小塊,每天給出一塊。

如果你只能將金條切割兩次,你怎樣分給這些工人?


5、有4張紅色的牌和4張藍色的牌,主持人先拿任意兩張,再分別在A、B、C三人額頭上貼任意兩張牌,

A、B、C三人都可看見其余兩人額頭上的牌,看完後讓他們猜自己額頭上是什麼顏色牌,

A說不知道,B說不知道,C說不知道,然後A說知道了。

請教如何推理,A是怎麼知道的?


九、基礎題

1、*C語言基礎一


2、*C語言基礎二





  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved