本書以計(jì)算機(jī)語言的學(xué)習(xí)與認(rèn)知過程為主線,以實(shí)踐為主導(dǎo),按照程序設(shè)計(jì)與編寫的思路進(jìn)行講解,盡量使用通俗易懂的語言描述,避免空洞難懂的理論。首先讓讀者對語言、C語言、程序設(shè)計(jì)、C語言程序設(shè)計(jì)進(jìn)行整體認(rèn)知;隨后為了養(yǎng)成良好的編程習(xí)慣,學(xué)習(xí)編程邏輯與規(guī)則;而后在實(shí)踐中積累程序設(shè)計(jì)的基本元素—數(shù)據(jù)類型、常量、變量、運(yùn)算符和表達(dá)式;在具備基本知識(shí)的過程中,逐漸在實(shí)踐中感受程序的編寫思路,并逐漸引入三大結(jié)構(gòu)—順序、分支和循環(huán);在能夠編寫一些小程序后,引入數(shù)組存儲(chǔ)批量數(shù)據(jù);為了實(shí)現(xiàn)程序的模塊化引入函數(shù);為了存儲(chǔ)復(fù)雜數(shù)據(jù)類型引入結(jié)構(gòu)體;為了優(yōu)化程序性能在實(shí)踐中引入指針;為了改進(jìn)程序運(yùn)行環(huán)境,提高程序效率,引入預(yù)處理;最終為了完成數(shù)據(jù)的永久存儲(chǔ),引入文件的操作。本書精選大量實(shí)例貫穿知識(shí)點(diǎn)的講解,并在每個(gè)章節(jié)末配有實(shí)訓(xùn)任務(wù)和精選習(xí)題,突出了C語言程序設(shè)計(jì)學(xué)習(xí)的實(shí)用性與可操作性。順應(yīng)“互聯(lián)網(wǎng)+”教材趨勢,本書提供了大量配套資源:微課視頻、源代碼、實(shí)訓(xùn)任務(wù)、PPT課件、課程大綱、題庫等。本書適合作為高職院校計(jì)算機(jī)相關(guān)專業(yè)的教材;適合作為高職院校理工科公共課“C語言程序設(shè)計(jì)”的教材;也可作為計(jì)算機(jī)編程愛好者的入門必備書籍;同時(shí)還可作為計(jì)算機(jī)培訓(xùn)機(jī)構(gòu)的培訓(xùn)教材。
王海賓,男,副教授。2009.7至今邢臺(tái)職業(yè)技術(shù)學(xué)院任教,自2006年以來長期從事軟件設(shè)計(jì)與開發(fā),每年都至少有一項(xiàng)企業(yè)實(shí)際項(xiàng)目,具有豐富的軟件設(shè)計(jì)與開發(fā)經(jīng)驗(yàn)。邢臺(tái)職業(yè)技術(shù)學(xué)院首屆(2010)觀摩教學(xué)比賽一等獎(jiǎng)(冠軍)。
第1章 認(rèn)知C語言程序設(shè)計(jì) 1
1.1 整體認(rèn)知 1
1.1.1 什么是語言? 1
1.1.2 什么是C語言? 1
1.1.3 什么是程序設(shè)計(jì)? 2
1.1.4 什么是C語言程序設(shè)計(jì)? 4
1.2 為什么學(xué)習(xí)C語言程序設(shè)計(jì) 4
1.2.1 C語言的發(fā)展與趨勢 4
1.2.2 C語言的重要性 4
1.3 環(huán)境搭建與實(shí)踐步驟 5
1.3.1 環(huán)境搭建 5
1.3.2 開發(fā)步驟 7
1.4 第一個(gè)C語言程序 9
1.5 程序案例 10
1.6 本章小結(jié) 11
實(shí)訓(xùn)任務(wù)一 環(huán)境搭建與第一個(gè)
C語言程序 12
習(xí)題1 13
第2章 C語言程序開發(fā)前的準(zhǔn)備 15
2.1 項(xiàng)目的開發(fā)流程 15
2.2 C語言程序的開發(fā)流程 16
2.3 C語言程序的結(jié)構(gòu) 17
2.4 程序編寫規(guī)范 19
2.5 程序與算法 20
2.6 流程圖 21
2.7 程序案例 22
2.8 本章小結(jié) 23
實(shí)訓(xùn)任務(wù)二 程序流程圖的繪制 23
習(xí)題2 24
第3章 語言基礎(chǔ)—數(shù)據(jù)與運(yùn)算 26
3.1 C語言程序的基本元素 26
3.2 標(biāo)識(shí)符與關(guān)鍵字 26
3.2.1 標(biāo)識(shí)符 27
3.2.2 關(guān)鍵字 28
3.3 數(shù)據(jù)類型 28
3.4 常量 29
3.4.1 直接常量 30
3.4.2 符號(hào)常量 32
3.5 變量 34
3.6 運(yùn)算符與表達(dá)式 35
3.6.1 運(yùn)算符基礎(chǔ) 35
3.6.2 算術(shù)運(yùn)算符與算術(shù)表達(dá)式 35
3.6.3 關(guān)系運(yùn)算符和關(guān)系表達(dá)式 37
3.6.4 邏輯運(yùn)算符和邏輯表達(dá)式 38
3.6.5 賦值運(yùn)算符和賦值表達(dá)式 39
3.6.6 位運(yùn)算符 40
3.6.7 其他運(yùn)算符 42
3.6.8 運(yùn)算符的優(yōu)先級(jí) 43
3.7 類型的轉(zhuǎn)換 43
3.8 程序案例 44
3.9 本章小結(jié) 47
實(shí)訓(xùn)任務(wù)三 程序中的數(shù)據(jù)與運(yùn)算 48
習(xí)題3 48
第4章 程序邏輯處理—三大流程
結(jié)構(gòu) 52
4.1 順序結(jié)構(gòu) 52
4.1.1 C語言程序中的語句 52
4.1.2 格式化數(shù)據(jù)的輸入輸出 53
4.1.3 字符數(shù)據(jù)的輸入輸出 58
4.2 分支結(jié)構(gòu) 60
4.2.1 單分支結(jié)構(gòu) 61
4.2.2 雙分支結(jié)構(gòu) 62
4.2.3 多分支結(jié)構(gòu) 65
4.3 循環(huán)結(jié)構(gòu) 71
4.3.1 for語句 72
4.3.2 while語句 76
4.3.3 do-while語句 78
4.3.4 三種循環(huán)語句的比較 79
4.3.5 break、continue、goto、return
語句 79
4.3.6 循環(huán)的嵌套 82
4.4 程序案例 84
4.5 本章小結(jié) 89
實(shí)訓(xùn)任務(wù)四 程序邏輯處理 90
習(xí)題4 91
第5章 批量數(shù)據(jù)的存儲(chǔ)—數(shù)組 100
5.1 數(shù)組的認(rèn)知 100
5.2 一維數(shù)組的定義、初始化與引用 101
5.2.1 一維數(shù)組的定義 101
5.2.2 一維數(shù)組的初始化 102
5.2.3 一維數(shù)組的引用 104
5.3 二維數(shù)組的定義、初始化與引用 105
5.3.1 二維數(shù)組的定義 105
5.3.2 二維數(shù)組的初始化 105
5.3.3 二維數(shù)組的引用 106
5.4 字符數(shù)組的定義、初始化與引用 108
5.4.1 字符數(shù)組的定義 108
5.4.2 字符數(shù)組的初始化 108
5.4.3 字符數(shù)組的引用 109
5.4.4 字符串和字符串結(jié)束標(biāo)志 110
5.4.5 字符數(shù)組的輸入輸出 110
5.4.6 字符串處理函數(shù) 112
5.5 程序案例 117
5.6 本章小結(jié) 121
實(shí)訓(xùn)任務(wù)五 數(shù)組的應(yīng)用 121
習(xí)題5 122
第6章 程序的模塊化—函數(shù) 127
6.1 函數(shù)的認(rèn)知 127
6.1.1 什么是函數(shù)? 127
6.1.2 為什么使用函數(shù)? 128
6.1.3 函數(shù)的分類 131
6.2 函數(shù)的定義、調(diào)用與聲明 132
6.2.1 函數(shù)的定義 132
6.2.2 函數(shù)的調(diào)用 133
6.2.3 函數(shù)的參數(shù)和返回值 134
6.2.4 函數(shù)的聲明 138
6.3 函數(shù)的嵌套 140
6.4 函數(shù)的遞歸 141
6.5 數(shù)組作為函數(shù)的參數(shù) 142
6.5.1 數(shù)組元素作為函數(shù)實(shí)參 143
6.5.2 數(shù)組名作為函數(shù)參數(shù) 144
6.6 變量的作用域 145
6.6.1 局部變量 145
6.6.2 全局變量 147
6.6 程序案例 148
6.8 本章小結(jié) 152
實(shí)訓(xùn)任務(wù)六 函數(shù)的應(yīng)用 153
習(xí)題6 154
第7章 程序性能優(yōu)化—指針 160
7.1 什么是指針? 160
7.2 為什么要使用指針? 161
7.3 指針變量的使用 161
7.3.1 指針變量的聲明 161
7.3.2 指針變量的賦值 162
7.3.3 指針變量的引用 162
7.3.4 指針的加減運(yùn)算 165
7.4 指針在數(shù)組中的應(yīng)用 165
7.4.1 使用指針引用一維數(shù)組的
元素 166
7.4.2 使用指針引用二維數(shù)組的
元素 167
7.5 字符型指針引用字符串 169
7.6 指針數(shù)組和指向指針的指針 170
7.6.1 指針數(shù)組的概念 170
7.6.2 指向指針的指針 172
7.7 指針在函數(shù)中的應(yīng)用 173
7.7.1 使用指針做函數(shù)參數(shù) 173
7.7.2 用指針做函數(shù)的返回值 175
7.7.3 使用指針調(diào)用函數(shù) 176
7.8 程序案例 179
7.9 本章小結(jié) 182
實(shí)訓(xùn)任務(wù)七 指針的使用,字符串
的處理 183
習(xí)題7 184
第8章 復(fù)雜數(shù)據(jù)類型—結(jié)構(gòu)體與
共用體 190
8.1 結(jié)構(gòu)體的認(rèn)知 190
8.2 結(jié)構(gòu)體變量的定義、初始化與
引用 191
8.2.1 結(jié)構(gòu)體變量的定義 191
8.2.2 結(jié)構(gòu)體變量的初始化 193
8.2.3 結(jié)構(gòu)體變量的引用 194
8.3 結(jié)構(gòu)體數(shù)組 196
8.3.1 結(jié)構(gòu)體數(shù)組的定義 196
8.3.2 結(jié)構(gòu)體數(shù)組的初始化 197
8.3.3 結(jié)構(gòu)體數(shù)組的引用 197
8.4 結(jié)構(gòu)體指針變量 199
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 本章小結(jié) 205
實(shí)訓(xùn)任務(wù)八 結(jié)構(gòu)體和共用體 205
習(xí)題8 206
第9章 優(yōu)化程序設(shè)計(jì)—預(yù)處理 209
9.1 宏定義 209
9.1.1 不帶參數(shù)的宏定義 209
9.1.2 帶參數(shù)的宏定義 212
9.2 文件包含 213
9.3 條件編譯 215
9.4 程序案例 217
9.5 本章小結(jié) 219
實(shí)訓(xùn)任務(wù)九 預(yù)處理命令的使用 220
習(xí)題9 220
第10章 數(shù)據(jù)永久存儲(chǔ)—文件操作 224
10.1 文件的認(rèn)知 224
10.1.1 C語言中的數(shù)據(jù)流 225
10.1.2 文件指針 225
10.2 文件的打開與關(guān)閉 226
10.2.1 文件的打開 226
10.2.2 文件的關(guān)閉 228
10.3 文件的順序讀寫 228
10.3.1 字符數(shù)據(jù)的讀寫 228
10.3.2 字符串?dāng)?shù)據(jù)的讀寫 232
10.3.3 二進(jìn)制數(shù)據(jù)的讀寫 234
10.3.4 數(shù)據(jù)的格式化讀寫 236
10.4 文件的隨機(jī)讀寫 238
10.5 文件讀寫的出錯(cuò)檢測 240
10.6 程序案例 241
10.7 本章小結(jié) 243
實(shí)訓(xùn)任務(wù)十 文本的相關(guān)操作 244
習(xí)題10 245
附錄A 標(biāo)準(zhǔn)字符與ASCII代碼對照表 250
附錄B C語言常用庫函數(shù) 251
參考文獻(xiàn) 255