21天學通C語言6.0

21天學通C語言6.0

《21天學通C語言6.0》是由電子工業出版社2009年出版的圖書。

基本信息

宣傳語

21天學通C語言6.0

 基礎知識核心技術典型實例綜合練習項目案例

 202個典型實例、1個項目案例、296個練習題

 一線開發人員全程貼心講解,上手毫不費力

 21小時多媒體語音視頻教學

 本書原始碼 + 本書電子教案(PPT)

 1000餘頁編程參考寶典電子書(免費贈送)

內容簡介

第一篇為C語言入門篇,該篇介紹了C語言程式的特點及編程的準備。第二篇為C語言基礎篇,該篇介紹了常量與變數、整型、字元型與浮點型和表達式與操作符等內容。第三篇為結構編程篇,該篇通過兩章的篇幅講解了選擇結構和循環結構兩種常用的程式結構。第四篇為數組和字元串篇,該篇通過兩章的篇幅分別講解了C語言中數組和字元串的套用。第五篇為函式篇,該篇主要內容包括函式、函式與檔案、函式中的變數和字元串處理函式等。第六篇為指針篇,該篇通過兩章的篇幅介紹了指針的重要概念和套用。第七篇為高級套用篇,該篇內容主要包括堆管理、位運算操作符、結構體、共用體、枚舉和位域,以及預處理等。第八篇為綜合案例篇,該篇以圖書管理系統開發為例,詳細介紹了C語言和檔案處理開發的過程。

本書附贈DVD光碟1張,內容包括超大容量手把手視頻、電子教案(PPT)、編程參考寶典電子書、原始碼及各章習題答案。

本書特點

千里之行,始於足下!

——老子

為什麼要寫這樣一本書

C語言作為一門基礎語言,從其誕生以來就受到編程愛好者的廣泛關注並作為應用程式開發中的一把利器。同時,也被認為是最適合編程愛好者步入編程殿堂的一門程式語言。目前市面上關於學習C語言的書非常豐富,很多書都是大而全,但這類書籍很難做到從初學者的角度來講解和介紹C語言的基本概念和編程技術。所以初學者閱讀後都有種無從下手的感覺。

為了讓初次接觸C語言編程的愛好者能夠快速而輕鬆地學會C語言編程,筆者總結自己學習C語言的經驗,並結合多年的開發經驗,編寫了這本C語言基礎教程。在本書中,筆者將從基本概念入手,循序漸進地將C語言編程技術展現在讀者面前,讓讀者快速掌握C語言編程的基本概念及編程技術。

本書有何色

1.細緻體貼的講解

為了讓讀者更快地上手,本書特別設計了適合初學者的學習方式,用準確的語言總結概念#用直觀的圖示演示過程#用詳細的注釋解釋代碼#用形象的比方幫助記憶。

1)知識點介紹 準確、清晰是其顯著特點,一般放在每一節開始位置,讓零基礎的讀者了解相關概念,順利入門。

2)範例 書中出現的完整實例,以章節順序編號,便於檢索和循序漸進地學習、實踐,放在每節知識點介紹之後。

3)範例代碼 與範例編號對應,層次清楚、語句簡潔、注釋豐富,體現了代碼優美的原則,有利於讀者養成良好的代碼編寫習慣。對於大段程式,均在每行代碼前設定編號便於學習。

4)運行結果 對範例給出運行結果和對應圖示,幫助讀者更直觀地理解範例代碼。

5)代碼解析 將範例代碼中的關鍵代碼行逐一解釋,有助於讀者掌握相關概念和知識。

6)綜合練習 為了便於讀者鞏固所學內容,本書每章中均提供了綜合練習,並給出了操作提示和結果,配合讀者自己動手實踐。

7)習題 每章最後提供專門的測試習題,供讀者檢驗所學知識是否牢固掌握,題目的提示或答案放在光碟中。

8)貼心的提示 為了便於讀者閱讀,全書還穿插著一些技巧、提示等小貼士,體例約定如下:

