cc++筆試題

上傳人:bingd****onhu 文檔編號(hào):140671131 上傳時(shí)間:2022-08-23 格式:DOCX 頁(yè)數(shù):17 大?。?5.07KB
收藏 版權(quán)申訴 舉報(bào) 下載
cc++筆試題_第1頁(yè)
第1頁(yè) / 共17頁(yè)
cc++筆試題_第2頁(yè)
第2頁(yè) / 共17頁(yè)
cc++筆試題_第3頁(yè)
第3頁(yè) / 共17頁(yè)

下載文檔到電腦,查找使用更方便

0 積分

下載資源

還剩頁(yè)未讀,繼續(xù)閱讀

資源描述:

《cc++筆試題》由會(huì)員分享,可在線閱讀,更多相關(guān)《cc++筆試題(17頁(yè)珍藏版)》請(qǐng)?jiān)谘b配圖網(wǎng)上搜索。

1、1.數(shù)組中重復(fù)的數(shù)字找出數(shù)組中重復(fù)的數(shù)字。 在一個(gè)長(zhǎng)度為 n 的數(shù)組 nums 里的所有數(shù)字都在 0n-1 的范圍內(nèi)。數(shù)組中某些數(shù)字是重復(fù)的,但不知道有幾個(gè)數(shù)字重復(fù)了,也不知道每個(gè)數(shù)字重復(fù)了幾次。請(qǐng)找出數(shù)組中任意一個(gè)重復(fù)的數(shù)字。示例 1:輸入:2, 3, 1, 0, 2, 5, 3輸出:2 或 3 限制:2 = n = 1000002.用兩個(gè)棧實(shí)現(xiàn)隊(duì)列 用兩個(gè)棧實(shí)現(xiàn)一個(gè)隊(duì)列。隊(duì)列的聲明如下,請(qǐng)實(shí)現(xiàn)它的兩個(gè)函數(shù) appendTail 和 deleteHead ,分別完成在隊(duì)列尾部插入整數(shù)和在隊(duì)列頭部刪除整數(shù)的功能。(若隊(duì)列中沒(méi)有元素,deleteHead 操作返回 -1 )示例 1:輸入:CQu

2、eue,appendTail,deleteHead,deleteHead,3,輸出:null,null,3,-1示例 2:輸入:CQueue,deleteHead,appendTail,appendTail,deleteHead,deleteHead,5,2,輸出:null,-1,null,null,5,2提示: 1 = values = 10000 最多會(huì)對(duì) appendTail、deleteHead 進(jìn)行 10000 次調(diào)用3.二維數(shù)組中的查找, 在一個(gè) n * m 的二維數(shù)組中,每一行都按照從左到右遞增的順序排序,每一列都按照從上到下遞增的順序排序。請(qǐng)完成一個(gè)函數(shù),輸入這樣的一個(gè)二維數(shù)組

3、和一個(gè)整數(shù),判斷數(shù)組中是否含有該整數(shù)。示例:現(xiàn)有矩陣 matrix 如下:1, 4, 7, 11, 15,2, 5, 8, 12, 19,3, 6, 9, 16, 22,10, 13, 14, 17, 24,18, 21, 23, 26, 30給定 target = 5,返回 true。給定 target = 20,返回 false。限制:0 = n = 10000 = m = 10004.從尾到頭打印鏈表, 輸入一個(gè)鏈表的頭節(jié)點(diǎn),從尾到頭反過(guò)來(lái)返回每個(gè)節(jié)點(diǎn)的值(用數(shù)組返回)。示例 1:輸入:head = 1,3,2輸出:2,3,1限制:0 = 鏈表長(zhǎng)度 1.斐波那契數(shù)列由 0 和 1 開(kāi)始,

4、之后的斐波那契數(shù)就是由之前的兩數(shù)相加而得出。答案需要取模 1e9+7(1000000007),如計(jì)算初始結(jié)果為:1000000008,請(qǐng)返回 1。示例 1:輸入:n = 2輸出:1示例 2:輸入:n = 5輸出:5提示: 0 = n = 1006.青蛙跳臺(tái)階問(wèn)題 一只青蛙一次可以跳上1級(jí)臺(tái)階,也可以跳上2級(jí)臺(tái)階。求該青蛙跳上一個(gè) n 級(jí)的臺(tái)階總共有多少種跳法。答案需要取模 1e9+7(1000000007),如計(jì)算初始結(jié)果為:1000000008,請(qǐng)返回 1。示例 1:輸入:n = 2輸出:2示例 2:輸入:n = 7輸出:21示例 3:輸入:n = 0輸出:1提示: 0 = n 2-3-4-

