c語言程序設計教程

第2版

《C語言程序設計教程(第2版)》是2011年2月21日機械工業出版社出版的圖書,作者是朱鳴華。

內容簡介


本書介紹利用c語言進行程序設計的基本知識。全書共13章,詳細介紹了c語言的基本概念、演演算法與程序設計基礎、數據的輸入和輸出、選擇結構、循環結構、數組、函數、指針、結構體與共用體、文件、面向對象程序設計與c++基礎以及數據結構基礎等內容。每章配有大量的習題,便於讀者鞏固所學知識,掌握程序設計的基本方法和編程技巧。
本書力求概念敘述準確、嚴謹,語言通俗易懂,適合作為高等院校理工科非計算機專業的“c語言程序設計”課程的教材,也可供工程技術人員參考。

圖書目錄


第2版前言
第1版前言
教學建議
第1章 c語言概述 1
1.1 c語言發展簡史 1
1.2 c語言的特點 2
1.3 簡單c語言程序舉例 2
1.4 c語言程序的組成與結構 3
1.5 c語言程序的開發步驟 5
小結 6
習題 6
第2章 演演算法與程序設計基礎 7
2.1 演演算法概述 7
2.1.1 演演算法的概念 7
2.1.2 演演算法的特徵 7
2.2 演演算法的常用表示方法 8
2.2.1 自然語言 8
2.2.2 流程圖 8
2.2.3 n-s流程圖 9
2.3 程序設計典型演演算法 11
.2.4 結構化程序設計方法 12
小結 12
習題 12
第3章 數據類型、運算符與表達式 14
3.1 c語言的基本符號 14
3.1.1 標識符 14
3.1.2 常量 14
3.1.3 變數 15
3.1.4 關鍵字 16
3.2 c 語言的數據類型 16
3.2.1 整型數據 16
3.2.2 實型數據 19
3.2.3 字元型數據 20
3.3 運算符和表達式 22
3.3.1 算術運算符和算術表達式 23
3.3.2 賦值運算符和賦值表達式 23
3.3.3 逗號運算符和逗號表達式 25
3.4 數據類型轉換 25
3.4.1 不同數據類型的數據間的混合運算 25
3.4.2 強制類型轉換 26
3.5 自增運算和自減運算 27
3.6 位運算 28
小結 30
習題 31
第4章 數據的輸入和輸出 33
4.1 數據的輸出 33
4.1.1 格式輸出函數printf 33
4.1.2 字元輸出函數putchar 36
4.2 數據的輸入 37
4.2.1 格式輸入函數scanf 37
4.2.2 字元輸入函數getchar 39
4.3 應用舉例 41
小結 41
習題 42
第5章 選擇結構 45
5.1 關係運算符和關係表達式 45
5.1.1 關係運算符 45
5.1.2 關係表達式 45
5.2 邏輯運算符和邏輯表達式 46
5.2.1 邏輯運算符 46
5.2.2 邏輯表達式 46
5.3 選擇語句 47
5.3.1 if語句 47
5.3.2 if語句的嵌套 49
5.3.3 switch語句 50
5.4 條件運算符和條件表達式 51
5.5 應用舉例 52
小結 55
習題 55
第6章 循環結構 58
6.1 goto語句與標號 58
6.2 while循環語句 59
6.3 do-while循環語句 60
6.4 for循環語句 62
6.5 三種循環語句的比較 64
6.6 循環嵌套 64
6.7 break語句、continue語句和空語句 66
6.7.1 break語句 66
6.7.2 continue語句 67
6.7.3 空語句 68
6.8 應用舉例 69
小結 72
習題 72
第7章 數組 78
7.1 一維數組 78
7.1.1 一維數組的定義和引用 78
7.1.2 一維數組的初始化 79
7.1.3 一維數組程序舉例 80
7.2 二維數組 82
7.2.1 二維數組的定義和引用 82
7.2.2 二維數組的初始化 83
7.2.3 二維數組程序舉例 83
7.3 字元數組 86
7.3.1 字元數組的定義 86
7.3.2 字元數組的初始化 87
7.3.3 字元數組的引用 87
7.3.4 字元數組與字元串 88
7.3.5 字元數組的輸入和輸出 88
7.3.6 字元串處理函數 89
7.3.7 字元數組應用舉例 91
小結 94
習題 94
第8章 函數 99
8.1 函數的基本概念 99
8.1.1 函數的概念 99
8.1.2 函數的定義 100
8.1.3 函數的調用 101
8.1.4 函數參數的傳遞方式 102
8.1.5 函數的返回值 103
8.1.6 函數的原型聲明 105
8.2 數組作為函數參數 106
8.2.1 一維數組作為函數參數 106
8.2.2 二維數組作為函數參數 107
8.2.3 數組作為函數參數的函數調用方式 107
8.3 函數的嵌套調用和遞歸調用 110
8.3.1 函數的嵌套調用 110
8.3.2 函數的遞歸調用 111
8.4 變數的作用域和存儲方法 114
8.4.1 局部變數和全局變數 114
8.4.2 變數的存儲方法 117
8.5 內部函數和外部函數 120
8.6 編譯預處理 121
8.6.1 宏定義 121
8.6.2 文件包含 123
8.6.3 條件編譯 124
8.7 函數應用舉例 125
小結 129
習題 130
第9章 指針 136
9.1 指針的基本概念及指針變數的定義 136
9.1.1 指針的基本概念 136
9.1.2 指針變數的定義方法 136
9.2 指針運算 137
9.2.1 賦值運算 137
9.2.2 取地址運算 137
9.2.3 取內容運算 138
9.2.4 指針表達式與整數相加、減運算 139
9.2.5 自增、自減運算 139
9.2.6 同類指針相減運算 140
9.2.7 關係運算 141
9.2.8 強制類型轉換運算 141
9.2.9 空指針 141
9.3 指針變數與一維數組 142
9.3.1 指針變數與一維數組之間的聯繫和區別 142
9.3.2 字元串指針與字元串 143
9.4 指針與函數 144
9.4.1 指針作為函數參數 144
9.4.2 返回指針的函數 147
9.4.3 函數的指針和指向函數的指針變數 149
9.5 指針與二維數組 150
9.5.1 二維數組的結構 150
9.5.2 二維數組元素及其地址 151
9.5.3 指針數組 152
9.5.4 指針與字元串數組 153
9.5.5 指向數組的指針變數 155
9.6 二級指針 156
9.7 內存空間的動態分配 158
9.7.1 指向void的指針 158
9.7.2 常用內存管理函數 159
9.8 main函數的參數 160
9.8.1 命令行參數 160
9.8.2 指針數組作為main函數的形參 160
9.9 應用舉例 161
小結 165
習題 166
第10章 結構體與共用體 173
10.1 結構體類型與結構體變數 173
10.1.1 結構體類型的定義 173
10.1.2 結構體變數的定義 174
10.1.3 結構體變數的引用 175
10.1.4 結構體變數的初始化 176
10.2 結構體數組 176
10.2.1 結構體數組的定義 176
10.2.2 結構體數組的引用 177
10.2.3 結構體數組的初始化 177
10.2.4 應用舉例 178
10.3 結構體指針 179
10.3.1 結構體指針變數的定義 179
10.3.2 結構體數組指針 180
10.4 結構體類型數據在函數間的傳遞 181
10.4.1 結構體變數作為函數參數 181
10.4.2 結構體指針變數作為函數參數 182
10.4.3 結構體數組作為函數參數 183
10.4.4 應用舉例 183
10.5 共用體 186
10.5.1 共用體類型的定義 186
10.5.2 共用體變數的定義 186
10.5.3 共用體變數的引用和初始化 187
10.6 枚舉類型 190
10.6.1 枚舉類型的說明 190
10.6.2 枚舉型變數的定義 190
10.7 用typedef定義類型 192
10.8 鏈表及其簡單操作 193
10.8.1 鏈表的概念 193
10.8.2 鏈表的基本操作 194
小結 196
習題 197
第11章 文件 200
11.1 文件概述 200
11.1.1 文件的概念 200
11.1.2 文件的分類 200
11.1.3 文件緩衝區 201
11.1.4 文件類型指針 201
11.2 文件的打開與關閉 202
11.2.1 打開文件 202
11.2.2 關閉文件 203
11.3 文件的順序讀寫 203
11.3.1 格式化讀寫函數fscanf和fprintf 203
11.3.2 字元方式讀寫函數fgetc和fputc 203
11.3.3 數據塊讀寫函數fread和fwrite 204
11.3.4 字元串讀寫函數fgets和fputs 205
11.4 文件的定位與隨機讀寫 205
11.4.1 文件指針重定位函數rewind 205
11.4.2 隨機讀寫函數fseek 206
11.4.3 其他相關函數 208
小結 208
習題 209
第12章 面向對象程序設計與c++基礎 213
12.1 面向對象程序設計的基本概念 213
12.2 面向對象程序設計語言c++簡介 215
12.2.1 c++程序結構 215
12.2.2 c++對c的補充 217
12.2.3 c++中的類 219
12.2.4 c++中的構造函數和析構函數 221
12.2.5 c++中的繼承 223
12.2.6 c++中的多態性、函數重載和虛函數 224
小結 226
習題 227
第13 章 數據結構基礎 228
13.1 概述 228
13.1.1 數據結構的基本概念 228
13.1.2 數據的邏輯結構與存儲結構 229
13.2 線性表 230
13.2.1 線性表概述 230
13.2.2 線性表的存儲 230
13.3 棧和隊列 231
13.3.1 棧 231
13.3.2 隊列 233
13.4 樹與二叉樹 235
13.4.1 樹的定義 235
13.4.2 二叉樹 236
13.4.3 哈夫曼樹 239
13.5 圖 242
13.5.1 圖的定義 242
13.5.2 圖的存儲結構 243
小結 244
習題 244
習題參考答案 246
附錄a c語言的關鍵字 250
附錄b 雙目算術運算中兩邊運算量類型轉換規律 251
附錄c 運算符的優先順序和結合性 252
附錄d 常用字元與ascii碼對照表 253
附錄e 常用庫函數 255
參考文獻 259