輕鬆學C語言

輕鬆學C語言

《輕鬆學C語言》是2013年由電子工業出版社出版的一本書籍,作者是邢太北。第1篇“基礎篇”介紹C語言的發展、C語言的開發工具的安裝過程、第一個C語言程式和圖形界面程式的運行過程等知識;第2篇“語法篇”介紹C語言中的數據、語句、程式控制結構、數組、函式、指針、結構體與共用體、編譯預處理等技術;第3篇“套用篇”介紹了C語言的基本套用,檔案和目錄的操作運算、數值處理運算、字元串的處理運算、動態記憶體管理以及變數的存儲類別,數據結構的操作、排序、經典的C語言例題分析等技術。

內容介紹

輕鬆學C語言輕鬆學C語言

《輕鬆學C語言(圖解版)》由淺入深,全面、系統地介紹了C語言的開發技術。《輕鬆學C語言(圖解版)》改變了過去編程書籍枯燥乏味的文字講解方式,採用大量的插圖,生動形象地再現了C語言開發需要的所有知識,使讀者能夠輕鬆地掌握學習內容。同時,每一章配以習題,方便讀者對該章的學習進行檢測。另外作者還專門為《輕鬆學C語言(圖解版)》錄製了大量的配套教學視頻,以幫助讀者更好地了解《輕鬆學C語言(圖解版)》內容。這些視頻和書中的實例原始碼一起收錄於《輕鬆學C語言(圖解版)》的配書光碟中。

全書共分3篇。第1篇“基礎篇”介紹C語言的發展、C語言的開發工具的安裝過程、第一個C語言程式和圖形界面程式的運行過程等知識;第2篇“語法篇”介紹C語言中的數據、語句、程式控制結構、數組、函式、指針、結構體與共用體、編譯預處理等技術;第3篇“套用篇”介紹了C語言的基本套用,檔案和目錄的操作運算、數值處理運算、字元串的處理運算、動態記憶體管理以及變數的存儲類別,數據結構的操作、排序、經典的C語言例題分析等技術。

作品目錄

基 礎 篇

第1章 第一個C語言程式 2

1.1 C語言開發概述 2

1.1.1 C語言的發展 2

1.1.2 C語言的特點 3

1.2 構建開發環境 3

1.2.1 Visual C++ 6.0的軟硬體需求 3

1.2.2 安裝Visual C++ 6.0 4

1.3 第一個C語言程式 5

1.3.1 C程式的結構 6

1.3.2 編寫源程式 6

1.3.3 編譯調試程式 7

1.3.4 運行程式 8

1.3.5 查看源檔案 8

1.4 小結 8

1.5 習題 8

語 法 篇

第2章 數據的表示 12

2.1 數 12

2.1.1 十進制 12

2.1.2 二進制 13

2.1.3 八進制 15

2.1.4 十六進制 16

2.2 數據的描述 18

2.2.1 C的構詞方式——標識符 18

2.2.2 特殊的標識符 19

2.2.3 整數類型 20

2.2.4 浮點類型 21

2.2.5 字元類型 22

2.3 變數 23

2.3.1 變數的聲明和定義 23

2.3.2 不變的變數——常量 25

2.4 小結 27

2.5 習題 27

第3章 程式的基本單位——語句 31

3.1 語句的構成 31

3.2 運算符 32

3.2.1 賦值運算 32

3.2.2 數據類型的轉換 35

3.3 常用的其他運算符 37

3.3.1 位運算符 37

3.3.2 算術運算符 39

3.3.3 自增、自減運算符 40

3.3.4 逗號運算符 41

3.3.5 複合賦值運算符 41

3.3.6 sizeof運算符 43

3.3.7 分隔設定 43

3.3.8 運算符的優先權 44

3.4 語句塊 45

3.4.1 語句塊的構成 45

3.4.2 作用域 45

3.5 小結 46

3.6 習題 47

第4章 程式控制結構 51

4.1 語句塊的執行方式—— 順序結構 51

4.2 條件的表達 52

4.2.1 單一條件的表達—— 關係運算符 52

4.2.2 多條件的表達—— 邏輯運算符 53