5、5-NULL輸出: 5-4-3-2-1-NULL限制:0 = 節(jié)點(diǎn)個(gè)數(shù) 2-3-4-5-NULL輸出: 5-4-3-2-1-NULL限制:0 = 節(jié)點(diǎn)個(gè)數(shù) 1 - 9.示例 2:輸入: head = 4,5,1,9, val = 1輸出: 4,5,9解釋: 給定你鏈表中值為 1 的第三個(gè)節(jié)點(diǎn),那么在調(diào)用了你的函數(shù)之后,該鏈表應(yīng)變?yōu)?4 - 5 - 9.說(shuō)明: 題目保證鏈表中節(jié)點(diǎn)的值互不相同 若使用 C 或 C+ 語(yǔ)言,你不需要 free 或 delete 被刪除的節(jié)點(diǎn)12. 調(diào)整數(shù)組順序使奇數(shù)位于偶數(shù)前面 輸入一個(gè)整數(shù)數(shù)組,實(shí)現(xiàn)一個(gè)函數(shù)來(lái)調(diào)整該數(shù)組中數(shù)字的順序,使得所有奇數(shù)位于數(shù)組的前半部分,

6、所有偶數(shù)位于數(shù)組的后半部分。示例:輸入:nums = 1,2,3,4輸出:1,3,2,4 注:3,1,2,4 也是正確的答案之一。提示:1. 1 = nums.length = 500002. 1 = numsi 2-3-4-5, 和 k = 2.返回鏈表 4-5.14. 二叉樹(shù)的鏡像請(qǐng)完成一個(gè)函數(shù),輸入一個(gè)二叉樹(shù),該函數(shù)輸出它的鏡像。例如輸入: 4 / 2 7 / / 1 3 6 9鏡像輸出: 4 / 7 2 / / 9 6 3 1示例 1:輸入:root = 4,2,7,1,3,6,9輸出:4,7,2,9,6,3,1限制:0 = 節(jié)點(diǎn)個(gè)數(shù) = 100015. 順時(shí)針打印矩陣 輸入一個(gè)矩陣,

7、按照從外向里以順時(shí)針的順序依次打印出每一個(gè)數(shù)字。示例 1:輸入:matrix = 1,2,3,4,5,6,7,8,9輸出:1,2,3,6,9,8,7,4,5示例 2:輸入:matrix = 1,2,3,4,5,6,7,8,9,10,11,12輸出:1,2,3,4,8,12,11,10,9,5,6,7限制: 0 = matrix.length = 100 0 = matrixi.length = 10016. 數(shù)組中出現(xiàn)次數(shù)超過(guò)一半的數(shù)字?jǐn)?shù)組中有一個(gè)數(shù)字出現(xiàn)的次數(shù)超過(guò)數(shù)組長(zhǎng)度的一半,請(qǐng)找出這個(gè)數(shù)字。你可以假設(shè)數(shù)組是非空的,并且給定的數(shù)組總是存在多數(shù)元素。示例 1:輸入: 1, 2, 3, 2,

8、2, 2, 5, 4, 2輸出: 2限制:1 = 數(shù)組長(zhǎng)度 = 5000017. 最小的k個(gè)數(shù)輸入整數(shù)數(shù)組 arr ,找出其中最小的 k 個(gè)數(shù)。例如,輸入4、5、1、6、2、7、3、8這8個(gè)數(shù)字,則最小的4個(gè)數(shù)字是1、2、3、4。示例 1:輸入:arr = 3,2,1, k = 2輸出:1,2 或者 2,1示例 2:輸入:arr = 0,1,2,1, k = 1輸出:0限制: 0 = k = arr.length = 10000 0 = arri = 1000018. 連續(xù)子數(shù)組的最大和輸入一個(gè)整型數(shù)組,數(shù)組中的一個(gè)或連續(xù)多個(gè)整數(shù)組成一個(gè)子數(shù)組。求所有子數(shù)組的和的最大值。要求時(shí)間復(fù)雜度為O(n

9、)。示例1:輸入: nums = -2,1,-3,4,-1,2,1,-5,4輸出: 6解釋: 連續(xù)子數(shù)組 4,-1,2,1 的和最大,為 6。提示: 1 = arr.length = 105 -100 = arri = 10019. 第一個(gè)只出現(xiàn)一次的字符在字符串 s 中找出第一個(gè)只出現(xiàn)一次的字符。如果沒(méi)有,返回一個(gè)單空格。 s 只包含小寫(xiě)字母。示例:s = abaccdeff返回 bs = 返回 限制:0 = s 的長(zhǎng)度 = 5000020. 兩個(gè)鏈表的第一個(gè)公共節(jié)點(diǎn)輸入兩個(gè)鏈表,找出它們的第一個(gè)公共節(jié)點(diǎn)。如下面的兩個(gè)鏈表:在節(jié)點(diǎn) c1 開(kāi)始相交。示例 1:輸入:intersectVal =

