C語言入門1·2·3——一個老鳥的C語言學習心得

C語言入門1·2·3——一個老鳥的C語言學習心得

《C語言入門1·2·3——一個老鳥的C語言學習心得》是2014年4月清華大學出版社出版的圖書,作者是周凌霄。

基本介紹

  • 書名:C語言入門1·2·3——一個老鳥的C語言學習心得
  • 作者:周凌霄   
  • ISBN:9787302340539
  • 定價:55元
  • 出版社:清華大學出版社
  • 出版時間:2014年4月
內容簡介,圖書目錄,

內容簡介

本書是一本與眾不同的C語言入門好書。作者以獨特的視角,向初學者講述了如何才能真正理解和掌握C語言。本書充分考慮了初學者學習C語言時的種種困難,講解細緻入微,抽絲剝繭,層層推進。本書除了講述C語言之外,還對編程思想、編程風格、算法設計和作業系統等做了必要講解,以培養讀者良好的編程習慣。另外,作者專門為本書錄製了配套教學視頻,以幫助讀者高效、直觀地學習。這些教學視頻和本書涉及的源程式一起收錄於本書的配書光碟中。
本書共15章。主要內容包括程式設計原理、C語言基本語法(數據類型、運算符和表達式)、輸入與輸出、程式控制結構、數組、指針、函式、其他數據類型與預編譯、檔案操作、C語言動態記憶體分配、數據結構、Visual C++ 6.0測試與調試、編程風格、Linux環境C程式設計、算法入門等。最後一章介紹了一個綜合案例——學生成績管理系統的實現過程。附錄結合實例詳細介紹了C語言標準庫函式的使用。
本書內容豐富,講解由淺入深,實例簡單易學,實用性強。適合剛接觸程式設計語言的初學者和C語言初學者閱讀,尤其適合大中專院校的學生和自學編程的人員。另外,本書也適合作為大中專院校相關專業的教材使用。

圖書目錄

