《C程式設計——基於套用導向與任務驅動的學習方法》由賀細平翻譯的一本C語言學習書籍。
基本介紹
- 中文名:C程式設計——基於套用導向與任務驅動的學習方法
- 作者:賀細平
- 出版社:電子工業出版社
- 出版時間:2018年1月
- 頁數:524 頁
- 定價:89 元
- 開本:16 開
- ISBN:9787121332326
- 外文名:C programming - based on application oriented and task driven learning methods
內容簡介,作者簡介,圖書目錄,
內容簡介
本書採用以解決實際套用問題為導向、以具體編程任務為驅動的模式,將C語言的知識無縫融入每個實際應用程式中。作者精心設計了100多個套用案例,每個案例均有實現特定功能的、完整的、可運行的程式代碼。本書圖表豐富,對程式設計的概念、求解問題的思路和方法、程式背後的原理和機制進行了深入剖析。全書共9章。第1章從簡單程式入手,將程式設計相關的基礎性概念融入案例,使讀者對C程式設計有一個整體的、直觀的、感性的認識。第2章闡述表達複雜邏輯的分支和循環語句的用法,使讀者對套用問題中的邏輯具有較好的表達能力。第3章闡述了利用數組處理批量數據。第4章闡述了如何存儲和處理文本型數據。第5章全面地闡述了函式這一模組化程式設計利器。第6章對具有記憶體間接訪問能力的指針進行了深入闡述。第7章講解如何利用結構體類型創建用戶所需新數據類型。第8章闡述了如何利用檔案實現數據持久化。第9章講解了位運算的規則和用法。
作者簡介
博士,國防科技大學計算機學院計算機套用專業。湖南農業大學信息科學技術學院電商系主任,副教授。中國計算機學會會員,湖南省高教學會計算機教育專業委員會會員。出版教材:現代計算機網路系統原理及技術研究,中國商務出版社,2013年。
圖書目錄
第1章 邂逅程式設計—初識C語言 1
1.1 第一個程式—我會算加法 2
1.2 人機互動—輸入和輸出函式的基本用法 10
1.3 條件與判斷—隨機應變 17
1.3.1 二叉分支的表達—基本的if-else語句 17
1.3.2 複合條件的表達 22
1.4 利用庫函式—拿來主義 25
1.5 機器擅長之“算術運算”—計算機的老本行 28
1.6 變數—數據的棲身之所 34
1.6.1 變數的概念 34
1.6.2 變數的數據類型 37
1.6.3 程式中的常量 40
1.7 賦值運算—改變變數的值 42
1.8 程式設計的一般過程 47
本章小結 48
第2章 程式邏輯之關鍵—分支與循環 51
2.1 機器智慧型與決策之基石—分支結構 52
2.1.1 決策與分支結構 52
2.1.2 基本分支結構及其連線方式 60
2.1.3 邏輯運算與複合條件表達 71
2.1.4 if條件表達典型錯誤分析 75
2.2 機器擅長之“循環”—不厭其煩地重複 77
2.2.1 for循環的引入 78
2.2.2 剖析for循環 86
2.2.3 必須套用循環結構的場合 90
2.2.4 循環的初步運用 93
2.2.5 for循環常見錯誤分析 96
2.3 程式邏輯進階—多分支和多重循環 98
2.3.1 深入理解循環 98
2.3.2 循環的連線 100
2.3.3 雙重循環與多重循環 107
2.3.4 break和continue的運用 110
2.3.5 分支與循環的串聯和嵌套 120
2.4 其他形式分支與循環 121
2.4.1 switch-case分支結構 121
2.4.2 while與do...while循環 128
本章小結 130
第3章 批量數據存儲與處理—數組 134
3.1 何時需要數組 134
3.2 序列數據的處理—一維數組 135
3.2.1 一維數組的定義 135
3.2.2 數組與記憶體分配 137
3.2.3 數組操作之演練 140
3.2.4 一維數組的運用 141
3.2.5 巧用數組下標 149
3.3 表格型數據的處理—二維數組 154
3.3.1 二維數組的定義 154
3.3.2 訪問二維數組的元素 155
3.3.3 二維數組操作演練 155
3.3.4 二維數組的套用 159
3.4 其他 164
3.4.1 數組的拓展—多維數組 164
3.4.2 二維數組與一維數組的關係 165
3.4.3 數組下標越界 165
3.4.4 數組定義時的大小能否為變數 167
本章小結 168
第4章 文本數據處理—字元串 169
4.1 字元數據存儲和處理 169
4.1.1 字元的編碼 169
4.1.2 字元數據的存儲 173
4.1.3 字元數據的運算 173
4.2 字元串數據存儲和處理 176
4.2.1 字元串的存儲 176
4.2.2 文本型數據輸入/輸出 177
4.2.3 字元串處理與庫函式 180
4.3 文本型數據處理之演練 190
4.4 其他 193
4.4.1 空字元'0'的作用 193
4.4.2 字元和字元串的區別與聯繫 194
本章小結 195
第5章 模組化設計之利器—函式 196
5.1 初識函式設計 197
5.2 函式的概念 200
5.2.1 函式的概念剖析 200
5.2.2 模組化設計思想在函式中的體現 203
5.3 新函式是如何煉成的 206
5.4 函式的設計 207
5.4.1 發掘任務中的模組 207
5.4.2 函式的定義 207
5.4.3 設計函式的方法論 209
5.4.4 設計函式的要點詳解 211
5.5 函式的測試 220
5.6 函式的交付使用 221
5.6.1 函式的調用形式 223
5.6.2 函式調用過程詳解 224
5.6.3 函式參數的傳遞 230
5.6.4 函式的聲明 234
5.7 函式設計實踐 236
5.8 函式的遞歸—自相似之美 249
5.8.1 初識遞歸函式 250
5.8.2 遞歸函式設計的關鍵點 253
5.8.3 遞歸調用的執行過程 262
5.8.4 二分法與遞歸 264
5.8.5 遞歸與非遞歸 273
5.8.6 提高遞歸效率 281
5.9 函式相關主題 287
5.9.1 局部變數與全局變數 287
5.9.2 函式的嵌套定義的套用 289
5.9.3 如何生成隨機數 289
5.9.4 庫函式 295
5.9.5 初談提高程式效率 295
本章小結 299
第6章 記憶體間接訪問之神器—指針 301
6.1 深入理解記憶體地址 302
6.1.1 記憶體是什麼 302
6.1.2 什麼是記憶體地址 302
6.2 間接訪問與直接訪問 305
6.3 指針變數與普通變數 309
6.3.1 指針變數的概念 309
6.3.2 揭秘“指針”的由來 310
6.3.3 普通變數與指針變數的對比 311
6.4 指針與數組的天然聯繫 312
6.4.1 數組名與數組起始地址 312
6.4.2 揭秘訪問數組的更多細節 313
6.5 指針的移動 319
6.6 地址值在函式調用中的特殊作用 331
6.6.1 函式調用過程詳解 331
6.6.2 指針作為函式參數 334
6.6.3 數組名作為函式實參 341
6.6.4 可接受地址值的形參類型探究 349
6.7 指針與動態記憶體分配 352
6.7.1 一維數組的動態記憶體分配 354
6.7.2 二維及多維數組與指針 357
6.7.3 多階指針 370
6.7.4 返回值為指向動態分配空間的指針 370
6.8 變數的存儲區、作用範圍與生命期 371
6.8.1 靜態變數和全局變數 372
6.8.2 進程記憶體地址空間布局 376
6.8.3 變數的作用範圍、生命期和存儲區 379
6.8.4 extern的用法 382
6.9 函式也可作為參數—函式指針與套用 384
6.9.1 函式指針的概念 384
6.9.2 函式指針數組的運用 387
6.9.3 函式指針與qsort( )函式的套用 388
本章小結 396
第7章 創造新數據類型—結構體類型 399
7.1 為何引入結構體類型 399
7.2 結構體類型的定義和基本用法 402
7.2.1 結構體類型的定義 402
7.2.2 結構體類型的基本用法 406
7.3 結構體類型數組的用法 409
7.4 結構體類型在函式中的運用 411
7.4.1 結構體類型在函式中的一般用法 411
7.4.2 結構體類型數組的排序 420
7.5 結構體類型與鍊表 431
7.5.1 鍊表的概念和用途 431
7.5.2 鍊表 432
7.5.3 為什麼需要鍊表 439
7.5.4 循環單鍊表及其套用 440
本章小結 447
第8章 數據持久化—檔案 448
8.1 檔案的基本概念 449
8.1.1 檔案的“紙帶模型” 449
8.1.2 緩衝檔案讀/寫過程模型 451
8.1.3 讀/寫檔案基本流程與檔案指針 452
8.1.4 檔案打開方式 454
8.2 檔案的讀/寫 454
8.2.1 文本檔案的讀/寫 454
8.2.2 二進制檔案讀/寫 459
8.3 檔案讀/寫位置的定位 466
8.4 文本檔案與二進制檔案的對比 470
8.5 其他主題 475
8.5.1 關於stdin、stdout、stderr 475
8.5.2 標準輸入、輸出的重定向 476
8.5.3 理解和運用stderr與stdout 478
8.5.4 fflush( )函式的用法 479
8.5.5 EOF的運用 481
8.5.6 容易被誤解的feof( )函式 482
8.5.7 fgets( )與gets( )的區別 484
本章小結 485
第9章 深入到bit的運算—位運算 487
9.1 位運算的運算符 487
9.2 初識位運算 488
9.3 位運算的套用 489
9.4 位運算的注意事項 505
9.4.1 右移的補位方式 505
9.4.2 移位量的取模特性 506
9.4.3 位運算的數據類型 507
9.5 位域 509
本章小結 510