零基礎案例學C語言——編程實踐365例

侯恩靜

  • 出版商: 清華大學
  • 出版日期: 2025-10-01
  • 售價: $479
  • 語言: 簡體中文
  • ISBN: 7302700222
  • ISBN-13: 9787302700227
  • 相關分類: C 程式語言
  • 下單後立即進貨 (約4週~6週)

  • 零基礎案例學C語言——編程實踐365例-preview-1
  • 零基礎案例學C語言——編程實踐365例-preview-2
  • 零基礎案例學C語言——編程實踐365例-preview-3
零基礎案例學C語言——編程實踐365例-preview-1

相關主題

商品描述

"《零基礎案例學C語言——編程實踐365例》為希望在人工智能浪潮中打下堅實編程基礎的讀者而寫。書中以“案例驅動+實戰演練”為核心,將抽象的編程概念轉化為一個個生動、實用的實戰案例,幫助讀者深入理解C語言開發的精髓。 全書共17章,主要內容包括C語言概述,選擇C語言開發工具,C語言基礎語法,運算符和表達式,輸入和輸出,流程控制語句,數組,函數,指針,結構體、共用體和枚舉,鏈表,位運算,預編譯處理,文件操作,內存管理,常用的算法思想,以及學生成績管理系統。本書堅持“從做中學”,采用“知識講解→範例導學→編程實戰→綜合實戰”的學習路線,確保每一步都有代碼可練,讓讀者在動手實踐中掌握C語言開發技能。 "

目錄大綱

目錄

第1章 C語言概述 1

1.1 C語言在編程界的地位 1

1.1.1 TIOBE編程語言社區排行榜 1

1.1.2 C語言的發展歷程 2

1.1.3 學習C語言還有用嗎 2

1.2 認識第一段C程序 3

1.2.1 編寫第一段C程序 3

1.2.2 分析C程序的具體組成 5

1.3 綜合實戰——簡單認識C程序 7

第2章 選擇C語言開發工具 8

2.1 一步到位的Microsoft Visual Studio 8

2.1.1 安裝Visual Studio 8

2.1.2 使用Visual Studio運行一個C程序 12

2.2 使用輕量級開發工具DEV C++ 15

2.2.1 安裝DEV C++ 15

2.2.2 使用DEV C++運行一個C程序 16

2.3 手機也能開發C程序 17

2.3.1 GCC和C4droid 18

2.3.2 在iPhone中使用Mobile C 18

2.4 綜合實戰——計算某日是當年中的第幾天 18

第3章 C語言基礎語法 20

3.1 標識符和關鍵字 20

3.1.1 標識符及其規範 21

3.1.2 關鍵字 21

3.2 最基本的數據類型 22

3.2.1 為什麼要引入數據類型 22

3.2.2 C語言數據類型的分類 22

3.3 常量和變量 23

3.3.1 常量 23

3.3.2 變量 24

3.4 整型數據 27

3.4.1 整型常量 27

3.4.2 整型變量的分類 28

3.4.3 聲明整型變量 28

3.5 實型數據 30

3.5.1 實型常量 30

3.5.2 實型變量 31

3.6 字符型數據 32

3.6.1 使用字符常量 33

3.6.2 使用轉義字符 33

3.6.3 字符串常量 35

3.6.4 字符變量 36

3.7 類型轉換 37

3.7.1 強制轉換 37

3.7.2 自動轉換 38

3.8 綜合實戰——計算平均成績 40

第4章 運算符和表達式 41

4.1 認識運算符和表達式 41

4.2 算術運算符和算術表達式 42

4.2.1 算術運算符的分類 42

4.2.2 單目運算符 43

4.2.3 雙目運算符 44

4.3 賦值運算符和賦值表達式 45

4.3.1 基本的賦值運算符 46

4.3.2 復合賦值運算符 46

4.3.3 賦值表達式 47

4.4 關系運算符和關系表達式 48

4.4.1 關系運算符 48

4.4.2 關系表達式 49

4.5 逗號運算符和逗號表達式 50

4.5.1 逗號運算符 50

4.5.2 逗號表達式 50

4.6 邏輯運算符和邏輯表達式 52

4.6.1 邏輯運算符 52

4.6.2 邏輯表達式 52

4.7 求字節數運算符 54

4.8 運算符的優先級 55

4.9 綜合實戰——計算指定表達式的運算結果 57

第5章 輸入和輸出 58

5.1 初步了解C語句 58

5.1.1 C程序的結構 58

5.1.2 C語言中的語句 59

5.2 數據輸入和輸出 60

5.2.1 C語言中的輸入和輸出庫 60

5.2.2 使用字符輸出函數putchar() 60

5.2.3 使用字符輸入函數getchar() 62

5.2.4 使用格式輸出函數printf() 63

5.2.5 使用格式輸入函數scanf() 65

5.2.6 使用字符串輸出函數puts() 67

5.2.7 使用字符串輸入函數gets() 68

