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