1. 程式人生 > >C語言學習書籍推薦《C語言程式設計 現代方法(第2版)》下載

C語言學習書籍推薦《C語言程式設計 現代方法(第2版)》下載

下載地址:點我

C語言仍然是計算機領域的通用語言之一,但現在的C語言已經和當初的時候大不相同了。本書主要的一個目的就是通過一種“現代方法”來介紹C語言,書中強調標準C,強調軟體工程,不再強調“手工優化”。這一版中緊密結合了C99標準,並與C89標準進行對照,補充了C99中的**新特性。本書分為C語言的基礎特性、C語言的特性、C語言標準庫和參考資料4個部分。每章末尾都有一個“問與答”小節給出一系列與該章內容相關的問題及答案,此外還包含適量的習題。 
  本書是為大學本科階段的C語言課程編寫的教材,同時也非常適合作為其他課程的輔助用書。

編輯推薦

C語言經典之作,被譽為“近10年來**好的一部C語言著作” 
哈佛、麻省理工、斯坦福、加州伯克利分校、耶魯等諸多名校計算機專業教材 
內容全面,覆蓋C99標準,提供了對所有C99庫函式的參考 
精心選擇的近500道習題,貼近實踐

作者簡介

作者:(美)King

目錄

第1章 C語言概述1
1.1 C語言的歷史1
1.1.1 起源1
1.1.2 標準化1
1.1.3 基於C的語言2
1.2 C語言的優缺點3
1.2.1 C語言的優點3
1.2.2 C語言的缺點3
1.2.3 高效地使用C語言4
問與答5

第2章 C語言基本概念7
2.1 編寫一個簡單的C程式7
程式顯示雙關語7
2.1.1 編譯和連結8
2.1.2 整合開發環境8
2.2 簡單程式的一般形式9
2.2.1 指令9
2.2.2 函式9
2.2.3 語句10
2.2.4 顯示字串10
2.3 註釋11
2.4 變數和賦值12
2.4.1 型別12
2.4.2 宣告13
2.4.3 賦值13
2.4.4 顯示變數的值14
程式計算箱子的空間重量14
2.4.5 初始化15
2.4.6 顯示錶達式的值16
2.5 讀入輸入16
程式計算箱子的空間重量(改進版)16
2.6 定義常量的名字17
程式華氏溫度轉換為攝氏溫度17
2.7 識別符號18
2.8 C程式的書寫規範19
問與答21
練習題23
程式設計題24

第3章 格式化輸入/輸出26
3.1 printf函式26
3.1.1 轉換說明27
程式用printf函式格式化數28
3.1.2 轉義序列28
3.2 scanf函式29
3.2.1 scanf函式的工作方法30
3.2.2 格式串中的普通字元31
3.2.3 易混淆的printf函式和scanf函式32
程式分數相加32
問與答33
練習題34
程式設計題35

第4章 表示式36
4.1 算術運算子36
程式計算通用產品程式碼的校驗位38
4.2 賦值運算子39
4.2.1 簡單賦值40
4.2.2 左值41
4.2.3 複合賦值41
4.3 自增運算子和自減運算子42
4.4 表示式求值43
4.5 表示式語句45
問與答45
練習題47
程式設計題49

第5章 選擇語句50
5.1 邏輯表示式50
5.1.1 關係運算符50
5.1.2 判等運算子51
5.1.3 邏輯運算子51
5.2 if語句52
5.2.1 複合語句53
5.2.2 else子句53
5.2.3 級聯式if語句54
程式計算股票經紀人的佣金55
5.2.4 “懸空else”的問題56
5.2.5 條件表示式57
5.2.6 C89中的布林值58
5.2.7 C99中的布林值58
5.3 switch語句59
程式顯示法定格式的日期61
問與答62
練習題65
程式設計題67

第6章 迴圈69
6.1 while語句69
程式顯示平方表71
程式數列求和71
6.2 do語句72
程式計算整數的位數73
6.3 for語句73
6.3.1 for語句的慣用法74
6.3.2 在for語句中省略表示式75
6.3.3 C99中的for語句75
6.3.4 逗號運算子76
程式顯示平方表(改進版)77
6.4 退出迴圈78
6.4.1 break語句78
6.4.2 continue語句78
6.4.3 goto語句79
程式賬簿結算80
6.5 空語句81
問與答83
練習題84
程式設計題85

