這篇主要是今年跑校招過程中的各大公司筆試和麪試真題。
主要投遞崗位是“嵌入式軟件工程師”、“C語言軟件開發工程師”、“C/C++軟件開發工程師”,C語言工程師中肯定會考一些硬件的知識,因人而異去複習,主要是I2C協議,SPI,寄存器等入手。因爲跑校招的時間也比較緊,所以只能一遍跑一遍更新出來,如果有時間會具體總分類。希望大家找到一個好工作
簡答題
- 什麼是指針?指針有哪些類型?
- 分別用a定義一個函數指針、指針函數和函數指針數組,指針數組和數組指針?
- 進程的類型有哪些?具體講一講。
- 進程間通信方式有哪些?簡述其中一種通信方式的實現過程。
- 程序、進程、線程怎麼理解他們之間的關係?
- 如何實現線程之間的同步?你知道的解決辦法有幾種?
- #include<>和#include""有什麼區別?
- 定義一個純虛函數
10.vector容器中的刪除一個元素的函數是什麼?清空函數是什麼? - 文件io和標準io有什麼區別?他們操作文件的入口是什麼?
- 什麼是文件描述符?
- 如何利用文件io實現文件的加密?
- 文件操作函數你瞭解多少?
- 單播、組播、廣播通信你瞭解多少?如何實現組播?
- 什麼是IP?什麼是端口號?
- 如何實現併發服務器?任意敘述其中一種的實現原理。
- linux子系統由哪五個部分組成?分別有什麼功能?
- 什麼是殭屍進程?如何創建守護進程?
- 說一下TCP/IP客戶端和服務端的創建流程。socket的參數都是什麼意思?
- 現在有一個文本文件,如何將最後100行輸出到屏幕上?
- epoll和select有什麼區別?分別用於什麼場景下?
編程題
- 用子函數的形式,實現兩個單向循環鏈表的合併
- 用子函數的形式,實現單向不循環鏈表的反轉
- 不借助第三方函數,實現strcpy函數的功能
- 不接助第三方函數,實現strcat函數的功能
- 寫一個TCP的服務器和客戶端代碼
- strcpy和memcpy有什麼區別?
- 什麼是局部變量、全局變量、靜態局部變量、靜態全局變量、寄存器變量,他們的作用於和生命週期都是什麼?
- 不借助第三個變量如何實現兩個整數的交換?
- 設計一個算法實現迴文子串。
- 對數組進行冒泡排序。
- 對數組進行快速排序。
- 從m個數中隨機取n個數,要求每個數被取到的概率相等,時間複雜度爲O(n).
問答題
- malloc和new有什麼區別?delete能不能用於malloc出來的內存?
- 在C++中的多態是怎麼實現的?具體說下實現原理。
- 什麼是進程?什麼是線程?兩者有什麼區別?
- 在tcp操作中,如何判斷你讀到了客戶端完整的數據?
- c++中的STL你瞭解嗎?用過迭代器嗎?map和set具體講一講。對紅黑樹怎麼理解,怎麼使用哈希函數?
- shell命令簡單說幾個你經常使用的。查看堆棧信息的命令是什麼?
- 平時用的數據庫是什麼?怎麼理解索引這個概念。主鍵是什麼?
- 如何判斷兩個單項循環鏈表是否交叉?