C語言從入門到精通(第6版)

明日科技

  • 出版商: 清華大學
  • 出版日期: 2023-07-01
  • 售價: $479
  • 貴賓價: 9.5$455
  • 語言: 簡體中文
  • 頁數: 416
  • 裝訂: 平裝
  • ISBN: 7302635676
  • ISBN-13: 9787302635673
  • 相關分類: C 程式語言
  • 立即出貨 (庫存=1)

  • C語言從入門到精通(第6版)-preview-1
  • C語言從入門到精通(第6版)-preview-2
  • C語言從入門到精通(第6版)-preview-3
C語言從入門到精通(第6版)-preview-1

買這商品的人也買了...

商品描述

《C語言從入門到精通(第6版)》從初學者的角度出發,以通俗易懂的語言、豐富多彩的實例,詳細介紹了使用C語言進行程序開發需要掌握的各方面知識。全書分為4篇,共20章,內容包括C語言概述、算法、數據類型、運算符與表達式、數據輸入/輸出、選擇結構、循環控制、數組、函數、指針、結構體和共享體、位運算、預處理、文件、內存管理、網絡套接字編程、單詞背記闖關游戲、學生信息管理系統、單片機基礎和GSM短信控制家庭防盜報警系統。書中所有知識都結合具體實例進行介紹,涉及的程序代碼給出了詳細的註釋,讀者可以輕松領會C語言程序開發的精髓,快速提高開發技能。

目錄大綱

第1篇 基礎知識

第1章 C語言概述 2

視頻講解:64分鐘

1.1 C語言的發展史 2

1.1.1 程序語言簡述 2

1.1.2 C語言的發展歷程 3

1.2 C語言的特點 4

1.3 一個簡單的C程序 4

1.4 一個完整的C程序 7

1.5 C語言程序的格式 10

1.6 C語言開發環境 12

1.6.1 Visual C++ 6.0 12

1.6.2 Visual Studio 2022 18

1.6.3 Dev C++ 24

1.7 實踐與練習 26

第2章 算法 27

視頻講解:16分鐘

2.1 算法的基本概念 27

2.1.1 算法的特性 27

2.1.2 算法的優劣 28

2.2 算法描述 29

2.2.1 自然語言 29

2.2.2 流程圖 30

2.2.3 N-S流程圖 33

2.3 實踐與練習 35

第3章 數據類型 36

視頻講解:42分鐘

3.1 關鍵字 36

3.2 標識符 37

3.3 數據類型 38

3.4 常量 39

3.4.1 整型常量 39

3.4.2 實型常量 40

3.4.3 字符型常量 41

3.4.4 轉義字符 43

3.4.5 符號常量 43

3.5 變量 44

3.5.1 整型變量 44

3.5.2 實型變量 47

3.5.3 字符型變量 48

3.6 混合運算 50

3.7 實踐與練習 51

第4章 運算符與表達式 52

視頻講解:50分鐘

4.1 表達式 52

4.2 賦值運算符與賦值表達式 53

4.2.1 變量賦初值 53

4.2.2 自動類型轉換 54

4.2.3 強制類型轉換 55

4.3 算術運算符與算術表達式 56

4.3.1 算術運算符 56

4.3.2 算術表達式 57

4.3.3 優先級與結合性 57

4.3.4 自增/自減運算符 58

4.4 關系運算符與關系表達式 60

4.4.1 關系運算符 60

4.4.2 關系表達式 60

4.4.3 優先級與結合性 61

4.5 邏輯運算符與邏輯表達式 62

4.5.1 邏輯運算符 62

4.5.2 邏輯表達式 63

4.5.3 優先級與結合性 63

4.6 逗號運算符與逗號表達式 64

4.7 復合賦值運算符 65

4.8 sizeof運算符 66

4.9 運算符的優先級總結 68

4.10 實踐與練習 69

第5章 數據輸入/輸出 70

視頻講解:32分鐘

5.1 字符的輸入/輸出 70

5.1.1 字符輸出 70

5.1.2 字符輸入 71

5.2 字符串的輸入/輸出 73

