C語言程式設計教程[人民郵電出版社出版圖書(楊治明主編)]

C語言程式設計教程[人民郵電出版社出版圖書(楊治明主編)]

《C語言程式設計教程》是2012年人民郵電出版出版的圖書,作者是楊治明、雷亮。

內容簡介

本書定位於將C語言作為計算機編程入門語言,以幫助讀者樹立電腦程式設計的思想,培養學生程式設計基本能力為目標的教材。

全書以程式設計為主線,採用案例驅動模式展開講解,通過案例和問題引入主要教學內容,重點講解程式設計的思想和方法,並結合相關的語法知識。全書主要包括3方面的內容:基本內容(數據表達、數據處理和流程控制)、常用算法和程式設計風格以及C語言套用中的一些處理機制(編譯預處理和命令行參數等)。涉及數據類型、表達式、分支、循環、函式、數組、指針、結構、檔案的概念、套用以及指針和各種構造類型的混合運用、基本算法等內容。

編輯推薦

本書可以作為高等院校和計算機等級考試的教學用書,也可作為對C語言程式設計感興趣的讀者的自學用書。

目錄

第1章 C語言概述 1

1.1 簡單的C語言程式 1

1.2 C語言的發展歷史與特點 3

1.2.1 C語言的發展歷史 3

1.2.2 C語言的特點 4

1.3 C程式的開發步驟和上機調試流程 5

1.3.1 C程式的開發步驟 5

1.3.2 C程式的上機開發過程 6

習題1 12

第2章 基本數據類型的輸入/輸出 13

2.1 C語言的輸入/輸出 13

2.2 整型數據的輸入/輸出 13

2.3 浮點型數據的輸入/輸出 14

2.4 字元數據的輸入/輸出 15

2.5 字元串數據的輸入/輸出 15

2.6 格式化輸入/輸出舉例 17

2.7 閱讀材料 18

2.7.1 格式化輸出函式printf的格式說明和使用 18

2.7.2 格式化輸入函式scanf的格式說明和使用 19

習題2 21

第3章 流程控制 22

3.1 算法 22

3.1.1 算法的概念 22

3.1.2 算法的表達方式 23

3.1.3 基本流程控制結構 25

3.1.4 案例3.1 求1+1/2+…+1/100的和 26

3.2 選擇語句 26

3.2.1 案例3.2 求三個整數的最大值(if語句) 26

3.2.2 案例3.3 百分製成績轉換成五分製成績(多分支if語句) 29

3.2.3 案例3.4 判斷所輸入的一個字元是數字、空白符還是其他字元(switch語句) 31

3.2.4 案例3.5 百分製成績轉換成五分製成績(switch語句) 33

3.3 循環語句 34

3.3.1 案例3.6 求1+1/2+…+1/100的和(while語句) 34

3.3.2 案例3.7 求1+1/2+…+1/100的和(do...while語句) 35

3.3.3 案例3.8 求1+1/2+…+1/100的和(for語句) 37

3.4 轉向語句 39

3.4.1 案例3.9 判斷所輸入的一個大於1的正整數是否是素數(break語句) 39

3.4.2 案例3.10 輸出100~200之間能被3整除的數(continue語句) 41

3.5 套用舉例 42

3.5.1 案例3.11 計算1! + 2! + … + 10!(並討論溢出問題) 42

3.5.2 案例3.12 計算級數1-1/3+1/5-1/7+…的和 44

3.5.3 案例3.13 統計輸入的數字字元、字母字元和其他字元的個數 45

3.5.4 案例3.14 求兩個正整數的最大公約數和最低公倍數 45

3.5.5 案例3.15 將一個正整數逆序輸出 46

3.5.6 案例3.16 輸入日期並檢查其合理性,直到輸入合理為止 47

3.6 閱讀材料 48

3.6.1 C語言的語句 48

3.6.2 goto語句簡介 49

3.6.3 exit()函式 49

3.6.4 程式調試簡介 50

習題3 51

第4章 函式 54

4.1 模組化程式設計 54

4.1.1 模組化程式設計的基本思想 54

4.1.2 C語言程式設計的基本結構 55

4.2 函式定義和調用 55

4.2.1 案例4.1 求3個整數的最大值(函式定義和調用) 57

4.2.2 案例4.2 驗證哥德巴赫猜想(在1000以內驗證) 57

4.2.3 案例4.3 計算1k+2k+…+nk(函式原型、函式的嵌套調用) 59

4.3 標識符的作用域 60

4.3.1 案例4.4 塊作用域 60

4.3.2 案例4.5 檔案作用域 61

4.3.3 函式原型作用域 61

4.3.4 函式作用域 62

4.4 變數的存儲種類 62

4.4.1 自動變數 62

4.4.2 暫存器變數 62

4.4.3 案例4.6 外部變數 63

4.4.4 案例4.7 靜態變數 64

4.5 指針基礎 64

4.5.1 地址和指針的概念 64

4.5.2 指針變數 65

4.5.3 案例4.8 兩數交換(指針做參數) 65

4.5.4 案例4.9 輸入10個整數求它們的最大值、最小值和總和(指針做參數) 66

4.5.5 案例4.10 統計百分製成績各分數段的人數(指針做返回值) 67

4.6 遞歸函式 68

4.6.1 案例4.11 計算4!(遞歸函式的定義和遞歸調用過程分析) 68

4.6.2 案例4.12 計算整數各位數字之和 69

4.6.3 案例4.13 計算 70

4.6.4 案例4.14 漢諾塔問題 70

習題4 71

第5章 編譯預處理 74

5.1 宏 74

5.1.1 案例5.1 無參宏 75

5.1.2 案例5.2 有參宏 75

5.2 檔案包含 76