10、 8, listA = 4,1,8,4,5, listB = 5,0,1,8,4,5, skipA = 2, skipB = 3輸出:Reference of the node with value = 8輸入解釋:相交節(jié)點(diǎn)的值為 8 (注意,如果兩個(gè)列表相交則不能為 0)。從各自的表頭開(kāi)始算起,鏈表 A 為 4,1,8,4,5,鏈表 B 為 5,0,1,8,4,5。在 A 中,相交節(jié)點(diǎn)前有 2 個(gè)節(jié)點(diǎn);在 B 中,相交節(jié)點(diǎn)前有 3 個(gè)節(jié)點(diǎn)。示例 2:輸入:intersectVal = 2, listA = 0,9,1,2,4, listB = 3,2,4, skipA = 3, skipB

11、= 1輸出:Reference of the node with value = 2輸入解釋:相交節(jié)點(diǎn)的值為 2 (注意,如果兩個(gè)列表相交則不能為 0)。從各自的表頭開(kāi)始算起,鏈表 A 為 0,9,1,2,4,鏈表 B 為 3,2,4。在 A 中,相交節(jié)點(diǎn)前有 3 個(gè)節(jié)點(diǎn);在 B 中,相交節(jié)點(diǎn)前有 1 個(gè)節(jié)點(diǎn)。示例 3:輸入:intersectVal = 0, listA = 2,6,4, listB = 1,5, skipA = 3, skipB = 2輸出:null輸入解釋:從各自的表頭開(kāi)始算起,鏈表 A 為 2,6,4,鏈表 B 為 1,5。由于這兩個(gè)鏈表不相交,所以 intersect

12、Val 必須為 0,而 skipA 和 skipB 可以是任意值。解釋:這兩個(gè)鏈表不相交,因此返回 null。注意: 如果兩個(gè)鏈表沒(méi)有交點(diǎn),返回 null. 在返回結(jié)果后,兩個(gè)鏈表仍須保持原有的結(jié)構(gòu)。 可假定整個(gè)鏈表結(jié)構(gòu)中沒(méi)有循環(huán)。 程序盡量滿足 O(n) 時(shí)間復(fù)雜度,且僅用 O(1) 內(nèi)存。21. 在排序數(shù)組中查找數(shù)字 I 統(tǒng)計(jì)一個(gè)數(shù)字在排序數(shù)組中出現(xiàn)的次數(shù)。示例 1:輸入: nums = 5,7,7,8,8,10, target = 8輸出: 2示例 2:輸入: nums = 5,7,7,8,8,10, target = 6輸出: 0限制:0 = 數(shù)組長(zhǎng)度 = 5000022. 二叉搜索樹(shù)

13、的第k大節(jié)點(diǎn)給定一棵二叉搜索樹(shù),請(qǐng)找出其中第k大的節(jié)點(diǎn)。示例 1:輸入: root = 3,1,4,null,2, k = 1 3/ 1 4 2輸出: 4示例 2:輸入: root = 5,3,6,2,4,null,null,1, k = 3 5 / 3 6 / 2 4/1輸出: 4限制:1 k 二叉搜索樹(shù)元素個(gè)數(shù)23. 撲克牌中的順子從撲克牌中隨機(jī)抽5張牌,判斷是不是一個(gè)順子,即這5張牌是不是連續(xù)的。210為數(shù)字本身,A為1,J為11,Q為12,K為13,而大、小王為 0 ,可以看成任意數(shù)字。A 不能視為 14。示例 1:輸入: 1,2,3,4,5輸出: True示例 2:輸入: 0,0,1

14、,2,5輸出: True限制:數(shù)組長(zhǎng)度為 5 數(shù)組的數(shù)取值為 0, 13 .24. 從上到下打印二叉樹(shù)從上到下打印出二叉樹(shù)的每個(gè)節(jié)點(diǎn),同一層的節(jié)點(diǎn)按照從左到右的順序打印。例如: 給定二叉樹(shù): 3,9,20,null,null,15,7, 3 / 9 20 / 15 7返回:3,9,20,15,7提示:1. 節(jié)點(diǎn)總數(shù) = 100025.輸入整數(shù)a和b,若a*a+b*b大于100,則輸出a*a+b*b百位以上的數(shù)字,否則輸出兩數(shù)之和輸入:一行,輸入兩個(gè)整數(shù)a、b,中間用單個(gè)空格隔開(kāi)。輸出:一行,一個(gè)整數(shù),a*a+b*b百位以上的數(shù)字或者輸出兩數(shù)之和。樣例輸入1:5 6樣例輸出1:11樣例輸入2:6

