本書作為程序設(shè)計(jì)課程的教材,在結(jié)構(gòu)上注重知識的系統(tǒng)性、完整性和連貫性,將理論與實(shí)踐有機(jī)結(jié)合。編者在總結(jié)多年教學(xué)與實(shí)踐經(jīng)驗(yàn)的基礎(chǔ)上,精選了幾百道設(shè)計(jì)獨(dú)到的例題作為典型概念示例及用于程序精講,同時這些例題還兼顧了C語言等級考試。書中涉及的所有程序例題與習(xí)題均已上機(jī)通過。對于重點(diǎn)章節(jié),如函數(shù)和指針內(nèi)容,采用了獨(dú)創(chuàng)的動態(tài)圖分析方法來分析程序執(zhí)行過程中函數(shù)或指針的變化情況,從而使函數(shù)和指針內(nèi)容中難以掌握的部分迎刃而解。本書在寫法上循序漸進(jìn)、深入淺出且圖文并茂,力求使讀者深入掌握C語言程序設(shè)計(jì)。 本書除可以作為程序設(shè)計(jì)課程的教材外,還可以作為全國計(jì)算機(jī)等級考試的教材或參考書。對于從事計(jì)算機(jī)行業(yè)的工作者來說,本書也是一本難得的資料書。
李玉軍,西安理工大學(xué)計(jì)算機(jī)學(xué)院,副教授。
第1章 C語言與程序設(shè)計(jì)引論1
1.1 計(jì)算機(jī)和程序設(shè)計(jì)的基本概念1
1.1.1 計(jì)算機(jī)系統(tǒng)的組成1
1.1.2 程序與程序設(shè)計(jì)語言2
1.2 C語言的發(fā)展歷程和特點(diǎn)4
1.2.1 C語言的發(fā)展歷程4
1.2.2 C語言的特點(diǎn)5
1.3 C語言程序的基本組成5
習(xí)題18
第2章 C語言程序設(shè)計(jì)基礎(chǔ)10
2.1 C語言的基本符號與數(shù)據(jù)類型10
2.1.1 C語言的基本符號10
2.1.2 C語言的數(shù)據(jù)類型12
2.2 常量13
2.2.1 整型常量、實(shí)型常量及
符號常量14
2.2.2 字符常量與字符串常量15
2.3 變量17
2.3.1 變量的概念、定義與
初始化17
2.3.2 整型變量、實(shí)型變量與
字符型變量19
2.4 運(yùn)算符與表達(dá)式23
2.4.1 運(yùn)算符23
2.4.2 算術(shù)運(yùn)算符與算術(shù)
表達(dá)式25
2.4.3 關(guān)系運(yùn)算符與關(guān)系
表達(dá)式27
2.4.4 邏輯運(yùn)算符與邏輯
表達(dá)式28
2.4.5 賦值運(yùn)算符與復(fù)合賦值
運(yùn)算符30
2.4.6 表達(dá)式中數(shù)據(jù)類型的自動
轉(zhuǎn)換和強(qiáng)制轉(zhuǎn)換32
2.5 數(shù)據(jù)的輸入/輸出34
2.5.1 字符輸入/輸出函數(shù)34
2.5.2 格式輸出函數(shù)35
2.5.3 格式輸入函數(shù)38
習(xí)題241
第3章 3種基本結(jié)構(gòu)的程序設(shè)計(jì)45
3.1 程序的基本結(jié)構(gòu)及C語言程序
中的語句分類45
3.1.1 程序的基本結(jié)構(gòu)45
3.1.2 C語言程序中的語句
分類46
3.2 順序結(jié)構(gòu)程序設(shè)計(jì)48
3.2.1 賦值語句48
3.2.2 順序結(jié)構(gòu)程序49
3.3 選擇結(jié)構(gòu)程序設(shè)計(jì)50
3.3.1 if語句50
3.3.2 if語句的嵌套54
3.3.3 條件運(yùn)算符與條件
表達(dá)式56
3.3.4 switch語句57
3.4 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)62
3.4.1 while語句62
3.4.2 do…while語句65
3.4.3 for語句66
3.4.4 逗號運(yùn)算符與逗號
表達(dá)式73
3.4.5 break語句、continue語句
和goto語句74
3.4.6 循環(huán)嵌套77
習(xí)題384
第4章 數(shù)組93
4.1 一維數(shù)組93
4.1.1 一維數(shù)組的定義93
4.1.2 一維數(shù)組的引用和
初始化94
4.2 二維數(shù)組101
4.2.1 二維數(shù)組的定義101
4.2.2 二維數(shù)組的引用和
初始化102
4.3 字符數(shù)組和字符串106
4.3.1 字符數(shù)組的定義、引用及
初始化106
4.3.2 字符串109
4.3.3 常用字符串處理函數(shù)110
習(xí)題4115
第5章 函數(shù)122
5.1 函數(shù)的概念及分類122
5.1.1 函數(shù)的概念122
5.1.2 函數(shù)的分類122
5.2 函數(shù)的定義、調(diào)用、聲明及函數(shù)
執(zhí)行的分析方法123
5.2.1 函數(shù)的定義123
5.2.2 函數(shù)的調(diào)用和返回值125
5.2.3 函數(shù)執(zhí)行的分析方法126
5.2.4 函數(shù)的聲明128
5.3 變量的作用域129
5.3.1 局部變量與全局變量129
5.3.2 函數(shù)的副作用130
5.4 函數(shù)的嵌套調(diào)用與遞歸調(diào)用131
5.4.1 函數(shù)的嵌套調(diào)用131
5.4.2 函數(shù)的遞歸調(diào)用132
*5.5 遞歸轉(zhuǎn)化為非遞歸研究139
5.5.1 漢諾塔問題遞歸解法139
5.5.2 漢諾塔問題非遞歸
解法142
5.5.3 八皇后問題遞歸解法144
5.5.4 八皇后問題非遞歸
解法146
習(xí)題5148
第6章 指針155
6.1 指針和指針變量155
6.1.1 地址和指針的概念155
6.1.2 指針變量的定義和
初始化156
6.1.3 指針變量的引用和
運(yùn)算157
6.2 指針變量與數(shù)組160
6.2.1 指針變量與一維數(shù)組160
*6.2.2 指針變量與二維數(shù)組164
*6.2.3 指針數(shù)組169
6.3 指針變量與字符串及多級指針
變量170
6.3.1 指針變量與字符串170
*6.3.2 多級指針變量172
6.4 指針變量與函數(shù)175
6.4.1 用指針變量作為函數(shù)
參數(shù)175
6.4.2 用數(shù)組名作為函數(shù)
參數(shù)177
6.4.3 指針型函數(shù)180
習(xí)題6184
第7章 結(jié)構(gòu)體192
7.1 結(jié)構(gòu)體類型的定義與結(jié)構(gòu)體
變量192
7.1.1 結(jié)構(gòu)體類型的定義192
7.1.2 結(jié)構(gòu)體變量195
7.1.3 用typedef定義類型
標(biāo)識符199
7.2 結(jié)構(gòu)體數(shù)組及指向結(jié)構(gòu)體的
指針變量204
7.2.1 結(jié)構(gòu)體數(shù)組204
7.2.2 指向結(jié)構(gòu)體的指針
變量206
*7.3 鏈表209
7.3.1 鏈表的概念209
7.3.2 動態(tài)存儲分配211
7.3.3 鏈表的建立、遍歷及
輸出212
7.3.4 鏈表節(jié)點(diǎn)的插入與
刪除215
*7.4 共用體221
7.4.1 共用體的概念與定義221
7.4.2 共用體變量的引用和
賦值222
習(xí)題7226
第8章 文件234
8.1 文件概述234
8.1.1 文件的分類234
8.1.2 文件指針變量及文件操作
過程235
8.2 文件的打開與關(guān)閉236
8.2.1 文件的打開236
8.2.2 文件的關(guān)閉238
8.3 文件的讀/寫239
8.3.1 字符讀/寫函數(shù)239
8.3.2 字符串讀/寫函數(shù)242
8.3.3 數(shù)據(jù)塊讀/寫函數(shù)244
8.3.4 格式化讀/寫函數(shù)245
8.4 文件的定位與隨機(jī)讀/寫247
習(xí)題8252
附錄 257
附錄A ASCII碼表257
附錄B 常用的C語言庫函數(shù)258
參考文獻(xiàn) 260