4.3 選擇結構 54

4.3.1 最簡單的選擇—— 條件運算符 54

4.3.2 if語句單分支形式 55

4.3.3 if else語句雙分支形式 56

4.3.4 else if形式語句 57

4.3.5 嵌套if形式語句 58

4.3.6 switch語句 60

4.3.7 選擇結構典型實例—— 兩數計算器 63

4.4 循環結構 64

4.4.1 for語句 65

4.4.2 while語句 66

4.4.3 do while語句 66

4.4.4 循環語句的區別 67

4.5 意外情況的表達—— 轉向語句 68

4.5.1 continue語句 68

4.5.2 break語句 68

4.5.3 goto語句 69

4.6 小結 70

4.7 習題 70

第5章 數組 73

5.1 數組簡介 73

5.2 數組的來源 73

5.3 一維數組 74

5.3.1 一維數組的聲明和定義 74

5.3.2 一維數組的初始化 74

5.3.3 一維數組的引用 75

5.3.4 一維數組程式舉例 76

5.4 二維數組 76

5.4.1 二維數組的聲明和定義 77

5.4.2 二維數組的初始化 77

5.4.3 二維數組的引用 77

5.4.4 二維數組程式舉例 78

5.5 字元數組 79

5.5.1 字元數組的聲明和定義 79

5.5.2 字元數組的初始化 79

5.5.3 字元數組的引用 80

5.5.4 字元數組的輸入/輸出 81

5.6 綜合實例—— 楊輝三角 82

5.7 小結 84

5.8 習題 84

第6章 函式 91

6.1 函式概述 91

6.2 函式的聲明與定義 92

6.2.1 無參函式的聲明和定義的一般形式 92

6.2.2 有參函式的聲明和定義的一般形式 93

6.2.3 空函式 94

6.3 函式的形式參數和函式的返回值 94

6.3.1 形式參數 94

6.3.2 函式的返回值 94

6.4 函式調用 95

6.4.1 函式調用的方式 96

6.4.2 函式的參數傳遞 97

6.5 函式的嵌套和遞歸 97

6.5.1 函式的嵌套 98

6.5.2 函式的遞歸 98

6.6 數組作為函式參數 100

6.6.1 數組元素作函式實參 100

6.6.2 數組名作函式實參 100

6.7 字元數組相關的輸入/輸出函式 101

6.7.1 逐個字元的輸入和輸出 101

6.7.2 字元串的輸入和輸出 103

6.8 函式套用舉例——猴子吃桃問題 103

6.9 小結 105

6.10 習題 105

第7章 指針 111

7.1 地址和指針的概念 111

7.2 變數的指針和指向變數的指針變數 112

7.2.1 變數的指針與指針變數 112

7.2.2 指針變數的賦值與引用 112

7.2.3 指針變數作為函式的參數 113

7.3 指針與數組 114

7.3.1 指向數組元素的指針 114

7.3.2 通過指針引用數組元素 114

7.3.3 數組名作為函式參數 115

7.4 指針與字元串 117

7.5 函式指針與指針函式 118

7.5.1 用函式指針調用函式 118

7.5.2 使用函式指針作函式參數 119

7.5.3 指針函式——返回指針的函式 120

7.6 指針數組與二級指針 121

7.6.1 指針數組 121

7.6.2 二級指針——指向指針的指針 122

7.6.3 指針數組作為main()函式的參數 123

7.7 有關指針的數據類型和指針運算 125

7.7.1 有關指針的數據類型 125

7.7.2 指針運算 126

7.7.3 void指針類型 126

7.8 小結 126

7.9 習題 126

第8章 結構體與共用體 131

8.1 結構體的概念及結構體類型的定義 131

8.1.1 為什麼使用結構體 131

8.1.2 定義結構體類型 132

8.2 結構體變數 133

8.2.1 結構體變數的定義 133

8.2.2 結構體變數的引用 133

8.2.3 結構體變數的初始化 134

8.2.4 結構體變數作為函式參數 135

8.3 結構體數組 136

8.3.1 結構體數組的定義 137

8.3.2 結構體數組的引用以及初始化 137