— 提示:通常是一些貼心的提醒,讓讀者加深印象或提供建議,或者解決問題的方法。

— 注意:提出學習過程中需要特別注意的一些知識點和內容,或者相關信息。

— 警告:對操作不當或理解偏差將會造成的災難性後果做警示,以加深讀者印象。

經作者多年的培訓和授課證明,以上講解方式是最適合初學者學習的方式,讀者按照這種方式,會非常輕鬆、順利地掌握本書知識。

在本書中,大部分的內容是基於Turbo C 2.0編譯器實現的,但是為了適應最新的C99語言標準,本書部分章節是基於Visual C++編譯器實現的(兩者主要的差別在於記憶體空間不同)。使用Visual C++編譯器的章節是第3~5章,第8~9以及14~19章。

2.實用超值的DVD光碟

為了幫助讀者比較直觀地學習,本書附贈DVD光碟,內容包括多媒體視頻、電子教案(PPT)、編程參考寶典電子書、各章習題答案和實例原始碼等。

多媒體視頻

贈送1GB,長達21小時手把手教學視頻,講解關鍵知識點界面操作和書中的一些綜合練習題。作者親自配音、演示,手把手教會讀者使用。

電子教案(PPT)

本書可以作為高校相關課程的教材或課外輔導書,所以筆者特別為本書製作了電子教案(PPT),以方便老師教學使用。

編程參考寶典電子書

為方便廣大讀者學習,特別製作了編程開發參考電子書,供讀者查閱和參考。

3.提供完善的技術支持

本書提供了論壇:http://www.rzchina.net,讀者可以在上面提問交流。另外,論壇上還有一些小的教程、視頻動畫和各種技術文章,可幫助讀者提高開發水平。

4.豐富的額外素材下載

相關的開發素材檔案,在www.broadview.com.cn提供下載。

推薦的學習計畫

本書作者在長期從事相關培訓或教學實踐過程中,歸納了最適合初學者的學習模式,並參考了多位專家的意見,為讀者總結了合理的學習時間分配方式,

本書適合哪些讀者閱讀

本書非常適合以下人員閱讀:

— 從未接觸過C語言的自學人員;

— 有一定C語言基礎,但還需要進一步學習的人員;

— 其他編程愛好者。

本書作者

2009年1月

目 錄

第一篇 C語言入門篇

第1章 C語言與程式概述(精彩視頻:36分鐘) 1

1.1 C語言歷史 1

1.1.1 C語言的誕生 1

1.1.2 C語言的標準化 2

1.1.3 C語言的特點 2

1.1.4 Hello, world! 3

1.2數據結構與算法4

1.2.1數據結構4

1.2.2 算法簡介 6

1.3 程式設計 7

1.3.1 結構化程式設計 7

1.3.2 三種基本結構 7

1.3.3 算法描述方法 9

1.4 綜合練習 11

1.5 小結 13

1.6 習題 13

第2章 C語言編程準備(精彩視頻:21分鐘) 15

2.1 C程式介紹 15

2.1.1 兩個簡單的C程式 15

2.1.2 C程式的一些特點 17

2.1.3 標識符與關鍵字 17

2.1.4 編譯、連結和運行 18

2.2 在不同的開發環境中開發C程式 19

2.2.1 Turbo C 19

2.2.2 Visual C++ 2005 21

2.2.3 GCC 3.2.2 23

2.3 綜合練習 24

2.4 小結 24

2.5 習題 25

第二篇 C語言基礎篇

第3章 常量與變數(精彩視頻:39分鐘) 26

3.1 常量與變數 26

3.1.1 常量 26

3.1.2 變數 27

3.2 變數的使用 28

3.2.1 聲明變數 28

3.2.2 定義變數 29

3.2.3 使用extern聲明變數 29

3.2.4 賦值和初始化 30

3.2.5 地址操作符和指針操作符 32

3.3 格式化輸入輸出 33

3.3.1 printf函式 33

3.3.2 scanf函式 34

3.4 數據類型 35

3.5 綜合練習 35

3.6 小結 36

3.7 習題 37

