本書是國家職業(yè)教育微電子專業(yè)資源庫課程、江蘇省在線精品課程“C語言程序設計”的配套教材。本書以職業(yè)能力的培養(yǎng)為出發(fā)點,突出“以學習者為中心”的教育理念,從C語言的基本概念、基本知識、基本技能以及基本的編程思想入手,以大量實例來加深讀者對知識的理解和運用,培養(yǎng)具有科技報國情懷、工匠精神、創(chuàng)新能力的新時代程序設計者。
全書分為3篇:基礎篇、提高篇、應用篇。每篇均設置了項目實戰(zhàn)環(huán)節(jié),用三個典型項目“簡易計算器程序設計”“簡易學生成績管理系統(tǒng)設計”“通訊錄程序設計”培養(yǎng)學生的工程實踐能力。為了方便教學,本書配有微課視頻、習題答案等數(shù)字化資源,掃描二維碼即可查看;本書配套電子課件與源代碼,登錄化工教育網(wǎng)站(www.cipedu.com.cn)即可免費下載使用。
本書可以作為高等職業(yè)院校電子與信息大類各專業(yè)C語言程序設計課程的教材,也可作為編程愛好者的參考用書。
第1篇 基礎篇
單元一 C 語言概述2
1.1 C 語言的發(fā)展史 3
1.2 C 程序的簡單實例 4
1.3 C 程序的開發(fā)過程 7
1.4 Microsoft Visual C++ 2010 集成開發(fā)環(huán)境 9
1.4.1 Visual C++ 2010 的安裝 9
1.4.2 用Visual C++ 2010 環(huán)境運行C 程序 12
習題 17
實驗一 C 程序的運行環(huán)境和運行過程 19
單元二 C 語言的數(shù)據(jù)類型、運算符與表達式23
2.1 C 語言的數(shù)據(jù)類型 24
2.1.1 常量與變量 24
2.1.2 整型數(shù)據(jù) 26
2.1.3 實型數(shù)據(jù) 28
2.1.4 字符型數(shù)據(jù) 29
2.1.5 符號常量與常變量 32
2.1.6 C99標準中新增的變量類型 33
2.2 運算符與表達式 34
2.2.1 算術運算符與算術表達式 34
2.2.2 自增與自減運算符 35
2.2.3 賦值運算符與賦值表達式 36
2.2.4 逗號運算符與逗號表達式 37
2.2.5 位運算符 38
2.2.6 不同數(shù)據(jù)類型間的轉換 40
習題 43
實驗二 數(shù)據(jù)類型、運算符與表達式應用 47
單元三 順序結構的程序設計51
3.1 程序設計基礎知識 52
3.1.1 算法 52
3.1.2 程序的三種基本結構 53
3.2 C 語句分類 54
3.3 數(shù)據(jù)的輸入與輸出 55
3.3.1 字符數(shù)據(jù)的輸入與輸出 55
3.3.2 格式輸入與輸出 56
3.4 順序結構程序設計舉例 62
習題 63
實驗三 順序結構程序設計 67
單元四 選擇結構的程序設計69
4.1 關系運算符和關系表達式 70
4.1.1 關系運算符 70
4.1.2 關系表達式 70
4.2 邏輯運算符和邏輯表達式 71
4.2.1 邏輯運算符 71
4.2.2 邏輯表達式 72
4.3 if 語句 73
4.3.1 if 語句的三種形式 73
4.3.2 if 語句的嵌套 78
4.4 條件運算符和條件表達式 80
4.5 switch 語句 80
4.6 選擇結構程序設計舉例 84
習題 85
實驗四 選擇結構程序設計 93
單元五 循環(huán)結構的程序設計97
5.1 while 語句 98
5.2 do-while 語句 100
5.3 for 語句 101
5.4 如何選擇循環(huán) 103
5.5 循環(huán)的嵌套 104
5.6 輔助控制語句break 與continue 105
5.6.1 break 語句 106
5.6.2 continue 語句 107
5.7 循環(huán)結構程序設計舉例 109
習題 112
實驗五 循環(huán)結構程序設計 119
【項目實戰(zhàn)】簡易計算器程序設計123
第2篇 提高篇
單元六 函數(shù)128
6.1 函數(shù)概述 129
6.1.1 函數(shù)的含義 129
6.1.2 函數(shù)的分類 129
6.2 函數(shù)的定義和調(diào)用 130
6.2.1 函數(shù)定義 130
6.2.2 函數(shù)調(diào)用 131
6.2.3 函數(shù)聲明 133
6.3 函數(shù)的嵌套調(diào)用和遞歸調(diào)用 134
6.3.1 函數(shù)的嵌套調(diào)用 134
6.3.2 函數(shù)的遞歸調(diào)用 135
6.4 局部變量和全局變量 137
6.4.1 局部變量 137
6.4.2 全局變量 138
6.5 變量的存儲方式和生存期 139
6.6 編譯預處理 140
6.6.1 文件包含命令 141
6.6.2 宏定義命令 141
6.6.3 條件編譯命令 143
習題 145
實驗六 用函數(shù)實現(xiàn)模塊化程序設計 151
單元七 數(shù)組155
7.1 一維數(shù)組 156
7.1.1 一維數(shù)組的定義 156
7.1.2 一維數(shù)組元素的引用 157
7.1.3 一維數(shù)組的初始化 158
7.1.4 一維數(shù)組的應用舉例 159
7.2 二維數(shù)組 161
7.2.1 二維數(shù)組的定義 161
7.2.2 二維數(shù)組元素的引用 163
7.2.3 二維數(shù)組的初始化 163
7.2.4 二維數(shù)組的應用舉例 164
7.3 字符數(shù)組 166
7.3.1 字符數(shù)組的定義 166
7.3.2 字符數(shù)組的初始化 166
7.3.3 字符串的輸入/輸出 167
7.3.4 常用字符串處理函數(shù) 169
7.3.5 字符數(shù)組的應用舉例 171
7.4 數(shù)組作為函數(shù)參數(shù) 173
7.4.1 數(shù)組元素作為函數(shù)的參數(shù) 173
7.4.2 數(shù)組名作為函數(shù)的參數(shù) 174
習題 175
實驗七 用數(shù)組實現(xiàn)批量數(shù)據(jù)處理 183
單元八 指針187
8.1 指針與指針變量 188
8.1.1 指針與指針變量的概念 188
8.1.2 指針變量的定義和賦值 188
8.1.3 指針變量的引用 189
8.1.4 指針變量作為函數(shù)參數(shù) 191
8.2 指針與數(shù)組 192
8.2.1 用指針訪問一維數(shù)組 192
8.2.2 用指針訪問二維數(shù)組 195
8.2.3 指向數(shù)組的指針作為函數(shù)參數(shù) 198
8.3 指針與字符串 202
8.3.1 用指針訪問字符串 202
8.3.2 字符串在函數(shù)間的傳遞方式 204
8.4 返回指針值的函數(shù) 204
8.5 指針數(shù)組與指向指針的指針 206
8.5.1 指針數(shù)組 206
8.5.2 指向指針的指針 209
8.6 指向函數(shù)的指針 211
習題 213
實驗八 利用指針進行程序設計 219
【項目實戰(zhàn)】簡易學生成績管理系統(tǒng)設計223
第3篇 應用篇
單元九 用戶自定義的數(shù)據(jù)類型232
9.1 結構體 233
9.1.1 結構體類型 233
9.1.2 結構體變量 233
9.1.3 結構體變量的引用 234
9.1.4 結構體變量的初始化 236
9.1.5 結構體數(shù)組 237
9.1.6 結構體類型的數(shù)據(jù)在函數(shù)間的傳遞 240
9.2 共用體 242
9.2.1 共用體的定義 242
9.2.2 共用體變量的引用方法 243
9.2.3 共用體變量的賦值 243
9.2.4 共用體的應用 243
9.3 枚舉類型 245
9.4 使用typedef 定義新類型名 246
9.5 鏈表 247
9.5.1 鏈表概述 247
9.5.2 內(nèi)存動態(tài)分配函數(shù) 249
9.5.3 鏈表的建立 250
9.5.4 鏈表的輸出 251
9.5.5 鏈表的查找 252
9.5.6 鏈表的插入 252
9.5.7 鏈表的刪除 254
習題 256
實驗九 結構體的應用 261
單元十 文件265
10.1 文件概述 266
10.1.1 數(shù)據(jù)流 266
10.1.2 緩沖區(qū) 266
10.1.3 文件類型 267
10.2 文件的打開與關閉 267
10.2.1 FILE 結構體 267
10.2.2 fopen ( ) 和fclose ( )函數(shù) 268
10.3 文件的順序讀寫 270
10.3.1 fputc ( ) 和fgetc ( )函數(shù) 270
10.3.2 fgets ( ) 和fputs ( )函數(shù) 272
10.3.3 fprintf ( ) 和fscanf ( )函數(shù) 274
10.3.4 fwrite ( ) 和fread ( )函數(shù) 276
10.4 文件的隨機讀寫 278
10.4.1 rewind ( )函數(shù) 278
10.4.2 fseek ( )函數(shù) 279
10.4.3 ftell ( )函數(shù) 281
10.5 文件的檢測函數(shù) 281
習題 283
實驗十 文件處理基礎 289
【項目實戰(zhàn)】通訊錄程序設計291
附錄
附錄1 常用字符與ASCII 碼對照表 297
附錄2 C 語言的關鍵字 298
附錄3 C 語言運算符的優(yōu)先級與結合方向 298
附錄4 C 語言的庫函數(shù) 299
參考文獻 304