商品簡介
本書是一本關于C 語言的經典書籍,全書共計20章,主要介紹了C 的基本知識、函數和庫、字符串、流、集合、類的設計、遞歸、遞歸策略、回溯算法、算法分析、指針與數組、動態內存管理、效率與表示、線性結構、映射、樹、圖、繼承、迭代的策略等內容。本書重點圖突出,全面講解了C 語言的基本概念,深入剖析了具體的編程思路。同事,每章后面都有配套的的習題,有助于讀者進一步理解和掌握晦澀的概念。本書適合作為計算機專業及相關專業學生的教材或教學參考書,也適合希望學習C 語言的初學者和中高級程序員使用。
目次
目 錄Programming Abstractions in C 出版者的話譯者序前言第1章 C 概述11.1 你的個C 程序11.2 C 的歷史21.2.1 面向對象范型21.2.2 C 的演化31.3 編譯過程31.4 C 程序結構41.4.1 注釋51.4.2 包含的庫文件61.4.3函數原型61.4.4主程序71.4.5函數定義81.5 變量91.5.1 變量聲明91.5.2命名規則101.5.3 局部變量和全局變量111.5.4 常量111.6 數據類型121.6.1 數據類型的概念121.6.2 整數類型131.6.3 浮點類型131.6.4 布爾類型141.6.5 字符141.6.6 字符串151.6.7 枚舉類型161.6.8 復合類型171.7 表達式171.7.1 優先級和結合律181.7.2 表達式中的混合類型191.7.3整數除法和求余操作符191.7.4 類型轉換201.7.5 賦值操作符201.7.6 自增和自減操作符211.7.7 布爾運算221.8 語句241.8.1 簡單語句241.8.2 塊241.8.3 if語句241.8.4 switch語句251.8.5while語句271.8.6 for語句29本章小結31復習題32習題33第2章 函數與庫372.1 函數概念372.1.1 數學中的函數372.1.2 編程中的函數372.1.3 使用函數的優點382.1.4函數和算法382.2庫392.3在C 中定義函數412.3.1函數原型412.3.2重載422.3.3默認形參數422.4函數調用機制432.4.1函數調用步驟432.4.2組合函數442.4.3追蹤組合函數執行過程462.5引用參數492.6接口與實現522.6.1定義error庫532.6.2導出數據類型542.6.3導出常量定義562.7接口設計原則582.7.1統一主題的重要性582.7.2簡單性與信息隱藏原理592.7.3滿足用戶需求602.7.4通用工具的優勢602.7.5庫穩定性的價值602.8隨機數庫的設計612.8.1隨機數與偽隨機數612.8.2標準庫中的偽隨機數622.8.3選擇正確的函數集632.8.4構建用戶程序652.8.5隨機數庫的實現652.8.6初始化隨機數種子692.9Stanford類庫介紹732.9.1簡單的輸入和輸出類庫732.9.2Stanford類庫中的圖形處理程序74本章小結77復習題78習題79第3章 字符串類string853.1使用字符串作為抽象數據853.2字符串操作873.2.1操作符重載883.2.2從一個字符串中選取字符893.2.3字符串賦值903.2.4提取字符串中的子串903.2.5在一個字符串中進行搜索903.2.6循環遍歷字符串中的所有字符913.2.7通過連接擴展字符串923.3 庫933.4修改字符串中的內容943.5遺留的C風格字符串953.6編寫字符串應用程序953.6.1回文識別963.6.2將英語翻譯成兒童黑話963.7strlib.h庫99本章小結100復習題100習題101第4章 流類1084.1格式化輸出1084.2格式化輸入1124.3數據文件1134.3.1使用文件流1144.3.2單個字符的輸入/輸出1154.3.3面向行的輸入/輸出1184.3.4格式化輸入/輸出1194.3.5字符串流1214.3.6一個用于控制臺輸入的更魯棒的策略1224.4類層次1234.4.1生物層次1234.4.2流類層次1244.4.3在流層次中選擇正確的層次1264.5simpio.h和filelib.h庫127本章小結128復習題128習題129第5章 集合類 1335.1Vector類1345.1.1指定Vector的基類型1345.1.2聲明Vector對象1355.1.3Vector的操作1355.1.4從Vector對象中選擇元素1365.1.5作為參數傳遞Vector對象1375.1.6創建預先定義大小的Vector1385.1.7Vector類的構造函數1415.1.8Vector中的操作符1425.1.9表示二維結構1435.1.10Stanford類庫中的Grid類1435.2Stack類1445.2.1Stack類結構1455.2.2棧和小型計算器1455.3Queue類1485.3.1仿真和模型1495.3.2排隊模型1495.3.3離散時間1505.3.4仿真時間中的事件1505.3.5實現仿真1515.4Map類1545.4.1Map類的結構1545.4.2在一個應用中使用Map類1565.4.3Map類作為關聯數組1575.5Set類1585.5.1實現 庫1595.5.2創建單詞列表1605.5.3Stanford類庫中的Lexicon類1615.6在集合上進行迭代1625.6.1迭代順序1635.6.2再論兒童黑話1645.6.3計算單詞的頻率165本章小結167復習題168習題168第6章 類的設計1786.1 二維點的表示1786.1.1 將Point定義為結構類型1786.1.2 將Point定義為類1796.1.3 接口與實現的分離1826.2 操作符重載1846.2.1 重載插入操作符1846.2.2 判斷兩個點是否相等1866.2.3 為Direction類型增加操作符1896.3 有理數1916.3.1 定義新類的機制1926.3.2 采用用戶的觀點1936.3.3 確定Rational類的私有實例變量1936.3.4 為Rational類定義構造函數1936.3.5 為Rational類定義方法1946.3.6 實現Rational類1966.4 token掃描器類的設計1986.4.1 用戶想從記號掃描器中得到什么1996.4.2 tokenscanner.h接口2006.4.3 實現TokenScanner類2026.5 將程序封裝成類205本章小結207復習題207習題208第7章 遞歸簡介2157.1 一個簡單的遞歸例子2157.2 階乘函數2177.2.1 fact的遞歸公式2177.2.2 追蹤遞歸過程2187.2.3 遞歸的穩步跳躍2217.3 斐波那契