C語言編程實戰寶典

C語言編程實戰寶典

《C語言編程實戰寶典》是2015年6月清華大學出版社出版的圖書,作者是賈蓓、姜薇、鎮明敏。

內容簡介

本書全面、系統地介紹了C語言的基礎知識,以及如何使用C語言進行程式開發。書中的內容涉及面廣,從基本操作到進階技巧和高級技術,再到項目開發,幾乎涉及C語言開發過程中的所有重要知識。本書講解時提供了大量的實例,供讀者實戰演練。另外,本書附贈15小時高品質同步教學視頻,對書中的重點和難點內容做了詳細講解,便於讀者更加高效、直觀地學習。該視頻錄音清晰,畫面清楚,講解到位,可以讓讀者感受身臨實際教學課堂,聆聽老師講解的教學效果。全書共21章,分為3篇。第1篇為C語言基礎知識,涉及的主要內容有C語言概述、C語言與算法、函式、常量、基本數據類型、運算符、表達式、變數、流程控制、數組、指針、構造數據類型和預處理命令等。第2篇為C語言進階技巧,涉及的主要內容有字元及字元串處理、記憶體處理、檔案處

圖書目錄

第1篇 C語言基礎知識

第1章 C語言概述( 教學視頻:35分鐘) 2

1.1 關於程式設計 2

1.1.1 了解程式設計 2

1.1.2 了解計算機語言 3

1.1.3 計算機語言的分類 3

1.2 C語言概述 5

1.2.1 C語言的歷史發展 5

1.2.2 C語言的基本特點 6

1.3 C語言的開發環境 7

1.3.1 編輯器、編譯器和連結器 7

1.3.2 集成開發環境 7

1.4 Turbo C的使用 7

1.5 Microsoft Visual C++ 6.0的使用 11

1.6 Hello World程式 16

1.7 A+B程式 17

1.8 程式錯誤和調試 18

1.9 小結 20

1.10 習題 20

第2章 C語言與算法( 教學視頻:39分鐘) 22

2.1 算法的基本概念 22

2.1.1 算法基礎 22

2.1.2 算法特性 23

2.1.3 算法的使用舉例 23

2.2 算法描述 25

2.2.1 自然語言 25

2.2.2 流程圖 25

2.2.3 3種基本結構 26

2.2.4 N-S流程圖 28

2.2.5 偽代碼 29

2.3 小結 30

2.4 習題 30

第3章 C語言的構成——函式( 教學視頻:69分鐘) 31

3.1 函式概述 31

3.1.1 庫函式 31

3.1.2 自定義函式 32

3.2 函式的定義和調用 34

3.2.1 簡單函式的定義 35

3.2.2 簡單函式的調用 37

3.3 函式的參數 40

3.3.1 帶參數的函式定義 40

3.3.2 帶參數的函式調用 40

3.3.3 形式參數與實際參數 44

3.4 函式的返回值 46

3.4.1 帶返回值的函式定義 46

3.4.2 帶返回值的函式調用 48

3.5 開發實踐 49

3.6 小結 52

3.7 習題 52

第4章 常量、基本數據類型、運算符和表達式( 教學視頻:61分鐘) 58

4.1 常量與變數 58

4.1.1 常量與符號常量 59

4.1.2 變數 60

4.2 數據類型 61

4.2.1 整型數據 61

4.2.2 實型數據 69

4.2.3 字元型數據 73

4.2.4 枚舉型數據 80

4.2.5 基本類型數據的輸入和輸出函式(scanf()/printf()) 83

4.3 運算符和表達式 91

4.3.1 算數運算符和表達式 92

4.3.2 賦值運算符和表達式 94

4.3.3 關係運算符和表達式 97

4.3.4 邏輯運算符和表達式 98

4.3.5 條件運算符和表達式 99

4.3.6 逗號運算符和表達式 100

4.4 數據類型轉換 101

4.4.1 隱式類型轉換 101

4.4.2 強制類型轉換 104

4.5 小結 104

4.6 習題 105

第5章 變數( 教學視頻:35分鐘) 113