5.2.1 字符串輸出 73

5.2.2 字符串輸入 74

5.3 格式化輸出 76

5.4 格式化輸入 78

5.5 順序程序設計 82

5.6 實踐與練習 83

第6章 選擇結構 85

視頻講解:36分鐘

6.1 if語句 85

6.2 if語句的基本形式 85

6.2.1 簡單if語句 86

6.2.2 if…else語句 88

6.2.3 else if語句 89

6.3 if語句的嵌套應用 92

6.4 條件運算符 95

6.5 switch語句 96

6.5.1 switch語句的基本形式 96

6.5.2 多路開關模式的switch語句 99

6.6 if…else語句和switch語句的區別 101

6.7 實踐與練習 101

第7章 循環控制 104

視頻講解:47分鐘

7.1 循環語句 104

7.2 while語句 104

7.3 do…while語句 107

7.4 for語句 108

7.4.1 for循環語句 109

7.4.2 for循環的變體 111

7.4.3 for循環中的逗號應用 112

7.5 3種循環語句的比較 114

7.6 循環嵌套 114

7.6.1 循環嵌套結構 114

7.6.2 循環嵌套實例 115

7.7 轉移語句 117

7.7.1 goto語句 117

7.7.2 break語句 118

7.7.3 continue語句 119

7.8 實踐與練習 120

第2篇 基礎進階

第8章 數組 124

視頻講解:71分鐘

8.1 一維數組 124

8.1.1 一維數組的定義和引用 124

8.1.2 一維數組的初始化 126

8.1.3 一維數組的應用 127

8.2 二維數組 128

8.2.1 二維數組的定義和引用 128

8.2.2 二維數組的初始化 129

8.2.3 二維數組的應用 130

8.3 字符數組 132

8.3.1 字符數組的定義和引用 132

8.3.2 字符數組的初始化 132

8.3.3 字符數組的結束標志 133

8.3.4 字符數組的輸入和輸出 134

8.3.5 字符數組的應用 135

8.4 多維數組 136

8.5 數組的排序算法 136

8.5.1 選擇排序 136

8.5.2 冒泡排序 138

8.5.3 交換排序 139

8.5.4 插入排序 141

8.5.5 折半排序 142

8.5.6 排序算法的比較 144

8.6 數組應用 145

8.6.1 反轉輸出字符串 146

8.6.2 輸出系統日期和時間 146

8.6.3 字符串的加密和解密 148

8.7 實踐與練習 149

第9章 函數 151

視頻講解:91分鐘

9.1 函數概述 151

9.2 函數的定義和聲明 153

9.2.1 函數的定義 153

9.2.2 函數的聲明 154

9.3 函數參數 155

9.3.1 形式參數與實際參數 155

9.3.2 數組作函數參數 156

9.4 函數的調用和返回 159

9.4.1 函數的調用 159

9.4.2 函數的返回值 160

9.4.3 函數的嵌套調用 161

9.4.4 函數的遞歸調用 162

9.5 內部函數和外部函數 165

9.5.1 內部函數 165

9.5.2 外部函數 166

9.6 局部變量和全局變量 167

9.6.1 局部變量 167

9.6.2 全局變量 169

9.7 常用標準庫函數 171

9.7.1 數學函數 171

9.7.2 字符判別函數 172

9.7.3 字符串處理函數 174

9.8 實踐與練習 179

第10章 指針 181

視頻講解:64分鐘

10.1 指針的相關概念 181

10.1.1 地址與指針 181

10.1.2 變量與指針 182

10.1.3 指針變量 182

10.1.4 指針的自增、自減運算 185

10.2 數組與指針 186

10.2.1 一維數組與指針 187

10.2.2 二維數組與指針 189

10.2.3 字符串與指針 191

10.2.4 指針數組 193

10.3 指向指針的指針 194

10.4 指針變量作函數參數 197

10.5 返回指針值的函數 204

10.6 指針數組作main函數的參數 205

10.7 實踐與練習 207

第3篇 高級編程

第11章 結構體和共享體 210