第4章 整型、字元型與浮點型(精彩視頻:89分鐘) 38

4.1 整型數據類型 38

4.1.1 位元組長度 38

4.1.2 修飾符signed和unsigned 39

4.1.3 整型常量 39

4.1.4 整型變數 40

4.1.5 整型的存儲方式 41

4.1.6 整型的數值範圍 42

4.2 字元型數據類型 45

4.2.1 位元組長度 45

4.2.2 字元常量 46

4.2.3 字元變數 48

4.2.4 字元型的存儲方式 49

4.3 浮點型數據類型 49

4.3.1 位元組長度 49

4.3.2 浮點型常量 50

4.3.3 浮點型變數 50

4.3.4 浮點型的精度 50

4.3.5 浮點型的數值範圍 51

4.3.6 浮點型的存儲方式 53

4.4 使用typedef定義類型 55

4.4.1 typedef的標準形式 55

4.4.2 合理使用typedef 56

4.5限定詞const與volatile 57

4.5.1 使用const 57

4.5.2 使用volatile 58

4.6 綜合練習 59

4.7 小結 60

4.8 習題 60

第5章 表達式與操作符(精彩視頻:167分鐘) 62

5.1 表達式和語句 62

5.1.1 表達式 62

5.1.2 語句 64

5.1.3 複合語句 64

5.1.4 C語言操作符 66

5.2 賦值操作符與賦值表達式 67

5.2.1 賦值操作符 67

5.2.2 賦值操作符的結合性 68

5.2.3 左值和右值 68

5.2.4 賦值表達式中的類型轉換 69

5.2.5 類型轉換操作符 71

5.3 運算操作符與運算表達式 72

5.3.1 運算操作符 72

5.3.2 符號操作符 74

5.3.3 優先權與結合性 75

5.3.4 數值運算中的類型轉換 77

5.3.5 複合的賦值操作符 78

5.4 自增、自減操作符 80

5.4.1 自增操作符 80

5.4.2 自減操作符 82

5.4.3 優先權與結合性 83

5.4.4 詞法分析:貪婪法 84

5.4.5 自增、自減操作符的副作用 86

5.5 關係操作符與關係表達式 87

5.5.1 使用關係操作符 87

5.5.2 關係表達式的值 89

5.5.3 優先權與結合性 90

5.6 邏輯操作符與邏輯表達式 91

5.6.1 使用邏輯操作符 91

5.6.2 邏輯表達式的值 92

5.6.3 優先權和結合性 93

5.6.4 化簡邏輯表達式 94

5.7 逗號操作符與逗號表達式 94

5.7.1 使用逗號操作符 94

5.7.2 逗號表達式的值 95

5.8 操作符優先權和結合性 96

5.8.1 優先權和結合性 96

5.8.2 使用小括弧 98

5.8.3 減少語句的副作用 99

5.9 綜合練習 101

5.10 小結 102

5.11 習題 102

第三篇 結構編程篇

第6章 選擇結構(精彩視頻:66分鐘) 104

6.1 if語句 104

6.1.1 使用if語句 104

6.1.2 else和if的配對使用 107

6.1.3 選擇結構中的不平等分支 108

6.1.4 判斷表達式中的=與== 109

6.2 switch語句 110

6.2.1 使用switch語句 111

6.2.2 break語句 111

6.2.3 else if語句和switch語句 114

6.2.4 switch中的標號 115

6.2.5 使用具名常量組成標號 116

6.3 條件操作符與條件表達式 118

6.3.1 使用條件操作符 118

6.3.2 條件表達式與if-else 118

6.3.3 條件表達式中的類型轉換 119

6.3.4 條件表達式的嵌套 120

6.4 邏輯表達式的隱式選擇 120

6.4.1 邏輯表達式的特點 120

6.4.2 隱式選擇的作用 121

6.4.3 巧用隱式選擇 122

6.5 綜合練習 123

6.6 小結 124

6.7 習題 124

第7章 循環結構(精彩視頻:86分鐘) 126

7.1 for語句 126