8.3.3 結構體數組作為函式的參數 139

8.4 結構體指針 140

8.4.1 指向結構體變數的指針 140

8.4.2 指向結構體數組的指針 141

8.4.3 指向結構體的指針作函式參數 142

8.5 位域 143

8.5.1 定義位域結構 143

8.5.2 位域的聲明 144

8.5.3 位域的使用 144

8.6 共用體 145

8.6.1 共用體的概念 145

8.6.2 共用體變數的定義及引用 147

8.6.3 共用體與結構體的嵌套 149

8.7 枚舉類型 149

8.7.1 枚舉類型及其變數的定義 149

8.7.2 枚舉類型套用舉例 151

8.8 typedef自定義類型 151

8.9 小結 153

8.10 習題 153

第9章 編譯預處理 157

9.1 宏定義 157

9.1.1 不帶參數的宏定義 158

9.1.2 帶參數的宏定義 159

9.1.3 宏的取消 160

9.1.4 標準宏對象 161

9.2 “檔案包含”處理 161

9.3 條件編譯 163

9.3.1 #ifdef命令 163

9.3.2 #ifndef 163

9.3.3 #if命令 164

9.4 小結 165

9.5 習題 165

應 用 篇

第10章 檔案和目錄操作運算 170

10.1 C檔案概述 170

10.2 檔案的處理形式 171

10.3 檔案型指針 172

10.4 檔案打開與關閉 173

10.4.1 打開檔案—— fopen()函式 173

10.4.2 打開檔案是否成功 174

10.4.3 關閉檔案—— fclose()函式 174

10.5 檔案讀寫函式 174

10.5.1 字元讀寫函式—— fputc()函式和fgetc()函式 175

10.5.2 塊讀寫函式—— fread函式和fwrite函式 177

10.5.3 格式化檔案輸入輸出—— fprintf函式和fscanf函式 178

10.6 檔案的定位 179

10.6.1 是否到檔案末尾—— feof()函式 179

10.6.2 移到開頭—— rewind函式 179

10.6.3 fseek()函式和ftell()函式 180

10.7 出錯檢測 181

10.7.1 ferror()函式 181

10.7.2 clearerr()函式 181

10.8 目錄基本操作 182

10.9 檔案存儲路徑操作 183

10.10 保存檔案信息的結構 184

10.11 檔案管理 184

10.11.1 檔案重命名 184

10.11.2 刪除檔案 185

10.11.3 使用臨時檔案 186

10.12 小結 187

10.13 習題 188

第11章 數值處理運算 193

11.1 絕對值運算 193

11.2 指數與對數運算 194

11.3 三角形運算函式 194

11.3.1 正餘弦與反正餘弦函式 194

11.3.2 正切與反正切函式 195

11.3.3 直角三角形斜邊運算 196

11.4 比較運算 197

11.5 雙精度分解運算 197

11.6 隨機數運算 198

11.7 小結 199

11.8 習題 199

第12章 字元串處理運算 203

12.1 字元串的輸入 203

12.1.1 逐個字元輸入 203

12.1.2 整個字元串輸入 203

12.2 將其他數據類型轉換成字元串的運算 204

12.3 字元串的操作 206

12.3.1 字元串的複製 206

12.3.2 字元串的比較 207

12.3.3 字元串大小寫轉換 209

12.3.4 字元串的字元個數相關運算 209

12.4 字元串的輸出 211

12.4.1 逐個字元的輸出 211

12.4.2 整個字元串的輸出 211

12.4.3 字元串輸入輸出小結 212

12.5 小結 212

12.6 習題 212

第13章 動態記憶體管理及變數的存儲類別 217

13.1 動態記憶體管理的來源 217

13.2 動態記憶體管理 218

13.2.1 動態存儲區域分配空間 219

13.2.2 釋放動態分配的存儲空間 220

13.2.3 重新分配記憶體空間 221

13.2.4 sizeof—— 判斷數據類型長度符 222

13.3 變數的存儲類別 223

13.3.1 靜態存儲方式與動態存儲方式 223

13.3.2 static—— 聲明靜態局部變數 224

