圖書簡介
本書通過系統地介紹C語言語法和程式設計方法,培養學生計算思維能力。
本書有以下特點: 一是講清楚基於馮·諾依曼結構問題的解決過程,並以此為基礎討論計算機語言的組成與特點;二是詳細描述C語言的組成和語法;三是給出描述計算機解決問題的方法步驟,即算法設計方法;四是給出用C語言描述算法的方法,即程式設計方法;五是總結出程式設計過程中所涵蓋的計算思維;六是對於每一個知識點都有幫助讀者理解該知識點的大量實例。
本書以通俗易懂、循序漸進的方式敘述C語言語法和程式設計方法,並通過大量的例子來加深讀者對C語言語法和程式設計方法的理解,是一本理想的大學本科“C語言程式設計”課程教材,對於想要了解C語言本質、掌握C語言程式設計方法的軟體人員,也是一本非常好的C語言入門書籍。
圖書目錄
第1章概述1
1.1計算機運算過程1
1.1.1馮·諾依曼結構1
1.1.2核心部件功能和指令執行過程2
1.2計算機語言與程式設計10
1.2.1機器語言與程式設計10
1.2.2彙編語言與程式設計13
1.2.3高級語言與程式設計15
1.3C語言的特點與發展過程19
1.3.1C語言的特點19
1.3.2C語言的發展過程21
1.4C語言的學習內容22
1.4.1了解C語言的背景知識22
1.4.2掌握C語言語句23
1.4.3掌握算法設計過程24
1.4.4掌握程式設計過程24
1.4.5培養計算思維能力24
1.5C語言程式的開發過程24
1.5.1編輯24
1.5.2編譯25
1.5.3連線25
1.5.4運行26
1.5.5集成開發環境26
本章小結27
習題128
第2章變數與表達式29
2.1數值編碼29[1]〖3〗C語言程式設計與計算思維目錄〖3〗[3]2.1.1整型數29
2.1.2實數32
2.1.3對C語言數值表示的幾點說明36
2.2字元編碼36
2.2.1ASCII37
2.2.2C語言中字元的表示方式38
2.3變數的含義及類型39
2.3.1變數的含義39
2.3.2標識符39
2.3.3變數的類型40
2.3.4對變數的幾點說明44
2.4運算符和表達式45
2.4.1算術運算符和算術表達式45
2.4.2賦值運算符和賦值表達式48
2.4.3逗號運算符和逗號表達式55
2.4.4位運算符和位運算表達式56
2.5語句和程式64
2.5.1語句64
2.5.2程式65
2.5.3輸入/輸出函式66
2.6變數與表達式的啟示68
本章小結69
習題270
第3章選擇和循環結構72
3.1控制語句的作用72
3.1.1實現選擇結構控制語句的功能72
3.1.2實現循環結構控制語句的功能73
3.2條件和表示條件的表達式73
3.2.1關係運算符和關係表達式74
3.2.2邏輯運算符和邏輯表達式76
3.3if語句79
3.3.1if語句的3種形式79
3.3.2if語句的嵌套81
3.3.3條件運算符83
3.4switch語句85
3.4.1switch語句的格式85
3.4.2完整程式舉例86
3.5循環結構87
3.5.1while語句88
3.5.2do…while語句89
3.5.3for語句90
3.5.4循環嵌套91
3.5.5continue語句和break語句92
3.5.6例題解析94
3.6程式設計實例96
3.6.1機器猜數遊戲96
3.6.2找出100~200的所有素數99
3.6.3窮舉法舉例100
3.6.4統計無符號數中1的位數102
3.7選擇和循環結構的啟示104
本章小結106
習題3106
第4章函式109
4.1C語言程式結構109
4.1.1模組化結構109
4.1.2函式的調用和返回110
4.1.3函式的含義111
4.1.4模組化結構的好處111
4.2C語言函式的定義和調用過程112
4.2.1C語言函式的描述和定義過程112
4.2.2C語言函式的調用方式和返回過程114
4.2.3例題解析118
4.2.4程式設計舉例119
4.3函式的遞歸調用122
4.3.1遞歸調用的定義122
4.3.2漢諾塔問題123
4.4輸入/輸出函式127
4.4.1格式輸出函式printf127
4.4.2格式輸入函式scanf133
4.4.3對格式輸入/輸出函式的幾點說明141
4.5局部變數和全局變數143
4.5.1局部變數143
4.5.2全局變數144
4.6static、extern和register146
4.6.1static147
4.6.2extern149
4.6.3register150
4.6.4定義和聲明的區別151
4.7遞歸程式152
4.7.1問題描述152
4.7.2算法設計152
4.7.3程式設計152
4.8函式的啟示153
本章小結154
習題4155
第5章數組159
5.1數組的存儲結構和作用159
5.1.1數組的存儲結構159
5.1.2數組的作用160
5.2一維數組160
5.2.1一維數組的定義和引用161
5.2.2排序164
5.2.3折半查找167
5.2.4數組與算法171
5.3二維數組171
5.3.1二維數組的定義和引用171
5.3.2二維數組的套用實例174
5.4字元數組與字元串175
5.4.1字元數組的定義和引用176
5.4.2字元串176
5.4.3字元串輸入/輸出函式177
5.4.4字元串處理函式179
5.4.5程式設計舉例182
5.5數組的啟示185
本章小結186
習題5186
第6章指針189
6.1指針變數與間接訪問189
6.1.1變數的屬性189
6.1.2存儲單元地址與存儲地址的存儲單元190
6.1.3間接訪問過程與指針的含義190
6.1.4C語言中的直接訪問和間接訪問192
6.2指針變數的定義和引用193
6.2.1指針變數的定義193
6.2.2指針變數的賦值與取址運算符194
6.2.3指針變數的引用195
6.2.4指針輸出197
6.2.5對指針變數的幾點說明198
6.3指針與函式201
6.3.1數據交換方式201
6.3.2地址傳遞方式202
6.3.3指針作為函式返回值205
6.3.4例題解析207
6.4指針與數組207
6.4.1指針與一維數組207
6.4.2指針與二維數組216
6.4.3對數組名的幾點說明227
6.5指針與字元串228
6.5.1指針變數的定義和引用228
6.5.2函式的調用與返回230
6.5.3對字元串的幾點說明232
6.5.4例題解析234
6.5.5旋轉字元串程式設計236
6.6指針數組和指向指針的指針239
6.6.1指針數組239
6.6.2指向指針的指針244
6.7指向函式的指針248
6.7.1間接調用函式248
6.7.2指向函式的指針變數作為函式參數250
6.8指針的啟示252
本章小結253
習題6255
第7章結構體與共用體259
7.1結構體的作用和類型聲明259
7.1.1結構體的作用259
7.1.2結構體的類型聲明259
7.2結構體變數的定義和引用265
7.2.1結構體變數的定義過程265
7.2.2結構體變數的引用和賦值方式267
7.3結構體數組270
7.3.1結構體數組的定義過程270
7.3.2結構體數組的初始化過程271
7.3.3排序程式272
7.4指向結構體的指針274
7.4.1指向結構體的指針的含義274
7.4.2指向結構體的指針變數的定義過程274
7.4.3對指向結構體的指針變數的幾點說明276
7.5結構體與函式調用278
7.5.1結構體變數作為函式參數279
7.5.2指向結構體的指針變數作為函式參數280
7.5.3結構體類型數據作為函式返回值281
7.6結構體與鍊表283
7.6.1鍊表的含義283
7.6.2鍊表結點的創建和刪除284
7.6.3鍊表的操作288
7.7共用體295
7.7.1共用體的含義和特性296
7.7.2共用體變數的定義和引用過程298
7.7.3共用體與函式調用302
7.8枚舉類型303
7.8.1枚舉類型的聲明和變數的定義過程303
7.8.2枚舉類型變數的套用舉例305
7.9用typedef聲明新的類型名306
7.9.1為基本數據類型聲明新的類型名306
7.9.2為自定義數據類型聲明簡潔的類型名307
7.9.3為數組聲明簡潔的類型名308
7.9.4為指針聲明簡潔的名稱308
7.9.5用typedef聲明新的類型名309
7.9.6對typedef聲明新類型名的幾點說明310
7.10結構體的啟示310
本章小結311
習題7311
第8章預處理命令315
8.1預處理命令的含義和作用315
8.1.1預處理命令的含義315
8.1.2預處理命令的作用316
8.2宏定義316
8.2.1不帶參數的宏定義317
8.2.2帶參數的宏定義321
8.3檔案包含324
8.3.1#include命令的格式324
8.3.2檔案包含的過程325
8.3.3對檔案包含的幾點說明325
8.4條件編譯326
8.4.1條件編譯的作用326
8.4.2條件編譯命令326
8.5預處理命令的啟示328
本章小結329
習題8329
第9章檔案331
9.1檔案與輸入/輸出331
9.1.1輸入/輸出過程331
9.1.2檔案概述333
9.2檔案的操作過程337
9.2.1打開與關閉檔案337
9.2.2字元讀/寫操作340
9.2.3字元串讀/寫操作344
9.2.4格式讀/寫操作346
9.2.5數據塊讀/寫操作348
9.2.6檔案與標準輸入/輸出設備357
9.3檔案的啟示359
本章小結360
習題9360
附錄AVisualC++6.0使用教程363
A.1VisualC++6.0基本介紹363
A.2VisualC++6.0視窗363
A.3新建工程365
A.4新建檔案366
A.5編譯367
A.6連線368
A.7運行369
A.8調試369
A.9調試命令簡介373
A.10編譯和連線過程中常見的錯誤373
附錄BC語言中的關鍵字375
附錄C運算符的優先權和結合性376
附錄D數學函式378
參考文獻380