作為省級基層示范教研室的教學(xué)成果,本書以面向知識、能力、素質(zhì)三位一體的培養(yǎng)為教學(xué)目標(biāo),兼顧計算思維能力、自主學(xué)習(xí)能力與編程實(shí)踐能力的培養(yǎng)目標(biāo),改革了傳統(tǒng)教材以分立的語法單元為綱、側(cè)重語法教學(xué)的內(nèi)容組織方式,轉(zhuǎn)為以程序設(shè)計方法為綱、遵循“迭代學(xué)習(xí)”的思想。 本書選用C語言為教學(xué)語言,主要內(nèi)容包括:預(yù)備知識,程序設(shè)計入門,結(jié)構(gòu)化程序設(shè)計,模塊化程序設(shè)計,系統(tǒng)級編程初探。同時,本書附錄中提供了ASCII表、枚舉類型與自定義數(shù)據(jù)類型、運(yùn)算符、預(yù)處理、常用庫函數(shù)、外部對象與項(xiàng)目、系統(tǒng)調(diào)用等內(nèi)容。 本書提供配套的教案、教學(xué)課件和教學(xué)視頻等教學(xué)資源。 本書可作為高等學(xué)校理工科專業(yè)特別是計算機(jī)相關(guān)專業(yè)的教材,也可作為相關(guān)從業(yè)人員的自學(xué)用書。
王雷,中國科學(xué)技術(shù)大學(xué)自動化系副教授。國家科技計劃"工業(yè)軟件”重點(diǎn)專項(xiàng)專家?guī)鞂<遥逃孔詣踊讨肝瘏^(qū)域協(xié)作工作組(華東)成員,虛擬仿真實(shí)驗(yàn)教學(xué)創(chuàng)新聯(lián)盟自動化專業(yè)工作委員會委員,中國自動化學(xué)會專家?guī)鞂<,合肥市政府科技?xiàng)目評審專家,中國科學(xué)技術(shù)大學(xué)先進(jìn)技術(shù)研究院特聘研究員。
目 錄
第1章 預(yù)備知識 1
1.1 引言 2
1.2 本書的組織架構(gòu) 2
1.3 計算與計算思維 4
1.3.1 計算與進(jìn)制 4
1.3.2 計算機(jī)體系結(jié)構(gòu) 6
1.3.3 信息與編碼 7
1.3.4 文件與地址 8
1.3.5 算法與邏輯 10
1.3.6 計算思維 11
1.4 編程語言與程序設(shè)計 12
1.4.1 低級語言 12
1.4.2 高級語言 13
1.4.3 編程語言分類 14
1.4.4 編程方法 16
1.4.5 操作系統(tǒng)與程序 17
1.4.6 C語言程序設(shè)計 17
思考與練習(xí)1 18
第2章 程序設(shè)計入門 19
2.1 數(shù)據(jù)與運(yùn)算 20
2.1.1 數(shù)據(jù)與數(shù)據(jù)類型 20
2.1.2 運(yùn)算符與表達(dá)式 21
2.2 輸出與輸入 22
2.2.1 用printf()函數(shù)輸出 23
2.2.2 C語言程序與函數(shù) 23
2.2.3 用scanf()函數(shù)輸入 24
2.3 條件判斷與選擇 25
2.3.1 關(guān)系運(yùn)算 26
2.3.2 if-else語句與流程圖 26
2.3.3 邏輯運(yùn)算 28
2.4 循環(huán)與數(shù)組 28
2.4.1 for循環(huán)與偽代碼 28
2.4.2 數(shù)組 31
2.5 C語言程序規(guī)范 33
小結(jié) 34
思考與練習(xí)2 34
第3章 結(jié)構(gòu)化程序設(shè)計 35
3.1 基本數(shù)據(jù)類型 36
3.1.1 整型數(shù)據(jù) 36
3.1.2 浮點(diǎn)型數(shù)據(jù) 39
3.1.3 字符型數(shù)據(jù) 41
3.1.4 幻數(shù)與宏定義 43
3.2 表達(dá)式與運(yùn)算規(guī)則 44
3.2.1 運(yùn)算符簡介 44
3.2.2 常用表達(dá)式 45
3.2.3 隱式類型轉(zhuǎn)換規(guī)則 48
3.2.4 表達(dá)式的運(yùn)算次序 49
3.2.5 表達(dá)式的副作用 50
3.3 控制語句與基本算法 52
3.3.1 C語言程序語句 52
3.3.2 分支語句 53
3.3.3 循環(huán)語句 59
3.3.4 中斷與跳轉(zhuǎn)語句 62
3.3.5 基本算法 65
3.4 數(shù)組與批量數(shù)據(jù)處理 70
3.4.1 一維數(shù)組 70
3.4.2 多維數(shù)組 76
3.4.3 字符數(shù)組 77
3.5 結(jié)構(gòu)體與復(fù)雜信息處理 81
3.5.1 結(jié)構(gòu)體的基本用法 81
3.5.2 結(jié)構(gòu)體數(shù)組 83
3.5.3 結(jié)構(gòu)體嵌套 84
3.5.4 向文件寫數(shù)據(jù) 85
3.6 結(jié)構(gòu)化與計算思維實(shí)踐 86
3.6.1 問題分解與抽象 86
3.6.2 編碼實(shí)現(xiàn) 87
3.6.3 測試與完善 89
3.6.4 拓展與總結(jié) 90
小結(jié) 91
思考與練習(xí)3 91
第4章 模塊化程序設(shè)計 93
4.1 模塊化思想 94
4.1.1 精簡程序代碼 95
4.1.2 改善程序結(jié)構(gòu) 95
4.1.3 增強(qiáng)程序的通用性 96
4.2 函數(shù) 97
4.2.1 函數(shù)定義 98
4.2.2 函數(shù)調(diào)用 100
4.2.3 函數(shù)原型聲明 105
4.2.4 深入理解函數(shù) 107
4.3 模塊化設(shè)計與實(shí)現(xiàn) 110
4.3.1 自頂向下設(shè)計 111
4.3.2 變量的作用域與生存期 114
4.3.3 文件包含 121
4.3.4 庫函數(shù) 124
4.3.5 遞歸 130
4.4 模塊化與計算思維實(shí)踐 134
4.4.1 數(shù)據(jù)與操作 134
4.4.2 排序與查找 135
4.4.3 極簡教務(wù)系統(tǒng) 140
小結(jié) 156
思考與練習(xí)4 156
第5章 系統(tǒng)級編程初探 159
5.1 指針的基本概念與用法 161
5.1.1 指針的基本概念 161
5.1.2 一維數(shù)組與指針 163
5.1.3 二維數(shù)組與指針 172
5.1.4 指針數(shù)組與指向指針的指針 178
5.2 函數(shù)中的指針 180
5.2.1 指針用作函數(shù)參數(shù) 181
5.2.2 指針用作函數(shù)返回值 190
5.2.3 用函數(shù)處理字符串 193
5.2.4 指向函數(shù)的指針 202
5.3 指針用于內(nèi)存操作 205
5.3.1 結(jié)構(gòu)體指針 205
5.3.2 文件處理 210
5.3.3 內(nèi)存分配與鏈表 221
小結(jié) 234
思考與練習(xí)5 234
附錄A ACSII表 237
附錄B 枚舉類型與自定義數(shù)據(jù)類型 239
B.1 枚舉類型 240
B.1.1 枚舉類型的定義 240
B.1.2 枚舉變量的聲明 240
B.1.3 枚舉類型變量的使用 241
B.1.4 實(shí)例 241
B.2 自定義數(shù)據(jù)類型 242
B.2.1 類型定義的一般格式 242
B.2.2 構(gòu)造數(shù)據(jù)類型的類型定義 243
附錄C 運(yùn)算符 244
附錄D 位運(yùn)算 246
附錄E 預(yù)處理 251
E.1 宏替換 252
E.2 文件包含 254
E.3 條件編譯 254
附錄F 常用庫函數(shù) 256
附錄G 外部對象與項(xiàng)目 260
附錄H 系統(tǒng)調(diào)用 266
參考文獻(xiàn) 269