5.3 綜合實戰——××公司在線筆試系統 69

第6章 流程控制語句 71

6.1 最常見的順序結構 71

6.2 選擇結構 73

6.2.1 if單分支結構語句 73

6.2.2 if-else雙分支結構語句 74

6.2.3 if-else-if多分支結構語句 76

6.2.4 switch語句 78

6.2.5 條件運算符和條件表達式 81

6.3 循環結構 82

6.3.1 for循環語句 82

6.3.2 while循環語句 84

6.3.3 do-while語句 86

6.3.4 goto語句 88

6.3.5 break語句 89

6.3.6 continue語句 91

6.3.7 死循環 93

6.3.8 退出程序 93

6.4 綜合實戰——人機對戰版石頭、剪刀、布遊戲 94

第7章 數組 95

7.1 一維數組 95

7.1.1 定義一維數組 96

7.1.2 引用即使用 97

7.1.3 數組需要初始化 98

7.2 二維數組 99

7.3 字符數組與字符串 103

7.3.1 定義和使用字符數組 103

7.3.2 字符數組的輸入輸出 104

7.4 字符處理函數和字符串處理函數 106

7.4.1 使用測試字符串長度的函數 107

7.4.2 使用字符串大小寫轉換函數 107

7.4.3 使用字符串復制函數 108

7.4.4 使用字符串比較函數 110

7.4.5 使用字符串連接函數 111

7.4.6 使用將字符串轉換成數值的函數 112

7.4.7 使用字符檢測函數 114

7.4.8 使用字符大小寫轉換函數 116

7.5 綜合實戰——解決誰家孩子跑得最慢的問題 117

第8章 函數 118

8.1 函數基礎 118

8.1.1 定義函數 119

8.1.2 使用定義的函數 119

8.2 函數聲明和函數原型 121

8.2.1 函數聲明 121

8.2.2 函數原型 122

8.3 函數的參數 122

8.3.1 形參和實參 122

8.3.2 將一維數組名作為函數的參數 124

8.3.3 將多維數組名作為函數的參數 125

8.4 函數的返回值 127

8.5 調用函數 128

8.5.1 調用函數的語法格式 129

8.5.2 3種調用函數的方式 130

8.6 函數的嵌套調用和遞歸調用 131

8.6.1 函數的嵌套調用 131

8.6.2 函數的遞歸調用 132

8.7 變量的作用域 135

8.7.1 局部變量作用域 135

8.7.2 全局變量作用域 136

8.8 靜態存儲變量和動態存儲變量 138

8.8.1 4種變量存儲類型 138

8.8.2 第1種變量存儲類型:自動變量 139

8.8.3 第2種變量存儲類型:外部變量 140

8.8.4 第3種變量存儲類型:靜態變量 141

8.8.5 第4種變量存儲類型:寄存器變量 142

8.9 內部函數和外部函數 143

8.9.1 內部函數 143

8.9.2 外部函數 145

8.10 綜合實戰——《天龍八部》之段譽身陷無量山瑯嬛福地 146

第9章 指針 147

9.1 內存和指針 147

9.2 變量的指針和指向變量的指針變量 148

9.2.1 聲明指針變量 149

9.2.2 指針變量的初始化 149

9.2.3 引用指針變量 150

9.2.4 指針運算符 151

9.2.5 指針變量的運算 152

9.2.6 將指針變量作為函數的參數 155

9.2.7 void類型的指針 156

9.3 指針和數組 158

9.3.1 數組元素的指針 158

9.3.2 指向一維數組元素的指針變量 159

9.3.3 通過指針引用數組元素 160

9.3.4 函數的數組名參數被當作指針變量來處理 161

9.4 指針和多維數組 164

9.4.1 多維數組的地址 164

9.4.2 指向多維數組的指針變量 165

9.5 指針和字符串 167

9.5.1 指針訪問字符串 167

9.5.2 用字符串指針作為函數參數 169

9.6 指針數組和多級指針 171

9.6.1 定義指針數組 171

9.6.2 引用指針數組元素 171

9.6.3 定義和使用多級指針 172

9.6.4 主函數main()的參數 174

9.7 綜合實戰——成績管理系統 176

第10章 結構體、共用體和枚舉 178

10.1 結構體 178

10.1.1 定義結構類型 179

10.1.2 定義結構體類型變量 179

10.1.3 引用結構體變量 181

10.1.4 初始化結構體變量 184

10.2 結構體數組 185

10.2.1 定義結構體數組 185

10.2.2 初始化結構體數組 187

10.2.3 引用結構體數組 188

10.3 結構體指針 190

10.3.1 定義結構體指針變量 190

10.3.2 初始化結構體指針變量 190

10.3.3 指向結構體變量的指針 191

10.3.4 指向結構體數組的指針 192

10.4 在函數中使用結構體 193

10.4.1 結構體變量和結構體指針可以作為函數的參數 194

