60.解釋局部變量、全局變量和靜態變量的含義。
局部變量,作用域在指定的函數範圍內,超出作用域自動釋放。如果與全局變量同名,則在局部範圍內以局部變量爲主。 全局變量,有效範圍從定義變量的位置開始到本源文件結束, 靜態變量,生存週期與全局變量一樣長,有效範圍僅限於聲明的位置,如果聲明的位置是函數內部,則在函數內部可見,如果是文件範圍聲明,則在當前文件(聲明變量之後)有效。 |
61.論述含參數的宏與函數的優缺點。
含參數宏具有宏的特性(原文替換宏定義部分的代碼),代碼執行效率高,但無法對參數進行限制,特別是執行指針,如以*p++作爲參數時,會出現執行含參數宏後,參數發生變化的bug,要慎用。
函數,封裝一定邏輯的操作,提高代碼的複用性,同時能夠使用const關鍵字,限制參數在函數內部改變等安全機制,使用起來更加安全,但效率上需要執行函數的調用與參數入棧的過程,有時間開銷。
|
61.Windows程序的入口是哪裏?寫出Windows消息機制的流程。
Widnows程序入口:WinMain() 消息機制流程: 1.Windows中有一個系統消息隊列,對於每一個正在執行的Windows應用程序,系統爲其建立一個“消息隊列”,即應用程序隊列,用來存放該程序可能創建的各種窗口的消息。應用程序中含有一段稱作“消息循環”的代碼,用來從消息隊列中檢索這些消息並把它們分發到相應的窗口函數中。
2.Windows爲當前執行的每個Windows程序維護一個「消息隊列」。在發生輸入事件之後,Windows將事件轉換爲一個「消息」並將消息放入程序的消息隊列中。程序通過執行一塊稱之爲「消息循環」的程序代碼從消息隊列中取出消息:
相關鏈接:http://www.cnblogs.com/blosaa/archive/2013/05/31/3109586.html http://blog.csdn.net/tigernana/article/details/8079675 |
62.C++裏面是不是所有的動作都是main()引起的?如果不是,請舉例。
63.軟件開發五個主要step是什麼?
你在開發軟件的時候,這5個step分別佔用的時間百分比是多少?
64.static有什麼用途?(請至少說明兩種)
答 、
1.限制變量的作用域(文件級的)。
2.設置變量的存儲域(全局數據區)。
65.引用與指針有什麼區別?
答 、
1) 引用必須被初始化,指針不必。
2) 引用初始化以後不能被改變,指針可以改變所指的對象。
3) 不存在指向空值的引用,但是存在指向空值的指針。
66.描述實時系統的基本特性
答 、在特定時間內完成特定的任務,實時性與可靠性。
67.全局變量和局部變量在內存中是否有區別?如果有,是什麼區別?
答 、全局變量儲存在靜態數據區,局部變量在堆棧中。
68.什麼是平衡二叉樹?
答 、左右子樹都是平衡二叉樹 且左右子樹的深度差值的絕對值不大於1。
69.堆棧溢出一般是由什麼原因導致的?
答 、1.沒有回收垃圾資源
2.層次太深的遞歸調用
編譯器默認有一個堆棧大小限制,所有函數調用及函數內部申請的局部變量都是在棧內分配內存,每次調用函數時都會把當前函數的狀態入棧,調用參數入棧,然後開始執行調用函數,當函數執行完畢後,通過出棧操作還原上一級函數的調用狀態,當調用層數過多,或者申請局部變量過大,總內存大小超過默認棧大小,就會出現溢出的情況。
70.什麼函數不能聲明爲虛函數?
答 、constructor
Deconstructor 可以聲明爲虛函數。
系統爲一個空類創建的成員函數有那些。
71.冒泡排序算法的時間複雜度是什麼?
答 、O(n^2)
72.寫出float x 與“零值”比較的if語句。
答 、if(x>0.000001&&x<-0.000001)
float由於精度誤差的緣故無法與0做等值比較判斷,只能在高精度的極小數值進行範圍判斷,確定是不是等於0。 |
73.Internet採用哪種網絡協議?該協議的主要層次結構?
答 、tcp/ip 應用層/傳輸層/網絡層/數據鏈路層/物理層
74.Internet物理地址和IP地址轉換採用什麼協議?
答 、ARP (Address Resolution Protocol)(地址解析協議)
75.IP地址的編碼分爲哪倆部分?
答 、IP地址由兩部分組成,網絡號和主機號。不過是要和“子網掩碼”按位與之後才能區分哪些是網絡位哪些是主機位。
76.用戶輸入M,N值,從1至N開始順序循環數數,每數到M輸出該數值,直至全部輸出。寫出C程序。
答 、循環鏈表,用取餘操作做
77.不能做switch()的參數類型是:
答 、switch的參數不能爲實型,字符串。
78.局部變量能否和全局變量重名?
答、能,局部會屏蔽全局。要用全局變量,需要使用"::"
局部變量可以與全局變量同名,在函數內引用這個變量時,會用到同名的局部變量,而不會用到全局變量。對於有些編譯器而言,在同一個函數內可以定義多個同名的局部變量,比如在兩個循環體內都定義一個同名的局部變量,而那個局部變量的作用域就在那個循環體內。
79.如何引用一個已經定義過的全局變量?
答 、可以用引用頭文件的方式,也可以用extern關鍵字,如果用引用頭文件方式來引用某個在頭文件中聲明的全局變理,假定你將那個變寫錯了,那麼在編譯期間會報錯,如果你用extern方式引用時,假定你犯了同樣的錯誤,那麼在編譯期間不會報錯,而在連接期間報錯。
80.全局變量可不可以定義在可被多個.C文件包含的頭文件中?爲什麼?
答 、可以,在不同的C文件中以static形式來聲明同名全局變量。
可以在不同的C文件中聲明同名的全局變量,前提是其中只能有一個C文件中對此變量賦初值,此時連接不會出錯