第7章 基本型別88
7.1 整數型別88
7.1.1 C99中的整數型別90
7.1.2 整數常量90
7.1.3 C99中的整數常量91
7.1.4 整數溢位91
7.1.5 讀/寫整數91
程式數列求和(改進版)92
7.2 浮點型別93
7.2.1 浮點常量94
7.2.2 讀/寫浮點數94
7.3 字元型別94
7.3.1 字元操作95
7.3.2 有符號字元和無符號字元95
7.3.3 算術型別96
7.3.4 轉義序列96
7.3.5 字元處理函式97
7.3.6 用scanf和printf讀/寫字元98
7.3.7 用getchar和putchar讀/寫字元98
程式確定訊息的長度99
7.4 型別轉換100
7.4.1 常用算術轉換101
7.4.2 賦值過程中的轉換102
7.4.3 C99中的隱式轉換103
7.4.4 強制型別轉換103
7.5 型別定義105
7.5.1 型別定義的優點105
7.5.2 型別定義和可移植性105
7.6 sizeof運算子106
問與答107
練習題109
程式設計題110

第8章 陣列113
8.1 一維陣列113
8.1.1 陣列下標113
程式數列反向115
8.1.2 陣列初始化115
8.1.3 指定初始化式116
程式檢查數中重複出現的數字116
8.1.4 對陣列使用sizeof運算子117
程式計算利息118
8.2 多維陣列119
8.2.1 多維陣列初始化120
8.2.2 常量陣列121
程式發牌121
8.3 C99中的變長陣列122
問與答123
練習題124
程式設計題125

第9章 函式129
9.1 函式的定義和呼叫129
程式計算平均值129
程式顯示倒計數130
程式顯示雙關語(改進版)131
9.1.1 函式定義132
9.1.2 函式呼叫133
程式判定素數134
9.2 函式宣告135
9.3 實際引數136
9.3.1 實際引數的轉換137
9.3.2 陣列型實際引數138
9.3.3 變長陣列形式引數140
9.3.4 在陣列引數宣告中使用static141
9.3.5 複合字面量141
9.4 return語句142
9.5 程式終止143
9.6 遞迴144
程式快速排序146
問與答147
練習題150
程式設計題153

第10章 程式結構155
10.1 區域性變數155
10.1.1 靜態區域性變數156
10.1.2 形式引數156
10.2 外部變數156
10.2.1 示例:用外部變數實現棧156
10.2.2 外部變數的利與弊157
程式猜數158
10.3 程式塊161
10.4 作用域162
10.5 構建C程式163
程式給一手牌分類163
問與答169
練習題169
程式設計題170

第11章 指標172
11.1 指標變數172
11.2 取地址運算子和間接定址運算子173
11.2.1 取地址運算子173
11.2.2 間接定址運算子174
11.3 指標賦值174
11.4 指標作為引數176
程式找出陣列中的最大元素和最小元素177
11.5 指標作為返回值179
問與答180
練習題181
程式設計題182

第12章 指標和陣列184
12.1 指標的算術運算184
12.1.1 指標加上整數185
12.1.2 指標減去整數185
12.1.3 兩個指標相減186
12.1.4 指標比較186
12.1.5 指向複合常量的指標186
12.2 指標用於陣列處理186
12.3 用陣列名作為指標188程式數列反向(改進版)189
12.3.1 陣列型實際引數(改進版)189
12.3.2 用指標作為陣列名191
12.4 指標和多維陣列191
12.4.1 處理多維陣列的元素191
12.4.2 處理多維陣列的行192
12.4.3 處理多維陣列的列192
12.4.4 用多維陣列名作為指標192
12.5 C99中的指標和變長陣列193
問與答194
練習題195
程式設計題197