7.1.1 使用for語句 126

7.1.2 for頭中的三個表達式 126

7.1.3 for頭中的逗號表達式 128

7.1.4 for語句的嵌套 129

7.1.5 for語句使用舉例 129

7.2 while語句 131

7.2.1 使用while語句 131

7.2.2 while語句與for語句 132

7.2.3 while語句使用舉例 133

7.3 do-while語句 135

7.3.1 使用do-while語句 135

7.3.2 do-while語句與while語句 135

7.3.3 do-while語句使用舉例 136

7.4 continue語句與break語句 138

7.4.1 使用continue語句 138

7.4.2 continue語句與if語句 140

7.4.3 循環結構中的break語句 140

7.4.4 使用break語句終止多層循環 142

7.5 goto語句 143

7.5.1 goto語句的標準形式 143

7.5.2 搭配使用goto語句與if語句 144

7.5.3 慎用goto語句 145

7.6 基本結構的嵌套使用 147

7.6.1 if-while與while-if 147

7.6.2 使用選擇結構包含循環結構 148

7.7 綜合練習 149

7.8 小結 150

7.9 習題 150

第四篇 數組和字元串篇

第8章 數組(精彩視頻:79分鐘) 152

8.1 一維數組 152

8.1.1 定義一維數組 152

8.1.2 訪問一維數組 153

8.1.3 未初始化的一維數組 154

8.1.4 初始化數組 155

8.1.5 數組元素地址 157

8.1.6 數組越界 158

8.1.7 一維數組使用舉例 159

8.2 二維數組 162

8.2.1 定義二維數組 162

8.2.2 訪問二維數組 163

8.2.3 二維數組的存儲方式 164

8.2.4 初始化二維數組 164

8.2.5 二維數組使用舉例 165

8.3 多維數組 167

8.3.1 定義多維數組 167

8.3.2 多維數組使用舉例 167

8.4 綜合練習 168

8.5 小結 169

8.6 習題 169

第9章 字元串(精彩視頻:68分鐘) 171

9.1 字元數組 171

9.1.1 定義和賦值字元數組 171

9.1.2 字元數組的初始化 173

9.1.3 二維字元數組 173

9.1.4 字元數組使用舉例 175

9.2 字元串常量與字元串變數 178

9.2.1 字元串常量 178

9.2.2 字元串變數 180

9.2.3 格式化輸出字元串 180

9.2.4 字元終止符的作用 181

9.2.5 格式化輸入字元串 182

9.3 字元串套用舉例 182

9.3.1 使用strlen函式 182

9.3.2 統計單詞數 183

9.3.3 顛倒單詞順序 185

9.3.4 顛倒單詞順序——改進 186

9.4 綜合練習 188

9.5 小結 189

9.6 習題 189

第五篇 函式篇

第10章 函式(精彩視頻:63分鐘) 191

10.1 什麼是函式 191

10.1.1 模組化編程 191

10.1.2 定義函式 194

10.1.3 調用函式 194

10.1.4 函式使用舉例 196

10.1.5 範例的改進 197

10.2 函式聲明 198

10.2.1 聲明的形式 199

10.2.2 聲明與定義 199

10.3 函式值與形參列表 200

10.3.1 函式值類型 200

10.3.2 形參列表 202

10.3.3 函式值 203

10.3.4 使用const形參 206

10.4 函式體 208

10.4.1 定義變數 208

10.4.2 檢查形參 209

10.4.3 return語句 209

10.5 main函式 211

10.5.1 main函式的聲明 211

10.5.2 函式值類型 211

10.5.3 向main函式傳遞參數 212

10.6 綜合練習 215

10.7 小結 216

10.8 習題 216

第11章 函式與檔案(精彩視頻:47分鐘) 218

11.1 多檔案的程式 218

11.1.1 源檔案和頭檔案 218

11.1.2 C工程的組織結構 219

11.1.3 一個簡單的多檔案工程 220

11.2 創建和運行多檔案工程 222

11.2.1 Turbo C 222

11.2.2 Visual C++ 2005 223

