作為省級基層示范教研室的教學成果,本書以面向知識、能力、素質(zhì)三位一體的培養(yǎng)為教學目標,兼顧計算思維能力、自主學習能力與編程實踐能力的培養(yǎng)目標,改革了傳統(tǒng)教材以分立的語法單元為綱、側重語法教學的內(nèi)容組織方式,轉為以程序設計方法為綱、遵循“迭代學習”的思想。 本書選用C語言為教學語言,主要內(nèi)容包括:預備知識,程序設計入門,結構化程序設計,模塊化程序設計,系統(tǒng)級編程初探。同時,本書附錄中提供了ASCII表、枚舉類型與自定義數(shù)據(jù)類型、運算符、預處理、常用庫函數(shù)、外部對象與項目、系統(tǒng)調(diào)用等內(nèi)容。 本書提供配套的教案、教學課件和教學視頻等教學資源。 本書可作為高等學校理工科專業(yè)特別是計算機相關專業(yè)的教材,也可作為相關從業(yè)人員的自學用書。
王雷,中國科學技術大學自動化系副教授。國家科技計劃"工業(yè)軟件”重點專項專家?guī)鞂<,教育部自動化教指委區(qū)域協(xié)作工作組(華東)成員,虛擬仿真實驗教學創(chuàng)新聯(lián)盟自動化專業(yè)工作委員會委員,中國自動化學會專家?guī)鞂<遥戏适姓萍柬椖吭u審專家,中國科學技術大學先進技術研究院特聘研究員。
目 錄
第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 操作系統(tǒng)與程序 17
1.4.6 C語言程序設計 17
思考與練習1 18
第2章 程序設計入門 19
2.1 數(shù)據(jù)與運算 20
2.1.1 數(shù)據(jù)與數(shù)據(jù)類型 20
2.1.2 運算符與表達式 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 關系運算 26
2.3.2 if-else語句與流程圖 26
2.3.3 邏輯運算 28
2.4 循環(huán)與數(shù)組 28
2.4.1 for循環(huán)與偽代碼 28
2.4.2 數(shù)組 31
2.5 C語言程序規(guī)范 33
小結 34
思考與練習2 34
第3章 結構化程序設計 35
3.1 基本數(shù)據(jù)類型 36
3.1.1 整型數(shù)據(jù) 36
3.1.2 浮點型數(shù)據(jù) 39
3.1.3 字符型數(shù)據(jù) 41
3.1.4 幻數(shù)與宏定義 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 數(shù)組與批量數(shù)據(jù)處理 70
3.4.1 一維數(shù)組 70
3.4.2 多維數(shù)組 76
3.4.3 字符數(shù)組 77
3.5 結構體與復雜信息處理 81
3.5.1 結構體的基本用法 81
3.5.2 結構體數(shù)組 83
3.5.3 結構體嵌套 84
3.5.4 向文件寫數(shù)據(jù) 85
3.6 結構化與計算思維實踐 86
3.6.1 問題分解與抽象 86
3.6.2 編碼實現(xiàn) 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 函數(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 模塊化設計與實現(xiàn) 110
4.3.1 自頂向下設計 111
4.3.2 變量的作用域與生存期 114
4.3.3 文件包含 121
4.3.4 庫函數(shù) 124
4.3.5 遞歸 130
4.4 模塊化與計算思維實踐 134
4.4.1 數(shù)據(jù)與操作 134
4.4.2 排序與查找 135
4.4.3 極簡教務系統(tǒng) 140
小結 156
思考與練習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 結構體指針 205
5.3.2 文件處理 210
5.3.3 內(nèi)存分配與鏈表 221
小結 234
思考與練習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 實例 241
B.2 自定義數(shù)據(jù)類型 242
B.2.1 類型定義的一般格式 242
B.2.2 構造數(shù)據(jù)類型的類型定義 243
附錄C 運算符 244
附錄D 位運算 246
附錄E 預處理 251
E.1 宏替換 252
E.2 文件包含 254
E.3 條件編譯 254
附錄F 常用庫函數(shù) 256
附錄G 外部對象與項目 260
附錄H 系統(tǒng)調(diào)用 266
參考文獻 269