視頻講解:68分鐘

11.1 結構體 210

11.1.1 結構體類型的聲明 211

11.1.2 結構體變量的定義 211

11.1.3 結構體變量的引用 213

11.1.4 結構體類型的初始化 214

11.2 結構體數組 215

11.2.1 定義結構體數組 216

11.2.2 初始化結構體數組 217

11.3 結構體指針 218

11.3.1 指向結構體變量的指針 218

11.3.2 指向結構體數組的指針 220

11.4 結構體在函數中的使用 222

11.4.1 結構體作為函數參數 222

11.4.2 使用函數返回結構體指針 224

11.5 嵌套的結構體 225

11.6 鏈表 227

11.6.1 鏈表概述 227

11.6.2 創建動態鏈表 228

11.6.3 輸出鏈表 229

11.7 鏈表的相關操作 232

11.7.1 插入結點 232

11.7.2 刪除結點 233

11.8 共享體 237

11.8.1 共享體的概念 237

11.8.2 共享體變量的引用 238

11.8.3 共享體變量的初始化 238

11.8.4 共享體類型的數據特點 239

11.9 枚舉類型 239

11.10 typedef關鍵字 241

11.11 實踐與練習 242

第12章 位運算 245

視頻講解:28分鐘

12.1 位與字節 245

12.2 位運算操作符 245

12.2.1 按位與運算符 246

12.2.2 按位或運算符 247

12.2.3 按位取反運算符 248

12.2.4 按位異或運算符 249

12.2.5 左移運算符 250

12.2.6 右移運算符 251

12.3 循環移位 252

12.4 位段 254

12.4.1 位段的概念與定義 254

12.4.2 位段相關說明 255

12.5 實踐與練習 256

第13章 預處理命令 258

視頻講解:25分鐘

13.1 宏定義 258

13.1.1 不帶參數的#define命令 258

13.1.2 帶參數的#define命令 260

13.1.3 宏定義的刪除 261

13.1.4 預定義宏簡介 261

13.2 文件包含 262

13.3 條件編譯 263

13.3.1 #if、#else、#elif、#endif命令 263

13.3.2 #ifdef、#ifndef命令 264

13.4 其他預處理命令 266

13.4.1 #line命令 266

13.4.2 #error命令 266

13.4.3 #pragma命令 267

13.5 實踐與練習 267

第14章 文件 270

視頻講解:67分鐘

14.1 文件概述 270

14.2 文件基本操作 271

14.2.1 文件指針 271

14.2.2 打開文件(fopen函數) 272

14.2.3 關閉文件(fclose函數) 272

14.3 文件的讀寫 273

14.3.1 寫入字符(fputc函數) 273

14.3.2 讀取字符(fgetc函數) 274

14.3.3 寫入字符串(fputs函數) 274

14.3.4 讀取字符串(fgets函數) 275

14.3.5 fprintf函數 276

14.3.6 fscanf函數 277

14.3.7 讀寫數據塊(fread和fwrite函數) 278

14.4 文件的定位 280

14.4.1 fseek函數 280

14.4.2 rewind函數 282

14.4.3 ftell函數 283

14.5 文件管理 285

14.5.1 刪除文件(remove函數) 285

14.5.2 重命名文件(rename函數) 286

14.5.3 復制文件 287

14.6 文件狀態檢測 288

14.6.1 文件讀取結束檢測(feof函數) 288

14.6.2 文件讀寫出錯檢測(ferror函數) 289

14.6.3 清除狀態標志(clearerr函數) 289

14.7 實踐與練習 290

第15章 內存管理 293

視頻講解:18分鐘

15.1 內存組織方式 293

15.1.1 數據的存放方式 293

15.1.2 堆與棧 294

15.2 動態管理 295

15.2.1 malloc函數 295

15.2.2 calloc函數 296

15.2.3 realloc函數 296

15.2.4 free函數 297

15.3 內存泄露與內存丟失 298

15.4 實踐與練習 299

第16章 網絡套接字編程 301

視頻講解:33分鐘

16.1 電腦網絡基礎 301

