C語言詳解(第6版)

C語言詳解(第6版)

《C語言詳解(第6版)》是2010年11月人民郵電出版社出版的圖書,作者是[美]Jeri R·Hanly、Elliot B·Koffman。

基本介紹

  • 書名:C語言詳解(第6版)
  • 作者:[美]Jeri R·Hanly、Elliot B·Koffman
  • ISBN:9787115220165
  • 頁數:572頁
  • 定價:79元
  • 出版社:人民郵電出版社
  • 出版時間:2010年11月
  • 裝幀:平裝
  • 開本:16開
內容簡介,圖書目錄,

內容簡介

本書是C語言的經典教材。它不僅深入淺出地講述了實際開發中**需要的C語言基礎知識,還充分介紹了動態數據結構和多進程等高級內容,而且同時闡述了程式設計思想。本書著眼於提高讀者的問題解決能力和實際編程能力,使其初步掌握當前軟體行業公認的程式設計風格和編程實踐。書中對指針的講解通俗易懂,降低了這一難點的學習門檻。此外,本書配有各種層次的習題和示例,而且每一章都有一個或多個來自實際生活的實例研究。
本書適合作為計算機科學等專業本科生C語言程式設計課程的教材,對已有一定經驗的技術人員也是不可多得的參考書。

圖書目錄

