C語言程序設計——基於計算思維的培養(第2版)
曾智勇,林暉,林銘煒,林崧
相關主題
商品描述
目錄大綱
目錄
第1章C語言基本概念1
1.1計算機語言和程序2
1.1.1計算機語言2
1.1.2計算機程序2
1.1.3C語言2
1.1.4程序設計3
1.2算法和算法表示4
1.2.1算法的概念4
1.2.2算法的特征6
1.2.3算法的表示7
1.2.4算法的優化14
1.2.5結構化程序設計方法16
1.3C語言編程20
1.3.1編寫一個經典的C程序20
1.3.2編譯和鏈接22
1.4變量、表達式和賦值22
1.4.1類型23
1.4.2聲明23
1.4.3賦值24
1.4.4變量的初始化24
1.4.5顯示變量的值25
1.5從鍵盤讀取輸入25
1.6常量定義26
1.6.1宏常量26
1.6.2const常量27
1.7標識符28
1.8C程序的結構特點291.9C語言編程風格31
問與答32
習題133
目錄
第2章數據類型與表達式36
2.1變量聲明與表達式36
2.2基本數據類型37
2.3整型37
2.4浮點型40
2.5算術運算符與表達式41
2.5.1算術運算符41
2.5.2算術表達式44
2.6賦值運算符與表達式45
2.6.1賦值運算符46
2.6.2賦值表達式46
2.6.3復合賦值運算符及表達式46
2.7自增/自減運算符48
2.8字符型49
2.8.1字符操作49
2.8.2有符號字符與無符號字符49
2.8.3轉義序列50
2.9字符處理函數51
2.10類型轉換54
2.10.1算術運算過程中的轉換54
2.10.2賦值過程中的轉換56
2.10.3強制類型轉換57
2.11類型定義57
2.12sizeof運算符59
問與答59
習題262
實驗題65
第3章格式化輸入與輸出66
3.1輸出函數66
3.1.1轉換說明67
3.1.2轉義序列71
3.2輸入函數72
3.2.1轉換說明72
3.2.2scanf()函數的工作原理74
3.2.3格式控制串中的普通字符75
3.2.4scanf()和printf()函數常見錯誤79
問與答80
習題381
實驗題83
第4章選擇結構84
4.1關系、等式和邏輯運算符84
4.2邏輯運算符和表達式86
4.3復合語句88
4.4空語句88
4.5if語句88
4.6ifelse語句91
4.7if語句的嵌套92
4.8級聯式語句97
4.9switch語句98
4.10條件表達式101
4.11C語言中的布爾值102
4.12程序舉例與測試103
4.13本章擴展內容: 位運算107
4.13.1位運算符107
4.13.2位邏輯運算108
4.13.3移位運算109
4.13.4復合位運算賦值運算符109
4.13.5位運算的應用110
問與答111
習題4112
實驗題117
第5章循環結構119
5.1循環結構與循環語句119
5.2計數控制的循環126
5.3嵌套循環128
5.4條件控制的循環130
5.5流程的控制轉移136
5.5.1break語句136
5.5.2continue語句138
5.5.3goto語句139
5.6應用舉例141
問與答145
習題5147
實驗題151
第6章函數153
6.1模塊化程序設計153
6.2函數的定義154
6.2.1函數的分類154
6.2.2函數的定義155
6.2.3函數調用156
6.3函數原型聲明159
6.4實參162
6.5函數封裝與防禦性編程164
6.6函數設計的基本原則170
6.7函數的嵌套調用171
6.8函數的遞歸調用和遞歸函數172
6.9變量的作用域和存儲類型175
6.9.1變量的作用域175
6.9.2變量的存儲類型177
6.10模塊化程序設計實例182
問與答187
習題6189
實驗題194
第7章數組195
7.1一維數組195
7.2二維數組199
7.3一維數組作為函數參數201
7.3.1數組作為實參201
7.3.2變長數組作為形參202
7.4排序與查找207
7.5二維數組作為函數參數217
7.6C程序開發方法220
問與答223
習題7225
實驗題229
第8章指針230
8.1指針和指針變量230
8.2指針變量的定義和初始化231
8.3間接尋址運算符234
8.4指針變量作為函數參數237
8.5指針變量作為函數參數應用舉例240
8.6函數指針及其應用247
問與答250
習題8252
實驗題255
第9章字符串256
9.1字符串常量256
9.2字符串的存儲256
9.3字符指針258
9.4字符串的讀/寫259
9.4.1按%c格式控制符讀/寫259
9.4.2按%s格式控制符讀/寫260
9.4.3使用字符串處理函數進行讀/寫260
9.4.4逐個字符讀取字符串261
9.5字符串處理函數263
9.6字符串作為函數參數266
9.7從函數返回字符串指針267
問與答269
習題9270
實驗題273
第10章指針與數組275
10.1指針的運算275
10.2指針和一維數組的關系276
10.3指針和二維數組的關系281
10.4指針數組及其應用286
10.5動態數組291
10.5.1C程序的內存映像291
10.5.2動態內存分配函數292
10.5.3一維動態數組的內存分配294
10.5.4二維動態數組的內存分配295
問與答297
習題10298
實驗題300第11章自定義數據類型302
11.1用戶自定義數據類型和信息隱藏302
11.2結構體的定義303
11.3結構體變量的初始化305
11.4結構體的嵌套306
11.5結構體變量的引用306
11.6結構體變量在內存中的存儲形式308
11.7結構體數組的定義和初始化310
11.8結構體指針的定義和初始化313
11.9結構體作為函數參數315
11.10共用體320
11.11枚舉類型323
11.12單向鏈表327
11.12.1問題的提出327
11.12.2鏈表327
11.12.3單向鏈表的創建328
11.12.4單向鏈表的搜索331
11.12.5從單向鏈表中刪除節點332
問與答336
習題11337
實驗題340
第12章文件342
12.1文件分類342
12.2文件的打開與關閉343
12.3順序讀/寫文件345
12.3.1讀/寫字符346
12.3.2讀/寫字符串349
12.3.3格式化讀/寫文件351
12.3.4讀/寫數據塊355
12.4隨機讀/寫文件359
12.5標準輸入/輸出重定向361
問與答362
習題12364
實驗題366
第13章構建大規模程序368
13.1頭文件368
13.1.1#include指令的使用368
13.1.2定義共享類型和宏369
13.1.3共享函數原型370
13.1.4共享變量聲明370
13.1.5嵌套包含371
13.1.6保護頭文件371
13.1.7頭文件中的#error指令372
13.2源文件372
13.3多文件程序的設計373
13.4構建多文件程序377
13.4.1makefile文件378
13.4.2鏈接錯誤379
13.4.3重構程序379
13.4.4在程序外定義宏381
問與答382
習題13383
實驗題383
附錄384
附錄ADevC++和Visual C++下基本數據類型的取值範圍384
附錄B關鍵字384
附錄C運算符的優先級與結合性384
附錄DASCII字符表384
附錄EANSI C標準庫函數384
附錄FDevC++集成開發環境385
參考文獻386