這是一本介紹用C語言進(jìn)行計算機(jī)編程的經(jīng)典教材。通過大量的實(shí)例和練習(xí),全書系統(tǒng)介紹了數(shù)據(jù)類型、算術(shù)運(yùn)算、邏輯運(yùn)算、變量、條件語句、函數(shù)、數(shù)組、指針、字符串、結(jié)構(gòu)、文件操作、位操作、宏、庫函數(shù)等基本內(nèi)容,使讀者在閱讀之后就能很快掌握C語言編程的精髓。講解C++編程的一章也是本書的特色之一。書中每章都有大量的簡答題和編程練習(xí)題,附錄還列出了它們的答案。
Gary J. Bronson博士是狄金森州立大學(xué)的信息系統(tǒng)教授,在那里他曾兩度當(dāng)選為年度教師。Bronson博士曾在洛克希德電子公司擔(dān)任高級項(xiàng)目工程師,曾擔(dān)任貝爾實(shí)驗(yàn)室的特邀講師和顧問,并擔(dān)任了數(shù)家華爾街金融公司的軟件顧問。Bronson博士撰寫了幾部相當(dāng)成功的有關(guān)C、C++和Java的編程教材。
張永健,國際關(guān)系學(xué)院的教師,有著豐富的翻譯經(jīng)驗(yàn),特別是在計算機(jī)領(lǐng)域有著多年的教學(xué)經(jīng)驗(yàn),并從事C、C++和算法等開發(fā)工作。
第一部分 基礎(chǔ)知識
第1 章 計算機(jī)編程導(dǎo)論 2
1.1 歷史和硬件 2
1.2 編程語言 8
1.3 算法 13
1.4 軟件開發(fā)過程 17
1.5 案例研究:設(shè)計與開發(fā) 24
1.6 編程錯誤 28
1.7 小結(jié) 28
1.8 補(bǔ)充材料:數(shù)字存儲碼 29
第2 章 C 語言編程初步 31
2.1 C 語言編程簡介 31
2.2 編程風(fēng)格 40
2.3 數(shù)據(jù)類型 43
2.4 算術(shù)運(yùn)算 49
2.5 變量和聲明 58
2.6 案例研究:溫度轉(zhuǎn)換 66
2.7 編程錯誤和編譯器錯誤 70
2.8 小結(jié) 72
2.9 補(bǔ)充材料:內(nèi)存分配 73
第3 章 數(shù)據(jù)處理與交互式輸入 79
3.1 賦值 79
3.2 數(shù)學(xué)庫函數(shù) 88
3.3 交互式輸入 92
3.4 格式化輸出 102
3.5 符號常量 110
3.6 案例研究:交互式輸入 112
3.7 編程錯誤和編譯器錯誤 117
3.8 小結(jié) 119
3.9 補(bǔ)充材料:抽象簡介 120
第二部分 控 制 流
第4 章 選擇 124
4.1 關(guān)系表達(dá)式 124
4.2 if 語句和if else 語句 129
4.3 if else 鏈 139
4.4 switch 語句 146
4.5 案例研究:數(shù)據(jù)驗(yàn)證 152
4.6 編程錯誤和編譯器錯誤 156
4.7 小結(jié) 158
4.8 補(bǔ)充材料:錯誤, 測試和調(diào)試 160
第5 章 循環(huán) 165
5.1 基本的循環(huán)結(jié)構(gòu) 165
5.2 while 語句 167
5.3 利用while 循環(huán)求和及平均值 174
5.4 for 語句 184
5.5 案例研究:循環(huán)編程技術(shù) 192
5.6 嵌套循環(huán) 199
5.7 do while 語句 202
5.8 編程錯誤和編譯器錯誤 205
5.9 小結(jié) 206
第6 章 函數(shù)模塊性(1) 209
6.1 函數(shù)聲明與參數(shù)聲明 209
6.2 返回值 221
6.3 案例研究:計算年齡標(biāo)準(zhǔn) 229
6.4 標(biāo)準(zhǔn)庫函數(shù) 238
6.5 編程錯誤和編譯器錯誤 250
6.6 小結(jié) 251
第7 章 函數(shù)模塊性(2) 252
7.1 變量的作用域 253
7.2 變量存儲類 258
7.3 按引用傳遞 264
7.4 案例研究:交換值 275
7.5 遞歸 281
7.6 編程錯誤和編譯器錯誤 286
7.7 小結(jié) 287
第三部分 基礎(chǔ)知識補(bǔ)充
第8 章 數(shù)組 290
8.1 一維數(shù)組 290
8.2 數(shù)組初始化 298
8.3 數(shù)組作為函數(shù)實(shí)參 302
8.4 案例研究:計算平均值和標(biāo)準(zhǔn)差 307
8
8.5 二維數(shù)組 312
8.6 編程錯誤和編譯器錯誤 320
8.7 小結(jié) 321
8.8 補(bǔ)充材料:查找和排序方法 322
第9 章 字符串 342
9.1 字符串基礎(chǔ) 342
9.2 庫函數(shù) 352
9.3 輸入數(shù)據(jù)驗(yàn)證 358
9.4 格式化字符串 364
9.5 案例研究:字符和單詞計數(shù) 367
9.6 編程錯誤和編譯器錯誤 372
9.7 小結(jié) 373
第10 章 數(shù)據(jù)文件 375
10.1 聲明, 打開和關(guān)閉文件流 375
10.2 讀取和寫入文本文件 385
10.3 隨機(jī)文件訪問 393
10.4 傳遞和返回文件名 396
10.5 案例研究:創(chuàng)建和使用常量表 399
10.6 寫入和讀取二進(jìn)制文件 408
10.7 編程錯誤和編譯器錯誤 412
10.8 小結(jié) 413
10.9 補(bǔ)充材料:控制碼 414
第四部分 其他主題
第11 章 數(shù)組, 地址和指針 418
11.1 數(shù)組名稱作為指針 418
11.2 指針操作 423
11.3 傳遞和使用數(shù)組地址 428
11.4 使用指針處理字符串 435
11.5 使用指針創(chuàng)建字符串 439
11.6 編程錯誤和編譯器錯誤 444
11.7 小結(jié) 446
第12 章 結(jié)構(gòu) 447
12.1 單一結(jié)構(gòu) 447
12.2 結(jié)構(gòu)數(shù)組 452
12.3 傳遞結(jié)構(gòu)和返回結(jié)構(gòu) 456
12.4 聯(lián)合 463
12.5 編程錯誤和編譯器錯誤 465
12.6 小結(jié) 466
第13 章 動態(tài)數(shù)據(jù)結(jié)構(gòu) 467
13.1 鏈表簡介 467
13.2 動態(tài)內(nèi)存分配 474
13.3 棧 479
13.4 隊(duì)列 485
13.5 動態(tài)鏈表 491
13.6 編程錯誤和編譯器錯誤 497
13.7 小結(jié) 499
第14 章 其他功能 501
14.1 新增的特性 501
14.2 按位運(yùn)算 506
14.3 宏 513
14.4 命令行參數(shù) 515
14.5 編程錯誤和編譯器錯誤 519
14.6 小結(jié) 520
第15 章 C++簡介 521
15.1 C++中的過程化編程 521
15.2 面向?qū)ο蟮腃++ 526
15.3 編程錯誤和編譯器錯誤 527
15.4 小結(jié) 528
附錄A 運(yùn)算符優(yōu)先級表 530
附錄B ASCII 字符碼 531
附錄C 標(biāo)準(zhǔn)C 語言庫 534
附錄D 輸入, 輸出和標(biāo)準(zhǔn)錯誤重定向 538
附錄E 浮點(diǎn)數(shù)存儲 540
附錄F 創(chuàng)建個人函數(shù)庫 542
附錄G 簡答題答案 543