標準C程式設計(第5版)

標準C程式設計(第5版)

《標準C程式設計(第5版)》是一本E Balagurusamy編制,在2011-9-9出版的書籍。

基本介紹

  • 書名:標準C程式設計(第5版)
  • 作者:E Balagurusamy
  • 譯者:金名等
  • ISBN:978730226184
  • 裝幀:平裝
  • 印刷日期:2011-9-9
內容簡介,目 錄,

內容簡介

C語言是所有本科生課程的一門核心課,也是現今使用最廣泛的計算機語言。國內國外的C語言圖書已經非常多了,但通過本書的翻譯,我們覺得這本書還是很有引進價值的,具體表現在它的以下幾個特點上:
* 本書基於最新的C語言標準。
* 附錄IV給出了4個完整的應用程式開發示例。
標準C程式設計(第5版)
* 擴展討論了C的指針。
* 每章後面的“謹記”一節給出了很有用的編程提示以及容易出錯的問題。
* 每章後面的案例學習給出了20多個真實的開發,展示了C程式的設計過程。
* 80多個程式設計範例向讀者闡述了良好程式設計的基本原則。
* 還有近200個複習題和130多個項目設計題。
總之,本書的語言簡潔易懂,示例非常豐富且具有很強的實際指導意義,是一本很好的C程式設計的教材。
本書的前面版本被印度的很多學院和大學用作教材。在過去的幾年中,本書還被一些重要的軟體培訓與開發公司用作培訓教材。
由於本書的獨特性、與眾不同的學習方法以及簡明的寫作風格,本書第3版和第4版在國內出版已受到國內學生和老師的歡迎。

目 錄

