本書(shū)根據(jù)國(guó)家示范建設(shè)課程改革成果及C語(yǔ)言程序設(shè)計(jì)課程教學(xué)要求進(jìn)行編寫(xiě)。全書(shū)內(nèi)容分為12章,系統(tǒng)地講解編程與C語(yǔ)言基礎(chǔ)、基本數(shù)據(jù)類(lèi)型、運(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ū)中設(shè)有多個(gè)實(shí)例,同時(shí)在章節(jié)中穿插3個(gè)階段性綜合訓(xùn)練,每經(jīng)過(guò)一個(gè)階段的學(xué)習(xí)就完成一個(gè)綜合性的應(yīng)用設(shè)計(jì),在應(yīng)用設(shè)計(jì)中強(qiáng)化理論知識(shí),將理論和實(shí)踐緊密結(jié)合。在內(nèi)容安排上由淺入深,注重例題的可操作性,融入微信掃碼實(shí)例的信息化手段,并通過(guò)讀一讀、練一練的形式幫助學(xué)生掌握C語(yǔ)言的程序設(shè)計(jì)方法和技巧,最后根據(jù)自測(cè)題和上機(jī)訓(xùn)練題進(jìn)行學(xué)習(xí)檢測(cè)和操作練習(xí)。 本書(shū)為高等職業(yè)本專(zhuān)科院校相應(yīng)課程的教材,也可作為開(kāi)放大學(xué)、成人教育、自學(xué)考試、中職學(xué)校和培訓(xùn)班的教材,以及編程愛(ài)好者自學(xué)C語(yǔ)言的參考書(shū)。 本書(shū)提供免費(fèi)的電子教學(xué)課件、習(xí)題參考答案、程序代碼,詳見(jiàn)前言。
高玉玲 副教授,畢業(yè)后在南京信息職業(yè)技術(shù)學(xué)院從事十余年的C語(yǔ)言編程技術(shù)等專(zhuān)業(yè)課程的教學(xué)與研究工作,曾到企業(yè)專(zhuān)職從事編程技術(shù)與培訓(xùn)工作,具有豐富的教學(xué)與實(shí)踐經(jīng)驗(yàn)
第1章 編程與C語(yǔ)言基礎(chǔ) 1
教學(xué)導(dǎo)航 1
知識(shí)分布網(wǎng)絡(luò) 1
1.1 為什么需要編程 2
1.1.1 計(jì)算機(jī)的運(yùn)行機(jī)制 2
1.1.2 編程語(yǔ)言 2
1.1.3 C語(yǔ)言特點(diǎn) 3
1.2 C語(yǔ)言程序的基本組成 4
1.2.1 表達(dá)式 4
1.2.2 語(yǔ)句 4
1.2.3 函數(shù) 5
1.3 C語(yǔ)言程序開(kāi)發(fā)流程 8
1.4 Visual C++ 6.0集成開(kāi)發(fā)環(huán)境 9
1.5 動(dòng)手實(shí)戰(zhàn) 12
1.5.1 編寫(xiě)你的第一個(gè)C語(yǔ)言源程序 12
1.5.2 上機(jī)調(diào)試你的第一個(gè)程序 14
1.5.3 C語(yǔ)言編譯時(shí)常見(jiàn)的錯(cuò)誤提示和排除 15
自測(cè)題1 17
上機(jī)訓(xùn)練題1 18
第2章 基本數(shù)據(jù)類(lèi)型 20
教學(xué)導(dǎo)航 20
知識(shí)分布網(wǎng)絡(luò) 20
2.1 關(guān)鍵字與標(biāo)識(shí)符 21
2.1.1 關(guān)鍵字 21
2.1.2 標(biāo)識(shí)符 21
2.2 數(shù)據(jù)類(lèi)型的分類(lèi) 22
2.3 常量 22
2.3.1 直接常量 22
2.3.2 符號(hào)常量 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ù)類(lèi)型的轉(zhuǎn)換 29
2.5.1 自動(dòng)轉(zhuǎn)換 29
2.5.2 強(qiáng)制轉(zhuǎn)換 30
2.6 基本數(shù)據(jù)類(lèi)型常見(jiàn)錯(cuò)誤及解決方法 30
自測(cè)題2 32
上機(jī)訓(xùn)練題2 34
第3章 運(yùn)算符與表達(dá)式 35
教學(xué)導(dǎo)航 35
知識(shí)分布網(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 逗號(hào)運(yùn)算符與表達(dá)式 43
3.6.1 逗號(hào)運(yùn)算符 43
3.6.2 逗號(hào)表達(dá)式 43
3.7 條件運(yùn)算符與表達(dá)式 44
3.8 運(yùn)算符與表達(dá)式常見(jiàn)錯(cuò)誤及解決方法 45
自測(cè)題3 47
上機(jī)訓(xùn)練題3 49
第4章 順序結(jié)構(gòu)程序設(shè)計(jì) 50
教學(xué)導(dǎo)航 50
知識(shí)分布網(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)中的常用語(yǔ)句 59
4.3.2 順序結(jié)構(gòu)程序組成要素 60
4.4 順序結(jié)構(gòu)常見(jiàn)錯(cuò)誤及解決方案 62
自測(cè)題4 64
上機(jī)訓(xùn)練題4 66
第5章 選擇結(jié)構(gòu)程序設(shè)計(jì) 67
教學(xué)導(dǎo)航 67
知識(shí)分布網(wǎng)絡(luò) 67
5.1 選擇結(jié)構(gòu)的組成 68
5.1.1 選擇結(jié)構(gòu)中常用語(yǔ)句和運(yùn)算符 68
5.1.2 選擇條件的描述 68
5.2 if語(yǔ)句 69
5.2.1 單分支的if語(yǔ)句 69
5.2.2 雙分支的if語(yǔ)句 70
5.2.3 多分支的if語(yǔ)句 70
5.2.4 if語(yǔ)句的嵌套 71
5.3 條件運(yùn)算符使用技巧 74
5.4 switch語(yǔ)句 75
5.4.1 switch語(yǔ)句的格式及執(zhí)行過(guò)程 75
5.4.2 switch語(yǔ)句使用時(shí)的注意事項(xiàng) 76
5.5 選擇結(jié)構(gòu)常見(jiàn)錯(cuò)誤及解決方法 78
自測(cè)題5 79
上機(jī)訓(xùn)練題5 82
第6章 循環(huán)結(jié)構(gòu)程序設(shè)計(jì) 84
教學(xué)導(dǎo)航 84
知識(shí)分布網(wǎng)絡(luò) 84
6.1 循環(huán)結(jié)構(gòu)的組成與常用語(yǔ)句 85
6.2 while語(yǔ)句 85
6.2.1 while語(yǔ)句的一般形式 85
6.2.2 while語(yǔ)句的執(zhí)行過(guò)程 86
6.2.3 while語(yǔ)句使用時(shí)的注意事項(xiàng) 86
6.3 do while語(yǔ)句 88
6.3.1 do while語(yǔ)句的一般形式 88
6.3.2 do while語(yǔ)句的執(zhí)行過(guò)程 89
6.3.3 do while語(yǔ)句使用時(shí)的注意事項(xiàng) 89
6.3.4 do while語(yǔ)句與while語(yǔ)句的區(qū)別 89
6.4 for語(yǔ)句 91
6.4.1 for語(yǔ)句的一般形式 91
6.4.2 for語(yǔ)句的執(zhí)行過(guò)程 91
6.4.3 for語(yǔ)句的變化形式 92
6.4.4 for語(yǔ)句使用時(shí)的注意事項(xiàng) 93
6.5 跳轉(zhuǎn)語(yǔ)句 94
6.5.1 break語(yǔ)句 95
6.5.2 continue語(yǔ)句 95
6.5.3 goto語(yǔ)句 96
6.6 循環(huán)嵌套 98
6.7 循環(huán)結(jié)構(gòu)常見(jiàn)錯(cuò)誤及解決方法 101
自測(cè)題6 103
上機(jī)訓(xùn)練題6 106
階段性綜合訓(xùn)練1 打印ASCII碼表 107
第7章 數(shù)組 110
教學(xué)導(dǎo)航 110
知識(shí)分布網(wǎng)絡(luò) 110
7.1 數(shù)組的概念與分類(lèi) 111
7.2 一維數(shù)組 111
7.2.1 一維數(shù)組的定義 112
7.2.2 一維數(shù)組的存儲(chǔ) 113
7.2.3 一維數(shù)組元素的引用 113
7.2.4 一維數(shù)組的初始化 113
7.3 二維數(shù)組 115
7.3.1 二維數(shù)組的定義 115
7.3.2 二維數(shù)組的存儲(chǔ) 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 常見(jiàn)的字符串處理函數(shù) 123
7.5 數(shù)組常見(jiàn)錯(cuò)誤及解決方法 126
自測(cè)題7 128
上機(jī)訓(xùn)練題7 132
第8章 函數(shù) 134
教學(xué)導(dǎo)航 134
知識(shí)分布網(wǎng)絡(luò) 134
8.1 模塊化程序設(shè)計(jì)與函數(shù) 135
8.1.1 模塊化程序設(shè)計(jì)的概念 135
8.1.2 函數(shù)分類(lèi) 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)存儲(chǔ)變量 153
8.7.2 動(dòng)態(tài)存儲(chǔ)變量 153
8.8 函數(shù)的作用范圍 157
8.8.1 內(nèi)部函數(shù) 157
8.8.2 外部函數(shù) 158
8.9 函數(shù)常見(jiàn)錯(cuò)誤及解決方法 159
自測(cè)題8 161
上機(jī)訓(xùn)練題8 164
階段性綜合訓(xùn)練2 打印日歷 166
第9章 指針 171
教學(xué)導(dǎo)航 171
知識(shí)分布網(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 指針常見(jiàn)錯(cuò)誤及解決方法 198
自測(cè)題9 200
上機(jī)訓(xùn)練題9 203
第10章 結(jié)構(gòu)體、聯(lián)合體與枚舉 205
教學(xué)導(dǎo)航 205
知識(shí)分布網(wǎng)絡(luò) 205
10.1 結(jié)構(gòu)體 206
10.1.1 為什么使用結(jié)構(gòu)體 206
10.1.2 結(jié)構(gòu)體類(lèi)型的定義 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)合體類(lèi)型的定義 227
10.3.3 聯(lián)合體變量的定義 227
10.3.4 聯(lián)合體變量的引用 228
10.4 枚舉 231
10.5 結(jié)構(gòu)體、聯(lián)合體常見(jiàn)錯(cuò)誤及解決方法 233
自測(cè)題 10 235
上機(jī)訓(xùn)練題10 238
第11章 編譯預(yù)處理 240
教學(xué)導(dǎo)航 240
知識(shí)分布網(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ù)處理常見(jiàn)錯(cuò)誤及解決方法 250
自測(cè)題11 252
上機(jī)訓(xùn)練題11 253
第12章 文件處理 255
教學(xué)導(dǎo)航 255
知識(shí)分布網(wǎng)絡(luò) 255
12.1 文件 256
12.1.1 什么是文件 256
12.1.2 文件的種類(lèi)與存取方式 256
12.1.3 文件指針 257
12.2 文件的打開(kāi)與關(guān)閉 258
12.2.1 文件的打開(kāi)(fopen函數(shù)) 258
12.2.2 文件的關(guān)閉(fclose函數(shù)) 260
12.3 文件的讀寫(xiě) 261
12.3.1 字符讀寫(xiě)函數(shù)fgetc和fputc 261
12.3.2 字符串讀寫(xiě)函數(shù)fgets和fputs 263
12.3.3 數(shù)據(jù)塊讀寫(xiě)函數(shù)fread和fwrite 265
12.3.4 格式化讀寫(xiě)函數(shù)fscanf和fprintf 266
12.4 文件的定位函數(shù) 269
12.5 文件的檢測(cè)函數(shù) 269
12.6 文件處理常見(jiàn)錯(cuò)誤及解決方法 270
自測(cè)題12 271
上機(jī)訓(xùn)練題12 274
階段性綜合訓(xùn)練3 學(xué)生成績(jī)管理系統(tǒng)設(shè)計(jì) 276
附錄A 常用字符與ASCII碼對(duì)照表 290
附錄B C語(yǔ)言運(yùn)算符與優(yōu)先級(jí)匯總表 291
參考文獻(xiàn) 292