本書系C程序設(shè)計(jì)教程,以算法和Raptor程序設(shè)計(jì)引導(dǎo)讀者如何用計(jì)算機(jī)求解問題,以C語言為基礎(chǔ)介紹了程序設(shè)計(jì)的基本思想和方法,從計(jì)算機(jī)問題求解與算法設(shè)計(jì)的角度提高程序設(shè)計(jì)的能力。全書內(nèi)容豐富,強(qiáng)調(diào)程序設(shè)計(jì)方法與綜合實(shí)踐能力的培養(yǎng)。
本書可作為計(jì)算機(jī)及相關(guān)專業(yè)C程序設(shè)計(jì)的教材,也可供專業(yè)技術(shù)人員參考或者作為培訓(xùn)教材。
清晰展現(xiàn)全書知識結(jié)構(gòu)和每章知識圖,結(jié)構(gòu)以應(yīng)用和實(shí)踐能力培養(yǎng)為導(dǎo)向,使學(xué)生在學(xué)習(xí)理論知識的同時提高應(yīng)用實(shí)踐能力。內(nèi)容詳實(shí),案例豐富,習(xí)題經(jīng)典,課件完備,可作為計(jì)算機(jī)及相關(guān)專業(yè)的C程序設(shè)計(jì)基礎(chǔ)教程。
C程序設(shè)計(jì)教程第1章緒論1
1.1計(jì)算機(jī)系統(tǒng)1
1.1.1硬件系統(tǒng)1
1.1.2軟件系統(tǒng)4
1.2程序設(shè)計(jì)語言5
1.2.1機(jī)器語言與匯編語言5
1.2.2高級語言5
1.3計(jì)算機(jī)問題求解6
1.3.1計(jì)算機(jī)問題求解概述6
1.3.2算法與程序設(shè)計(jì)7
1.3.3計(jì)算機(jī)科學(xué)8
1.3.4程序設(shè)計(jì)范式8
1.4算法的設(shè)計(jì)9
1.4.1算法思維9
1.4.2算法表示10
1.4.3算法的三種基本結(jié)構(gòu)11
1.4.4算法的設(shè)計(jì)方法12
本章知識結(jié)構(gòu)圖14
習(xí)題15
第2章Raptor程序設(shè)計(jì)16
2.1Raptor的輸入與輸出16
2.1.1什么是Raptor16
2.1.2簡單輸出語句16
2.1.3簡單輸入語句19
2.2Raptor的賦值與過程21
2.2.1賦值語句21
2.2.2過程調(diào)用語句24
2.3Raptor的控制結(jié)構(gòu)28
2.3.1順序結(jié)構(gòu)28
2.3.2選擇結(jié)構(gòu)28
2.3.3循環(huán)結(jié)構(gòu)30
2.3.4級聯(lián)選擇控制與嵌套循環(huán)35
2.3.5Raptor注釋37
2.4Raptor的數(shù)組37
2.4.1為什么使用數(shù)組37
2.4.2數(shù)組和數(shù)組元素38
2.4.3創(chuàng)建和使用數(shù)組38
2.5Raptor的文件與圖形界面40
2.5.1計(jì)算結(jié)果的文件保存40
2.5.2輸出結(jié)果的圖形顯示43
2.6綜合設(shè)計(jì)案例43
本章知識結(jié)構(gòu)圖45
習(xí)題46
C程序設(shè)計(jì)教程目錄
第3章C程序設(shè)計(jì)初步48
3.1C語言程序48
3.1.1C語言起源48
3.1.2簡單C程序49
3.1.3C程序的構(gòu)成和風(fēng)格50
3.1.4C程序的開發(fā)51
3.1.5C的標(biāo)準(zhǔn)53
3.2C程序的數(shù)據(jù)信息53
3.3C程序的控制結(jié)構(gòu)56
3.3.1順序結(jié)構(gòu)56
3.3.2選擇結(jié)構(gòu)58
3.3.3循環(huán)結(jié)構(gòu)60
3.4C程序的設(shè)計(jì)61
3.4.1枚舉法61
3.4.2迭代法65
本章知識結(jié)構(gòu)圖68
習(xí)題68
第4章C語言基本組成71
4.1C語言的詞法71
4.1.1C語言字符集71
4.1.2保留字72
4.1.3用戶標(biāo)識符73
4.1.4C語言的詞類74
4.2基本數(shù)據(jù)類型74
4.2.1數(shù)制74
4.2.2數(shù)據(jù)類型75
4.2.3常量77
4.2.4變量79
4.3運(yùn)算符和表達(dá)式82
4.3.1算術(shù)運(yùn)算83
4.3.2關(guān)系運(yùn)算84
4.3.3邏輯運(yùn)算85
4.3.4賦值運(yùn)算87
4.3.5自增自減運(yùn)算88
4.3.6逗號運(yùn)算89
4.3.7長度運(yùn)算89
4.3.8條件運(yùn)算89
4.3.9位運(yùn)算90
4.3.10類型轉(zhuǎn)換93
4.4C語言基本語句95
4.4.1表達(dá)式語句96
4.4.2復(fù)合語句96
4.4.3選擇語句97
4.4.4循環(huán)語句105
4.4.5跳轉(zhuǎn)語句114
4.4.6標(biāo)號語句116
4.5格式化輸入與輸出116
4.5.1格式化輸出函數(shù)printf116
4.5.2格式化輸入函數(shù)scanf121
本章知識結(jié)構(gòu)圖126
習(xí)題127
第5章函數(shù)138
5.1模塊化思想概述138
5.1.1模塊的概念138
5.1.2模塊的例子138
5.1.3模塊函數(shù)140
5.1.4模塊設(shè)計(jì)的原則140
5.2函數(shù)的定義141
5.3函數(shù)的調(diào)用143
5.3.1函數(shù)的調(diào)用形式143
5.3.2參數(shù)傳遞與返回值144
5.3.3函數(shù)聲明145
5.3.4系統(tǒng)函數(shù)調(diào)用147
5.4遞歸調(diào)用150
5.4.1簡單遞歸的設(shè)計(jì)150
5.4.2其他遞歸的設(shè)計(jì)153
5.5變量的作用域與存儲類型156
5.5.1變量的作用域156
5.5.2變量生存期和存儲類型157
5.6程序文件結(jié)構(gòu)160
5.6.1單文件結(jié)構(gòu)160
5.6.2多文件結(jié)構(gòu)160
5.6.3預(yù)處理指令163
5.6.4文本文件輸入輸出166
5.7模塊化程序設(shè)計(jì)169
本章知識結(jié)構(gòu)圖174
習(xí)題175
第6章復(fù)雜數(shù)據(jù)類型184
6.1一維數(shù)組184
6.1.1數(shù)組的定義186
6.1.2一維數(shù)組的初始化189
6.1.3一維數(shù)組的應(yīng)用舉例190
6.2二維數(shù)組197
6.2.1二維數(shù)組的定義197
6.2.2二維數(shù)組的存儲197
6.2.3二維數(shù)組元素的引用198
6.2.4二維數(shù)組的初始化198
6.2.5二維數(shù)組的應(yīng)用舉例199
6.3指針201
6.3.1指針的概念202
6.3.2指針變量203
6.3.3一維數(shù)組和指針205
6.3.4二維數(shù)組和指針208
6.3.5返回指針值的函數(shù)和指向函數(shù)的指針變量215
6.3.6動態(tài)內(nèi)存分配218
6.4字符串221
6.4.1字符串常量222
6.4.2字符串的存儲和初始化222
6.4.3用指針指向字符串223
6.4.4字符串的訪問224
6.4.5字符串處理函數(shù)227
6.4.6用指針數(shù)組處理字符串233
6.5結(jié)構(gòu)體237
6.5.1定義結(jié)構(gòu)體類型238
6.5.2結(jié)構(gòu)體變量的定義及初始化239
6.5.3結(jié)構(gòu)體變量所占空間的大小240
6.5.4結(jié)構(gòu)體變量的引用242
6.5.5結(jié)構(gòu)體數(shù)組244
6.5.6指向結(jié)構(gòu)體的指針246
6.6復(fù)雜數(shù)據(jù)類型作函數(shù)參數(shù)248
6.6.1一維數(shù)組作函數(shù)參數(shù)248
6.6.2二維數(shù)組作函數(shù)參數(shù)251
6.6.3指針作函數(shù)參數(shù)255
6.6.4結(jié)構(gòu)體類型的指針和變量作函數(shù)參數(shù)260
6.7其他復(fù)雜數(shù)據(jù)類型261
6.7.1共用體類型261
6.7.2枚舉類型264
6.7.3類型重定義267
本章知識結(jié)構(gòu)圖270
習(xí)題272
第7章文件280
7.1輸入輸出的基本概念280
7.1.1普通文件和設(shè)備文件280
7.1.2二進(jìn)制文件和文本文件281
7.1.3文件流282
7.1.4緩沖文件系統(tǒng)283
7.1.5文件指針283
7.2文件的打開和關(guān)閉284
7.2.1文件的打開(fopen函數(shù))284
7.2.2文件關(guān)閉函數(shù)(fclose函數(shù))286
7.3文本文件的輸入輸出287
7.3.1讀寫字符287
7.3.2讀寫字符串289
7.3.3讀寫格式化數(shù)據(jù)291
7.3.4利用標(biāo)準(zhǔn)輸入輸出設(shè)備的讀寫操作293
7.4二進(jìn)制文件的輸入和輸出294
7.4.1文件定位294
7.4.2讀寫數(shù)據(jù)塊函數(shù)296
7.4.3二進(jìn)制文件的隨機(jī)讀寫298
本章知識結(jié)構(gòu)圖303
習(xí)題304
第8章問題求解與算法309
8.1問題求解中數(shù)據(jù)結(jié)構(gòu)的選用309
8.1.1問題求解的過程309
8.1.2問題求解中對數(shù)據(jù)結(jié)構(gòu)的選擇317
8.1.3基于數(shù)組存儲數(shù)據(jù)的局限320
8.2鏈表323
8.2.1單鏈表存儲結(jié)構(gòu)324
8.2.2遍歷鏈表325
8.2.3創(chuàng)建一個鏈表325
8.2.4在鏈表中插入結(jié)點(diǎn)327
8.2.5在鏈表中刪除結(jié)點(diǎn)329
8.2.6鏈表結(jié)構(gòu)的應(yīng)用331
8.3查找337
8.3.1在有序表上的二分查找337
8.3.2用哈希法存儲和查找數(shù)據(jù)341
8.4排序344
8.4.1快速排序345
8.4.2簡單計(jì)數(shù)排序347
8.5問題求解策略348
8.5.1回溯法349
8.5.2貪心法352
8.5.3動態(tài)規(guī)劃356
本章知識結(jié)構(gòu)圖359
習(xí)題360
附錄AASCII碼表完整版365
附錄B綜合實(shí)踐報告367
本書知識結(jié)構(gòu)圖372
收起全部↑