第1章 C語言概述 1
1.1 C語言的歷史 1
1.2 C語言的主要特性 2
1.3 示例程式1:顯示一條訊息 3
1.4 示例程式2:兩個數相加 6
1.5 示例程式3:利息計算 7
1.6 示例程式4:子例程的使用 9
1.7 示例程式5:數學函式的使用 10
1.8 C程式的基本結構 12
1.9 編程風格 13
1.10 運行一個程式 13
1.11 UNIX系統環境下 14
1.11.1 創建程式 14
1.11.2 編譯與連結 15
1.11.3 運行程式 15
1.11.4 創建自己的可運行檔案 16
1.11.5 多個源檔案問題 16
1.12 MS-DOS系統環境下 17
第2章 常量、變數及數據類型 22
2.1 概述 22
2.2 字元集 22
三元字元 23
2.3 C標記符 23
2.4 關鍵字與標識符 24
2.5 常量 24
2.5.1 整型常量 24
2.5.2 實數常量 25
2.5.3 單字元常量 27
2.5.4 字元串常量 27
2.5.5 反斜槓字元常量 27
2.6 變數 28
2.7 數據類型 29
2.7.1 整數型 30
2.7.2 浮點數類型 30
2.7.3 void類型 31
2.7.4 字元類型 31
2.8 變數的聲明 31
2.8.1 基本類型的聲明 31
2.8.2 自定義類型的聲明 33
2.9 存儲類的聲明 34
2.10 變數的賦值 35
2.10.1 賦值語句 36
2.10.2 從鍵盤讀取數據 38
2.11 符號常量的定義 40
2.11.1 可修改性 40
2.11.2 可理解性 41
2.12 將變數聲明為常量 42
2.13 將變數聲明為可變的 42
2.14 數據的溢出 42
2.15 案例學習 43
2.15.1 平均數計算 43
2.15.2 溫度轉換問題 44
第3章 運算符與表達式 49
3.1 概述 49
3.2 算術運算符 49
3.2.1 整數算術運算 50
3.2.2 實數算術運算 50
3.2.3 混合算術運算 51
3.3 關係運算符 51
3.4 邏輯運算符 53
3.5 賦值運算符 54
3.6 遞增和遞減運算符 55
3.7 條件運算符 56
3.8 逐位運算符 57
3.9 特殊運算符 57
3.9.1 逗號運算符 57
3.9.2 sizeof運算符 58
3.10 算術表達式 59
3.11 表達式的計算 60
3.12 算術表達式的優先權 61
3.13 一些可計算性問題 62
3.14 表達式中的類型轉換 63
3.14.1 隱式類型轉換 63
3.14.2 顯式類型轉換 65
3.15 運算符的優先權及其關聯 67
3.16 數學函式 68
3.17 案例學習 69
3.17.1 銷售人員的工資 69
3.17.2 二次方程的求解 70
第4章 輸入輸出操作管理 78
4.1 概述 78
4.2 讀取一個字元 78
4.3 寫字元 81
4.4 格式化輸入 82
4.4.1 整數輸入 83
4.4.2 實數輸入 85
4.4.3 字元串輸入 86
4.4.4 混合數據類型的讀取 88
4.4.5 錯誤輸入的檢測 88
4.4.6 使用scanf函式時應記住的
幾個要點 90
4.5 格式化輸出 91
4.5.1 整數的輸出 91
4.5.2 實數的輸出 92
4.5.3 單個字元的顯示 94
4.5.4 字元串的顯示 95
4.5.5 混合數據的輸出 96
4.5.6 提高輸出的可讀性 97
4.6 案例學習 98
4.6.1 庫存報告 98
4.6.2 可靠性圖形 100
第5章 判斷與分支 106
5.1 概述 106
5.2 if判斷語句 106
5.3 簡單if語句 107
5.4 if...else語句 110
5.5 嵌套if...else語句 113
5.6 階梯式else if語句 116
5.7 switch語句 119
5.8 : 運算符 122
5.9 goto語句 125
5.10 案例學習 128
5.10.1 數值的分布範圍 128
5.10.2 賬單計算 129
第6章 判斷與循環 140
6.1 概述 140
6.2 while語句 142
6.3 do語句 144
6.4 for語句 146
6.4.1 簡單的for循環語句 146
6.4.2 for循環的其他特性 149
6.4.3 for循環的嵌套 150
6.5 循環中的跳轉 153
6.5.1 跳出循環 153
6.5.2 跳過循環的一部分 157
6.5.3 避免使用goto語句 159
6.5.4 跳出程式 159
6.6 簡潔的測試表達式 160
6.7 案例學習 161
6.7.1 二項式係數表 161
6.7.2 柱狀圖 162
6.7.3 最小成本 164
6.7.4 描繪兩函式的曲線圖 165
第7章 數組 175
7.1 概述 175
7.2 一維數組 176
7.3 一維數組的聲明 177
7.4 一維數組的初始化 179
7.4.1 編譯時初始化 180
7.4.2 運行時初始化 181
7.5 二維數組 183
7.6 二維數組的初始化 187
7.7 多維數組 191
7.8 動態數組 192
7.9 與數組相關的其他內容 192
7.10 案例學習 193
7.10.1 數列的中值問題 193
7.10.2 標準偏差的計算 196
7.10.3 測試評分 197
7.10.4 產品與銷售分析 200
第8章 字元數組與字元串 212
8.1 概述 212
8.2 字元串變數的聲明與初始化 212
8.3 使用scanf函式從終端讀取
字元串 214
8.3.1 讀取一行文本 216
8.3.2 使用getchar和gets函式 216
8.4 在螢幕上顯示字元串 218
8.4.1 使用printf函式 218
8.4.2 使用putchar和puts函式 222
8.5 字元的算術運算 222
8.6 將字元串組合在一起 224
8.7 兩個字元串的比較 225
8.8 字元串處理函式 226
8.8.1 strcat( )函式 226
8.8.2 strcmp( )函式 227
8.8.3 strcpy( )函式 228
8.8.4 strlen( )函式 228
8.8.5 其他字元串函式 229
8.9 字元串表 231
8.10 字元串的其他特性 233
8.11 案例學習 234
8.11.1 計算文本中的字數 234
8.11.2 客戶列表處理程式 236
第9章 用戶自定義函式 243
9.1 概述 243
9.2 為什麼需要自定義函式 243
9.3 多函式程式 244
9.4 自定義函式的元素 246
9.5 函式的定義 246
9.5.1 函式頭 247
9.5.2 函式名與類型 247
9.5.3 形參列表 247
9.5.4 函式體 248
9.6 返回值及其類型 249
9.7 函式調用 250
9.8 函式聲明 252
9.9 函式的類型 254
9.10 無參數無返回值的函式 254
9.11 有參數無返回值的函式 256
9.12 有參數有返回值的函式 259
返回浮點值 261
9.13 無參數但有一個返回值的函式 262
9.14 返回多個值的函式 263
9.15 函式的嵌套 264
9.16 函式的疊代 265
9.17 將數組傳遞給函式 266
9.17.1 一維數組 266
9.17.2 二維數組 270
9.18 將字元串傳遞給函式 270
9.19 變數的作用域、可見性和生存期 271
9.19.1 自動變數 272
9.19.2 外部變數 273
9.19.3 外部聲明 276
9.19.4 靜態變數 277
9.19.5 暫存器變數 278
9.19.6 嵌套代碼塊 279
9.20 多檔案程式 280
9.21 案例學習 283
曲線下的面積計算 283
第10章 結構體與共用體 292
10.1 概述 292
10.2 結構體的定義 292
10.3 聲明結構體變數 293
10.4 訪問結構體成員 295
10.5 結構體的初始化 296
10.6 結構體變數的複製與比較 298
10.7 單個成員的運算 299
10.8 結構數組 300
10.9 結構體中的數組 302
10.10 結構體中的結構體 303
10.11 結構體與函式 305
10.12 共用體 308
10.13 結構體的大小 309
10.14 位域 309
10.15 案例學習 312
書店庫存 312
第11章 指針 322
11.1 概述 322
11.2 理解指針 322
11.3 訪問變數的地址 324
11.4 指針變數的聲明 325
11.5 指針變數的初始化 326
11.6 通過指針訪問變數 328
11.7 指針鏈 330
11.8 指針表達式 330
11.9 指針的遞增與比例因子 332
11.10 指針與數組 333
11.11 指針與字元串 336
11.12 指針數組 338
11.13 指針作為函式的參數 339
11.14 函式返回指針 342
11.15 指向函式的指針 342
11.16 指針與結構體 345
11.17 案例學習 348
11.17.1 考試成績處理程式 348
11.17.2 庫存更新程式 351
第12章 檔案管理 357
12.1 概述 357
12.2 定義並打開檔案 358
12.3 關閉檔案 359
12.4 檔案的輸入輸出操作 360
12.4.1 getc與putc函式 360
12.4.2 getw和putw函式 361
12.4.3 fprintf與fscanf函式 363
12.5 I/O操作的錯誤處理 365
12.6 隨機訪問檔案 367
12.7 命令行參數 372
第13章 動態記憶體分配與鍊表 377
13.1 概述 377
13.2 動態記憶體分配 377
記憶體分配過程 377
13.3 用malloc函式分配一塊記憶體 378
13.4 用calloc函式分配多個記憶體塊 380
13.5 用free函式釋放已用的空間 380
13.6 用realloc函式改變記憶體塊的
大小 381
13.7 鍊表的概念 382
13.8 鍊表的優點 385
13.9 鍊表的種類 386
13.10 再論指針 386
13.11 創建鍊表 388
13.12 插入一個數據項 391
13.13 刪除一個數據項 394
13.14 鍊表的套用 396
13.15 案例學習 397
13.15.1 在已排序鍊表中插入
數據 397
13.15.2 構建一個已排序的
鍊表 401
第14章 預處理器 407
14.1 概述 407
14.2 宏替換指令 407
14.2.1 簡單宏替換 408
14.2.2 含參數的宏 410
14.2.3 宏嵌套 411
14.2.4 取消宏定義 411
14.3 檔案包含 412
14.4 編譯器控制指令 412
14.4.1 情形1 413
14.4.2 情形2 414
14.4.3 情形3 414
14.4.4 情形4 414
14.5 ANSI C的其他預處理器指令 415
14.5.1 #elif指令 416
14.5.2 #pragma指令 416
14.5.3 #error指令 416
14.5.4 字元串化運算符# 417
14.5.5 標記符貼上運算符## 417
第15章 C程式開發指導原則 420
15.1 概述 420
15.2 程式設計 420
15.2.1 問題分析 420
15.2.2 勾勒程式結構 420
15.2.3 算法開發 421
15.2.4 控制結構 421
15.3 程式編碼 422
15.3.1 自身文檔化 422
15.3.2 語句構造 423
15.3.3 輸入/輸出格式 423
15.3.4 程式的通用性 423
15.4 常見的程式錯誤 424
15.4.1 丟失分號 424
15.4.2 誤用分號 424
15.4.3 丟失括弧 425
15.4.4 丟失引號 426
15.4.5 誤用引號 426
15.4.6 使用不正確的注釋字元 426
15.4.7 未定義變數 427
15.4.8 忽視了運算符的優先權 427
15.4.9 忽視了遞增遞減運算符的
計算順序 428
15.4.10 忽視了函式參數的說明 428
15.4.11 在函式調用中實參和
形參類型不匹配 428
15.4.12 函式未聲明 428
15.4.13 在scanf的參數中丟失了
&運算符 429
15.4.14 超出了數組的邊界 429
15.4.15 忘記了給字元串的空字元
留出空間 430
15.4.16 使用未初始化的指針 430
15.4.17 丟失了間接運算符和
地址運算符 430
15.4.18 在指針表達式中
丟失括弧 431
15.4.19 在宏定義語句中參數
遺漏了括弧 431
15.5 程式測試與調試 431
15.5.1 錯誤的類型 432
15.5.2 程式測試 432
15.5.3 程式調試 433
15.6 程式的效率 434
15.6.1 運行時間 434
15.6.2 記憶體需求 434
附錄Ⅰ 位級程式設計 436
Ⅰ.1 概述 436
Ⅰ.2 逐位邏輯運算符 436
Ⅰ.2.1 逐位與操作 436
Ⅰ.2.2 逐位或操作 438
Ⅰ.2.3 逐位非或操作 438
Ⅰ.3 逐位移位運算符 438
Ⅰ.4 逐位求反運算符 439
Ⅰ.5 掩碼計算 440
附錄Ⅱ 字元的ASCII值 441
附錄Ⅲ 標準C的庫函式 442
附錄Ⅳ 項目設計 445
Ⅳ.1 庫存管理系統 445
Ⅳ.2 登錄記錄系統 467
Ⅳ.3 鍊表 487
Ⅳ.4 矩陣相乘 495
附錄Ⅴ C99的特性 498
Ⅴ.1 概述 498
Ⅴ.2 新關鍵字 498
Ⅴ.3 新注釋 498
Ⅴ.4 新數據類型 499
Ⅴ.4.1 _Bool類型 499
Ⅴ.4.2 _Complex和_Imaginary
類型 499
Ⅴ.4.3 long long類型 499
Ⅴ.5 變數聲明 500
Ⅴ.6 I/O格式化的變化 500
Ⅴ.7 數組處理 500
Ⅴ.7.1 可變長度數組 501
Ⅴ.7.2 數組聲明中的類型說明 501
Ⅴ.7.3 結構的靈活數組成員 501
Ⅴ.8 函式實現 501
Ⅴ.8.1 默認為inline類型的
規則 502
Ⅴ.8.2 顯式函式定義 502
Ⅴ.8.3 return語句的限制 502
Ⅴ.8.4 聲明函式為inline 503
Ⅴ.9 受限指針 503
Ⅴ.10 編譯器限制的變化 504
Ⅴ.11 其他改進 504
參考文獻 505

相關詞條

熱門詞條

聯絡我們