11.2.3 GCC 3.2.2 223

11.3 函式的調用 223

11.3.1 嵌套調用 223

11.3.2 遞歸調用 225

11.3.3 遞歸調用使用舉例 226

11.4 內部函式與外部函式 230

11.4.1 外部函式 230

11.4.2 內部函式 231

11.4.3 套用舉例 231

11.5 綜合練習 233

11.6 小結 234

11.7 習題 234

第12章 函式中的變數(精彩視頻:60分鐘) 236

12.1 生存期和作用域 236

12.1.1 生存期 236

12.1.2 作用域 237

12.2 局部變數和全局變數 239

12.2.1 局部變數 239

12.2.2 全局變數 240

12.2.3 初始化全局變數 242

12.2.4 合理使用全局變數 243

12.2.5 同名變數和變數禁止 244

12.3 變數的存儲類別 247

12.3.1 記憶體存儲區 247

12.3.2 auto變數 247

12.3.3 static局部變數 248

12.3.4 register變數 250

12.3.5 extern變數 251

12.3.6 static全局變數 251

12.4 綜合練習 252

12.5 小結 253

12.6 習題 253

第13章 字元串處理函式(精彩視頻:38分鐘) 255

13.1 輸入和輸出函式 255

13.1.1 putchar函式和getchar函式 255

13.1.2 puts函式和gets函式 256

13.2 複製和拼接 257

13.2.1 strcpy函式 257

13.2.2 strncpy函式 258

13.2.3 strcat函式和strncat函式 260

13.3 比較和轉換 261

13.3.1 strncmp函式和strcmp函式 261

13.3.2 strupr函式和strlwr函式 263

13.4 綜合練習 264

13.5 小結 264

13.6 習題 265

第六篇 指針篇

第14章 指針(精彩視頻:60分鐘) 266

14.1 什麼是指針 266

14.1.1 訪問記憶體的兩種方式 266

14.1.2 指針的概念 267

14.1.3 指針變數的定義 267

14.2 指針的使用 268

14.2.1 指針變數的一次賦值 268

14.2.2 指針變數的多次賦值 270

14.2.3 將指針變數賦值為整數 272

14.2.4 初始化指針變數 273

14.2.5 使用const聲明指針變數 273

14.3 指針與函式 274

14.3.1 指針形參 274

14.3.2 指針型函式值 276

14.3.3 函式型指針 277

14.4 void型指針 279

14.4.1 void型指針的含義 279

14.4.2 void指針型形參 279

14.4.3 void指針型函式值 280

14.5 綜合練習 280

14.6 小結 281

14.7 習題 281

第15章 再論指針(精彩視頻:68分鐘) 283

15.1 指針與數組 283

15.1.1 指向數組元素的指針 283

15.1.2 使用指針訪問數組 283

15.1.3 數組元素型指針和數組變數 285

15.1.4 聲明數組形參的三種方式 287

15.1.5 使用三種聲明方式 288

15.1.6 調用含數組形參的函式 288

15.2 指針與二維數組 289

15.2.1 二維數組的地址 289

15.2.2 指針法訪問二維數組 292

15.2.3 二維數組形參 293

15.3 指針與字元 297

15.3.1 字元指針 297

15.3.2 使用字元指針 299

15.3.3 字元串數組和字元指針數組 301

15.4 綜合練習 302

15.5 小結 303

15.6 習題 303

第七篇 高級套用篇

第16章 堆管理(精彩視頻:24分鐘) 305

16.1 分配和釋放 305

16.1.1 malloc函式和memset函式 305

16.1.2 free函式 306

16.2 其他分配函式 307

16.2.1 calloc函式 307

16.2.2 realloc函式 308

16.3 動態數組的實現 310

16.4 綜合練習 311

16.5 小結 312

16.6 習題 312

第17章 位運算操作符(精彩視頻:50分鐘) 313

17.1 位運算 313

17.1.1 位元組與位 313

17.1.2 補碼 313

17.2 位運算操作符 314

17.2.1 取反操作符(~) 314