5.1 變數的定義與使用 113

5.1.1 變數的定義和賦值 113

5.1.2 變數的命名規範 115

5.2 變數的作用範圍 115

5.2.1 局部變數 116

5.2.2 全局變數 116

5.3 變數的存儲類型 118

5.3.1 變數的3個屬性 119

5.3.2 自動變數 123

5.3.3 暫存器變數 124

5.3.4 具有代碼塊作用域的靜態變數 125

5.3.5 具有外部連結的靜態變數 126

5.3.6 具有內部連結的靜態變數 130

5.3.7 存儲類型說明符 131

5.4 開發實踐 131

5.5 小結 133

5.6 習題 133

第6章 流程控制( 教學視頻:70分鐘) 135

6.1 C語句概述 135

6.2 順序結構程式 137

6.3 選擇結構程式 138

6.3.1 單分支if語句 138

6.3.2 雙分支if語句 140

6.3.3 多分支else-if語句 141

6.3.4 if語句的嵌套使用 143

6.3.5 switch語句的使用 144

6.4 循環結構程式 147

6.4.1 while語句的使用 147

6.4.2 do…while語句的使用 150

6.4.3 for語句的使用 152

6.4.4 三種循環語句對比 156

6.4.5 嵌套循環 157

6.4.6 continue語句和break語句 158

6.5 開發實踐 161

6.6 小結 163

6.7 習題 163

第7章 數組( 教學視頻:47分鐘) 174

7.1 數組的概述 174

7.2 一維數組 174

7.2.1 一維數組的定義 175

7.2.2 數組元素的訪問 175

7.2.3 一維數組的初始化 177

7.2.4 關於“下標越界”問題 179

7.2.5 一維數組程式舉例 180

7.3 二維數組 183

7.3.1 二維數組的定義及初始化 184

7.3.2 二維數組元素的訪問 184

7.3.3 二維數組的初始化 186

7.3.4 二維數組程式舉例 187

7.4 開發實踐 188

7.5 小結 191

7.6 習題 191

第8章 指針( 教學視頻:77分鐘) 201

8.1 指針概述 201

8.2 指針與變數 201

8.2.1 指針變數的定義 204

8.2.2 取地址運算符(&) 204

8.2.3 取值運算符(*) 205

8.2.4 指針變數賦值 207

8.3 指針與函式 210

8.3.1 指針作為函式參數 210

8.3.2 指針作為返回值 213

8.3.3 指向函式的指針 214

8.3.4 指向函式的指針作函式參數 216

8.4 指針與數組 219

8.4.1 指向數組元素的指針 219

8.4.2 指針的算術運算與數組運算 220

8.4.3 使用指針處理數組元素 224

8.4.4 數組名作為指針 228

8.4.5 指針數組 228

8.4.6 指向指針數據的指針 232

8.5 指針與多維數組 233

8.5.1 處理多維數組的元素 233

8.5.2 處理多維數組的行 236

8.5.3 命令行參數 237

8.6 開發實踐 239

8.7 小結 243

8.8 習題 244

第9章 構造數據類型( 教學視頻:38分鐘) 260

9.1 結構體 260

9.1.1 建立結構體類型 261

9.1.2 結構體變數的定義及初始化 262

9.1.3 訪問結構體成員 265

9.1.4 結構體數組 267

9.1.5 指向結構體變數的指針 271

9.1.6 指向結構體數組的指針 273

9.1.7 結構體作為函式的參數 276

9.1.8 結構體數組作為參數 280

9.2 共用體 281

9.3 類型定義符typedef 283

9.4 開發實踐 284

9.5 小結 290

9.6 習題 290

第10章 預處理命令( 教學視頻:39分鐘) 300

10.1 預處理器的工作方式 300

10.2 預處理指令 302

10.3 宏定義 303

10.3.1 不帶參數的宏 303

10.3.2 帶參數的宏 306

10.3.3 #運算符 309

10.3.4 ##運算符 309

10.3.5 取消宏定義 310

10.3.6 宏和函式 311