第0章 計算機科學的職業之路 1
引言 1
0.1 為什麼選擇計算機科學領域 1
0.1.1 將計算機科學作為專業的理由 1
0.1.2 計算機科學家的特質 2
0.2 大學經歷:可選的計算機學科和專業 3
0.2.1 計算機科學 3
0.2.2 計算機工程 4
0.2.3 信息系統 4
0.2.4 信息技術 4
0.2.5 軟體工程 5
0.2.6 交叉學科 5
0.3 就業機會 6
0.3.1 美國和全世界的需求 6
0.3.2 非代表性群體的需求 6
0.3.3 新職業持續出現 7
第 1章 計算機與程式設計概述 8
1.1 電子計算機的過去和現在 8
1.2 計算機硬體 10
1.2.1 存儲器 10
1.2.2 中央處理器 13
1.2.3 輸入/輸出設備 13
1.2.4 計算機網路 14
1.3 計算機軟體 16
1.3.1 作業系統 16
1.3.2 套用軟體 17
1.3.3 計算機語言 17
1.3.4 執行程式 20
1.4 軟體開發方法 21
1.4.1 軟體開發方法 21
1.4.2 注意:失敗是編程過程的一部分 23
1.5 套用軟體開發方法 23
實例研究 英里到公里的轉換 23
複習 25
快速測試 25
快速測試答案 26
複習題 26
第 2章 C概述 27
2.1 C語言要素 27
2.1.1 預處理指令 27
2.1.2 預處理指令的語法展示 28
2.1.3 main函式 29
2.1.4 保留字 29
2.1.5 標準標識符 30
2.1.6 用戶定義的標識符 30
2.1.7 大寫字母和小寫字母 31
2.1.8 程式風格之選擇標識符名稱 31
2.2 變數聲明和數據類型 31
2.2.1 變數聲明 31
2.2.2 數據類型 32
2.3 可執行語句 33
2.3.1 記憶體中的程式 34
2.3.2 賦值語句 34
2.3.3 輸入/輸出操作和函式 35
2.3.4 printf函式 36
2.3.5 scanf函式 38
2.3.6 return語句 39
2.4 C程式的一般形式 40
2.4.1 程式風格之程式中的空格 40
2.4.2 程式的注釋 40
2.4.3 程式風格之使用注釋 41
2.5 算術表達式 42
2.5.1 運算符/和% 42
2.5.2 表達式的數據類型 43
2.5.3 混合類型賦值語句 44
2.5.4 強制類型轉換 44
2.5.5 具有多個運算符的表達式 45
2.5.6 用C語言編寫數學公式 47
實例研究 超市硬幣處理機 48
2.6 在程式輸出中格式化數值 51
2.6.1 格式化int型值 51
2.6.2 格式化double型值 52
2.6.3 程式風格之消除前導空白 52
2.7 互動模式、批處理模式和數據檔案 53
2.7.1 輸入重定向 53
2.7.2 程式風格之回顯與提示符 54
2.7.3 輸出重定向 54
2.7.4 程式控制的輸入和輸出檔案 54
2.8 常見編程錯誤 56
2.8.1 語法錯誤 56
2.8.2 運行時錯誤 58
2.8.3 未檢測到的錯誤 58
2.8.4 邏輯錯誤 60
複習 60
快速測試 61
快速測試答案 62
複習題 62
程式設計項目 63
第3章 函式的自頂向下設計 66
3.1 利用已有信息編程 66
實例研究 求圓的面積和周長 67
實例研究 計算一批墊圈的重量 69
3.2 庫函式 72
3.2.1 預定義函式和代碼復用 72
3.2.2 使用灰色區分新結構 73
3.2.3 C庫函式 73
3.2.4 本節目標 75
3.3 自頂向下設計和結構圖 76
實例研究 畫簡單的圖形 76
3.4 無參函式 77
3.4.1 函式原型 78
3.4.2 函式定義 78
3.4.3 程式中函式的位置 80
3.4.4 程式風格之在含有函式的程式中使用注釋 81
3.4.5 函式子程式和主函式的執行順序 81
3.4.6 使用函式子程式的優點 82
3.4.7 顯示用戶指令 82
3.5 帶輸入參數的函式 83
3.5.1 帶輸入參數的void函式 84
3.5.2 帶輸入參數和單一結果的函式 85
3.5.3 程式風格之函式接口注釋 87
3.5.4 帶多個參數的函式 87
3.5.5 參數表一致性 88
3.5.6 函式數據區 89
3.5.7 使用驅動測試函式 89
3.6 常見編程錯誤 90
複習 90
快速測試 91
快速測試答案 92
複習題 92
程式設計項目 92
第4章 選擇結構:if語句和switch語句 95
4.1 控制結構 95
4.2 條件 95
4.2.1 關係運算符和判等運算符 96
4.2.2 邏輯運算符 96
4.2.3 運算符優先權 97
4.2.4 短路求值 99
4.2.5 用C語言表示條件 99
4.2.6 比較字元 100
4.2.7 邏輯賦值 100
4.2.8 條件取反 101
4.3 if語句 103
4.3.1 有兩個選項的if語句 103
4.3.2 只有一個選項的if語句 103
4.3.3 比較一個選項的if語句和兩個選項的if語句 104
4.3.4 程式風格之if語句的格式 105
4.4 具有複合語句的if語句 105
4.4.1 程式風格之編寫具有複合語句的if語句 106
4.4.2 跟蹤if語句 106
4.5 算法中的決策步驟 108
實例研究 水費問題 108
4.5.1 程式風格之在函式中使用一致的名稱 113
4.5.2 程式風格之內聚函式 113
4.5.3 程式風格之使用常量宏來增強可讀性和易維護性 114
4.6 解決更多問題 114
4.6.1 結構圖中的數據流信息 114
4.6.2 使用函式子程式修改程式 115
實例研究 具有節約需求的水費問題 115
4.7 嵌套if語句和多選項決策 116
4.7.1 比較嵌套if和if序列 117
4.7.2 嵌套if的多選項決策形式 117
4.7.3 多選項決策中條件的順序 118
4.7.4 程式風格之確認變數的值 120
4.7.5 具有多個變數的嵌套if語句 120
4.8 switch語句 123
4.9 常見編程錯誤 126
複習 127
快速測試 128
快速測試答案 130
複習題 130
程式設計項目 131
第5章 重複和循環語句 134
5.1 程式中的重複 134
5.2 計數循環和while語句 135
5.3 在循環中計算和或者乘積 137
5.3.1 程式風格之編寫通用循環 139
5.3.2 計算一列數的乘積 139
5.3.3 複合賦值運算符 140
5.4 for語句 141
5.4.1 程式風格之格式化for語句 141
5.4.2 自增和自減運算符 142
5.4.3 步長非1的自增和自減 143
5.4.4 顯示值構成的表格 145
5.5 條件循環 146
5.6 循環設計 150
5.6.1 標記控制循環 150
5.6.2 使用for語句實現標記循環 152
5.6.3 檔案結束控制循環 152
5.6.4 錯誤數據上的無限循環 154
5.7 嵌套循環 154
5.8 do-while語句和標誌控制循環 157
5.9 問題求解示例 160
實例研究 太陽能加熱房的採暖面積 160
5.10 如何調試和測試程式 164
5.10.1 使用調試器程式 165
5.10.2 不使用調試器進行調試 165
5.10.3 循環次數差1的錯誤 165
5.10.4 測試 166
5.11 常見編程錯誤 166
複習 168
快速測試 170
快速測試答案 170
複習題 171
程式設計項目 172
第6章 模組化編程 176
6.1 帶簡單輸出參數的函式 176
6.2 帶輸入輸出參數函式的多次調用 181
6.3 名字的作用域 185
6.4 輸出形參作為實參變數 186
6.5 由多個函式構成的程式 189
實例研究 簡分數的算術運算 189
6.6 程式系統的調試與測試 195
6.7 常見編程錯誤 197
複習 197
快速測試 198
快速測試答案 198
複習題 199
程式設計項目 200
第7章 簡單數據類型 205
7.1 數值類型的表示與轉換 205
7.1.1 數值類型的差異 205
7.1.2 數值的不精確性 207
7.1.3 數據類型的自動轉換 207
7.1.4 數據類型的顯式轉換 208
7.2 字元類型的表示與轉換 209
7.3 枚舉類型 210
7.4 疊代近似 215
實例研究 求根的二分方法 216
7.5 常見編程錯誤 221
複習 221
快速測試 222
快速測試答案 223
複習題 223
程式設計項目 224
第8章 數組 229
8.1 聲明和引用數組 229
8.2 數組下標 232
8.3 使用循環順序存取 233
8.3.1 使用數組進行統計計算 234
8.3.2 程式風格之使用循環控制變數作為數組下標 236
8.4 將數組元素作為函式參數使用 236
8.5 數組參數 238
8.5.1 形參數組 238
8.5.2 和形參數組對應的實參 239
8.5.3 數組作為輸入參數 240
8.5.4 返回數組結果 241
8.5.5 部分填充數組 243
8.5.6 棧 244
8.6 數組搜尋和排序 247
8.6.1 數組搜尋 247
8.6.2 數組排序 248
8.7 多維數組 250
8.7.1 多維數組的初始化 252
8.7.2 多維數組 252
8.8 數組處理示例 253
實例研究 醫院收入匯總 253
8.9 常見編程錯誤 259
複習 260
快速測試 261
快速測試答案 262
複習題 262
程式設計項目 263
第9章 字元串 268
9.1 字元串基礎 268
9.1.1 聲明並初始化字元串變數 268
9.1.2 字元串數組 269
9.1.3 使用printf和scanf進行輸入/輸出 269
9.2 字元串庫函式:賦值和子串 272
9.2.1 字元串賦值 272
9.2.2 子串 274
9.3 較長的字元串:拼接和整行輸入 278
9.3.1 拼接 278
9.3.2 字元和字元串的區別 279
9.3.3 掃描一個完整的行 279
9.4 字元串比較 281
9.5 指針數組 283
9.6 字元操作 287
9.6.1 字元輸入/輸出 287
9.6.2 字元分析和轉換 288
9.7 字元串到數值和數值到字元串的轉換.290
9.8 字元串處理示例 294
實例研究 文本編輯器 295
9.9 常見編程錯誤 301
複習 302
快速測試 304
快速測試答案 304
複習題 305
程式設計項目 306
第 10章 遞歸 309
10.1 遞歸的本質 309
10.2 跟蹤遞歸函式 312
10.2.1 帶返回值的遞歸函式的跟蹤 312
10.2.2 void類型遞歸函式的跟蹤 313
10.2.3 參數與局部變數棧 315
10.2.4 C中參數棧的實現 316
10.2.5 何時、如何跟蹤遞歸函式 317
10.3 遞歸數學函式 318
10.4 帶數組和字元串參數的遞歸函式 322
實例研究 找出字元串中的大寫字母 322
實例研究 遞歸選擇排序 324
10.5 用遞歸解決問題 326
實例研究 集合運算 326
10.6 遞歸的經典實例研究:漢諾塔 331
10.7 常見編程錯誤 335
複習 336
快速測試 336
快速測試答案 337
複習題 337
程式設計項目 338
第 11章 結構與聯合類型 341
11.1 用戶自定義結構類型 341
11.1.1 結構類型定義 341
11.1.2 操作結構化數據對象的單個成員 343
11.1.3 運算符優先權回顧 343
11.1.4 操作結構整體 344
11.1.5 程式風格之類型命名約定 344
11.2 結構類型數據作為輸入/輸出參數 345
11.3 返回值為結構類型的函式 349
11.4 用結構類型解決問題 351
實例研究 用於複數的用戶自定義類型 351
11.5 並行數組和結構的數組 356
11.5.1 並行數組 356
11.5.2 結構數組的聲明 356
實例研究 通用計量轉換 357
11.6 聯合類型(可選) 363
11.7 常見編程錯誤 367
複習 368
快速測試 369
快速測試答案 369
複習題 370
程式設計項目 371
第 12章 文本檔案和二進制檔案的處理 375
12.1 輸入/輸出檔案:回顧與進一步研究 375
12.1.1 鍵盤和螢幕作為文本流 375
12.1.2 換行與EOF 376
12.1.3 轉義序列 376
12.1.4 用printf實現格式化輸出 376
12.1.5 檔案指針變數 377
12.1.6 獲取檔案指針參數的函式 378
12.1.7 關閉檔案 379
12.2 二進制檔案 381
12.3 資料庫查詢 385
實例研究 資料庫查詢 386
12.4 常見編程錯誤 393
複習 393
快速測試 394
快速測試答案 395
複習題 395
程式設計項目 395
第 13章 大型程式設計 398
13.1 使用抽象處理複雜問題 398
13.1.1 過程抽象 398
13.1.2 數據抽象 399
13.1.3 信息隱藏 399
13.1.4 可復用代碼 399
13.2 個人庫:頭檔案 400
13.2.1 頭檔案 401
13.2.2 頭檔案設計的忠告 402
13.3 個人庫:實現檔案 403
13.4 存儲類型 405
13.4.1 全局變數 406
13.4.2 static和register存儲類型 407
13.5 庫中包含函式的修改 408
13.6 條件編譯 410
13.7 函式main的參數 413
13.8 定義帶參數的宏 415
13.8.1 在宏體中使用括弧 416
13.8.2 在兩行以上擴展宏 417
13.9 常見編程錯誤 418
複習 418
快速測試 420
快速測試答案 420
複習題 421
程式設計項目 421
第 14章 動態數據結構 424
14.1 指針 424
14.1.1 作為函式參數的指針 425
14.1.2 表示數組和字元串的指針 425
14.1.3 指向結構的指針 426
14.1.4 指針使用的小結 426
14.2 動態記憶體分配 427
14.2.1 訪問動態分配的結構成員 428
14.2.2 使用calloc動態分配數組 428
14.2.3 返回堆單元 429
14.3 鍊表 430
14.3.1 帶指針成員的結構 431
14.3.2 連線結點 431
14.3.3 鍊表的優點 433
14.4 鍊表運算符 434
14.4.1 遍歷鍊表 434
14.4.2 獲得輸入表 436
14.4.3 在表中查詢目標 437
14.4.4 避免跟蹤NULL指針 438
14.5 用鍊表表示棧 438
14.6 用鍊表表示佇列 441
14.7 有序表 445
實例研究 維護一個整數有序表 445
14.8 二叉樹 453
14.8.1 二叉查找樹 454
14.8.2 搜尋二叉查找樹 454
14.8.3 建立二叉查找樹 455
14.8.4 顯示二叉查找樹 458
14.9 常見編程錯誤 460
複習 461
快速測試 462
快速測試答案 462
複習題 463
程式設計項目 464
第 15章 使用進程和執行緒的多進程 466
15.1 多任務 466
15.1.1 線性程式設計和並行程式設計 466
15.1.2 分時多任務 467
15.1.3 搶占式多任務 467
15.1.4 時間片和並行 468
15.1.5 並發程式設計 469
15.2 進程 469
15.2.1 進程創建 469
15.2.2 進程等待 471
15.2.3 從進程中執行另一個程式 472
15.3 進程間通信和管道 473
15.3.1 管道 473
15.3.2 管道的用法 474
15.3.3 使用標準輸入的進程間通信 475
15.3.4 父進程和子進程間通信舉例 476
15.4 執行緒 478
15.4.1 執行緒的創建 479
15.4.2 執行緒的同步 480
15.4.3 互斥鎖 482
15.4.4 死鎖 483
15.5 執行緒舉例 486
實例研究 生產者/消費者模型 486
15.6 常見編程錯誤 495
複習 495
C語言結構的複習 496
快速測試 497
快速測試答案 497
複習題 497
程式設計項目 498
第 16章 關於C++ 499
16.1 C++控制結構、輸入/輸出以及函式 499
16.1.1 使用名字空間std 499
16.1.2 C++標準輸入/輸出 502
16.1.3 引用參數 502
16.1.4 輸出格式化 504
16.2 C++對面向對象編程的支持 505
16.2.1 頭檔案complexh 506
16.2.2 類名和構造函式 507
16.2.3 成員函式和運算符 507
16.2.4 實現檔案complex.cpp 508
16.2.5 數據成員 511
16.2.6 輸入/輸出運算符重載 511
複習 513
快速測試 515
快速測試答案 515
複習題 515
程式設計項目 516
附錄A 關於指針的更多信息 517
附錄B ANSI C標準庫 521
附錄C C運算符 533
附錄D 字元集 537
附錄E ANSI C保留字 539
附錄F ANSI C結構參照表 540
辭彙表 542
索引 548

相關詞條

熱門詞條

聯絡我們