5.3 條件編譯 77

5.3.1 條件編譯命令 77

5.3.2 案例5.3 頭檔案設計 78

5.4 閱讀材料 80

5.4.1 程式的多檔案組織方法 80

5.4.2 多檔案程式的編譯和連結 80

習題5 81

第6章 數組 83

6.1 一維數組 83

6.1.1 一維數組的定義、初始化和使用 83

6.1.2 最大值、最小值和平均值 86

6.1.3 一維數組作為函式的參數 88

6.1.4 數組排序 90

6.1.5 數組查找 95

6.2 二維數組 98

6.2.1 二維數組的定義、初始化和使用 98

6.2.2 矩陣轉置 100

6.2.3 二維數組的本質 101

6.3 字元串 104

6.3.1 字元數組和字元串 104

6.3.2 字元串的輸入和輸出 105

6.3.3 字元串處理 107

習題6 111

第7章 指針 120

7.1 簡介 120

7.2 什麼是指針 120

7.2.1 變數、變數的值與變數的地址 120

7.2.2 指針 122

7.2.3 定義指針變數 123

7.2.4 間接運算符 123

7.2.5 指針賦值 125

7.2.6 指針作為函式的參數 126

7.2.7 返回指針的函式 130

7.3 指針與一維數組 131

7.3.1 使指針指向數組 131

7.3.2 指針算術運算 131

7.3.3 指針關係運算 138

7.3.4 一維數組名與指針 140

7.3.5 向函式傳遞數組實際上是傳遞指針 142

7.4 指針與二維數組 145

7.4.1 二維數組的本質 145

7.4.2 指向數組的指針與二維數組名 146

7.4.3 用指向元素的指針訪問二維數組 151

7.5 指針數組 153

7.6 帶參數的main函式 154

7.7 指向指針的指針 155

7.8 指向函式的指針 156

7.8.1 指向函式的指針的定義和使用方法 156

7.8.2 指向函式的指針作函式參數 157

7.9 字元串處理函式 159

7.9.1 字元串的輸入輸出(gets和puts) 159

7.9.2 求字元串長度(strlen) 160

7.9.3 字元串複製(strcpy、strncpy)和字元串連線(strcat) 160

7.9.4 字元串比較(strcmp) 163

7.9.5 字元串中字元的大小寫轉換(strlwr和strupr) 164

7.10 動態記憶體分配 164

7.10.1 C語言的程式記憶體空間 165

7.10.2 用malloc函式分配一塊記憶體 165

7.10.3 用calloc函式分配連續的記憶體空間 167

7.10.4 用realloc函式改變記憶體塊的大小 168

習題7 170

第8章 自定義數據類型 178

8.1 結構體 178

8.1.1 案例8.1 複數的四則運算 183

8.1.2 案例8.2 學生成績統計 184

8.2 單向鍊表 186

8.2.1 案例8.3 單向鍊表的建立和基本操作 186

8.2.2 案例8.4 猴子選大王 189

8.3 共用體 192

8.3.1 案例8.5 共用體類型及其變數的定義和使用 192

8.3.2 案例8.6 學生、教職工基本信息管理 193

8.4 枚舉 200

8.4.1 案例8.7 枚舉類型及其變數的定義和使用 201

8.4.2 案例8.8 枚舉類型數據的輸入和輸出 201

8.5 自定義數據類型舉例 202

8.6 閱讀材料 204

8.6.1 位域 204

8.6.2 無名共用體類型的使用 205

8.6.3 類型別名 206

習題8 206

第9章 檔案 209

9.2 檔案概述 209

9.1.1 檔案的概念 210

9.1.2 文本檔案與二進制檔案 210

9.1.3 緩衝檔案系統 211

9.1.4 檔案類型指針 211

9.2 檔案的打開與關閉 212

9.2.1 打開檔案(fopen()函式) 212

9.2.2 關閉檔案函式(fclose函式) 214

9.3 文本檔案的讀寫 214

9.3.1 案例9.1 複製檔案(fputc函式和fgetc函式) 214

9.3.2 案例9.2 複製檔案(fgets函式和fputs函式) 216

9.3.3 案例9.3 學生基本信息的順序讀/寫(fprintf函式和fscanf函式) 218

9.4 二進制檔案的讀寫 220

9.4.1 案例9.4 學生基本信息的順序讀/寫(fread函式和fwrite函式) 220

9.4.2 案例9.5 學生基本信息的隨機讀/寫(fseek函式) 222

9.5 閱讀材料 224

9.5.1 ferror()函式 224

9.5.2 clearerr()函式 224

9.5.3 feof()函式 224

習題9 224

第10章 課程設計 226

10.1 課程設計的目的和要求 226

10.2 課程設計舉例——學生成績管理系統 226

10.3 課程設計選題 233

實驗一 C語言編譯環境與程式開發 235

實驗二 輸入/輸出程式設計 236

實驗三 選擇結構 238

實驗四 循環結構 241

實驗五 函式 244

實驗六 遞歸 245

實驗七 數組的使用 246

實驗八 字元串處理 248

實驗九 指針與數組 250

實驗十 指針與函式 251

實驗十一 結構體與單向鍊表 253

實驗十二 檔案 255

附錄A 常用字元與ASCII碼對照表 257

附錄B C語言的32個關鍵字 259

附錄C C語言常用標準庫函式 260

附錄D Turbo C 2.0程式調試技術 266

附錄E Visual C++ 6.0程式調試技術* 270

附錄F 推箱子遊戲原始碼 272

附錄G 貪吃蛇遊戲原始碼 275

附錄H 掃地雷遊戲原始碼 279

附錄I 速算24原始碼 288

熱門詞條

聯絡我們