10.4.2 函數可以返回結構體類型的值 195

10.5 共用體(聯合) 196

10.5.1 定義共用體和共用體變量 196

10.5.2 引用和初始化共用體變量 198

10.6 枚舉 201

10.6.1 定義枚舉類型 201

10.6.2 定義枚舉變量 202

10.6.3 引用枚舉變量 203

10.7 使用typedef定義類型 205

10.8 綜合實戰——華北區××手機銷售系統 207

第11章 鏈表 209

11.1 鏈表基礎 209

11.1.1 鏈表的概念 209

11.1.2 使用單向鏈表 210

11.2 綜合實戰——成績排名系統 215

第12章 位運算 217

12.1 位運算和位運算符 217

12.1.1 使用按位與運算符 218

12.1.2 使用按位或運算符 220

12.1.3 使用按位異或運算符 221

12.1.4 使用取反運算符 222

12.1.5 理解左移運算 223

12.1.6 理解右移運算 224

12.1.7 位運算綜合應用實例 225

12.2 位域 227

12.2.1 定義位域 227

12.2.2 使用位域 229

12.3 綜合實戰——使用位運算符實現四則運算計算器 230

第13章 預編譯處理 231

13.1 預編譯基礎 231

13.2 宏定義 232

13.2.1 不帶參數的宏定義 232

13.2.2 帶參數的宏定義 234

13.3 文件包含 235

13.4 條件編譯 236

13.4.1 #ifdef…#else…#endif 236

13.4.2 #if defined…#else…#endif 238

13.4.3 #ifndef…#else…#endif 238

13.4.4 #if !defined…#else…#endif 239

13.4.5 #ifdef…#elif…#elif…#endif 239

13.4.6 #line 241

13.5 綜合實戰——成績評測系統 242

第14章 文件操作 243

14.1 計算機中的文件 243

14.1.1 文件分類 244

14.1.2 文本文件 244

14.1.3 文件指針 245

14.2 文件的打開與關閉 245

14.2.1 打開文件 245

14.2.2 關閉文件 247

14.3 文件讀寫 248

14.3.1 字符讀寫函數getc()和fgetc() 249

14.3.2 字符讀寫函數putc()和fputc() 250

14.3.3 字符串讀寫函數fgets() 252

14.3.4 字符串讀寫函數fputs() 253

14.3.5 格式化讀寫函數 254

14.3.6 數據塊讀寫函數 256

14.3.7 其他的讀寫函數 258

14.4 文件的隨機讀寫 259

14.4.1 函數fseek() 259

14.4.2 函數ftell() 261

14.5 文件管理函數 262

14.5.1 刪除文件 263

14.5.2 文件的重命名 264

14.5.3 復制文件 265

14.6 文件狀態檢測函數 267

14.6.1 使用函數feof()檢驗文件指針是否到達文件末尾 267

14.6.2 使用函數ferror()檢驗文件操作的錯誤狀態 268

14.6.3 使用函數clearerr()清除狀態標誌 268

14.7 綜合實戰——磁盤文件管理系統 269

第15章 內存管理 271

15.1 程序和內存的關系 271

15.2 棧和堆 272

15.2.1 棧操作 272

15.2.2 堆操作 273

15.3 動態管理 273

15.3.1 使用分配函數malloc() 273

15.3.2 使用函數calloc()分配內存空間並初始化 275

15.3.3 使用函數realloc()重新分配內存 276

15.3.4 使用函數free()釋放內存空間 277

15.4 綜合實戰——保持原有順序插入數組元素 279

第16章 常用的算法思想 280

16.1 枚舉算法——“百錢買百雞”問題 280

16.2 遞推算法——“斐波那契數列”問題 283

16.3 遞歸算法——“找出第n項的值”問題 285

16.4 分治算法——“大數相乘”問題 286

16.5 貪心算法——“找零方案”問題 288

16.6 試探算法——“八皇後”問題 291

16.7 疊代算法——“求平方根”問題 293

16.8 綜合實戰——黑白棋人人對戰遊戲 295

第17章 學生成績管理系統 297

17.1 系統總體描述 297

17.1.1 項目開發的意義 298

17.1.2 項目開發的目標 298

17.1.3 系統功能描述 298

17.2 系統總體設計 299

17.2.1 功能模塊設計 299

17.2.2 數據結構設計 301

17.2.3 構成函數介紹 302

17.3 系統具體實現 303

17.3.1 預處理 303

17.3.2 主函數 303

17.3.3 系統主菜單函數 305

17.3.4 表格顯示信息 305

17.3.5 信息查找定位 306

17.3.6 格式化輸入數據 307

17.3.7 增加學生記錄 307

17.3.8 查詢學生記錄 308

17.3.9 刪除學生記錄 309

17.3.10 修改學生記錄 310

17.3.11 插入學生記錄 311

17.3.12 統計學生記錄 312

17.3.13 排序處理 313

17.3.14 存儲學生信息 314