本書是工業(yè)和信息產(chǎn)業(yè)科技與教育專著出版資金項目的規(guī)劃教材。本書以傳授程序設計的基礎知識和基本方法為出發(fā)點,通過構(gòu)建層次合理、內(nèi)容適當?shù)慕虒W體系,以通俗易懂的語言、由淺入深地介紹C語言的基本語法和結(jié)構(gòu)化的程序設計方法,旨在提高學生的計算思維能力,培養(yǎng)學生運用計算機編程語言解決實際問題的技能。
全書內(nèi)容共分8章,分別講述程序設計基礎知識、C程序設計初步、結(jié)構(gòu)化程序設計及控制語句、函數(shù)及變量的存儲類別、數(shù)組、指針、其他構(gòu)造數(shù)據(jù)類型和文件等知識。
本書結(jié)構(gòu)清晰、重點明確,語言表述準確、精煉,內(nèi)容編排強調(diào)知識的層次性;例題和習題豐富、應用性強,注重編程技能和計算思維能力的培養(yǎng)。在內(nèi)容安排上,遵循由簡入難、層層遞進的原則,降低了學生學習的難度。
王苗,河北大學計算機科學與技術學院副教授。講授課程:數(shù)據(jù)結(jié)構(gòu)、C程序設計、離散數(shù)學、數(shù)學模型、操作系統(tǒng)等。著作方向:計算機程序設計語言。
第1章 程序設計基礎知識1
1.1 計算思維與自動化計算1
1.1.1 科學思維及其分類1
1.1.2 計算思維的概念與特征2
1.1.3 計算思維的舉例—自動化計算3
1.2 計算機內(nèi)的數(shù)據(jù)表示4
1.2.1 數(shù)制及其轉(zhuǎn)換4
1.2.2 原碼、反碼及補碼6
1.2.3 定點數(shù)及浮點數(shù)8
1.3 程序與算法9
1.3.1 程序及算法的概念9
1.3.2 算法的特點及評價標準10
1.3.3 算法的表示10
1.4 C語言簡介13
1.4.1 程序設計語言13
1.4.2 C語言的歷史14
1.4.3 C語言的特點14
1.4.4 C程序的結(jié)構(gòu)15
1.4.5 C程序的運行步驟17
習題19
第2章 C程序設計初步20
2.1 常量和變量20
2.1.1 C語言的基本詞法20
2.1.2 常量21
2.1.3 變量23
2.2 簡單的數(shù)據(jù)類型24
2.2.1 整型24
2.2.2 實型26
2.2.3 字符型26
2.3 輸入/輸出函數(shù)27
2.3.1 字符輸出函數(shù)27
2.3.2 字符輸入函數(shù)28
2.3.3 格式輸出函數(shù)30
2.3.4 格式輸入函數(shù)34
2.4 運算符及表達式36
2.4.1 算術運算符37
2.4.2 賦值運算符39
2.4.3 自增、自減運算符41
2.4.4 關系運算符44
2.4.5 邏輯運算符46
2.4.6 條件運算符49
2.4.7 逗號運算符51
2.4.8 位運算符52
2.5 類型轉(zhuǎn)換55
2.5.1 自動類型轉(zhuǎn)換56
2.5.2 強制類型轉(zhuǎn)換56
習題57
第3章 結(jié)構(gòu)化程序設計及控制語句62
3.1 C語句概述62
3.1.1 表達式語句62
3.1.2 控制語句62
3.1.3 函數(shù)調(diào)用語句63
3.1.4 空語句63
3.1.5 復合語句63
3.2 順序結(jié)構(gòu)及實現(xiàn)63
3.2.1 順序結(jié)構(gòu)程序設計思想63
3.2.2 賦值語句64
3.2.3 順序結(jié)構(gòu)程序設計舉例65
3.3 選擇結(jié)構(gòu)及實現(xiàn)66
3.3.1 選擇結(jié)構(gòu)程序設計思想66
3.3.2 if語句66
3.3.3 if-else語句67
3.3.4 嵌套的if語句68
3.3.5 switch語句71
3.3.6 選擇結(jié)構(gòu)程序設計舉例72
3.4 循環(huán)結(jié)構(gòu)及實現(xiàn)77
3.4.1 循環(huán)結(jié)構(gòu)程序設計思想77
3.4.2 while循環(huán)78
3.4.3 do-while循環(huán)79
3.4.4 for循環(huán)80
3.4.5 循環(huán)的嵌套82
3.4.6 轉(zhuǎn)向語句86
3.4.7 循環(huán)結(jié)構(gòu)程序設計舉例89
3.5 結(jié)構(gòu)化程序設計風格93
3.5.1 程序設計的步驟93
3.5.2 結(jié)構(gòu)化程序設計方法94
3.5.3 程序的設計風格94
習題95
第4章 函數(shù)及變量的存儲類別101
4.1 函數(shù)的定義101
4.1.1 函數(shù)定義的一般形式101
4.1.2 函數(shù)參數(shù)和返回值102
4.2 函數(shù)的聲明和調(diào)用104
4.2.1 函數(shù)的聲明104
4.2.2 函數(shù)的調(diào)用104
4.2.3 函數(shù)調(diào)用的數(shù)據(jù)傳遞方式106
4.3 變量的作用域和存儲類別107
4.3.1 變量的作用域、內(nèi)部變量和外部變量107
4.3.2 變量的存儲類別109
4.3.3 內(nèi)部變量的存儲類別110
4.3.4 外部變量的存儲類別112
4.4 外部函數(shù)和內(nèi)部函數(shù)113
4.4.1 外部函數(shù)113
4.4.2 內(nèi)部函數(shù)114
4.5 函數(shù)的嵌套調(diào)用和遞歸調(diào)用115
4.5.1 函數(shù)的嵌套調(diào)用115
4.5.2 函數(shù)的遞歸調(diào)用116
4.6 編譯預處理119
4.6.1 宏定義119
4.6.2 文件包含122
4.6.3 條件編譯123
習題124
第5章 數(shù)組130
5.1 一維數(shù)組130
5.1.1 一維數(shù)組的定義130
5.1.2 一維數(shù)組的訪問130
5.1.3 一維數(shù)組的初始化131
5.1.4 一維數(shù)組應用舉例131
5.2 二維數(shù)組133
5.2.1 二維數(shù)組的定義133
5.2.2 二維數(shù)組的訪問134
5.2.3 二維數(shù)組的初始化134
5.2.4 二維數(shù)組應用舉例135
5.3 字符數(shù)組136
5.3.1 字符數(shù)組的定義和使用136
5.3.2 字符串和字符數(shù)組137
5.3.3 常用字符串處理函數(shù)138
5.3.4 字符數(shù)組應用舉例140
5.4 數(shù)組作為函數(shù)參數(shù)141
5.4.1 數(shù)組元素作為實參141
5.4.2 數(shù)組名作為實參142
習題143
第6章 指針147
6.1 指針類型和指針變量147
6.1.1 地址和指針的概念147
6.1.2 指針變量的定義148
6.1.3 指針變量的使用149
6.2 指針和函數(shù)152
6.2.1 指針變量作函數(shù)參數(shù)152
6.2.2 返回指針值的函數(shù)154
6.2.3 指向函數(shù)的指針變量155
6.3 指針與數(shù)組159
6.3.1 一維數(shù)組和指針159
6.3.2 二維數(shù)組和指針162
6.3.3 字符串和指針166
6.3.4 數(shù)組名作為實參169
6.3.5 指針數(shù)組及帶參main( )函數(shù)172
習題177
第7章 其他構(gòu)造數(shù)據(jù)類型183
7.1 結(jié)構(gòu)體183
7.1.1 結(jié)構(gòu)體類型183
7.1.2 結(jié)構(gòu)體變量184
7.1.3 結(jié)構(gòu)體數(shù)組186
7.1.4 向函數(shù)傳遞結(jié)構(gòu)體型數(shù)據(jù)189
7.2 鏈表189
7.2.1 動態(tài)存儲分配與回收189
7.2.2 鏈表的特點190
7.2.3 鏈表的生成和輸出191
7.2.4 鏈表的插入與刪除195
7.3 共用體197
7.3.1 共用體類型197
7.3.2 共用體變量198
7.4 枚舉類型200
7.4.1 枚舉類型200
7.4.2 枚舉類型變量201
7.5 用戶自定義類型201
7.5.1 用戶自定義類型的定義202
7.5.2 用戶自定義類型的應用204
習題204
第8章 文件210
8.1 C文件的基礎知識210
8.1.1 C文件的基本格式210
8.1.2 緩沖文件和非緩沖文件系統(tǒng)210
8.1.3 C文件操作的一般過程211
8.1.4 文件類型與文件類型指針211
8.2 文件的打開與關閉212
8.2.1 文件的打開212
8.2.2 文件的關閉213
8.3 文件的讀/寫213
8.3.1 字符讀/寫函數(shù)214
8.3.2 數(shù)據(jù)塊讀/寫函數(shù)215
8.3.3 格式化讀/寫函數(shù)217
8.3.4 字讀/寫函數(shù)218
8.3.5 字符串讀/寫函數(shù)218
8.3.6 讀/寫其他類型數(shù)據(jù)219
8.4 文件的定位219
8.4.1 fseek( )函數(shù)219
8.4.2 rewind( )函數(shù)220
8.4.3 ftell( )函數(shù)220
8.5 文件的錯誤檢測及處理220
8.5.1 ferror( )函數(shù)220
8.5.2 clearerr( )函數(shù)220
8.5.3 feof( )函數(shù)221
8.6 應用舉例221
習題224
參考文獻230