c語言從入門到精通第4版

c語言從入門到精通第4版

《c語言從入門到精通第4版》是2021年人民郵電出版社出版的圖書。本書適合任何想學習C語言的讀者,無論你是否從事計算機相關行業、是否接觸過C語言,均可通過學習本書快速掌握C語言的開發方法和技巧。

基本介紹

  • 中文名:c語言從入門到精通第4版
  • 作者:李嵐
  • 出版社:人民郵電出版社
  • ISBN:9787115548351
內容簡介,圖書目錄,

內容簡介

本書以零基礎入門為宗旨,用範例引導讀者學習,深入淺出地介紹了C語言的相關知識和實戰技能。本書第Ⅰ篇【基礎知識】主要講解步入C語言的世界—Hello C、C程式的結構、C語言的基本構成元素、變數、數制、數據類型、運算符和表達式、算法、順序結構與選擇結構、循環結構與轉向語句、數組以及字元數組和字元串等;第Ⅱ篇【核心技術—函式】主要講解函式、變數的作用範圍和存儲類型、庫函式、結構體和聯合體、枚舉等;第Ⅲ篇【高級套用—指針及檔案】主要介紹指針、指針與數組、指針與函式、指針與字元串、指針與結構體、指針的高級套用與技巧以及檔案等;第Ⅳ篇【數據結構及C語言中的常用算法】主要介紹數據結構、C語言中的高級算法、數學問題算法、排序問題算法、查找問題算法以及算法競賽實例等;第Ⅴ篇【趣味解題】主要介紹歌手比賽評分系統、哥德巴赫猜想、列印日曆、背包問題、火車車廂重排、商人過河以及K階斐波那契數列的實現等。本書提供了與圖書內容全程同步的教學錄像。此外,還贈送了大量相關的學習資料,以便讀者擴展學習。本書適合任何想學習C語言的讀者,無論你是否從事計算機相關行業、是否接觸過C語言,均可通過學習本書快速掌握C語言的開發方法和技巧。

圖書目錄

