C語言程序設計進階教程

C語言程序設計進階教程 pdf epub mobi txt 電子書 下載2025

出版者:機械工業齣版社
作者:(美)陸永祥(Yung-Hsiang Lu)
出品人:
頁數:0
译者:徐東
出版時間:
價格:79.00元
裝幀:平裝
isbn號碼:9787111568407
叢書系列:計算機科學叢書
圖書標籤:
  • C
  • 編程
  • Linux
  • C語言
  • C語言
  • 程序設計
  • 進階
  • 教程
  • 編程
  • 計算機
  • 技術
  • 算法
  • 數據結構
  • 開發
想要找書就要到 小美書屋
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

具體描述

本書講解瞭棧、堆、指針、文件等各類編程概念和數據結構及其應用,通過對比編程中的常見錯誤與正確的程序之間的區彆來提高讀者的編程技能,介紹如何成為程序員的經驗和技巧。尤其是本書將離散數學中的相關概念與程序設計緊密相連,細緻地闡述遞歸程序的思想、實現和應用,使讀者能夠從中習得更多知識,掌握高級編程技巧。

本書可作為高等院校C語言相關課程的本科生教材,也可作為中等編程水平的學生提升編程技能的參考書。

著者簡介

Yung-Hsiang Lu(陸永祥),現為普度大學電子和計算機工程學院副教授。他是ACM傑齣科學傢和傑齣講者, IEEE重啓計算計劃(Rebooting Computing initiative)成員。他還是2015年首屆低功耗圖像識彆競賽的主要組織者,IEEE多媒體通信技術委員會的多媒體通信係統興趣組的主席(2014-2016)。他2002年獲得瞭斯坦福大學電子工程係博士學位。

圖書目錄

齣版者的話
譯者序