第1章 進入程式設計世界(教學視頻:20分鐘) 1
1.1 電腦程式設計 1
1.1.1 計算機語言 1
1.1.2 機器語言 2
1.1.3 彙編語言 2
1.1.4 高級語言 2
1.2 什麼是C語言? 3
1.2.1 C語言的發展 3
1.2.2 C語言的特點 4
1.3 環境搭建,初識Visual C++ 5
1.3.1 安裝Visual C++ 5
1.3.2 認識Visual C++ 9
1.4 編制第一個C語言程式 10
1.4.1 簡單的Hello World程式 10
1.4.2 程式開發步驟 13
1.4.3 C語言的代碼 15
1.5 本章小結 16
1.6 本章習題 16
第2章 C語言數據類型、運算符和表達式(教學視頻:62分鐘) 17
2.1 基本數據類型 17
2.1.1 簡單學習存儲原理 17
2.1.2 整數類型 18
2.1.3 浮點數類型 20
2.1.4 字元類型 21
2.1.5 常用基本數據類型 23
2.2 標識符與關鍵字 23
2.2.1 標識符 23
2.2.2 關鍵字 24
2.3 常量與變數 25
2.3.1 常量 25
2.3.2 變數 26
2.3.3 字元串常量 27
2.4 運算符和表達式 28
2.4.1 C語言的運算符以及表達式 28
2.4.2 算術運算符和算術表達式 29
2.4.3 關係運算符和關係表達式 30
2.4.4 邏輯運算符和邏輯表達式 31
2.4.5 位運算符和位表達式 33
2.4.6 自增、自減運算符和表達式 34
2.4.7 賦值運算符和賦值表達式 35
2.4.8 逗號運算符和逗號表達式 37
2.4.9 sizeof()運算符 37
2.4.10 條件運算符和條件表達式 38
2.5 數據類型之間的轉換 38
2.5.1 自動類型轉換 39
2.5.2 強制類型轉換 39
2.6 本章小結 40
2.7 本章習題 40
第3章 輸入與輸出(教學視頻:28分鐘) 42
3.1 輸入輸出——讓人與機器交流的視窗 42
3.2 格式化的輸入輸出 43
3.2.1 格式化輸出函式printf() 43
3.2.2 格式化輸入函式scanf() 47
3.3 常用字元輸入輸出函式 51
3.3.1 putchar()函式 51
3.3.2 getchar()函式 51
3.4 本章小結 52
3.5 本章習題 52
第4章 程式控制結構(教學視頻:60分鐘) 53
4.1 複合語句 53
4.2 條件控制語句 55
4.2.1 if語句的簡單形式 55
4.2.2 if-else條件判斷形式 57
4.2.3 else-if多條件判斷形式 58
4.2.4 switch多條件判斷語句 60
4.2.5 條件運算符 62
4.2.6 條件控制語句的嵌套使用 63
4.3 循環控制語句 65
4.3.1 while語句 65
4.3.2 do-while語句 66
4.3.3 for語句 67
4.3.4 循環語句的嵌套使用 70
4.4 其他控制語句 71
4.4.1 goto語句 71
4.4.2 break語句 72
4.4.3 continue語句 72
4.5 控制語句的套用舉例 73
4.5.1 窮舉——著名的愛因斯坦階梯問題 73
4.5.2 疊代 75
4.5.3 死循環 76
4.6 本章小結 77
4.7 本章習題 77
第5章 數組(教學視頻:60分鐘) 82
5.1 一維數組 82
5.1.1 一維數組的定義 82
5.1.2 數組的存儲原理 83
5.2 數組的賦值 85
5.2.1 初始化賦值 85
5.2.2 初始化部分元素 86
5.2.3 不定長度數組賦值 87
5.2.4 靜態數組賦值 87
5.2.5 遍歷數組 88
5.3 一維數組的套用 88
5.3.1 冒泡排序 89
5.3.2 簡單選擇排序 91
5.4 多維數組 94
5.4.1 多維數組的定義 94
5.4.2 多維數組的存儲原理 96
5.5 多維數組的賦值 98
5.5.1 順序初始化 98
5.5.2 部分數組元素初始化 100
5.6 字元數組和字元串 101
5.6.1 字元數組與字元串 101
5.6.2 字元串的初始化 102
5.6.3 字元串的輸入輸出 103
5.7 常用的字元串函式 105
5.7.1 字元串輸入函式gets() 105
5.7.2 字元串輸出函式puts() 106
5.7.3 字元串連線函式strcat() 106
5.7.4 字元串拷貝函式strcpy() 107
5.7.5 字元串比較函式strcmp() 108
5.7.6 求字元串長度函式strlen() 109
5.8 中文字元的處理 109
5.9 本章小結 110
5.10 本章習題 111
第6章 指針(教學視頻:41分鐘) 114
6.1 神奇的指針 114
6.1.1 指針的概念 114
6.1.2 指針變數的定義 115
6.1.3 指針的賦值和取值 115
6.1.4 指向指針的指針 118
6.1.5 指針的用處 119
6.2 指針數組 120
6.2.1 指向一維數組的指針 120
6.2.2 指向多維數組的指針 122
6.2.3 指針與字元串 124
6.3 易混淆的指針概念 126
6.3.1 指針常量 126
6.3.2 常量指針 126
6.4 本章小結 127
6.5 本章習題 128
第7章 函式(教學視頻:50分鐘) 130
7.1 函式的概念 130
7.1.1 C語言程式結構 130
7.1.2 函式的分類 131
7.2 函式 132
7.2.1 函式的定義 132
7.2.2 函式的參數 134
7.2.3 函式的聲明 134
7.2.4 函式的返回 136
7.3 函式的調用 136
7.3.1 傳值調用 136
7.3.2 傳址調用 137
7.3.3 嵌套調用 139
7.3.4 遞歸調用 139
7.4 變數的存儲屬性 141
7.4.1 存儲位置、作用域和生存期 141
7.4.2 存儲類別 142
7.4.3 動態變數 142
7.4.4 靜態變數 145
7.5 指針與函式 148
7.5.1 指針作為函式的參數 148
7.5.2 實參和形參均為數組名 148
7.5.3 實參和形參均為指針 150
7.5.4 實參和形參混合使用數組名與指針 151
7.5.5 指向函式的指針 151
7.5.6 返回指針的函式 152
7.6 其他函式 153
7.6.1 main()函式 153
7.6.2 庫函式 154
7.7 本章小結 154
7.8 本章習題 154
第8章 其他數據類型與預編譯(教學視頻:41分鐘) 157
8.1 結構體類型變數 157
8.1.1 定義結構體類型 157
8.1.2 定義結構體變數 158
8.1.3 結構體變數的訪問 160
8.1.4 結構體變數的賦值 161
8.1.5 結構體數組 162
8.1.6 結構體指針 163
8.2 共用體 164
8.2.1 定義共用體 164
8.2.2 使用共用體的注意事項 165
8.3 枚舉類型 166
8.3.1 枚舉類型的定義 166
8.3.2 枚舉類型變數的使用 166
8.4 自定義數據類型 167
8.5 void類型 168
8.6 預編譯 168
8.6.1 檔案包含 168
8.6.2 條件編譯 170
8.7 宏 172
8.7.1 不帶參數的宏 172
8.7.2 帶參數的宏 174
8.8 本章小結 175
8.9 本章習題 175
第9章 檔案操作(教學視頻:45分鐘) 178
9.1 檔案的概念和分類 178
9.1.1 檔案分類 178
9.1.2 檔案標識 179
9.1.3 流 180
9.2 檔案的讀寫過程 180
9.2.1 檔案的工作原理 181
9.2.2 檔案類型指針 181
9.2.3 打開和關閉檔案 182
9.3 對檔案的操作 184
9.3.1 面向字元的I/O 184
9.3.2 面向行的I/O 185
9.3.3 格式化的I/O 187
9.3.4 面向記錄的I/O 188
9.4 檔案定位與隨機讀寫 190
9.4.1 檔案讀寫位置的定位 190
9.4.2 檔案的隨機讀寫 190
9.5 檔案出錯檢測 191
9.6 本章小結 192
9.7 本章習題 192
第10章 C語言高級套用(教學視頻:41分鐘) 193
10.1 記憶體分配策略 193
10.2 C語言動態記憶體分配函式 194
10.2.1 申請記憶體 194
10.2.2 釋放記憶體 195
10.3 線性表 195
10.3.1 線性表的定義 196
10.3.2 線性表的表示 196
10.3.3 線性表的接口 197
10.3.4 新建線性表 197
10.3.5 插入結點 198
10.3.6 刪除結點 199
10.3.7 刪除某個線性表 199
10.4 棧和佇列 200
10.4.1 棧 200
10.4.2 佇列 203
10.5 棧的套用實例 207
10.5.1 進制轉換 208
10.5.2 括弧匹配檢測 210
10.6 本章小結 216
10.7 本章習題 216
第11章 Visual C++ 6.0測試與調試(教學視頻:20分鐘) 217
11.1 Visual C++ 6.0的調試技巧 217
11.1.1 程式測試 217
11.1.2 斷點設定 218
11.1.3 跟蹤調試 219
11.1.4 調試實踐 220
11.2 常見的程式錯誤 226
11.2.1 編譯時常見錯誤 226
11.2.2 連線時常見錯誤 227
11.2.3 運行時常見錯誤 227
11.3 本章小結 228
11.4 本章習題 228
第12章 編程風格(教學視頻:24分鐘) 229
12.1 編寫風格良好的代碼 229
12.1.1 為什麼編寫風格良好的代碼? 229
12.1.2 編寫風格良好代碼的原則 230
12.2 命名規則 230
12.2.1 標識符命名規則 230
12.2.2 函式命名規則 231
12.2.3 類型的命名 232
12.2.4 宏與常量的命名 232
12.3 注釋規則 233
12.3.1 注釋的原則 233
12.3.2 注釋的寫法 233
12.4 表達式和語句 234
12.4.1 表達式的書寫 234
12.4.2 代碼的排版 235
12.4.3 語句的書寫 236
12.5 本章小結 238
12.6 本章習題 238
第13章 Linux基礎知識(教學視頻:16分鐘) 239
13.1 Linux作業系統 239
13.1.1 作業系統與UNIX 239
13.1.2 Linux的發展歷史 240
13.1.3 開源的概念 241
13.1.4 Linux核心版本 242
13.1.5 Linux的特色 242
13.2 Linux的安裝 243
13.2.1 安裝前準備 243
13.2.2 虛擬機VMware安裝與配置 244
13.2.3 Linux系統的安裝 246
13.2.4 Ubuntu系統界面 252
13.3 如何學習Linux 254
13.3.1 檔案系統 254
13.3.2 常用Shell指令 256
13.3.3 線上求助 257
13.3.4 許可權控制 259
13.4 Linux環境的C語言開發 260
13.4.1 在終端中開發 261
13.4.2 在IDE中開發 263
13.5 本章小結 265
13.6 本章習題 265
第14章 算法初步入門(教學視頻:37分鐘) 266
14.1 算法的基本概念 266
14.1.1 大數A+B問題 266
14.1.2 算法的基本性質 271
14.1.3 算法的基本要求 272
14.2 算法的複雜度分析 272
14.2.1 事後統計法 272
14.2.2 事前估算法 272
14.3 分治法 273
14.3.1 分治法的設計步驟 273
14.3.2 二分法查找 274
14.3.3 快速排序 276
14.4 貪心法 279
14.4.1 貪心算法的基本要素 279
14.4.2 背包問題 279
14.4.3 活動表問題 281
14.5 動態規劃 283
14.5.1 動態規劃的原理 284
14.5.2 0-1背包問題 285
14.6 回溯法 287
14.6.1 回溯法的原理 287
14.6.2 N皇后問題 289
14.7 常見數學問題的算法實現 290
14.7.1 水仙花數 290
14.7.2 迴文數 291
14.7.3 最大公約數 292
14.7.4 素數 293
14.8 本章小結 295
14.9 本章習題 295
第15章 案例開發——學生成績管理系統(教學視頻:32分鐘) 296
15.1 需求分析 296
15.2 總體設計 296
15.3 詳細設計 297
15.3.1 檔案結構 298
15.3.2 主函式 298
15.3.3 顯示 299
15.3.4 選單 300
15.4 數據處理 301
15.4.1 學生信息的表示 301
15.4.2 學生信息的輸入 302
15.4.3 學生信息的查詢 303
15.4.4 學生信息的刪除 304
15.4.5 學生信息的排序 305
15.4.6 學生信息的修改 306
15.4.7 學生信息的保存 307
15.4.8 學生信息的顯示 307
15.5 維護與改進 308
15.5.1 增加錯誤檢測 308
15.5.2 完善數據處理功能 308
15.5.3 進一步分離數據處理和程式顯示 309
15.6 本章小結 309
15.7 本章習題 309
附錄A ASCII詳解 310
附錄B C語言標準庫函式 313
B.1 標準庫函式及其頭檔案 313
B.2 數學函式 313
B.2.1 求正弦值的sin()函式 314
B.2.2 求反正弦值的asin()函式 314
B.2.3 求餘弦值的cos()函式 315
B.2.4 求反餘弦值的acos()函式 315
B.2.5 求正切值的tan()函式 316
B.2.6 求反正切值的atan()函式 316
B.2.7 求冪值的exp ()函式 317
B.2.8 取2為底對數的log ()函式 317
B.2.9 取10為底對數的log10 ()函式 318
B.2.10 求絕對值的fabs ()函式 318
B.2.11 求小數上限的floor ()函式 319
B.2.12 求小數下限的ceil ()函式 319
B.2.13 取余操作的fmod()函式 320
B.2.14 求任意冪次的pow()函式 321
B.2.15 求平方根的sqrt()函式 321
B.3 字元測試類函式 322
B.3.1 判斷字元是否為控制字元的iscntrl()函式 322
B.3.2 判斷字元是否為字母或數字的isalnum()函式 322
B.3.3 判斷字元是否為字母的isalpha()函式 323
B.3.4 判斷字元是否為ASCII字元的isascii ()函式 324
B.3.5 判斷字元是否為數字的isdigit()函式 324
B.3.6 判斷字元是否為制表符或空格符的isgraph()函式 325
B.3.7 判斷字母是否小寫的islower()函式 325
B.3.8 判斷字母是否大寫的isupper()函式 326
B.3.9 將字母轉換為小寫的tolower ()函式 326
B.3.10 將字母轉換為大寫的toupper()函式 327
B.4 字元串函式 328
B.4.1 求字元串長度的strlen()函式 328
B.4.2 字元串拷貝的strcpy()函式 328
B.4.3 連線兩個字元串的strcat()函式 329
B.4.4 比較字元串大小的strcmp()函式 329
B.4.5 在字元串中查找字元的strchr()函式 330
B.4.6 比較字元串大小(不區分大小寫)的stricmp ()函式 331
B.4.7 字元串中查找字元的strcspn()函式 331
B.4.8 字元串中查找字元的strncat()函式 332
B.4.9 比較字元串大小的strcmp()函式 332
B.4.10 字元串中查找字元的strstr()函式 333
B.4.11 分割字元串的strtok()函式 334
B.4.12 記憶體移動的memmove()函式 335
B.4.13 字元串賦值的memcpy()函式 335
B.4.14 字元串連線的memcmp()函式 335
B.4.15 字元串查找的memchr()函式 336
B.4.16 字元串重置的memset()函式 336
B.5 實用函式 336
B.5.1 將字元串轉換為小數的atof()函式 336
B.5.2 將字元串轉換為整數的atoi()函式 337
B.5.3 將字元串轉換為整數的atol()函式 337
B.5.4 將字元串的前綴轉換為小數的strtod()函式 338
B.5.5 將字元串前綴轉換為整數的strtol()函式 338
B.5.6 生成隨機數的rand()函式 339
B.5.7 設定隨機數種子的srand()函式 340
B.5.8 動態記憶體分配的malloc()函式 340
B.5.9 重新分配記憶體的realloc()函式 341
B.5.10 釋放記憶體的free()函式 341
B.5.11 終止程式執行的abort()函式 341
B.5.12 程式退出時會執行atexit()函式 341
B.5.13 可以調用系統命令的system()函式 342
B.6 時間函式 342
B.6.1 返回處理機時間的clock()函式 343
B.6.2 返回日曆時間的time()函式 343
B.6.3 轉換時間格式為字元串的asctime ()函式 344
B.6.4 將日曆時間轉換為標準格式的gmtime()函式 344
B.6.5 將日曆時間轉換為本地時間的localtime ()函式 345
B.6.6 將日曆時間轉換為字元串的ctime()函式 346
B.6.7 指定時間格式的strftime()函式 346
參考文獻 349

相關詞條

熱門詞條

聯絡我們