您的位置:首頁 > 業(yè)內(nèi)資訊 > C語言入門經(jīng)典(第5版) PDF掃描
C語言是每一位程序員都應該掌握的基礎語言。C語言是微軟.NET編程中使用的C#語言的基礎;C語言是iPhone、iPad和其他蘋果設備編程中使用的Objective-C語言的基礎;C語言是在很多環(huán)境中(包括GNU項目)被廣泛使用的C++語言的基礎。C語言也是Linux操作系統(tǒng)及其很多功能的基礎。學習C語言可以給編程職業(yè)生涯提供牢固的基礎,也有助于更好地理解更為現(xiàn)代的語言(如Java)。
《C語言入門經(jīng)典(第5版)》主要介紹最基礎的計算機語言之一——C語言。
《C語言入門經(jīng)典(第5版)》從最基礎的內(nèi)容開始,步步深入講解作為一位稱職的C語言程序員應該具備的知識和技能。
主要內(nèi)容
◆ 闡述C語言的核心特征,例如循環(huán)和分支
◆ 如何使用指針和指令動態(tài)管理內(nèi)存
◆ 如何使用頭文件和函數(shù)模塊化代碼
◆ 程序如何通過鍵盤、顯示器和數(shù)據(jù)文件讀寫數(shù)據(jù)
◆ 如何通過預處理命令在編譯時優(yōu)化代碼
◆ 如何使用結構有效地管理輸入數(shù)據(jù)
《C語言入門經(jīng)典(第5版)》完整地介紹了一個C應用程序的開發(fā)過程,這樣你在閱讀過程中可以結合實際的應用場景提高編程技能。書中的樣例提供了實驗的基礎,可以通過修改其中的部分代碼來對比前后程序運行的結果。后面的練習題用來測試對新知識、新技能的掌握情況,如果需要練習題答案,可以網(wǎng)上下載。
閱讀完本書,你應該有能力和信心開發(fā)自己的C應用程序,并且具備在大型項目中應用C語言思想的技能。第5版詳細介紹了C語言的最新國際標準,并且修訂涵蓋了語言編譯器新支持的C11功能。
C語言入門經(jīng)典(第5版) 目錄:
第1章 C語言編程 1
1.1 C語言 1
1.2 標準庫 2
1.3 學習C 2
1.4 創(chuàng)建C程序 2
1.4.1 編輯 2
1.4.2 編譯 3
1.4.3 鏈接 4
1.4.4 執(zhí)行 4
1.5 創(chuàng)建第一個程序 5
1.6 編輯第一個程序 5
1.7 處理錯誤 6
1.8 剖析一個簡單的程序 7
1.8.1 注釋 7
1.8.2 預處理指令 8
1.8.3 定義main()函數(shù) 9
1.8.4 關鍵字 10
1.8.5 函數(shù)體 10
1.8.6 輸出信息 11
1.8.7 參數(shù) 11
1.8.8 控制符 11
1.8.9 三字母序列 13
1.9 預處理器 14
1.10 用C語言開發(fā)程序 14
1.10.1 了解問題 14
1.10.2 詳細設計 15
1.10.3 實施 15
1.10.4 測試 15
1.11 函數(shù)及模塊化編程 16
1.12 常見錯誤 19
1.13 要點 19
1.14 小結 20
1.15 習題 20
第2章 編程初步 21
2.1 計算機的內(nèi)存 21
2.2 什么是變量 23
2.3 存儲整數(shù)的變量 24
2.3.1 變量的使用 28
2.3.2 變量的初始化 29
2.4 變量與內(nèi)存 36
2.4.1 帶符號的整數(shù)類型 36
2.4.2 無符號的整數(shù)類型 37
2.4.3 指定整數(shù)常量 37
2.5 使用浮點數(shù) 39
2.6 浮點數(shù)變量 41
2.6.1 使用浮點數(shù)完成除法運算 42
2.6.2 控制輸出中的小數(shù)位數(shù) 43
2.6.3 控制輸出的字段寬度 43
2.7 較復雜的表達式 44
2.8 定義命名常量 46
2.8.1 極限值 49
2.8.2 sizeof運算符 51
2.9 選擇正確的類型 52
2.10 強制類型轉換 55
2.10.1 自動轉換類型 56
2.10.2 隱式類型轉換的規(guī)則 56
2.10.3 賦值語句中的隱式類型轉換 57
2.11 再談數(shù)值數(shù)據(jù)類型 58
2.11.1 字符類型 58
2.11.2 字符的輸入輸出 59
2.11.3 枚舉 62
2.11.4 存儲布爾值的變量 64
2.12 賦值操作的op=形式 65
2.13 數(shù)學函數(shù) 66
2.14 設計一個程序 67
2.14.1 問題 68
2.14.2 分析 68
2.14.3 解決方案 70
2.15 小結 73
2.16 練習 74
第3章 條件判斷 75
3.1 判斷過程 75
3.1.1 算術比較 75
3.1.2 基本的if語句 76
3.1.3 擴展if語句:if-else 79
3.1.4 在if語句中使用代碼塊 82
3.1.5 嵌套的if語句 83
3.1.6 測試字符 85
3.1.7 邏輯運算符 88
3.1.8 條件運算符 91
3.1.9 運算符的優(yōu)先級 94
3.2 多項選擇問題 98
3.2.1 給多項選擇使用else-if語句 98
3.2.2 switch語句 99
3.2.3 goto語句 107
3.3 按位運算符 108
3.3.1 按位運算符的op=用法 110
3.3.2 使用按位運算符 111
3.4 設計程序 114
3.4.1 問題 114
3.4.2 分析 114
3.4.3 解決方案 114
3.5 小結 118
3.6 練習 118
第4章 循環(huán) 119
4.1 循環(huán) 119
4.2 遞增和遞減運算符 120
4.3 for循環(huán) 120
4.4 for循環(huán)的一般語法 124
4.5 再談遞增和遞減運算符 125
4.5.1 遞增運算符 125
4.5.2 遞增運算符的前置和后置形式 125
4.5.3 遞減運算符 126
4.6 再論for循環(huán) 127
4.6.1 修改for循環(huán)變量 129
4.6.2 沒有參數(shù)的for循環(huán) 129
4.6.3 循環(huán)內(nèi)的break語句 130
4.6.4 使用for循環(huán)限制輸入 132
4.6.5 生成偽隨機整數(shù) 135
4.6.6 再談循環(huán)控制選項 137
4.6.7 浮點類型的循環(huán)控制變量 137
4.7 while循環(huán) 138
4.8 嵌套循環(huán) 140
4.9 嵌套循環(huán)和goto語句 146
4.10 do-while循環(huán) 147
4.11 continue語句 149
4.12 設計程序 150
4.12.1 問題 150
4.12.2 分析 150
4.12.3 解決方案 151
4.13 小結 162
4.14 習題 163
第5章 數(shù)組 165
5.1 數(shù)組簡介 165
5.1.1 不用數(shù)組的程序 165
5.1.2 什么是數(shù)組 167
5.1.3 使用數(shù)組 168
5.2 尋址運算符 171
5.3 數(shù)組和地址 173
5.4 數(shù)組的初始化 174
5.5 確定數(shù)組的大小 175
5.6 多維數(shù)組 176
5.7 多維數(shù)組的初始化 178
5.8 變長數(shù)組 184
5.9 設計一個程序 186
5.9.1 問題 186
5.9.2 分析 186
5.9.3 解決方案 187
5.10 小結 193
5.11 習題 193
第6章 字符串和文本的應用 195
6.1 什么是字符串 195
6.2 存儲字符串的變量 197
6.3 字符串操作 202
6.3.1 檢查對C11的支持 202
6.3.2 確定字符串的長度 203
6.3.3 復制字符串 204
6.3.4 連接字符串 204
6.3.5 比較字符串 208
6.3.6 搜索字符串 211
6.3.7 單元化字符串 215
6.3.8 將換行符讀入字符串 219
6.4 分析和轉換字符串 221
6.4.1 轉換字符的大小寫形式 223
6.4.2 將字符串轉換成數(shù)值 225
6.5 設計一個程序 227
6.5.1 問題 227
6.5.2 分析 227
6.5.3 解決方案 228
6.6 小結 233
6.7 習題 233
第7章 指針 235
7.1 指針初探 235
7.1.1 聲明指針 236
7.1.2 通過指針訪問值 237
7.1.3 使用指針 240
7.1.4 指向常量的指針 244
7.1.5 常量指針 244
7.1.6 指針的命名 245
7.2 數(shù)組和指針 245
7.3 多維數(shù)組 248
7.3.1 多維數(shù)組和指針 252
7.3.2 訪問數(shù)組元素 253
7.4 內(nèi)存的使用 256
7.4.1 動態(tài)內(nèi)存分配:malloc()函數(shù) 256
7.4.2 釋放動態(tài)分配的內(nèi)存 257
7.4.3 用calloc()函數(shù)分配內(nèi)存 261
7.4.4 擴展動態(tài)分配的內(nèi)存 262
7.5 使用指針處理字符串 265
7.5.1 使用指針數(shù)組 266
7.5.2 指針和數(shù)組記號 272
7.6 設計程序 276
7.6.1 問題 276
7.6.2 分析 277
7.6.3 解決方案 277
7.7 小結 284
7.8 習題 285
第8章 編程的結構 287
8.1 程序的結構 287
8.1.1 變量的作用域和生存期 288
8.1.2 變量的作用域和函數(shù) 291
8.2 函數(shù) 291
8.2.1 定義函數(shù) 291
8.2.2 return語句 294
8.3 按值傳遞機制 299
8.4 函數(shù)原型 300
8.5 指針用作參數(shù)和返回值 301
8.5.1 常量參數(shù) 302
8.5.2 返回指針的風險 307
8.6 小結 310
8.7 習題 310
第9章 函數(shù)再探 313
9.1 函數(shù)指針 313
9.1.1 聲明函數(shù)指針 313
9.1.2 通過函數(shù)指針調(diào)用函數(shù) 314
9.1.3 函數(shù)指針的數(shù)組 316
9.1.4 作為變元的函數(shù)指針 319
9.2 函數(shù)中的變量 321
9.2.1 靜態(tài)變量:函數(shù)內(nèi)部的追蹤 321
9.2.2 在函數(shù)之間共享變量 323
9.3 調(diào)用自己的函數(shù):遞歸 325
9.4 變元個數(shù)可變的函數(shù) 328
9.4.1 復制va_list 331
9.4.2 長度可變的變元列表的基本規(guī)則 331
9.5 main()函數(shù) 332
9.6 結束程序 333
9.6.1 abort()函數(shù) 333
9.6.2 exit()和atexit()函數(shù) 333
9.6.3 _Exit()函數(shù) 334
9.6.4 quick_exit()和at_quick_exit()函數(shù) 334
9.7 提高性能 335
9.7.1 內(nèi)聯(lián)聲明函數(shù) 335
9.7.2 使用restrict關鍵字 335
9.7.3 _Noreturn函數(shù)限定符 336
9.8 設計程序 336
9.8.1 問題 336
9.8.2 分析 337
9.8.3 解決方案 338
9.9 小結 351
9.10 習題 352
第10章 基本輸入和輸出操作 353
10.1 輸入和輸出流 353
10.2 標準流 354
10.3 鍵盤輸入 354
10.3.1 格式化鍵盤輸入 355
10.3.2 輸入格式控制字符串 355
10.3.3 輸入格式字符串中的字符 360
10.3.4 輸入浮點數(shù)的各種變化 362
10.3.5 讀取十六進制和八進制值 363
10.3.6 用scanf_s()讀取字符 364
10.3.7 從鍵盤上輸入字符串 366
10.3.8 單個字符的鍵盤輸入 367
10.4 屏幕輸出 372
10.4.1 使用printf_s()的格式化輸出 372
10.4.2 轉義序列 375
10.4.3 整數(shù)輸出 375
10.4.4 輸出浮點數(shù) 378
10.4.5 字符輸出 379
10.5 其他輸出函數(shù) 380
10.5.1 屏幕的非格式化輸出 381
10.5.2 數(shù)組的格式化輸出 381
10.5.3 數(shù)組的格式化輸入 382
10.6 小結 382
10.7 習題 383
第11章 結構化數(shù)據(jù) 385
11.1 數(shù)據(jù)結構:使用struct 385
11.1.1 定義結構類型和結構變量 387
11.1.2 訪問結構成員 388
11.1.3 未命名的結構 390
11.1.4 結構數(shù)組 391
11.1.5 表達式中的結構成員 393
11.1.6 結構指針 393
11.1.7 為結構動態(tài)分配內(nèi)存 394
11.2 再探結構成員 397
11.2.1 將一個結構作為另一個結構的成員 397
11.2.2 聲明結構中的結構 398
11.2.3 將結構指針用作結構成員 399
11.2.4 雙向鏈表 403
11.2.5 結構中的位字段 406
11.3 結構與函數(shù) 407
11.3.1 結構作為函數(shù)的變元 407
11.3.2 結構指針作為函數(shù)變元 408
11.3.3 作為函數(shù)返回值的結構 409
11.3.4 二叉樹 414
11.4 共享內(nèi)存 421
11.5 設計程序 425
11.5.1 問題 425
11.5.2 分析 426
11.5.3 解決方案 426
11.6 小結 438
11.7 習題 438
第12章 處理文件 441
12.1 文件的概念 441
12.1.1 文件中的位置 442
12.1.2 文件流 442
12.2 文件訪問 442
12.2.1 打開文件 443
12.2.2 緩存文件操作 445
12.2.3 文件重命名 446
12.2.4 關閉文件 447
12.2.5 刪除文件 447
12.3 寫入文本文件 448
12.4 讀取文本文件 449
12.5 在文本文件中讀寫字符串 452
12.6 格式化文件的輸入輸出 456
12.6.1 格式化文件輸出 456
12.6.2 格式化文件輸入 457
12.7 錯誤處理 459
12.8 再探文本文件操作模式 460
12.9 freopen_s()函數(shù) 461
12.10 二進制文件的輸入輸出 462
12.10.1 以二進制模式打開文件 462
12.10.2 寫入二進制文件 463
12.10.3 讀取二進制文件 464
12.11 在文件中移動 469
12.11.1 文件定位操作 469
12.11.2 找出我們在文件中的位置 470
12.11.3 在文件中設定位置 471
12.12 使用臨時文件 477
12.12.1 創(chuàng)建臨時文件 477
12.12.2 創(chuàng)建唯一的文件名 478
12.13 更新二進制文件 479
12.13.1 修改文件的內(nèi)容 484
12.13.2 從鍵盤輸入創(chuàng)建記錄 485
12.13.3 將記錄寫入文件 486
12.13.4 從文件中讀取記錄 486
12.13.5 寫入文件 487
12.13.6 列出文件內(nèi)容 488
12.13.7 更新已有的文件內(nèi)容 489
12.14 文件打開模式小結 495
12.15 設計程序 496
12.15.1 問題 496
12.15.2 分析 496
12.15.3 解決方案 496
12.16 小結 501
12.17 習題 501
第13章 支持功能 503
13.1 預處理 503
13.1.1 在程序中包含頭文件 503
13.1.2 定義自己的頭文件 504
13.1.3 管理多個源文件 504
13.1.4 外部變量 505
13.1.5 靜態(tài)函數(shù) 505
13.1.6 替換程序源代碼 506
13.2 宏 507
13.2.1 看起來像函數(shù)的宏 507
13.2.2 字符串作為宏參數(shù) 509
13.2.3 在宏展開式中結合兩個變元 510
13.3 多行上的預處理器指令 510
13.3.1 預處理器邏輯指令 511
13.3.2 條件編譯 511
13.3.3 測試多個條件 512
13.3.4 取消定義的標識符 512
13.3.5 測試標識符的指定值的指令 512
13.3.6 多項選擇 513
13.3.7 標準預處理宏 514
13.4 調(diào)試方法 515
13.4.1 集成的調(diào)試器 515
13.4.2 調(diào)試階段的預處理器 515
13.4.3 斷言 519
13.5 日期和時間函數(shù) 521
13.5.1 獲取時間值 522
13.5.2 獲取日期 525
13.5.3 確定某一天是星期幾 529
13.6 小結 531
13.7 習題 531
第14章 高級專用主題 533
14.1 使用國際字符集 533
14.1.1 理解Unicode 533
14.1.2 設置區(qū)域 534
14.1.3 寬字符類型wchar_t 535
14.1.4 寬字符串的操作 537
14.1.5 寬字符的文件流操作 540
14.1.6 存儲Unicode字符的固定大小類型 541
14.2 用于可移植性的專用整數(shù)類型 545
14.2.1 固定寬度的整型 545
14.2.2 最小寬度的整型 545
14.2.3 最大寬度的整型 546
14.3 復數(shù)類型 546
14.3.1 復數(shù)基礎 546
14.3.2 復數(shù)類型和操作 547
14.4 用線程編程 550
14.4.1 創(chuàng)建線程 550
14.4.2 退出線程 551
14.4.3 把一個線程連接到另一個線程上 552
14.4.4 掛起線程 555
14.4.5 管理線程對數(shù)據(jù)的訪問 555
14.5 小結 561
附錄A 計算機中的數(shù)學知識 563
附錄B ASCII字符代碼定義 571
附錄C C語言中的保留字 575
附錄D 輸入輸出格式說明符 577
附錄E 標準庫頭文件 583
本站所有軟件,都由網(wǎng)友上傳,如有侵犯你的版權,請發(fā)郵件[email protected]
湘ICP備2022002427號-10 湘公網(wǎng)安備:43070202000427號© 2013~2025 haote.com 好特網(wǎng)