C語言繼續發展,在1982年,很多有識之士和美國國家標準協會為了使這個語言健康地發展下去,決定成立C標準委員會,建立C語言的標準。
c語言參考手冊第五版的語言簡潔易懂,示例非常豐富且具有很強的實際指導意義,是一本很好的C程序設計的教材。
本書的前面版本被印度的很多學院和大學用作教材。在過去的幾年中,本書還被一些重要的軟件培訓與開發公司用作培訓教材。
由于本書的獨特性、與眾不同的學習方法以及簡明的寫作風格,本書第3版和第4版在國內出版已受到國內學生和老師的歡迎。
c語言參考手冊第五版目錄摘要
第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
- PC官方版
- 安卓官方手機版
- IOS官方手機版