15、 9樣例輸出2:11726.設(shè)計(jì)一個(gè)界面在編輯框中輸入字符串,格式為:“#,#,#,#;#,#,#,#;”,例如:3,5,6;7,8;點(diǎn)擊按鈕的時(shí)候,進(jìn)行字符串解析,字符串解析方式:先按“;”分隔,分隔出的字符串再按“,”分隔,存入到vectorvector結(jié)構(gòu)中,并在List控件中顯示出來(lái)所有的排列組合,比如例子中的結(jié)果為:3,73,85,75,86,76,8主要函數(shù)如下:voidParseStringToVector(constCString&strData,vectorvector&vecData)/addcodehere最后提交一個(gè)完整的項(xiàng)目文件發(fā)給我們要求:編碼規(guī)范,邏輯清晰,程序拒

16、用通用性(比如“3,5,6;7,8;9,10,11;”,“3,5,6;7,8;9,10,11;13,14,16;17,18;19,50;”都可以匹配正確)使用QT、mfc或其他都可以.1.指針和引用的區(qū)別2.進(jìn)程、線程、協(xié)程 區(qū)別3.TCP / UDP 有什么不同, 具體使用場(chǎng)景4.Http Get和Post區(qū)別5.stack 和 queue 區(qū)別,分別舉一個(gè)使用場(chǎng)景6.快排的思想是?為啥快排快?快排穩(wěn)定嗎?7.當(dāng)多個(gè)線程訪問(wèn)同一變量時(shí),可能會(huì)產(chǎn)生什么問(wèn)題?8、深拷貝和淺拷貝的區(qū)別?9、進(jìn)程間通信有哪些方法?10、常用的排序算法舉例?他們各自的優(yōu)缺點(diǎn)是?11、常用的http請(qǐng)求方法有哪些,他們

17、的區(qū)別是什么?12、列舉三種你知道的設(shè)計(jì)模式,并簡(jiǎn)述應(yīng)用場(chǎng)景。13、求兩個(gè)字符串的最大重合長(zhǎng)度,并輸出重合部分。14、編寫(xiě)代碼,使用快速排序法對(duì)數(shù)組內(nèi)元素進(jìn)行排序。15、實(shí)現(xiàn)一個(gè)線程池。16、堆區(qū)和棧區(qū)的區(qū)別17、靜態(tài)成員變量18、一個(gè)進(jìn)程中,我不停的向其中push_back數(shù)據(jù)元素會(huì)發(fā)生什么?19、如果我們要自己實(shí)現(xiàn)一個(gè)單向鏈表,那么我們?cè)撛趺磳?shí)現(xiàn)?20、說(shuō)一下常用的進(jìn)程間通信的方法。說(shuō)一下共享內(nèi)存。21、說(shuō)一下線程間的同步方式。22、編寫(xiě)一個(gè)函數(shù),它去找出uint32中的每一個(gè)位為1的位。23、說(shuō)一下select、poll和epoll的區(qū)別24、說(shuō)一下strace和GDB如何聯(lián)合使用25、說(shuō)一下C+的四種類型轉(zhuǎn)換26、說(shuō)一下智能指針27、STL模板庫(kù)用了哪些28、std:vector的存儲(chǔ)機(jī)制std:map的底層實(shí)現(xiàn)29、冒泡排序和快速排序的時(shí)間復(fù)雜度30、進(jìn)程和線程的區(qū)別31、客戶端和服務(wù)器之間通信的時(shí)候調(diào)用了哪些系統(tǒng)函數(shù)32、說(shuō)一下三次握手和四次揮手33、如何使用shell在一個(gè)目錄下找到一個(gè)大于10k小于50k的文件34、如何打印一個(gè)文本文件的倒數(shù)第二行35、使用top命令出現(xiàn)的關(guān)鍵值都有些啥36、如何處理端口占用的情況37、用echo打印一個(gè)字符串的前十個(gè)字符38、假如有兩個(gè)50億字節(jié)的字符串,如何找到它倆里面相同的字符串38、ARM指令集和X86指令集的區(qū)別

展開(kāi)閱讀全文
溫馨提示:
1: 本站所有資源如無(wú)特殊說(shuō)明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請(qǐng)下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請(qǐng)聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁(yè)內(nèi)容里面會(huì)有圖紙預(yù)覽,若沒(méi)有圖紙預(yù)覽就沒(méi)有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對(duì)任何下載內(nèi)容負(fù)責(zé)。
6. 下載文件中如有侵權(quán)或不適當(dāng)內(nèi)容,請(qǐng)與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準(zhǔn)確性、安全性和完整性, 同時(shí)也不承擔(dān)用戶因使用這些下載資源對(duì)自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔

相關(guān)搜索

關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號(hào):ICP2024067431號(hào)-1 川公網(wǎng)安備51140202000466號(hào)


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務(wù)平臺(tái),本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲(chǔ)空間,僅對(duì)用戶上傳內(nèi)容的表現(xiàn)方式做保護(hù)處理,對(duì)上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請(qǐng)立即通知裝配圖網(wǎng),我們立即給予刪除!