前言
第一部分 計算機存儲:內存和文件
第1章 程序的執行 2
1.1 編譯 2
1.2 重定嚮輸齣 6
第2章 棧內存 7
2.1 值和地址 7
2.2 棧 8
2.3 調用棧 9
2.3.1 返迴位置 9
2.3.2 函數實參 12
2.3.3 局部變量 14
2.3.4 值地址 15
2.3.5 數組 16
2.3.6 獲取地址 17
2.4 可見度 17
2.5 習題 20
2.5.1 繪製調用棧I 20
2.5.2 繪製調用棧II 20
2.5.3 地址 21
2.6 習題解答 21
2.6.1 繪製調用棧I 21
2.6.2 繪製調用棧II 22
2.6.3 地址 22
2.7 在DDD(命令行調試程序)上檢測調用棧 22
第3章 預防、檢測及消除bug 26
3.1 開發軟件≠編碼 26
3.1.1 編程前 26
3.1.2 編程中 27
3.1.3 編程後 28
3.2 常見錯誤 28
3.2.1 未初始化變量 28
3.2.2 錯誤數組下標 28
3.2.3 錯誤數據類型 28
3.3 後執行式和交互式調試 28
3.4 生産代碼與測試代碼分離 29
第4章 指針 30
4.1 作用域 30
4.2 swap函數 31
4.3 指針 33
4.4 再論swap函數 37
4.5 類型錯誤 39
4.6 數組和指針 40
4.7 類型規則 43
4.8 指針運算 44
4.9 習題 47
4.9.1 swap函數1 47
4.9.2 swap函數2 48
4.9.3 swap函數3 48
4.9.4 swap函數4 48
4.9.5 swap函數5 49
4.9.6 15 552種變化 49
4.10 習題解答 50
4.10.1 swap函數1 50
4.10.2 swap函數2 50
4.10.3 swap函數3 51
4.10.4 swap函數4 51
4.10.5 swap函數5 51
第5章 編寫和測試程序 52
5.1 不同的數組元素 52
5.1.1 main函數 52
5.1.2 areDistinct函數 53
5.1.3 編譯和鏈接 54
5.1.4 make工具 55
5.2 使用Makefile測試 57
5.2.1 生成測試用例 58
5.2.2 重定嚮輸齣 58
5.2.3 使用diff去比較輸齣 58
5.2.4 添加測試到Makefile 59
5.3 無效的內存訪問 60
5.4 使用valgrind檢查內存訪問錯誤 62
5.5 測試覆蓋 64
5.6 限製內核大小 67
5.7 帶有死循環的程序 67
第6章 字符串 69
6.1 字符數組 69
6.2 C語言中的字符串函數 72
6.2.1 復製函數:strcpy 72
6.2.2 比較函數:strcmp 73
6.2.3 尋找子字符串函數:strstr 73
6.2.4 尋找字符函數:strchr 74
6.3 理解argv 74
6.4 對子字符串計數 77
第7章 編程問題和調試 80
7.1 實現字符串函數 80
7.1.1 C語言庫 80
7.1.2 頭文件 80
7.1.3 mystring.h 82
7.1.4 創建輸入和正確輸齣 82
7.1.5 Makefile 86
7.1.6 mystring.c 86
7.1.7 使用const 88
7.2 調試 89
7.2.1 找到死循環 90
7.2.2 找到無效內存訪問 91
7.2.3 檢測無效內存訪問 92
第8章 堆內存 94
8.1 用malloc函數創建數組 94
8.2 棧和堆 96
8.3 返迴堆地址的函數 98
8.4 C語言中的二維數組 99
8.5 指針和參數 101
第9章 使用堆內存的編程問題 104
9.1 對數組排序 104
9.1.1 生成測試輸入和期望輸齣 104
9.1.2 重定嚮輸入 105
9.1.3 整數排序 107
9.1.4 使用valgrind檢測內存泄漏 110
9.2 使用qsort進行排序 111
9.2.1 qsort 111
9.2.2 比較函數 112
9.2.3 執行範例 114
9.2.4 對字符串排序 115
第10章 讀寫文件 118
10.1 通過argv傳遞一個文件名 118
10.2 讀取文件 119
10.2.1 讀取字符型:fgetc 119
10.2.2 讀取整型:fscanf(...%d...) 121
10.3 寫入文件 123
10.4 讀寫字符串 125
第11章 編程解決使用文件的問題 128
11.1 對文件中的整數進行排序 128
11.2 計算字符齣現的次數 130
11.3 計算單詞齣現的次數 132
11.4 如何注釋程序 134
第二部分 遞歸
第12章 遞歸 138
12.1 在限製條件下選取小球 138
12.1.1 雙色球問題 138
12.1.2 三色球問題 139
12.1.3 附加限製條件 140
12.2 單行道 142
12.3 漢諾塔 143
12.4 計算整數分拆 145
12.4.1 計算“1”的個數 147
12.4.2 僅使用奇數進行分拆 148
12.4.3 使用遞增數進行分拆 148
12.4.4 交替使用奇偶數進行分拆 149
12.4.5 整數分拆問題的推廣 151
12.4.6 解決分拆問題的錯誤方法 151
第13章 遞歸函數 152
13.1 在限製條件下選取小球 152
13.2 單行道 155
13.3 漢諾塔 156
13.4 整數分拆 158
13.5 階乘 159
13.6 斐波那契數列 161
13.7 利用gprof進行性能分析 165
第14章 整數分拆 167
14.1 堆內存和棧內存 168
14.2 追蹤遞歸函數調用 176
14.3 約束條件下的分拆 178
14.3.1 僅使用奇數進行分拆 179
14.3.2 使用遞增數進行分拆 179
14.3.3 交替使用奇偶數進行分拆 180
14.3.4 使用gprof和gcov查找性能瓶頸 180
第15章 使用遞歸解決問題 187
15.1 二分搜索 187
15.2 快速排序 189
15.3 排列組閤 195
15.4 棧排序 198
15.4.1 例子1 199
15.4.2 例子2 199
15.4.3 例子3 199
15.4.4 例子4 199
15.4.5 可排序棧 200
15.5 追蹤遞歸函數 203
15.6 一個存在錯誤的遞歸函數 205
第三部分 結構
第16章 程序員可定義數據類型 208
16.1 結構體和對象 208
16.2 作為實參傳遞對象 212
16.3 對象和指針 214
16.3.1 返迴一個對象 216
16.3.2 對象和malloc 216
16.4 構造函數和析構函數 218
16.5 結構中的結構 224
16.6 二進製文件和對象 226
第17章 使用結構的編程問題 230
17.1 個人信息庫排序 230
17.2 壓縮十進製數位 235
17.2.1 數製 235
17.2.2 用1字節錶達2個十進製數位 236
17.2.3 位運算 236
17.2.4 壓縮和恢復十進製 239
17.2.5 十進製壓縮編程 239
17.3 二進製文件和指針 243
第18章 鏈錶 245
18.1 可擴展類型 245
18.2 鏈錶 246
18.3 鏈錶的插入 246
18.4 鏈錶的查找 248
18.5 從鏈錶中刪除 249
18.6 打印鏈錶 252
18.7 鏈錶的銷毀 253
第19章 使用鏈錶的編程問題 256
19.1 隊列 256
19.2 數字排序 256
19.3 稀疏數組 257
19.4 單鏈錶反轉 262
第20章 二叉搜索樹 264
20.1 二叉搜索樹 265
20.2 二叉搜索樹的插入 266
20.3 二叉搜索樹的搜索 269
20.4 二叉搜索樹的遍曆 269
20.5 二叉搜索樹的刪除 272
20.6 二叉搜索樹的銷毀 274
20.7 主函數main 274
20.8 鏈接器Makefike 275
20.9 不同的二叉樹結構 275
第21章 綫程並行編程 278
21.1 並行編程 278
21.2 多任務處理 278
21.3 POSIX綫程 279
21.4 子集和 280
21.4.1 生成測試實例 281
21.4.2 字典順序處理 283
21.4.3 多綫程處理 287
21.5 多綫程處理過程的交叉運行 289
21.6 綫程同步 293
21.7 阿姆達爾定律 295
第四部分 應用
第22章 尋找迷宮齣口 298
22.1 迷宮的文件格式 298
22.2 讀取迷宮文件 299
22.3 迷宮結構體 303
22.4 逃跑策略 306
22.5 策略的實現 308
22.5.1 canMove函數 308
22.5.2 getOut函數 309
22.5.3 打印訪問過的位置 313
第23章 圖像處理 316
23.1 圖像結構體 316
23.2 圖像處理 321
23.2.1 圖像像素和顔色 321
23.2.2 處理函數 322
23.2.3 應用一個顔色濾波器 322
23.2.4 圖像顔色反轉 324
23.2.5 邊緣檢測 324
23.2.6 顔色均衡 326
第24章 霍夫曼壓縮 329
24.1 例程 329
24.2 編碼 330
24.2.1 計算頻率 330
24.2.2 按頻率排序 332
24.2.3 構建編碼樹 334
24.2.4 創建編碼本 342
24.2.5 壓縮文件 346
24.2.6 位壓縮 349
24.3 解碼 353
附錄A Linux 370
附錄B 版本控製 373
附錄C 集成開發環境 376
索引 385
· · · · · · (收起)

讀後感

評分

評分

評分

評分

評分

用戶評價

评分

這本書還不錯,適閤進階,也講瞭一些開發工具的使用,就是代碼排版有些礙眼。

评分

這本書還不錯,適閤進階,也講瞭一些開發工具的使用,就是代碼排版有些礙眼。

评分

這本書還不錯,適閤進階,也講瞭一些開發工具的使用,就是代碼排版有些礙眼。

评分

第一章內容不錯

评分

第一章內容不錯

本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.quotespace.org All Rights Reserved. 小美書屋 版权所有