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