16.1.1 IP地址 301

16.1.2 OSI七層參考模型 302

16.1.3 地址解析 302

16.1.4 域名解析 303

16.1.5 TCP/IP協議 304

16.1.6 埠 305

16.1.7 套接字的引入 305

16.1.8 網絡字節順序 306

16.2 套接字基礎 306

16.2.1 套接字概述 306

16.2.2 基於TCP的socket編程 306

16.2.3 基於UDP的socket編程 307

16.3 套接字函數 308

16.3.1 套接字常用函數介紹 308

16.3.2 基於TCP的網絡聊天程序 313

16.4 實踐與練習 318

第4篇 項目實戰

第17章 單詞背記闖關游戲 324

視頻講解:7分鐘

17.1 項目概述 324

17.2 系統設計 325

17.2.1 系統功能結構 325

17.2.2 業務流程圖 326

17.3 開發準備 326

17.4 預處理模塊設計 327

17.4.1 模塊概述 327

17.4.2 代碼實現 327

17.5 游戲開始界面顯示 328

17.5.1 模塊概述 328

17.5.2 代碼實現 328

17.6 積分規則界面顯示 330

17.6.1 模塊概述 330

17.6.2 代碼實現 330

17.7 單詞背記游戲主功能實現 331

17.7.1 模塊概述 331

17.7.2 代碼實現 331

17.8 讀取和存儲游戲最高分 334

17.8.1 模塊概述 334

17.8.2 代碼實現 334

17.9 游戲結束界面顯示 334

17.9.1 模塊概述 334

17.9.2 代碼實現 335

第18章 學生信息管理系統 337

視頻講解:8分鐘

18.1 項目概述 337

18.2 系統設計 337

18.2.1 系統功能結構設計 337

18.2.2 系統界面預覽 338

18.3 預處理模塊設計 340

18.3.1 模塊概述 340

18.3.2 功能實現 340

18.4 主函數設計 341

18.4.1 功能概述 341

18.4.2 功能實現 342

18.5 錄入學生信息模塊 343

18.5.1 模塊概述 343

18.5.2 錄入時文件中無內容 344

18.5.3 錄入時文件中有內容 344

18.6 查詢學生信息模塊 345

18.6.1 模塊概述 345

18.6.2 功能實現 346

18.7 刪除學生信息模塊 347

18.7.1 模塊概述 347

18.7.2 功能實現 347

18.8 修改學生信息模塊 348

18.8.1 模塊概述 348

18.8.2 功能實現 349

18.9 插入學生信息模塊 350

18.9.1 模塊概述 350

18.9.2 功能實現 351

18.10 學生成績排序模塊 352

18.10.1 模塊概述 352

18.10.2 功能實現 352

18.11 顯示所有學生信息 353

18.11.1 模塊概述 353

18.11.2 功能實現 354

第19章 單片機基礎 355

視頻講解:41分鐘

19.1 認識單片機 355

19.1.1 單片機概述 356

19.1.2 單片機組成部分 356

19.1.3 單片機內部結構分析 357

19.1.4 單片機與外部電路 362

19.2 單片機的應用 363

19.2.1 使用Altium Designer工具設計電路 364

19.2.2 使用Keil工具編譯單片機程序 367

19.2.3 使用STC-ISP燒錄工具將程序燒錄到單片機中 372

第20章 GSM短信控制家庭防盜報警系統 375

視頻講解:6分鐘

20.1 項目概述 375

20.2 系統設計 376

20.2.1 系統功能結構 376

20.2.2 系統業務流程 376

20.3 系統開發準備 377

20.3.1 開發工具 377

20.3.2 電路原理圖 377

20.3.2 元件列表 378

20.4 LED聲光報警設計 379

20.4.1 LED燈報警設計 379

20.4.2 蜂鳴器報警設計 382

20.5 手機短信報警設計 385

20.5.1 液晶屏顯示設計 385

20.5.2 GSM模塊接收手機短信 389

20.6 獨立按鍵設計 392

20.7 其他主要功能代碼 395

附錄 ASCII碼對照表 396