17.2.2 位或操作符(|) 315

17.2.3 位與操作符(&) 317

17.2.4 異或操作符(^) 320

17.2.5 右移操作符(>>) 322

17.2.6 左移操作符(<<) 323

17.2.7 位運算賦值操作符 325

17.3 位運算操作符使用舉例 325

17.3.1 循環移位 325

17.3.2 使用子網掩碼 327

17.4 綜合練習 328

17.5 小結 328

17.6 習題 328

第18章 結構體(精彩視頻:46分鐘) 330

18.1 結構體 330

18.1.1 結構體類型的概念 330

18.1.2 定義結構體變數 331

18.1.3 結構體的位元組長度 332

18.2 結構體的使用 334

18.2.1 訪問結構體成員 334

18.2.2 初始化結構體變數 335

18.2.3 淺複製和深複製 337

18.3 結構體數組 339

18.3.1 定義結構體數組 339

18.3.2 初始化結構體數組 340

18.3.3 結構體數組使用舉例 341

18.4 結構體指針 342

18.4.1 指向結構體變數的指針 342

18.4.2 指向堆空間的結構體指針 343

18.4.3 指向結構體數組元素的指針 344

18.5 綜合練習 345

18.6 小結 346

18.7 習題 347

第19章 共用體、枚舉和位域(精彩視頻:33分鐘) 348

19.1 共用體 348

19.1.1 共用體類型 348

19.1.2 共用體變數 349

19.2 枚舉 351

19.2.1 定義枚舉類型 351

19.2.2 枚舉類型的使用 352

19.3 位域 354

19.3.1 位域的概念 354

19.3.2 位域的字長 355

19.3.3 位域成員的記憶體分布 356

19.4 綜合練習 358

19.5 小結 360

19.6 習題 360

第20章 預處理(精彩視頻:61分鐘) 362

20.1 宏定義 362

20.2 宏對象 363

20.2.1 使用宏對象 363

20.2.2 代替常用字元串 364

20.2.3 說明形參屬性 366

20.2.4 宏定義的作用域 367

20.2.5 標準宏對象 368

20.3 宏函式 368

20.3.1 使用宏函式 368

20.3.2 宏函式與函式 369

20.4 條件編譯 370

20.4.1 #ifdef命令 371

20.4.2 #ifndef命令 373

20.4.3 #if命令 374

20.4.4 defined宏函式 375

20.5 檔案包含 375

20.5.1 使用檔案包含 375

20.5.2 重複包含和循環包含 377

20.6 綜合練習 377

20.7 小結 378

20.8 習題 378

第八篇 綜合案例篇

第21章 圖書管理系統開發實例(精彩視頻:46分鐘) 380

21.1 需求分析 380

21.2 系統設計 380

21.2.1 系統架構 380

21.2.2數據結構381

21.3 main模組 382

21.4 用戶界面模組 383

21.4.1 程式流程 383

21.4.2 代碼實現 383

21.4.3 編寫menu_main函式:列印主界面和第一級選單 384

21.4.4 編寫menu_choice函式 385

21.4.5 編寫menu_add函式:列印增加書籍的二級選單 385

21.4.6 編寫menu_delete函式:輸出刪除書籍的二級選單 386

21.4.7 編寫menu_search函式:輸出搜尋書籍的二級選單 388

21.4.8 編寫menu_reload函式:輸出載入書籍數據的二級選單 388

21.4.9 編寫menu_exit函式:退出所有二級選單 388

21.5 日誌模組 388

21.5.1 打開和關閉檔案 389

21.5.2 檔案的格式化讀寫 389

21.5.3 打開和關閉日誌檔案 390

21.5.4 log_error函式和log_activity函式 390

21.6 數據管理模組 391

21.6.1 處理TimeInfor數據 391

21.6.2 處理BookInfor數據 392

21.6.3 增加書籍 393

21.6.4 刪除書籍 394

21.6.5 查詢書籍 395

21.6.6 從檔案導入數據 395

21.7 小結 396

相關搜尋

熱門詞條

聯絡我們