第13章 字串198
13.1 字串字面量198
13.1.1 字串字面量中的轉義序列198
13.1.2 延續字串字面量199
13.1.3 如何儲存字串字面量199
13.1.4 字串字面量的操作200
13.1.5 字串字面量與字元常量200
13.2 字串變數200
13.2.1 初始化字串變數201
13.2.2 字元陣列與字元指標202
13.3 字串的讀和寫203
13.3.1 用printf函式和puts函式寫字串203
13.3.2 用scanf函式和gets函式讀字串203
13.3.3 逐個字元讀字串204
13.4 訪問字串中的字元205
13.5 使用C語言的字串庫206
13.5.1 strcpy函式207
13.5.2 strlen函式208
13.5.3 strcat函式208
13.5.4 strcmp函式209程式顯示一個月的提醒列表209
13.6 字串慣用法211
13.6.1 搜尋字串的結尾211
13.6.2 複製字串213
13.7 字串陣列214
程式核對行星的名字217
問與答218
練習題220
程式設計題222

第14章 前處理器225
14.1 前處理器的工作原理225
14.2 預處理指令227
14.3 巨集定義227
14.3.1 簡單的巨集227
14.3.2 帶引數的巨集229
14.3.3 #運算子231
14.3.4 ##運算子231
14.3.5 巨集的通用屬性232
14.3.6 巨集定義中的圓括號233
14.3.7 建立較長的巨集233
14.3.8 預定義巨集234
14.3.9 C99中新增的預定義巨集235
14.3.10 空的巨集引數236
14.3.11 引數個數可變的巨集236
14.3.12 __func__識別符號237
14.4 條件編譯237
14.4.1 #if指令和#endif指令238
14.4.2 defined運算子238
14.4.3 #ifdef指令和#ifndef指令239
14.4.4 #elif指令和#else指令239
14.4.5 使用條件編譯240
14.5 其他指令240
14.5.1 #error指令240
14.5.2 #line指令241
14.5.3 #pragma指令242
14.5.4 _Pragma運算子242
問與答243
練習題245

第15章 編寫大型程式248
15.1 原始檔248
15.2 標頭檔案249
15.2.1 #include指令249
15.2.2 共享巨集定義和型別定義250
15.2.3 共享函式原型251
15.2.4 共享變數宣告252
15.2.5 巢狀包含253
15.2.6 保護標頭檔案253
15.2.7 標頭檔案中的#error指令254
15.3 把程式劃分成多個檔案254程式文字格式化255
15.4 構建多檔案程式260
15.4.1 makefile260
15.4.2 連結期間的錯誤262
15.4.3 重新構建程式262
15.4.4 在程式外定義巨集264
問與答264
練習題265
程式設計題266

第16章 結構、聯合和列舉267
16.1 結構變數267
16.1.1 結構變數的宣告267
16.1.2 結構變數的初始化269
16.1.3 指定初始化269
16.1.4 對結構的操作270
16.2 結構型別270
16.2.1 結構標記的宣告271
16.2.2 結構型別的定義272
16.2.3 結構作為引數和返回值272
16.2.4 複合字面量273
16.3 巢狀的陣列和結構274
16.3.1 巢狀的結構274
16.3.2 結構陣列274
16.3.3 結構陣列的初始化275程式維護零件資料庫275
16.4 聯合281
16.4.1 用聯合來節省空間282
16.4.2 用聯合來構造混合的資料結構284
16.4.3 為聯合新增“標記欄位”284
16.5 列舉285
16.5.1 列舉標記和型別名286
16.5.2 列舉作為整數286
16.5.3 用列舉宣告“標記欄位”286
問與答287
練習題289
程式設計題293

第17章 指標的高階應用294
17.1 動態儲存分配294
17.1.1 記憶體分配函式294
17.1.2 空指標295
17.2 動態分配字串296
……
第18章 宣告 327 
第19章 程式設計 345 
第20章 底層程式設計 363 
第21章 標準庫 377 
第22章 輸入/輸出 384 
第23章 庫對數值和字元資料的支援 419 
第24章 錯誤處理 446 
第25章 國際化特性 456 
第26章 其他庫函式 482 
第27章 C99對數學計算的新增支援 503 
附錄A C語言運算子 524 
附錄B C99與C89的比較 525 
附錄C C89與經典C的比較 529 
附錄D 標準庫函式 532 
附錄E ASCII字符集 569 
參考文獻 570 
索引 573