C++和操作系统面试问题分类
inline的使用是有所限制的,inline只適合函數體內代碼簡單的函數使用,不能包含復雜的結構控制語句例如while switch,并且不能內聯函數本身不能是直接遞歸函數(自己內部還調用自己的函數)
C++多態實現機制:在C++中,對于有virtual的類,其sizeof會比正常情況多處4個字節。既在類的最開始四個字節,放的是VTABLE表的地址(void *類型)。而在VTABLE中,所有虛函數是以指針數組的形式存放。 對于派生的類,即時沒有重載基類的虛函數,也會在其VTABLE占用一格。造成空間上的浪費。非虛基類沒有VTABLE,VTABLE是在構造的時候編譯器生成的。
??? 線程和進程:進程是操作系統資源分配的最小單位,線程是CPU運行的最小單位。linux中,使用的是用戶線程(對應核心線程:線程管理由內核實現),而且是1:1形式,既每一個線程,都對應內核中的一個輕量級進程,調度由內核實現,但是線程的管理(比如產生和結束),均有一個管理線程實現。管理線程在第一次調用pthread_create的時候生成。
軟件開發流程:
??? 需求分析和項目計劃:可行性計劃,項目計劃,需求分析,測試計劃
??? 軟件設計說明書:功能設計說明書,實現設計說明書
??? 使用手冊
測試報告
??? 項目總結
C++繼承機制:
??? n類成員的訪問控制方式
??? public:類本身、派生類和其它類均可訪問;
??? protected:類本身和派生類均可訪問,其它類不能訪問;
??? private(默認):類本身可訪問,派生類和其它類不能訪問。
繼承成員的訪問控制規則
??? ——由父類成員的訪問控制方式和繼承訪問控制方式共同決定
??? private+public(protectd,private)=>不可訪問
??? pubic(protected)+public=>public(protected)
??? public(protected)+protected=>protected
??? public(protected)+private(默認)=>private
??? C++中的模板和virtual異同? ==>?
??? private繼承和public繼承區別? ==>?
6. static有什么用途?(請至少說明兩種)
??? 1.限制變量的作用域
??? 2.設置變量的存儲域
7. 引用與指針有什么區別?
??? 1) 引用必須被初始化,指針不必。
??? 2) 引用初始化以后不能被改變,指針可以改變所指的對象。
??? 3) 不存在指向空值的引用,但是存在指向空值的指針。
8. 描述實時系統的基本特性
??? 在特定時間內完成特定的任務,實時性與可靠性
9. 全局變量和局部變量在內存中是否有區別?如果有,是什么區別?
??? 全局變量儲存在靜態數據區,局部變量在堆棧
10. 什么是平衡二叉樹?
??? 左右子樹都是平衡二叉樹 且左右子樹的深度差值的絕對值不大于1
11. 堆棧溢出一般是由什么原因導致的?
??? 沒有回收垃圾資源
12. 什么函數不能聲明為虛函數?
??? constructor? ==>C++中的類的構造函數聲明
13. 冒泡排序算法的時間復雜度是什么?
??? O(n^2)
14. 寫出float x 與“零值”比較的if語句。
??? if(x>0.000001&&x<-0.000001)
? 16. Internet采用哪種網絡協議?該協議的主要層次結構?
??? tcp/ip 應用層/傳輸層/網絡層/數據鏈路層/物理層
17. Internet物理地址和IP地址轉換采用什么協議?
??? ARP (Address Resolution Protocol)(地址解析協議)
18.IP地址的編碼分為哪倆部分?
??? IP地址由兩部分組成,網絡號和主機號。不過是要和“子網掩碼”按位與上之后才能區分哪些是網絡位哪些是主機位。
19.用戶輸入M,N值,從1至N開始順序循環數數,每數到M輸出該數值,直至全部輸出。寫出C程序。
??? 循環鏈表,用取余操作做? ——>??
20.不能做switch()的參數類型是:
??? SWITH(表達式),表達式可以是整型、字符型以及枚舉類型等表達式。
??? switch的參數不能為實型。
轉載于:https://www.cnblogs.com/wanghao111/archive/2009/08/26/1554092.html
總結
以上是生活随笔為你收集整理的C++和操作系统面试问题分类的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用U盘进行软件加密(转)
- 下一篇: asp.net(c#) static关键