13.3.3 自動變數 225

13.3.4 register—— 暫存器變數 226

13.3.5 extern聲明外部變數 227

13.3.6 static的使用 229

13.4 小結 229

13.5 習題 230

第14章 簡單數據結構 234

14.1 線性表 234

14.1.1 線性表的基本概念 234

14.1.2 線性表的基本操作 235

14.1.3 線性表的順序存儲結構 236

14.1.4 順序表的基本操作 237

14.1.5 順序表的插入 238

14.1.6 順序表的查找 240

14.1.7 順序表的刪除 241

14.1.8 順序表操作的算法典型案例 242

14.1.9 線性表的鏈式存儲結構 242

14.1.10 單鍊表的基本操作 243

14.1.11 單鍊表的插入結點運算 245

14.1.12 單鍊表的刪除結點運算 247

14.1.13 單鍊表的查找結點運算 248

14.2 棧 249

14.2.1 棧的定義和基本運算 249

14.2.2 棧的順序存儲 250

14.2.3 棧的鏈式存儲 254

14.3 佇列 256

14.3.1 佇列的定義和基本運算 257

14.3.2 非循環佇列的順序存儲 257

14.3.3 循環佇列的順序存儲 260

14.3.4 佇列的鏈式存儲 262

14.4 小結 264

14.5 習題 265

第15章 排序 269

15.1 冒泡排序 269

15.1.1 冒泡排序算法描述 269

15.1.2 冒泡排序算法實現 270

15.1.3 冒泡排序算法實例 270

15.2 快速排序 271

15.2.1 快速排序算法描述 271

15.2.2 快速排序算法實現 272

15.2.3 快速排序算法實例 273

15.3 簡單選擇排序 273

15.3.1 簡單選擇排序算法描述 273

15.3.2 選擇排序算法實現 274

15.3.3 選擇排序算法實例 274

15.4 堆排序 275

15.4.1 堆排序算法描述 275

15.4.2 堆排序算法實現 277

15.4.3 堆排序算法實例 277

15.5 直接插入排序 278

15.5.1 直接插入排序算法描述 278

15.5.2 直接插入排序算法實現 278

15.5.3 直接插入排序算法示例 278

15.6 希爾排序 278

15.6.1 希爾(Shell)排序算法描述 278

15.6.2 希爾排序算法實現 281

15.6.3 希爾排序算法實例 281

15.7 合併排序 282

15.7.1 合併排序算法描述 282

15.7.2 合併排序算法實現 283

15.7.3 合併排序算法實例 284

15.8 基數排序 284

15.8.1 基數排序的算法描述 284

15.8.2 基數排序算法實現 286

15.9 小結 286

15.10 習題 286

第16章 經典例題分析 292

16.1 八皇后問題 292

16.1.1 八皇后的問題分析 292

16.1.2 八皇后的算法設計 293

16.2 漢洛塔問題 294

16.2.1 漢洛塔問題分析 294

16.2.2 漢洛塔的算法設計 295

16.3 猴子選大王 296

16.3.1 猴子選大王問題分析 296

16.3.2 猴子選大王的算法設計 297

16.4 三個數的最低公倍數 298

16.4.1 三個數的最低公倍數的問題分析 298

16.4.2 三個數的最低公倍數的算法設計 299

16.5 背包問題 300

16.5.1 背包問題分析 300

16.5.2 背包問題的算法設計 301

16.6 循環賽問題 302

16.6.1 循環賽問題分析圖 302

16.6.2 循環賽問題的算法設計 303

16.7 馬遍歷問題 304

16.7.1 馬遍歷問題分析圖 304

16.7.2 馬遍歷算法設計 305

16.8 魔術方陣 307

16.8.1 魔術方陣的分析圖 307

16.8.2 魔術方陣的算法設計 307

16.9 三色旗 309

16.9.1 三色旗的分析圖 309

16.9.2 三色旗的算法設計 309

16.10 迷宮問題 312

16.10.1 迷宮的問題分析圖 312

16.10.2 迷宮的算法實現 312

16.11 小結 315

16.12 習題 315

相關詞條

熱門詞條

聯絡我們