预购商品
书目分类
特别推荐
本書是一本講授使用C語言進行程式設計的實用參考書。它以C語言為工具,講授程式設計的過程和方法。從C語言和C程式的基本要素以及程式設計的基本方法開始,循序漸進地引入對程式設計專業化的要求和相關的知識。 從增強讀者的感性認識入手,通過多角度對例題的分析,示範對關鍵知識和技術的運用,通過對關鍵內容在不同層次上的適當重複,深化讀者對概念的理解和掌握。
第0章引言1 第1章程式設計的基本方法7 1.1程式設計的基本過程7 1.2問題分析9 1.2.1對程式功能的要求9 1.2.2對程式性能的要求10 1.2.3程式的使用方式和環境11 1.2.4程式的錯誤處理12 1.2.5程式的測試13 1.2.6問題分析的結果13 1.3方案設計18 1.3.1求解思路18 1.3.2計算模型21 1.3.3演算法分類24 1.3.4演算法和資料結構的選擇26 1.3.5演算法的檢驗33 1.4編碼:從演算法到代碼34 1.4.1代碼的結構34 1.4.2編碼的品質37 1.4.3代碼的可維護性39 1.4.4代碼中的注釋39 1.4.5代碼的檢查40 1.4.6代碼中常見的錯誤40 1.5測試和調試42 1.5.1調試的基本方法43 1.5.2故障的檢查、確認和修改44 1.5.3常見的故障類型和調試方法46 1.5.4調試資料的設計和使用48 1.5.5調試資料和標準輸入/輸出的重新定向48 1.5.6調試工具50 1.5.7測試和調試中常見的問題50 1.6手冊的使用52 第2章數值的表示和計算53 2.1整型資料類型53 2.1.1有符號數和無符號數54 2.1.2無符號數和標誌位元56 2.1.3整型的截斷與擴展56 2.1.4整型計算的溢出和判斷58 2.1.5整除所引起的誤差60 2.1.6整型資料的位元組序和尾端62 2.2浮點資料類型65 2.2.1浮點數據的表示方法65 2.2.2有效數字和位當量67 2.2.3浮點數的比較70 2.2.4浮點數值計算中的上溢和下溢72 2.3數值計算中的類型轉換75 2.3.1基本類型轉換和資料寬度75 2.3.2強制類型轉換77 2.3.3char的符號類型79 2.3.4變數符號類型的判斷80 2.4按位操作80 2.4.1移位操作81 2.4.2標誌位元的設置、檢測和清除82 2.4.3常用的位元操作模式84 2.4.4位操作應用舉例85 2.5數值計算的速度88 第3章指標、陣列、結構和類型90 3.1指標變數91 3.1.1指標變數的定義91 3.1.2指針的類型93 3.1.3指針運算94 3.1.4指針的強制類型轉換95 3.1.5不合法的指針運算97 3.1.6指標與整數98 3.1.7指針的增量運算和減量運算99 3.1.8作為函數參數的指標100 3.2指標和一維陣列100 3.2.1指標和陣列的互換100 3.2.2動態一維陣列103 3.2.3陣列複製與指標賦值106 3.2.4變數限制符const108 3.2.5陣列的負數下標109 3.3二維陣列和一維指標陣列110 3.3.1作為參數的二維陣列110 3.3.2二維陣列和指標111 3.3.3二維陣列和一維指標陣列的對比113 3.3.4指標陣列和命令列參數116 3.3.5二維陣列的動態分配118 3.4函數指標121 3.4.1函數指標變數的定義122 3.4.2函數指標變數的使用123 3.4.3函數指標陣列的使用128 3.5結構129 3.5.1結構類型的定義129 3.5.2結構成員的訪問131 3.5.3結構類型的嵌套定義133 3.5.4結構的自引用134 3.5.5結構類型與函數的參數和返回值134 3.6複雜類型的解讀135 3.6.1變數定義中的複雜類型說明136 3.6.2強制類型轉換中的複雜類型139 3.6.3類型定義語句和複雜類型的定義139 第4章程式中的遞迴142 4.1遞迴的定義142 4.2遞迴函數的執行149 4.3遞迴函數的設計150 4.4遞迴的優點和缺點155 4.5遞迴函數的效率158 4.6遞迴函數的使用161 4.6.1適宜使用遞迴的情況161 4.6.2不適宜使用遞迴的情況169 4.7遞迴函數效率的改進170 4.7.1尾遞迴函數的非遞迴化170 4.7.2帶存儲機制的遞迴171 4.7.3一般遞迴函數的非遞迴化172 第5章搜索176 5.1搜索的目標和基本過程176 5.2深度優先搜索178 5.2.1深度優先搜索的基本演算法179 5.2.2回溯搜索182 5.3廣度優先搜索185 5.4重複節點的判斷188 5.5帶深度控制的廣度優先搜索195 5.6節點的編碼和搜索效率199 第6章常用函數和函式程式庫209 6.1靜態連結和動態連結209 6.1.1靜態連結209 6.1.2動態連結210 6.2庫函數的使用211 6.2.1標準庫函數的標頭檔212 6.2.2標準函式程式庫檔的使用212 6.2.3錯誤資訊函數和變數213 6.3資料登錄輸出函數214 6.3.1檔描述字和字元流215 6.3.2文件的打開、創建和關閉217 6.3.3檔資料的二進位格式讀寫220 6.3.4讀寫操作中的定位223 6.3.5基礎讀寫與字元流讀寫的效率比較225 6.3.6字元流的沖刷227 6.3.7檔的屬性227 6.4字元類型函數和字串操作函數230 6.4.1字元類型函數230 6.4.2字串操作函數231 6.5時間函數233 6.5.1日曆時間233 6.5.2程式執行時間235 6.6亂數函數235 6.6.1基本亂數函數235 6.6.2均勻分佈亂數的生成236 6.6.3非均勻連續分佈亂數的生成237 6.6.4離散分佈亂數的生成238 第7章程式的優化241 7.1優化的作用和意義241 7.2優化的基本過程242 7.2.1運算時間和存儲空間242 7.2.2優化可能性的判斷243 7.2.3程式運行的整體計時244 7.2.4程式運行的分析計時和程式運行剖面246 7.3運行效率的改進策略和方法249 7.3.1調整代碼249 7.3.2改進演算法254 7.3.3空間換時間258 7.3.4改進資料結構261 7.3.5瞭解和適應硬體的特性263 7.3.6編譯優化選項266 7.4空間效率的改進策略和方法267 7.4.1記憶體使用狀況的檢測267 7.4.2空間效率的改進方法268 第8章程式的風格、結構和組織272 8.1程式風格的要素272 8.2程式的描述273 8.2.1代碼描述的層次273 8.2.2代碼的函數封裝274 8.2.3資料描述控制代碼的執行275 8.2.4運算式的描述284 8.2.5預處理和變數初始化的使用285 8.2.6程式可靠性的設計要點286 8.2.7錯誤資訊和日誌檔287 8.2.8關於可攜性的考慮289 8.2.9程式中的注釋290 8.3變數使用中的規則和風格290 8.3.1變數的命名291 8.3.2變數的命名空間和作用域292 8.3.3變數的生存週期和靜態區域變數295 8.3.4全域變數的使用298 8.3.5變數與常量的比較299 8.4函數的參數和變長參數表300 8.4.1基於指標陣列的變長參數處理機制301 8.4.2變長參數表302 8.4.3函數的參數傳遞302 8.4.4變長參數表的基本處理機制和工具303 8.4.5變長參數表和程式描述風格305 8.4.6vprintf()函數族310 8.5緩衝區溢位311 8.6常用編譯預處理命令的使用313 8.6.1檔的包含313 8.6.2宏314 8.6.3系統預定義的巨集317 8.6.4條件編譯318 8.7編譯選項指令:#pragma321 8.8原始檔案的拆分322 8.8.1原始檔案拆分的基本原則323 8.8.2原始檔案的類型和尾碼323 8.8.3避免.件被重複引用324 8.8.4靜態全域變數325 8.8.5可執行檔的生成和新326 附錄A標準標頭檔及其中的函數說明和符號常量328 附錄Bcc/gcc的常用命令選項331 附錄Cvi的基本操作命令332 附錄DASCII編碼表334 附錄E函數printf()的常用描述符及其含義336 示例索引338
客服公告
热门活动
订阅电子报