本書根據(jù)國家示范建設(shè)課程改革成果及C語言程序設(shè)計(jì)課程教學(xué)要求進(jìn)行編寫。全書內(nèi)容分為12章,系統(tǒng)地講解編程與C語言基礎(chǔ)、基本數(shù)據(jù)類型、運(yùn)算符與表達(dá)式、順序結(jié)構(gòu)程序設(shè)計(jì)、選擇結(jié)構(gòu)程序設(shè)計(jì)、循環(huán)結(jié)構(gòu)程序設(shè)計(jì)、數(shù)組、函數(shù)、指針、結(jié)構(gòu)體、聯(lián)合體與枚舉、編譯預(yù)處理、文件處理等知識。書中設(shè)有多個實(shí)例,同時在章節(jié)中穿插3個階段性綜合訓(xùn)練,每經(jīng)過一個階段的學(xué)習(xí)就完成一個綜合性的應(yīng)用設(shè)計(jì),在應(yīng)用設(shè)計(jì)中強(qiáng)化理論知識,將理論和實(shí)踐緊密結(jié)合。在內(nèi)容安排上由淺入深,注重例題的可操作性,融入微信掃碼實(shí)例的信息化手段,并通過讀一讀、練一練的形式幫助學(xué)生掌握C語言的程序設(shè)計(jì)方法和技巧,最后根據(jù)自測題和上機(jī)訓(xùn)練題進(jìn)行學(xué)習(xí)檢測和操作練習(xí)。 本書為高等職業(yè)本?圃盒O鄳(yīng)課程的教材,也可作為開放大學(xué)、成人教育、自學(xué)考試、中職學(xué)校和培訓(xùn)班的教材,以及編程愛好者自學(xué)C語言的參考書。 本書提供免費(fèi)的電子教學(xué)課件、習(xí)題參考答案、程序代碼,詳見前言。
高玉玲 副教授,畢業(yè)后在南京信息職業(yè)技術(shù)學(xué)院從事十余年的C語言編程技術(shù)等專業(yè)課程的教學(xué)與研究工作,曾到企業(yè)專職從事編程技術(shù)與培訓(xùn)工作,具有豐富的教學(xué)與實(shí)踐經(jīng)驗(yàn)
第1章 編程與C語言基礎(chǔ) 1
教學(xué)導(dǎo)航 1
知識分布網(wǎng)絡(luò) 1
1.1 為什么需要編程 2
1.1.1 計(jì)算機(jī)的運(yùn)行機(jī)制 2
1.1.2 編程語言 2
1.1.3 C語言特點(diǎn) 3
1.2 C語言程序的基本組成 4
1.2.1 表達(dá)式 4
1.2.2 語句 4
1.2.3 函數(shù) 5
1.3 C語言程序開發(fā)流程 8
1.4 Visual C++ 6.0集成開發(fā)環(huán)境 9
1.5 動手實(shí)戰(zhàn) 12
1.5.1 編寫你的第一個C語言源程序 12
1.5.2 上機(jī)調(diào)試你的第一個程序 14
1.5.3 C語言編譯時常見的錯誤提示和排除 15
自測題1 17
上機(jī)訓(xùn)練題1 18
第2章 基本數(shù)據(jù)類型 20
教學(xué)導(dǎo)航 20
知識分布網(wǎng)絡(luò) 20
2.1 關(guān)鍵字與標(biāo)識符 21
2.1.1 關(guān)鍵字 21
2.1.2 標(biāo)識符 21
2.2 數(shù)據(jù)類型的分類 22
2.3 常量 22
2.3.1 直接常量 22
2.3.2 符號常量 24
2.4 變量 26
2.4.1 變量的定義 26
2.4.2 變量的初始化 26
2.4.3 整型變量 26
2.4.4 實(shí)型變量 27
2.4.5 字符變量 28
2.5 數(shù)據(jù)類型的轉(zhuǎn)換 29
2.5.1 自動轉(zhuǎn)換 29
2.5.2 強(qiáng)制轉(zhuǎn)換 30
2.6 基本數(shù)據(jù)類型常見錯誤及解決方法 30
自測題2 32
上機(jī)訓(xùn)練題2 34
第3章 運(yùn)算符與表達(dá)式 35
教學(xué)導(dǎo)航 35
知識分布網(wǎng)絡(luò) 35
3.1 運(yùn)算符 36
3.2 算術(shù)運(yùn)算符與表達(dá)式 36
3.2.1 基本算數(shù)運(yùn)算符 37
3.2.2 自增、自減運(yùn)算符 37
3.2.3 算數(shù)表達(dá)式 37
3.3 賦值運(yùn)算符與表達(dá)式 38
3.3.1 賦值運(yùn)算符 38
3.3.2 復(fù)合賦值運(yùn)算符 39
3.3.3 賦值表達(dá)式 39
3.4 關(guān)系運(yùn)算符與表達(dá)式 40
3.4.1 關(guān)系運(yùn)算符 40
3.4.2 關(guān)系表達(dá)式 40
3.5 邏輯運(yùn)算符與表達(dá)式 41
3.5.1 邏輯運(yùn)算符 41
3.5.2 邏輯表達(dá)式 42
3.6 逗號運(yùn)算符與表達(dá)式 43
3.6.1 逗號運(yùn)算符 43
3.6.2 逗號表達(dá)式 43
3.7 條件運(yùn)算符與表達(dá)式 44
3.8 運(yùn)算符與表達(dá)式常見錯誤及解決方法 45
自測題3 47
上機(jī)訓(xùn)練題3 49
第4章 順序結(jié)構(gòu)程序設(shè)計(jì) 50
教學(xué)導(dǎo)航 50
知識分布網(wǎng)絡(luò) 50
4.1 結(jié)構(gòu)化程序設(shè)計(jì) 51
4.1.1 算法 51
4.1.2 程序的三種基本結(jié)構(gòu) 52
4.2 數(shù)據(jù)的輸入/輸出 52
4.2.1 格式輸出函數(shù) 52
4.2.2 格式輸入函數(shù) 54
4.2.3 字符輸出函數(shù) 56
4.2.4 字符輸入函數(shù) 56
4.3 順序結(jié)構(gòu) 58
4.3.1 順序結(jié)構(gòu)中的常用語句 59
4.3.2 順序結(jié)構(gòu)程序組成要素 60
4.4 順序結(jié)構(gòu)常見錯誤及解決方案 62
自測題4 64
上機(jī)訓(xùn)練題4 66
第5章 選擇結(jié)構(gòu)程序設(shè)計(jì) 67
教學(xué)導(dǎo)航 67
知識分布網(wǎng)絡(luò) 67
5.1 選擇結(jié)構(gòu)的組成 68
5.1.1 選擇結(jié)構(gòu)中常用語句和運(yùn)算符 68
5.1.2 選擇條件的描述 68
5.2 if語句 69
5.2.1 單分支的if語句 69
5.2.2 雙分支的if語句 70
5.2.3 多分支的if語句 70
5.2.4 if語句的嵌套 71
5.3 條件運(yùn)算符使用技巧 74
5.4 switch語句 75
5.4.1 switch語句的格式及執(zhí)行過程 75
5.4.2 switch語句使用時的注意事項(xiàng) 76
5.5 選擇結(jié)構(gòu)常見錯誤及解決方法 78
自測題5 79
上機(jī)訓(xùn)練題5 82
第6章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 84
教學(xué)導(dǎo)航 84
知識分布網(wǎng)絡(luò) 84
6.1 循環(huán)結(jié)構(gòu)的組成與常用語句 85
6.2 while語句 85
6.2.1 while語句的一般形式 85
6.2.2 while語句的執(zhí)行過程 86
6.2.3 while語句使用時的注意事項(xiàng) 86
6.3 do while語句 88
6.3.1 do while語句的一般形式 88
6.3.2 do while語句的執(zhí)行過程 89
6.3.3 do while語句使用時的注意事項(xiàng) 89
6.3.4 do while語句與while語句的區(qū)別 89
6.4 for語句 91
6.4.1 for語句的一般形式 91
6.4.2 for語句的執(zhí)行過程 91
6.4.3 for語句的變化形式 92
6.4.4 for語句使用時的注意事項(xiàng) 93
6.5 跳轉(zhuǎn)語句 94
6.5.1 break語句 95
6.5.2 continue語句 95
6.5.3 goto語句 96
6.6 循環(huán)嵌套 98
6.7 循環(huán)結(jié)構(gòu)常見錯誤及解決方法 101
自測題6 103
上機(jī)訓(xùn)練題6 106
階段性綜合訓(xùn)練1 打印ASCII碼表 107
第7章 數(shù)組 110
教學(xué)導(dǎo)航 110
知識分布網(wǎng)絡(luò) 110
7.1 數(shù)組的概念與分類 111
7.2 一維數(shù)組 111
7.2.1 一維數(shù)組的定義 112
7.2.2 一維數(shù)組的存儲 113
7.2.3 一維數(shù)組元素的引用 113
7.2.4 一維數(shù)組的初始化 113
7.3 二維數(shù)組 115
7.3.1 二維數(shù)組的定義 115
7.3.2 二維數(shù)組的存儲 116
7.3.3 二維數(shù)組元素的引用 116
7.3.4 二維數(shù)組的初始化 117
7.4 字符數(shù)組與字符串 118
7.4.1 字符數(shù)組的定義 118
7.4.2 字符數(shù)組的初始化 118
7.4.3 字符數(shù)組的引用 119
7.4.4 字符串和結(jié)束標(biāo)志 120
7.4.5 字符串的輸入與輸出 120
7.4.6 常見的字符串處理函數(shù) 123
7.5 數(shù)組常見錯誤及解決方法 126
自測題7 128
上機(jī)訓(xùn)練題7 132
第8章 函數(shù) 134
教學(xué)導(dǎo)航 134
知識分布網(wǎng)絡(luò) 134
8.1 模塊化程序設(shè)計(jì)與函數(shù) 135
8.1.1 模塊化程序設(shè)計(jì)的概念 135
8.1.2 函數(shù)分類 135
8.2 函數(shù)的定義和返回值 136
8.2.1 函數(shù)的定義 136
8.2.2 函數(shù)的返回值 137
8.3 函數(shù)的調(diào)用 138
8.3.1 函數(shù)調(diào)用的一般形式 139
8.3.2 函數(shù)調(diào)用的方式 139
8.3.3 被調(diào)函數(shù)的聲明 140
8.4 函數(shù)的參數(shù)傳遞 142
8.4.1 形式參數(shù)與實(shí)際參數(shù) 142
8.4.2 值傳遞 142
8.4.3 地址傳遞 143
8.5 函數(shù)的嵌套與遞歸 145
8.5.1 函數(shù)的嵌套調(diào)用 145
8.5.2 函數(shù)的遞歸調(diào)用 146
8.6 變量的作用域 149
8.6.1 局部變量 149
8.6.2 全局變量 150
8.7 變量的生存期 153
8.7.1 靜態(tài)存儲變量 153
8.7.2 動態(tài)存儲變量 153
8.8 函數(shù)的作用范圍 157
8.8.1 內(nèi)部函數(shù) 157
8.8.2 外部函數(shù) 158
8.9 函數(shù)常見錯誤及解決方法 159
自測題8 161
上機(jī)訓(xùn)練題8 164
階段性綜合訓(xùn)練2 打印日歷 166
第9章 指針 171
教學(xué)導(dǎo)航 171
知識分布網(wǎng)絡(luò) 171
9.1 為什么使用指針 172
9.1.1 內(nèi)存與變量 172
9.1.2 地址與指針 173
9.2 指針變量 173
9.2.1 指針變量的定義 173
9.2.2 指針變量的初始化 174
9.2.3 指針變量的賦值 175
9.2.4 指針變量的運(yùn)算 175
9.2.5 指針變量的引用 176
9.3 指針與函數(shù) 179
9.3.1 指針作為函數(shù)參數(shù) 179
9.3.2 返回指針的函數(shù) 179
9.3.3 指向函數(shù)的指針 181
9.4 指針與數(shù)組 183
9.4.1 指針與一維數(shù)組 184
9.4.2 指針與二維數(shù)組 188
9.5 指針與字符串 194
9.5.1 指向字符串的指針 194
9.5.2 指針與字符數(shù)組的區(qū)別 195
9.6 指針數(shù)組 198
9.7 指針常見錯誤及解決方法 198
自測題9 200
上機(jī)訓(xùn)練題9 203
第10章 結(jié)構(gòu)體、聯(lián)合體與枚舉 205
教學(xué)導(dǎo)航 205
知識分布網(wǎng)絡(luò) 205
10.1 結(jié)構(gòu)體 206
10.1.1 為什么使用結(jié)構(gòu)體 206
10.1.2 結(jié)構(gòu)體類型的定義 206
10.1.3 結(jié)構(gòu)體變量的定義、初始化和引用 208
10.1.4 結(jié)構(gòu)體數(shù)組 213
10.1.5 結(jié)構(gòu)體指針 215
10.2 鏈表 218
10.2.1 鏈表的概念 218
10.2.2 鏈表的基本操作 220
10.3 聯(lián)合體 226
10.3.1 為什么使用聯(lián)合體 226
10.3.2 聯(lián)合體類型的定義 227
10.3.3 聯(lián)合體變量的定義 227
10.3.4 聯(lián)合體變量的引用 228
10.4 枚舉 231
10.5 結(jié)構(gòu)體、聯(lián)合體常見錯誤及解決方法 233
自測題 10 235
上機(jī)訓(xùn)練題10 238
第11章 編譯預(yù)處理 240
教學(xué)導(dǎo)航 240
知識分布網(wǎng)絡(luò) 240
11.1 文件包含命令 241
11.1.1 頭文件 241
11.1.2 文件包含的形式 241
11.2 宏定義命令 243
11.2.1 不帶參數(shù)的宏定義 243
11.2.2 帶參數(shù)的宏定義 245
11.3 條件編譯命令 248
11.4 編譯預(yù)處理常見錯誤及解決方法 250
自測題11 252
上機(jī)訓(xùn)練題11 253
第12章 文件處理 255
教學(xué)導(dǎo)航 255
知識分布網(wǎng)絡(luò) 255
12.1 文件 256
12.1.1 什么是文件 256
12.1.2 文件的種類與存取方式 256
12.1.3 文件指針 257
12.2 文件的打開與關(guān)閉 258
12.2.1 文件的打開(fopen函數(shù)) 258
12.2.2 文件的關(guān)閉(fclose函數(shù)) 260
12.3 文件的讀寫 261
12.3.1 字符讀寫函數(shù)fgetc和fputc 261
12.3.2 字符串讀寫函數(shù)fgets和fputs 263
12.3.3 數(shù)據(jù)塊讀寫函數(shù)fread和fwrite 265
12.3.4 格式化讀寫函數(shù)fscanf和fprintf 266
12.4 文件的定位函數(shù) 269
12.5 文件的檢測函數(shù) 269
12.6 文件處理常見錯誤及解決方法 270
自測題12 271
上機(jī)訓(xùn)練題12 274
階段性綜合訓(xùn)練3 學(xué)生成績管理系統(tǒng)設(shè)計(jì) 276
附錄A 常用字符與ASCII碼對照表 290
附錄B C語言運(yùn)算符與優(yōu)先級匯總表 291
參考文獻(xiàn) 292