《21天學通C語言6.0》是2009年電子工業出版社出版的圖書,作者是王正仲。本書詳細介紹了C語言的基本概念和編程技術。
基本介紹
- 書名:21天學通C語言6.0
- 作者:王正仲 等
- ISBN:9787121079023
- 類別:計算機/程式設計>>C語言
- 頁數:416頁
- 定價:¥49.80元(含DVD光碟1張)
- 出版社: 電子工業出版社
- 出版時間: 2009-1-1
- 開本: 16開
編輯推薦,宣傳語,內容簡介,目 錄,
編輯推薦
本書是C語言的入門教程,針對沒有程式設計基礎的讀者,詳細介紹了C語言的基本概念和編程技術。本書分為8篇共21章內容,本書適合沒有編程基礎的C語言初學者作為入門教程,也可作為大、中專院校師生和培訓班的教材,對於C語言開發的愛好者,本書也有較大的參考價值。
宣傳語
基礎知識核心技術典型實例綜合練習項目案例
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.提供完善的技術支持
4.豐富的額外素材下載
推薦的學習計畫
本書作者在長期從事相關培訓或教學實踐過程中,歸納了最適合初學者的學習模式,並參考了多位專家的意見,為讀者總結了合理的學習時間分配方式,
本書適合哪些讀者閱讀
本書非常適合以下人員閱讀:
— 從未接觸過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