第 0 章 學習攻略
0.1 編程的魔力 002
0.2 C語言的起源及特點 002
0.3 C語言的用途 004
0.4 C語言實現的人機互動 004
0.5 C語言的學習方法 005
第 Ⅰ 篇基礎知識
第 1 章 步入C語言的世界——Hello C
1.1 C語言的開發環境 009
1.1.1 C語言常用的開發環境 009
1.1.2 Code::Blocks開發環境 010
1.1.3 手機編譯器 011
1.2 開始C編程—我的第 一個C程式 012
1.2.1 程式編寫及運行流程 012
1.2.2 在Code::Blocks中開發C程式 013
1.2.3 在手機編譯器中開發C程式 015
1.3 高手點撥 016
1.4 實戰練習 016
第 2 章 C程式的結構
2.1 引例 018
2.2 聲明區 018
2.2.1 頭檔案 018
2.2.2 函式聲明 019
2.2.3 變數聲明 019
2.3 主函式 020
2.4 函式定義區 020
2.5 注釋 021
2.6 書寫代碼的規則 021
2.7 高手點撥 022
2.8 實戰練習 022
第 3 章 C語言的基本構成元素
3.1 標識符和關鍵字 024
3.1.1 標識符 024
3.1.2 關鍵字 024
3.2 常量 024
3.3 常量的類別 025
3.3.1 數值常量 025
3.3.2 字元常量 026
3.3.3 字元串常量 028
3.3.4 符號常量 028
3.4 綜合套用——常量與符號常量 028
3.5 高手點撥 029
3.6 實戰練習 030
第 4 章 變數
4.1 變數概述 032
4.1.1 變數的定義 032
4.1.2 變數的定義與聲明 033
4.2 變數的初始化和賦值 033
4.3 變數的輸入和輸出 034
4.3.1 格式化輸出函式——printf() 034
4.3.2 格式控制符 035
4.3.3 格式化輸入函式——scanf() 040
4.4 字元的輸入和輸出 042
4.4.1 字元輸出函式——putchar() 043
4.4.2 字元輸入函式——getchar() 043
4.5 綜合套用——對變數的操作 044
4.6 高手點撥 046
4.7 實戰練習 046
第 5 章 計算機中的數制系統
5.1 二進制 048
5.2 八進制 049
5.3 十進制 049
5.4 十六進制 050
5.5 數制間的轉換 050
5.6 綜合套用——數制轉換 051
5.7 高手點撥 052
5.8 實戰練習 052
第 6 章 數據的種類——數據類型
6.1 數據類型的分類 054
6.1.1 基本類型 054
6.1.2 構造類型 054
6.1.3 指針類型 054
6.1.4 空類型 054
6.2 整型 055
6.3 字元型 057
6.4 浮點型 059
6.5 類型轉換 060
6.5.1 隱式轉換 060
6.5.2 顯式轉換 061
6.6 綜合套用——數據類型轉換 062
6.7 高手點撥 063
6.8 實戰練習 064
第 7 章 C 語言中的運算符和表達式
7.1 運算符和表達式 066
7.1.1 運算符 066
7.1.2 表達式 066
7.2 算術運算符和表達式 067
7.2.1 算術運算符 067
7.2.2 算術表達式 067
7.2.3 套用舉例 067
7.3 關係運算符和表達式 069
7.3.1 關係運算符 069
7.3.2 關係表達式 069
7.3.3 套用舉例 069
7.4 邏輯運算符和表達式 070
7.4.1 邏輯運算符 070
7.4.2 邏輯表達式 071
7.4.3 套用舉例 071
7.5 條件運算符和表達式 073
7.6 賦值運算符和表達式 074
7.6.1 賦值運算符 074
7.6.2 賦值表達式 074
7.6.3 套用舉例 075
7.7 自增、自減運算符 076
7.8 逗號運算符和表達式 077
7.9 位運算符 078
7.9.1 按位與運算符 078
7.9.2 按位或運算符 079
7.9.3 按位異或運算符 079
7.9.4 按位取反運算符 080
7.9.5 左移運算符 080
7.9.6 右移運算符 081
7.9.7 位運算賦值運算符 082
7.9.8 位運算套用 082
7.10 運算符的優先權和結合性 085
7.10.1 算術運算符 085
7.10.2 關係運算符 085
7.10.3 邏輯運算符 085
7.10.4 賦值運算符 085
7.11 綜合套用——條件運算符的套用 086
7.12 高手點撥 087
7.13 實戰練習 088
第 8 章 程式的靈魂——算法
8.1 算法概述 090
8.1.1 算法的定義 090
8.1.2 算法的特性 090
8.1.3 簡單算法舉例——解方程 091
8.2 如何表示一個算法 092
8.2.1 自然語言表示算法 092
8.2.2 流程圖表示算法 094
8.2.3 N-S 流程圖表示算法 098
8.2.4 偽代碼表示算法 100
8.2.5 計算機語言表示算法 101
8.3 結構化程式設計方法 101
8.4 衡量程式質量的標準 102
8.5 綜合套用——求解一元二次方程的根 103
8.6 高手點撥 104
8.7 實戰練習 104
第 9 章 順序結構與選擇結構
9.1 語句 106
9.1.1 表達式語句 106
9.1.2 控制語句 106
9.1.3 空語句和複合語句 106
9.1.4 函式調用語句 107
9.2 順序結構 107
9.3 選擇結構 109
9.3.1 選擇結構的定義 109
9.3.2 二分支選擇結構——if 語句 109
9.3.3 二分支選擇結構——if-else 語句 111
9.3.4 二分支選擇結構——if-else 的嵌套形式 112
9.3.5 多分支選擇結構——switch 語句 116
9.4 綜合套用—計算獎金 118
9.5 高手點撥 119
9.6 實戰練習 120
第 10章 循環結構與轉向語句
10.1 循環結構 122
10.1.1 循環結構的定義 122
10.1.2 for 語句 123
10.1.3 while 語句 126
10.1.4 do-while 語句 127
10.1.5 循環的嵌套 129
10.2 轉向語句 132
10.2.1 goto 語句 132
10.2.2 break 語句 133
10.2.3 continue 語句 135
10.3 綜合套用——簡單計算器的設計 136
10.4 高手點撥 138
10.5 實戰練習 138
第 11章 數組
11.1 數組概述 140
11.2 一維數組 140
11.2.1 一維數組的定義 140
11.2.2 一維數組的初始化 142
11.2.3 一維數組元素的引用 143
11.2.4 一維數組的套用舉例 145
11.3 二維數組 147
11.3.1 二維數組的定義 148
11.3.2 二維數組的初始化 148
11.3.3 二維數組元素的引用 149
11.3.4 二維數組的套用舉例 149
11.4 綜合套用——楊輝三角 151
11.5 高手點撥 152
11.6 實戰練習 153
第 12章 字元數組和字元串
12.1 字元數組概述 156
12.2 字元數組 156
12.2.1 字元數組的定義 156
12.2.2 字元數組的初始化 156
12.2.3 字元數組的引用 157
12.2.4 字元數組的輸入與輸出 157
12.3 字元串 158
12.3.1 字元串和字元數組 159
12.3.2 字元串的輸入和輸出 160
12.3.3 字元串套用舉例 162
12.4 綜合套用——自動分類字元 164
12.5 高手點撥 165
12.6 實戰練習 166
第 Ⅱ 篇 核心技術——函式
第 13章 函式
13.1 函式概述 169
13.1.1 什麼是函式 169
13.1.2 函式的分類 170
13.2 函式功能 171
13.3 函式的返回值及類型 173
13.3.1 函式的返回值 173
13.3.2 函式返回值的類型 174
13.4 函式的參數及傳遞方式 177
13.4.1 函式的參數 177
13.4.2 函式參數的傳遞方式 179
13.4.3 帶參數的主函式 182
13.5 函式的調用 183
13.5.1 函式調用方式 184
13.5.2 函式的聲明 185
13.5.3 函式的嵌套調用 187
13.5.4 函式的遞歸調用 188
13.6 內部函式和外部函式 193
13.6.1 內部函式 193
13.6.2 外部函式 193
13.7 綜合套用——用截弦法求方程的根 195
13.8 高手點撥 196
13.9 實戰練習 197
第 14章 變數的作用範圍和存儲類型
14.1 變數的作用範圍 200
14.1.1 局部變數 200
14.1.2 全局變數 201
14.2 變數的存儲類型 203
14.2.1 自動類型 204
14.2.2 暫存器類型 204
14.2.3 靜態類型 205
14.2.4 外部類型 207
14.3 綜合套用——根據日期判斷是該年第幾天 208
14.4 高手點撥 209
14.5 實戰練習 210
第 15章 庫函式
15.1 C 標準函式館 212
15.2 數學函式 212
15.2.1 值函式 213
15.2.2 冪函式和開平方函式 213
15.2.3 指數函式和對數函式 214
15.2.4 三角函式 214
15.2.5 取整函式和取余函式 215
15.3 字元串處理函式 216
15.3.1 字元串長度函式 216
15.3.2 字元串連線函式 216
15.3.3 字元串複製函式 217
15.3.4 字元串比較函式 218
15.3.5 字元串查找函式 219
15.3.6 字元串填充函式 220
15.4 字元處理函式 220
15.4.1 字元類型判斷函式 221
15.4.2 字元大小寫轉換函式 222
15.5 數據類型轉換和存儲管理函式 222
15.5.1 數據類型轉換函式 222
15.5.2 存儲管理函式 223
15.6 隨機函式 225
15.6.1 初識隨機函式 225
15.6.2 使用隨機函式 226
15.7 日期和時間處理函式 227
15.8 診斷函式 228
15.9 其他函式 229
15.9.1 exit()函式 229
15.9.2 qsort()函式 230
15.10 綜合套用——猜數字遊戲 231
15.11 高手點撥 233
15.12 實戰練習 233
第 16章 結構體和聯合體
16.1 結構體 236
16.1.1 結構體類型的定義 236
16.1.2 結構體變數的定義 236
16.1.3 結構體變數的初始化 237
16.1.4 結構體變數的引用 238
16.2 結構體數組 238
16.2.1 結構體數組的定義 239
16.2.2 結構體數組的初始化 239
16.2.3 結構體數組元素的引用 240
16.3 結構體與函式 241
16.3.1 結構體變數作為函式的參數——傳值調用方式 241
16.3.2 結構體作為函式的返回值 242
16.4 聯合體 243
16.4.1 聯合體類型的定義 243
16.4.2 聯合體變數的定義 244
16.4.3 聯合體變數的初始化 244
16.4.4 聯合體變數的引用 246
16.5 結構體和聯合體的區別與聯繫 247
16.6 綜合套用——計算學生平均成績 247
16.7 高手點撥 249
16.8 實戰練習 249
第 17章 枚舉
17.1 枚舉類型 252
17.1.1 枚舉類型的定義 252
17.1.2 枚舉類型的套用 253
17.2 高手點撥 254
17.3 實戰練習 254
第 Ⅲ 篇高級套用——指針及檔案
第 18章 指針
18.1 指針概述 257
18.1.1 指針類型的變數和定義 257
18.1.2 指針所指向變數的類型 257
18.1.3 指針的值 257
18.1.4 指針所占記憶體 257
18.2 指針的算術運算 258
18.2.1 指針與整數的運算 258
18.2.2 指針與指針的運算 259
18.3 &和*運算符 260
18.4 指針表達式 262
18.5 綜合套用——使用指針進行排序 262
18.6 高手點撥 263
18.7 實戰練習 263
第 19章 指針與數組
19.1 數組指針 266
19.2 數組指針作為函式參數 266
19.3 指針與字元數組 267
19.4 指針數組與指針的指針 267
19.5 綜合套用——報數遊戲(約瑟夫環) 269
19.6 高手點撥 270
19.7 實戰練習 270
第 20章 指針與函式
20.1 函式指針 272
20.1.1 函式指針的定義 272
20.1.2 函式指針的賦值 272
20.1.3 通過函式指針調用函式 272
20.2 指針函式 273
20.3 指向函式的指針作為函式參數 275
20.4 綜合套用——根據當年第幾天輸出該天的日期 276
20.5 高手點撥 277
20.6 實戰練習 278
第 21章 指針與字元串
21.1 字元串指針 280
21.1.1 字元串指針的定義 280
21.1.2 字元串指針的套用 281
21.2 字元串指針作為函式參數 284
21.3 字元串指針與字元數組的區別 285
21.4 綜合套用——“回文”問題 286
21.5 實戰練習 287
第 22章 指針與結構體
22.1 結構體指針 290
22.1.1 結構體指針的定義 290
22.1.2 結構體指針的初始化 290
22.1.3 使用指針訪問結構體成員 290
22.1.4 給結構體指針賦值 291
22.2 指向結構體數組的指針 292
22.3 結構體指針作為函式參數 294
22.4 綜合套用——利用結構體創建單鍊表 295
22.5 高手點撥 296
22.6 實戰練習 296
第 23章 指針的高級套用與技巧
23.1 指向指針的指針 298
23.2 void指針 299
23.3 記憶體操作 301
23.4 指針的傳遞 304
23.5 綜合套用——數值的降序排列 304
23.6 高手點撥 305
23.7 實戰練習 306
第 24章 檔案
24.1 檔案概述 308
24.1.1 檔案類型 308
24.1.2 C如何操作檔案——檔案指針 308
24.1.3 檔案緩衝區 309
24.2 檔案的打開和關閉 309
24.2.1 檔案的打開函式——fopen() 309
24.2.2 檔案的關閉函式——fclose() 310
24.2.3 檔案結束檢測函式——feof() 311
24.3 檔案的順序讀寫 311
24.3.1 文本檔案中字元的輸入/輸出 311
24.3.2 文本檔案中字元串的輸入/輸出 313
24.3.3 文本檔案中數據的格式化輸入/輸出 315
24.3.4 二進制檔案的輸入/輸出——數據塊讀寫 317
24.4 檔案的隨機讀寫 319
24.5 綜合套用——檔案操作 320
24.6 高手點撥 321
24.7 實戰練習 322
第 Ⅳ 篇數據結構及C語言中的常用算法
第 25章 數據管理者——數據結構
25.1 數據結構概述 325
25.1.1 邏輯結構 325
25.1.2 存儲結構 326
25.1.3 數據的運算 326
25.2 線性表 326
25.2.1 線性表的定義 326
25.2.2 線性表的主要操作 327
25.2.3 順序表 327
25.2.4 單鍊表 329
25.3 棧 332
25.3.1 棧的定義 332
25.3.2 棧的主要操作 333
25.3.3 順序棧 333
25.3.4 鏈式棧 333
25.4 佇列 334
25.4.1 佇列的定義 334
25.4.2 佇列的主要操作 334
25.4.3 順序佇列 334
25.4.4 鏈佇列 335
25.5 樹和二叉樹 335
25.5.1 樹和二叉樹的定義 336
25.5.2 二叉樹的主要操作 336
25.5.3 二叉樹的存儲表示 336
25.5.4 二叉樹的遍歷 338
25.6 圖 338
25.6.1 圖的定義 338
25.6.2 圖的主要操作 338
25.6.3 圖的存儲表示 338
25.6.4 圖的遍歷 339
25.7 綜合套用——鍊表的反轉 342
25.8 高手點撥 343
25.9 實戰練習 344
第 26章 C語言中的高級算法
26.1 模擬算法 346
26.2 簡單動態規劃 347
26.3 用遞歸實現回溯算法 350
26.4 短路徑算法 352
26.4.1 只有五行的算法——Floyd-Warshall 352
26.4.2 Dijkstra 算法——單源短邊 352
26.4.3 Bellman-Ford算法——解決負權邊 353
26.4.4 Bellman-Ford 的佇列最佳化算法 353
26.4.5 短路徑算法對比分析 353
26.5 分治算法 356
26.6 貪心算法 358
26.7 綜合套用——鏢局運鏢 359
26.8 高手點撥 361
26.9 實戰練習 361
第 27章 數學問題算法
27.1 質因數分解 364
27.2 公約數的歐幾里得算法 365
27.3 加法原理與乘法原理 366
27.4 排列與組合 367
27.5 綜合套用——進站方案 368
27.6 高手點撥 369
27.7 實戰練習 370
第 28章 排序問題算法
28.1 插入排序法 372
28.2 選擇排序法 373
28.3 冒泡排序法 375
28.4 快速排序法 376
28.5 桶排序法 378
28.6 高手點撥 379
28.7 實戰練習 380
第 29章 查找問題算法
29.1 順序查找法 382
29.2 折半查找法 384
29.3 高手點撥 386
29.4 實戰練習 386
第30章 算法競賽實例
30.1 Hilbert曲線 388
30.2 四色問題 390
30.3 跳馬問題 391
30.4 生成全部排列及其套用 392
30.5 貪吃蛇遊戲 393
30.6 幻方 394
30.7 高精度計算 395
30.8 高手點撥 396
30.9 實戰練習 396
第 Ⅴ 篇趣味解題
第31章 歌手比賽評分系統
31.1 問題描述 399
31.2 問題分析及實現 399
31.2.1 問題分析 399
31.2.2 問題實現 399
31.2.3 程式運行 403
31.3 開發過程常見問題及解決方案 406
第32章 哥德巴赫猜想
32.1 問題描述 408
32.2 問題分析及實現 408
32.2.1 問題分析 408
32.2.2 問題實現 408
32.2.3 程式運行 410
32.3 開發過程常見問題及解決方案 410
第33章 列印日曆
33.1 問題描述 412
33.2 問題分析及實現 412
33.2.1 問題分析 412
33.2.2 問題實現 412
33.2.3 程式運行 413
33.3 開發過程常見問題及解決方案 414
第34章 背包問題
34.1 問題描述 416
34.2 問題分析及實現 416
34.2.1 問題分析 416
34.2.2 問題實現 416
34.2.3 程式運行 419
34.3 開發過程常見問題及解決方案 419
第35章 火車車廂重排
35.1 問題描述 422
35.2 問題分析及實現 422
35.2.1 問題分析 422
35.2.2 問題實現 422
35.2.3 程式運行 425
35.3 開發過程常見問題及解決方案 426
第36章 商人過河
36.1 問題描述 428
36.2 問題分析及實現 428
36.2.1 問題分析 428
36.2.2 問題實現 428
36.2.3 程式運行 430
36.3 開發過程常見問題及解決方案 430
第37章 K階斐波那契數列的實現
37.1 問題描述 432
37.2 問題分析及實現 432
37.2.1 問題分析 432
37.2.2 問題實現 432
37.2.3 程式運行 433
37.3 開發過程常見問題及解決方案 434

相關詞條

熱門詞條

聯絡我們