本書是一本針對零基礎學習者編寫的C語言程序設計入門教材,全書分為程序設計基礎篇和程序設計進階篇。程序設計基礎篇主要內容包括C語言的核心語法、程序設計思想和實踐應用。程序設計進階篇主要內容包括指針、結構體與共用體、位運算和文件,旨在使讀者體會C語言的模塊化編程思想及對指針與結構體類型的實際應用,學會用構造數(shù)據(jù)類型和指針來處理生活中的問題。全書通過豐富的代碼示例、流程圖解和生活案例,循序漸進地講解C語言的各方面知識。本書可作為高等學校本科及?茖W生程序設計課程的入門教材,還可供廣大程序設計初學者自學使用。通過閱讀本書,讀者能夠打下堅實的編程基礎,并為學習其他高級語言(如C++、Java)鋪平道路。
薛冰冰,河南科技大學副教授。省級線上線下混合式一流本科課程、精品在線開放課程《C語言程序設計》負責人。出版教材多部。
程序設計基礎篇
第1章 C語言程序設計引論 2
1.1 程序和程序設計 2
1.1.1 程序 2
1.1.2 程序設計 2
1.2 程序設計語言的發(fā)展過程 3
1.3 C語言簡介 4
1.3.1 C語言的發(fā)展 4
1.3.2 C語言的優(yōu)點 4
1.4 C語言程序的結構 5
1.4.1 簡單的C語言程序 5
1.4.2 C語言程序的結構 7
1.5 C語言程序的集成開發(fā)環(huán)境和運行步驟 8
1.5.1 C語言的集成開發(fā)環(huán)境 8
1.5.2 C語言程序的運行步驟 9
本章小結 10
習題1 10
第2章 數(shù)據(jù)類型、運算符與表達式 11
2.1 C語言中常用的符號 11
2.2 C語言數(shù)據(jù)類型概述 12
2.3 常量 14
2.3.1 整型常量 14
2.3.2 實型常量 14
2.3.3 字符常量 15
2.3.4 字符串常量 16
2.3.5 符號常量 16
2.4 變量 17
2.4.1 變量的定義 17
2.4.2 變量的初始化 17
2.4.3 變量的賦值和引用 17
2.5 運算符和表達式 17
2.5.1 運算符和表達式 17
2.5.2 算術運算符和算術表達式 18
2.5.3 賦值運算符和賦值表達式 20
2.5.4 復合賦值運算符和復合賦值運算表達式 21
2.5.5 逗號運算符和逗號表達式 21
2.5.6 關系運算符和關系表達式 22
2.5.7 邏輯運算符和邏輯表達式 22
2.5.8 字節(jié)運算符和字節(jié)運算表達式 23
2.6 數(shù)據(jù)類型轉換 24
2.6.1 數(shù)據(jù)類型的自動轉換 24
2.6.2 數(shù)據(jù)類型的強制轉換 26
本章小結 27
習題2 27
第3章 順序結構程序設計 29
3.1 算法和結構化程序設計 29
3.1.1 算法的基本概念 29
3.1.2 結構化程序設計 30
3.2 C語句概述 31
3.2.1 表達式語句 31
3.2.2 函數(shù)調用語句 32
3.2.3 控制語句 32
3.2.4 復合語句 32
3.2.5 空語句 32
3.3 數(shù)據(jù)的輸入和輸出 32
3.3.1 輸入和輸出的實現(xiàn) 33
3.3.2 單字符輸入和輸出 33
3.3.3 數(shù)據(jù)的格式化輸出 34
3.3.4 數(shù)據(jù)的格式化輸入 36
3.4 順序結構程序設計舉例 39
本章小結 42
習題3 42
第4章 選擇結構程序設計 44
4.1 if語句 44
4.1.1 if雙分支語句 44
4.1.2 if單分支語句 46
4.1.3 if多分支語句 48
4.2 條件運算符和條件表達式 51
4.2.1 條件運算符 51
4.2.2 條件表達式 51
4.3 switch語句 53
4.3.1 switch語句的一般形式 53
4.3.2 switch語句的執(zhí)行過程 54
4.3.3 switch語句的使用說明 55
4.4 選擇結構程序設計舉例 56
本章小結 58
習題4 59
第5章 循環(huán)結構程序設計 61
5.1 while語句 61
5.1.1 while語句的一般形式 61
5.1.2 while語句的執(zhí)行流程 62
5.1.3 while語句的使用說明 62
5.2 do…while語句 64
5.2.1 do…while語句的一般形式 64
5.2.2 do…while語句的執(zhí)行流程 65
5.2.3 do…while語句和while
語句的區(qū)別 66
5.3 for語句 66
5.3.1 for語句的一般形式 66
5.3.2 for語句的執(zhí)行過程 67
5.3.3 for語句的其他形式 68
5.3.4 3種循環(huán)語句的比較 69
5.4 break語句和continue語句 70
5.4.1 break語句 70
5.4.2 continue語句 71
5.5 循環(huán)嵌套 71
5.5.1 循環(huán)嵌套的概念及常見形式 71
5.5.2 循環(huán)嵌套的執(zhí)行過程 72
5.5.3 循環(huán)嵌套的注意事項 73
5.6 循環(huán)程序綜合舉例 73
5.6.1 多項式的求和 73
5.6.2 字符的統(tǒng)計 76
5.6.3 數(shù)據(jù)的搜索 77
5.6.4 圖形的輸出 80
本章小結 82
習題5 83
第6章 函數(shù) 85
6.1 函數(shù)引入 85
6.2 函數(shù)定義 86
6.2.1 函數(shù)定義的一般形式 86
6.2.2 return語句 88
6.3 函數(shù)調用 89
6.3.1 函數(shù)調用的方法 89
6.3.2 函數(shù)調用的數(shù)據(jù)傳遞 93
6.3.3 函數(shù)調用的過程 94
6.4 函數(shù)聲明 95
6.4.1 函數(shù)聲明的形式 95
6.4.2 函數(shù)聲明的位置 96
6.4.3 庫函數(shù)的聲明 97
6.5 函數(shù)的嵌套調用和遞歸調用 98
6.5.1 函數(shù)的嵌套調用 98
6.5.2 函數(shù)的遞歸調用 100
6.6 變量的作用域及存儲類型 104
6.6.1 變量的作用域 104
6.6.2 變量的存儲類型 108
6.6.3 變量的作用域和存儲類型小結 112
6.7 多文件程序 113
本章小結 115
習題6 115
第7章 數(shù)組 118
7.1 數(shù)組引入 118
7.1.1 問題的提出 118
7.1.2 數(shù)組的基本概念 119
7.1.3 數(shù)組的分類 120
7.2 一維數(shù)組 120
7.2.1 一維數(shù)組的定義 120
7.2.2 一維數(shù)組的引用 121
7.2.3 一維數(shù)組的存儲 122
7.2.4 一維數(shù)組的初始化 123
7.2.5 一維數(shù)組的應用舉例 124
7.3 向函數(shù)傳遞一維數(shù)組 126
7.4 一維數(shù)組的常用算法及其應用 129
7.5 多維數(shù)組 136
7.5.1 二維數(shù)組的定義 136
7.5.2 二維數(shù)組的引用 136
7.5.3 二維數(shù)組的存儲 137
7.5.4 二維數(shù)組的初始化 138
7.5.5 二維數(shù)組的應用舉例 138
7.6 向函數(shù)傳遞二維數(shù)組 140
7.7 字符數(shù)組 144
7.7.1 字符串 144
7.7.2 字符數(shù)組與字符串 144
7.7.3 字符數(shù)組的定義與初始化 144
7.7.4 字符數(shù)組的輸入和輸出 146
7.7.5 常用的字符串處理函數(shù) 148
7.7.6 字符數(shù)組的應用舉例 150
本章小結 153
習題7 153
程序設計進階篇
第8章 指針 156
8.1 指針的概念 156
8.2 指針變量的定義及初始化 158
8.2.1 定義指針變量 158
8.2.2 初始化指針變量 158
8.3 通過指針訪問變量 159
8.4 指針和數(shù)組 162
8.4.1 指針和一維數(shù)組 162
8.4.2 用指針引用數(shù)組元素 163
8.4.3 指針和二維數(shù)組 165
8.5 指針和字符 168
8.5.1 指向字符的指針 168
8.5.2 指向字符串的指針 169
8.6 指針和函數(shù) 170
8.6.1 用指針變量作為函數(shù)參數(shù) 170
8.6.2 用指針變量作為函數(shù)返回值 172
8.6.3 指向函數(shù)的指針變量 173
8.7 二級指針和指針數(shù)組 174
8.7.1 二級指針 174
8.7.2 指針數(shù)組 175
本章小結 179
習題8 179
第9章 結構體與共用體 182
9.1 結構體類型與結構體變量 182
9.1.1 結構體類型的定義 182
9.1.2 結構體變量的定義 183
9.1.3 結構體變量的引用 185
9.1.4 結構體變量的初始化 185
9.1.5 結構體變量的應用舉例 187
9.2 結構體類型與結構體數(shù)組 188
9.2.1 結構體數(shù)組的定義 188
9.2.2 結構體數(shù)組的引用 188
9.2.3 結構體數(shù)組的初始化 188
9.2.4 結構體數(shù)組的應用舉例 189
9.3 結構體與指針 190
9.3.1 指向結構體變量的指針 190
9.3.2 指向結構體數(shù)組的指針 192
9.4 結構體與函數(shù) 193
9.4.1 結構體變量的成員作為函數(shù)參數(shù) 194
9.4.2 結構體變量作為函數(shù)參數(shù) 194
9.4.3 結構體數(shù)組作為函數(shù)參數(shù) 195
9.4.4 指向結構體的指針變量作為函數(shù)參數(shù) 196
9.4.5 綜合應用 197
9.5 動態(tài)內存分配與鏈表 201
9.5.1 動態(tài)內存函數(shù) 201
9.5.2 鏈表與指針 203
9.5.3 鏈表中結點的定義 204
9.5.4 鏈表的基本操作 204
9.6 共用體類型 210
9.6.1 共用體類型的定義 210
9.6.2 共用體變量的定義 211
9.6.3 共用體變量的引用和初始化 211
9.6.4 共用體類型應用實例 212
9.7 枚舉類型 213
9.7.1 枚舉類型的定義 213
9.7.2 枚舉變量的定義 214
9.7.3 枚舉變量的引用 214
9.7.4 枚舉類型應用實例 215
9.8 自定義類型 215
本章小結 216
習題9 216
第10章 位運算 219
10.1 位運算符概述 219
10.2 位運算符功能 220
10.2.1 與運算(&) 220
10.2.2 或運算(|) 221
10.2.3 異或運算(^) 222
10.2.4 取反運算(~) 222
10.2.5 移位運算 223
10.2.6 復合位運算賦值運算符 224
本章小結 224
習題10 224
第11章 文件 226
11.1 文件概述 226
11.2 文件指針的定義 226
11.3 文件的基本操作 227
11.3.1 文件打開函數(shù) 227
11.3.2 文件關閉函數(shù) 229
11.3.3 文件檢測函數(shù) 229
11.3.4 文件定位函數(shù) 229
11.3.5 字符讀寫函數(shù) 230
11.3.6 字符串讀寫函數(shù) 233
11.3.7 格式化讀寫函數(shù) 235
11.3.8 數(shù)據(jù)塊讀寫函數(shù) 237
本章小結 238
習題11 238
附錄A 常用字符與ASCII碼對照表 241
附錄B C語言運算符的優(yōu)先級與結合性 242
參考文獻 244