本書在第1版的基礎上對教材內(nèi)容進行了修正,增加了全國計算機等級考試二級C語言模塊相關內(nèi)容,升級了在線微課視頻,搭建了在線開發(fā)環(huán)境。本書以計算機語言的學習與認知過程為主線,以實踐為主導,按照程序設計與編寫的思路進行講解,盡量使用通俗易懂的語言描述,避免空洞難懂的理論。首先,讓讀者對語言、C語言、程序設計、C語言程序設計有整體認知;然后,學習編程邏輯與規(guī)則,讓讀者養(yǎng)成良好的編程習慣;而后在實踐中積累程序設計的基本元素——數(shù)據(jù)類型、常量、變量、運算符和表達式等;最后,引入三大流程結(jié)構(gòu)——順序結(jié)構(gòu)、分支結(jié)構(gòu)和循環(huán)結(jié)構(gòu),讓讀者在學習基本知識的過程中,逐漸感受程序的編寫思路。在讀者能夠編寫一些小程序之后,在實踐中引入數(shù)組存儲批量數(shù)據(jù);為了實現(xiàn)程序的模塊化,引入函數(shù);為了存儲復雜的數(shù)據(jù)類型,引入結(jié)構(gòu)體;為了優(yōu)化程序性能,引入指針;為了改進程序運行環(huán)境,提高程序效率,引入預處理;為了完成數(shù)據(jù)的永久存儲,引入文件的操作。本書精選大量實例貫穿知識點的講解,每個章節(jié)精選全國計算機等級考試二級C語言真題,并配有實訓任務和精選習題(掃描下載),突出了C語言程序設計學習的實操性。順應“互聯(lián)網(wǎng)+”教材趨勢,本書提供了豐富的配套資源,如微課視頻、源代碼、實訓任務、PPT課件、課程大綱、題庫等。此外,本書還提供了在線實驗平臺,支持使用手持設備進行程序開發(fā)。本書不僅可以作為職教本科和高職?朴嬎銠C相關專業(yè)的教材,而且可以作為職教本科和高職?评砉ゎ惞舱n程“C語言程序設計”的教材。此外,還可以作為計算機培訓機構(gòu)的培訓教材,是計算機編程愛好者的入門必備書籍。
王海賓,男,副教授。2009.7至今邢臺職業(yè)技術學院任教,自2006年以來長期從事軟件設計與開發(fā),每年都至少有一項企業(yè)實際項目,具有豐富的軟件設計與開發(fā)經(jīng)驗。邢臺職業(yè)技術學院首屆(2010)觀摩教學比賽一等獎(冠軍)。現(xiàn)任信息工程系副主任,兼任信息商務教研室主任,兼任信息工程系教工支部書記,移動互聯(lián)網(wǎng)應用技術專業(yè)專業(yè)帶頭人。
第1章 認知C語言程序設計 | 1
1.1 整體認知 | 1
1.1.1 什么是語言 | 1
1.1.2 什么是C語言 | 2
1.1.3 什么是程序設計 | 2
1.1.4 什么是C語言程序設計 | 4
1.2 為什么學習C語言程序設計 | 4
1.2.1 C語言的發(fā)展與趨勢 | 4
1.2.2 C語言的重要性 | 4
1.3 環(huán)境搭建與開發(fā)步驟 | 5
1.3.1 環(huán)境搭建 | 5
1.3.2 開發(fā)步驟 | 7
1.4 第一個C語言程序 | 9
1.5 程序案例 | 10
1.6 二級真題 | 11
1.7 本章小結(jié) | 12
實訓任務1 環(huán)境搭建與第一個C語言程序 | 12
習題1 | 13
第2章 C語言程序開發(fā)前的準備 | 14
2.1 項目的開發(fā)流程 | 14
2.2 C語言程序的開發(fā)流程 | 15
2.3 C語言程序的結(jié)構(gòu) | 16
2.4 C語言程序的編寫規(guī)范 | 18
2.5 程序與算法 | 19
2.6 流程圖 | 20
2.7 程序案例 | 21
2.8 二級真題 | 23
2.9 本章小結(jié) | 24
實訓任務2 程序流程圖的繪制 | 24
習題2 | 25
第3章 語言基礎——數(shù)據(jù)與運算 | 26
3.1 C語言程序的基本元素 | 26
3.2 標識符與關鍵字 | 26
3.2.1 標識符 | 27
3.2.2 關鍵字 | 28
3.3 數(shù)據(jù)類型 | 28
3.4 常量 | 30
3.4.1 直接常量 | 30
3.4.2 符號常量 | 33
3.5 變量 | 35
3.6 運算符與表達式 | 35
3.6.1 運算符基礎 | 36
3.6.2 算術運算符和算術表達式 | 36
3.6.3 關系運算符和關系表達式 | 38
3.6.4 邏輯運算符和邏輯表達式 | 39
3.6.5 賦值運算符和賦值表達式 | 41
3.6.6 位運算符 | 41
3.6.7 其他運算符 | 43
3.6.8 運算符的優(yōu)先級 | 45
3.7 數(shù)據(jù)類型的轉(zhuǎn)換 | 46
3.8 程序案例 | 47
3.9 二級真題 | 49
3.10 本章小結(jié) | 51
實訓任務3 程序中的數(shù)據(jù)與運算 | 51
習題3 | 52
第4章 程序邏輯處理三大流程結(jié)構(gòu) | 53
4.1 順序結(jié)構(gòu) | 53
4.1.1 C語言程序中的語句 | 53
4.1.2 格式化數(shù)據(jù)的輸入/輸出 | 54
4.1.3 字符數(shù)據(jù)的輸入/輸出 | 60
4.2 分支結(jié)構(gòu) | 62
4.2.1 單分支結(jié)構(gòu) | 63
4.2.2 雙分支結(jié)構(gòu) | 64
4.2.3 多分支結(jié)構(gòu) | 67
4.3 循環(huán)結(jié)構(gòu) | 74
4.3.1 for語句 | 75
4.3.2 while語句 | 80
4.3.3 do-while語句 | 81
4.3.4 3種循環(huán)語句的比較 | 82
4.3.5 break、continue、goto、return語句 | 83
4.3.6 循環(huán)的嵌套 | 86
4.4 程序案例 | 87
4.5 二級真題 | 93
4.6 本章小結(jié) | 95
實訓任務4 程序邏輯處理 | 95
習題4 | 96
第5章 批量數(shù)據(jù)的存儲——數(shù)組 | 97
5.1 數(shù)組的認知 | 97
5.2 一維數(shù)組的定義、初始化與引用 | 98
5.2.1 一維數(shù)組的定義 | 98
5.2.2 一維數(shù)組的初始化 | 99
5.2.3 一維數(shù)組的引用 | 101
5.3 二維數(shù)組的定義、初始化與引用 | 102
5.3.1 二維數(shù)組的定義 | 102
5.3.2 二維數(shù)組的初始化 | 103
5.3.3 二維數(shù)組的引用 | 104
5.4 字符數(shù)組的定義、初始化與引用 | 106
5.4.1 字符數(shù)組的定義 | 106
5.4.2 字符數(shù)組的初始化 | 107
5.4.3 字符數(shù)組的引用 | 107
5.4.4 字符串和字符串結(jié)束標志 | 108
5.4.5 字符數(shù)組的輸入/輸出 | 109
5.4.6 字符串處理函數(shù) | 111
5.5 程序案例 | 116
5.6 二級真題 | 120
5.7 本章小結(jié) | 123
實訓任務5 數(shù)組的應用 | 123
習題5 | 124
第6章 程序的模塊化——函數(shù) | 125
6.1 函數(shù)的認知 | 125
6.1.1 什么是函數(shù) | 125
6.1.2 為什么使用函數(shù) | 126
6.1.3 函數(shù)的分類 | 129
6.2 函數(shù)的定義、調(diào)用與聲明 | 130
6.2.1 函數(shù)的定義 | 130
6.2.2 函數(shù)的調(diào)用 | 132
6.2.3 函數(shù)的參數(shù)和返回值 | 133
6.2.4 函數(shù)的聲明 | 137
6.3 函數(shù)的嵌套 | 139
6.4 函數(shù)的遞歸 | 140
6.5 數(shù)組作為函數(shù)的參數(shù) | 142
6.5.1 數(shù)組元素作為函數(shù)實參 | 142
6.5.2 數(shù)組名作為函數(shù)參數(shù) | 143
6.6 變量的作用域 | 145
6.6.1 局部變量 | 145
6.6.2 全局變量 | 146
6.7 程序案例 | 148
6.8 二級真題 | 152
6.9 本章小結(jié) | 154
實訓任務6 函數(shù)的應用 | 154
習題6 | 155
第7章 程序性能優(yōu)化——指針 | 156
7.1 什么是指針 | 156
7.2 為什么要使用指針 | 157
7.3 指針變量的使用 | 157
7.3.1 指針變量的聲明 | 157
7.3.2 指針變量的賦值 | 158
7.3.3 指針變量的引用 | 159
7.3.4 指針的加減運算 | 161
7.4 指針在數(shù)組中的應用 | 162
7.4.1 使用指針引用一維數(shù)組的元素 | 162
7.4.2 使用指針引用二維數(shù)組的元素 | 164
7.5 字符型指針引用字符串 | 166
7.6 指針數(shù)組和指向指針的指針 | 167
7.6.1 指針數(shù)組的概念 | 167
7.6.2 指向指針的指針 | 169
7.7 指針在函數(shù)中的應用 | 170
7.7.1 使用指針作為函數(shù)參數(shù) | 170
7.7.2 使用指針作為函數(shù)的返回值 | 172
7.7.3 使用指針調(diào)用函數(shù) | 174
7.8 程序案例 | 177
7.9 二級真題 | 180
7.10 本章小結(jié) | 187
實訓任務7 指針的使用和字符串的處理 | 187
習題7 | 188
第8章 復雜數(shù)據(jù)類型——結(jié)構(gòu)體與共用體 | 189
8.1 結(jié)構(gòu)體的認知 | 189
8.2 結(jié)構(gòu)體變量的定義、初始化與引用 | 190
8.2.1 結(jié)構(gòu)體變量的定義 | 190
8.2.2 結(jié)構(gòu)體變量的初始化 | 192
8.2.3 結(jié)構(gòu)體變量的引用 | 193
8.3 結(jié)構(gòu)體數(shù)組 | 195
8.3.1 結(jié)構(gòu)體數(shù)組的定義 | 195
8.3.2 結(jié)構(gòu)體數(shù)組的初始化 | 196
8.3.3 結(jié)構(gòu)體數(shù)組的引用 | 197
8.4 結(jié)構(gòu)體指針變量 | 198
8.4.1 指向結(jié)構(gòu)體變量的指針 | 199
8.4.2 指向結(jié)構(gòu)體數(shù)組的指針 | 200
8.5 共用體 | 201
8.5.1 共用體類型的定義 | 201
8.5.2 共用體變量的定義 | 201
8.5.3 共用體變量的初始化與引用 | 202
8.6 程序案例 | 203
8.7 二級真題 | 205
8.8 本章小結(jié) | 207
實訓任務8 結(jié)構(gòu)體和共用體 | 207
習題8 | 208
第9章 程序設計優(yōu)化——預處理 | 209
9.1 宏定義 | 209
9.1.1 不帶參數(shù)的宏定義 | 209
9.1.2 帶參數(shù)的宏定義 | 212
9.2 文件包含 | 214
9.3 條件編譯 | 216
9.4 程序案例 | 218
9.5 二級真題 | 220
9.6 本章小結(jié) | 221
實訓任務9 預處理命令的使用 | 222
習題9 | 222
第10章 數(shù)據(jù)永久存儲—文件操作 | 223
10.1 文件的認知 | 223
10.1.1 C語言中的數(shù)據(jù)流 | 224
10.1.2 文件指針 | 225
10.2 文件的打開與關閉 | 225
10.2.1 文件的打開 | 225
10.2.2 文件的關閉 | 227
10.3 文件的順序讀/寫 | 228
10.3.1 字符數(shù)據(jù)的讀/寫 | 228
10.3.2 字符串數(shù)據(jù)的讀/寫 | 231
10.3.3 二進制數(shù)據(jù)的讀/寫 | 234
10.3.4 數(shù)據(jù)的格式化讀/寫 | 237
10.4 文件的隨機讀/寫 | 238
10.5 文件讀/寫的出錯檢測 | 241
10.6 程序案例 | 241
10.7 二級真題 | 244
10.8 本章小結(jié) | 245
實訓任務10 文本的相關操作 | 245
習題10 | 246
附錄A 標準字符與ASCII值對照表 | 247
附錄B C語言常用庫函數(shù) | 248
參 考 文 獻 | 251