10.3.7 宏定義(#define)和類型定義(typedef) 312

10.3.8 預定義宏 312

10.4 條件編譯 313

10.4.1 #if…#endif指令 313

10.4.2 #if…#else…#endif指令 314

10.4.3 #if…#elif…#endif指令 315

10.4.4 #ifdef…#endif指令 315

10.4.5 #ifndef…#endif指令 316

10.4.6 條件編譯的使用 317

10.5 檔案包含 318

10.6 其他指令 319

10.6.1 #error指令 319

10.6.2 #line指令 319

10.6.3 #pragma指令 320

10.7 開發實踐 320

10.8 小結 321

10.9 習題 322

第11章 再談函式( 教學視頻:42分鐘) 330

11.1 函式的嵌套調用 330

11.2 函式的遞歸調用 332

11.2.1 使用遞歸 333

11.2.2 遞歸的基本原理 334

11.2.3 尾遞歸與循環 335

11.2.4 漢諾塔問題 337

11.2.5 遞歸的優缺點 341

11.3 數組做函式參數 341

11.3.1 數組元素做函式實參 342

11.3.2 數組名做函式參數 343

11.3.3 多維數組名做函式參數 346

11.4 內聯函式 348

11.5 開發實踐 348

11.6 小結 351

11.7 習題 352

第2篇 C語言進階技巧

第12章 字元及字元串處理( 教學視頻:42分鐘) 372

12.1 字元串常量 372

12.1.1 字元串常量概述 372

12.1.2 存儲字元串常量 373

12.1.3 字元串常量的表示 373

12.1.4 字元串常量與字元常量 374

12.2 字元串變數 375

12.2.1 字元數組的定義及初始化 375

12.2.2 字元數組與字元指針 377

12.2.3 指針與字元串 378

12.3 字元串的輸入 379

12.3.1 創建存儲空間 379

12.3.2 gets()函式 380

12.3.3 fgets()函式 381

12.3.4 scanf()函式 382

12.4 字元串的輸出 383

12.4.1 puts()函式 383

12.4.2 fputs()函式 384

12.4.3 printf()函式 385

12.5 字元串處理函式 385

12.5.1 strlen()函式 385

12.5.2 strcat()函式 386

12.5.3 strcmp()函式 387

12.5.4 strcpy()函式 389

12.5.5 其他字元串處理函式 390

12.6 開發實踐 391

12.7 小結 398

12.8 習題 398

第13章 記憶體處理( 教學視頻:39分鐘) 410

13.1 動態存儲分配 410

13.1.1 記憶體分配函式 410

13.1.2 空指針 411

13.2 動態分配字元串 412

13.2.1 使用malloc()函式為字元串分配記憶體 412

13.2.2 在字元串函式中使用動態存儲分配 413

13.3 動態分配數組 414

13.3.1 使用malloc()函式為數組分配記憶體 414

13.3.2 calloc()函式 417

13.3.3 realloc()函式 417

13.4 釋放存儲 418

13.4.1 free()函式 418

13.4.2 “無效指針”問題 419

13.5 鍊表 419

13.5.1 從數組到鍊表 421

13.5.2 聲明結點類型 423

13.5.3 創建結點 423

13.5.4 -->運算符 424

13.5.5 向鍊表中插入結點 424

13.5.6 搜尋鍊表 426

13.5.7 刪除鍊表結點 427

13.5.8 使用鍊表 429

13.6 開發實踐 431

13.7 小結 437

13.8 習題 438

第14章 檔案處理( 教學視頻:28分鐘) 442

14.1 流 442

14.1.1 檔案指針 443

14.1.2 標準流與重定向 443

14.2 與檔案通信 444

14.2.1 什麼是檔案 444

14.2.2 文本檔案與二進制檔案 444

14.3 檔案操作 445

14.3.1 打開檔案 446

14.3.2 關閉檔案 447

14.3.3 為流附加檔案 447

14.3.4 從命令行獲取檔案名稱 448

14.4 格式化的輸入/輸出 448

14.4.1 printf()函式與fprintf()函式 448

14.4.2 scanf()函式與fscanf()函式 449

14.5 字元的輸入/輸出 451

14.5.1 輸出函式 451

14.5.2 輸入函式 452

14.6 行的輸入/輸出 455

14.6.1 輸入函式 455

14.6.2 輸出函式 455

14.7 塊的輸入/輸出 457

14.8 檔案的定位 457

14.8.1 fseek()函式與ftell()函式 458

14.8.2 fgetpos()函式與fsetpos()函式 460

14.8.3 rewind()函式 461

14.9 字元串的輸入/輸出 462

14.10 其他標準I/O函式 462

14.10.1 ungetc()函式 463

14.10.2 fflush()函式 463

14.10.3 setvbuf()函式 464

14.10.4 feof()和ferror()函式 464

14.11 開發實踐 464

14.12 小結 469

14.13 習題 469

第15章 底層程式設計( 教學視頻:27分鐘) 478

15.1 位運算符 478

15.1.1 位邏輯運算符 478

15.1.2 位邏輯運算符的用法 480

15.1.3 移位運算符 483

15.1.4 移位運算符的用法 484

15.2 位欄位 486

15.3 開發實踐 487

15.4 小結 491

15.5 習題 492

第16章 數學計算支持( 教學視頻:20分鐘) 495

16.1 浮點類型的特性 495

16.2 整數類型的大小 496

16.3 數學計算 497

16.3.1 三角函式 498

16.3.2 雙曲函式 499

16.3.3 指數函式和對數函式 499

16.3.4 冪函式 501

16.3.5 就近取整函式、絕對值函式和取余函式 502

16.4 字元處理 503

16.4.1 字元測試函式 503

16.4.2 字元大小寫轉換函式 504

16.5 字元串處理 505

16.5.1 複製函式 505

16.5.2 拼接函式 506

16.5.3 比較函式 508

16.5.4 搜尋函式 509

16.5.5 其他函式 511

16.6 開發實踐 511

16.7 小結 516

16.8 習題 516

第17章 錯誤處理( 教學視頻:18分鐘) 520

17.1 診斷 520

17.2 錯誤 522

17.3 信號處理 523

17.3.1 信號宏 524

17.3.2 signal()函式 524

17.3.3 預定義的信號處理函式 525

17.3.4 raise()函式 525

17.4 非局部跳轉 525

17.5 開發實踐 526

17.6 小結 527

17.7 習題 528

第18章 國際化特性( 教學視頻:8分鐘) 529

18.1 本地化 529

18.1.1 類別 529

18.1.2 setlocale()函式 530

18.1.3 localeconv()函式 530

18.2 多位元組字元和寬字元 532

18.3 開發實踐 533

18.4 小結 534

18.5 習題 534

第3篇 C語言編程實戰

第19章 五子棋遊戲( 教學視頻:32分鐘) 538

19.1 五子棋遊戲簡介 538

19.2 需求分析 539

19.3 系統設計 539

19.4 主模組 540

19.5 棋盤模組 543

19.6 下棋模組 544

19.7 判斷輸贏模組 546

19.8 信息模組 550

19.9 系統界面 551

19.10 本章小結 553

19.11 習題 553

第20章 圖書管理系統( 教學視頻:65分鐘) 562

20.1 需求分析 562

20.2 系統設計 563

20.3 主模組 564

20.4 錄入數據模組 568

20.5 修改圖書模組 570

20.6 查詢圖書模組 573

20.7 刪除圖書模組 578

20.8 檔案模組 580

20.9 圖書管理系統使用說明 582

20.10 本章小結 585

20.11 習題 585

第21章 製作通訊錄( 教學視頻:59分鐘) 594

21.1 需求分析 594

21.2 系統設計 595

21.3 主模組 596

21.4 創建通訊錄模組 598

21.5 排序模組 600

21.6 綜合操作模組 602

21.7 保存通訊錄模組 606

21.8 打開通訊錄模組 607

21.9 刪除模組 608

21.10 退出模組 609

21.11 通訊錄系統使用說明 609

21.12 本章小結 613

21.13 習題 613

相關詞條

熱門詞條

聯絡我們