從問題到程式:程式設計與C語言引論

《從問題到程式程式設計與C語言引論》是2011年機械工業出版社出版的圖書,作者是裘宗燕。

基本信息

內容簡介

從問題到程式:程式設計與C語言引論從問題到程式:程式設計與C語言引論

《從問題到程式:程式設計與C語言引論》以c作為工具語言,討論了基本程式設計的各方面內容,詳細解釋了與c語言和程式設計有關的問題。在新版中,特別加強了針對近年日益受到業界和學術界廣泛重視的問題的討論,並通過詳細地分析和討論大量符合c99標準的實例,給出了分析和分解問題、找出解決問題的主要步驟、確定函式抽象、找出循環、選擇語言結構直至最後做出所需程式的完整過程。

《從問題到程式:程式設計與C語言引論》適合作為高等院校計算機及相關專業第一門程式設計課程的教材,也可供其他學習c程式設計的讀者自學使用。

目錄

《從問題到程式:程式設計與c語言引論》

前言

本書中的編程實例和模式

第1章 程式設計和c語言 1

1.1 程式和程式語言 1

1.2 c語言簡介 6

1.3 一個簡單的c程式 8

1.4 程式開發過程 10

1.5 問題與程式設計 14

本章討論的重要概念 15

練習 15

第2章 數據與簡單計算程式 16

2.1基本字元、標識符和關鍵字 16

2.2 數據、類型和簡單程式 17

2.2.1 幾個常用類型 18

2.2.2 函式printf和簡單

文本輸出程式 19

2.3 運算符、表達式和計算 22

2.3.1 算術運算符和算術表達式 22

2.3.2 表達式的求值 23

.2.3.3 計算和類型 24

2.4 數學函式和簡單計算程式 26

2.4.1 函式、函式調用 26

2.4.2 數學函式及其使用 27

2.4.3 函式調用中的類型轉換 28

語言細節和問題 29

c語言的字元集 29

基本數據類型的一些問題 29

數據形式的轉換和輸出 31

運算對象的求值順序32

幾個常用程式模式 32

本章討論的重要概念 32

練習 33

第3章 變數、函式和流程控制 34

3.1 複合結構和順序程式 34

3.2 變數的概念和使用 35

3.2.1 變數的定義 35

3.2.2 變數的使用 36

3.2.3 注釋和簡單順序程式 38

3.3 定義函式(初步) 38

3.3.1 函式定義 39

3.3.2 函式與程式 42

3.3.3 函式與類型 43

3.3.4 自定義輸出函式 44

3.4 關係表達式、條件表達式、邏輯表達式 44

3.4.1 關係表達式和條件表達式 44

3.4.2 邏輯表達式 46

3.5 語句與控制結構 47

3.5.1 條件語句:if語句 48

3.5.2 循環語句:while語句 50

3.5.3 循環語句:for語句 52

3.6 若干c語言結構 54

3.6.1 增量和減量運算符(++、--) 54

3.6.2 逗號運算符 55

3.6.3 實現二元運算符操作的賦值運算符 55

3.6.4 空語句 55

3.6.5 定義枚舉常量 56

3.7 輸入和輸出 56

3.7.1 格式輸入函式scanf 57

3.7.2 字元輸入和輸出函式 60

語言細節和問題 61

變數的意義和實現 61

賦值操作的一些問題 61

條件表達式和條件語句 62

表達式和求值 63

輸入和緩衝 65

幾個常用程式模式 65

本章討論的重要概念 65

練習 66

第4章 基本編程技術 68

4.1 循環程式設計 68

4.1.1 基本循環方式 69

4.1.2 求一系列完全平方數69

4.1.3判斷素數(謂詞函式) 71

4.1.4 艱難旅程(浮點誤差) 71

4.1.5 求立方根(疊代和逼近) 73

4.1.6 求sin函式值(通項計算) 74

4.1.7 從循環中退出 75

4.2 輸入循環 77

4.2.1 輸入循環的基本技術 77

4.2.2 字元輸入 80

4.2.3 檢查輸入 83

4.2.4 一個簡單計算器 84

4.3 循環與遞歸 85

4.3.1 階乘和乘冪(循環,遞歸) 85

4.3.2 fibonacci序列(計算與時間) 87

4.3.3 為計算過程計時 88

4.3.4 fibonacci序列的疊代計算(程式正確性與循環不變式) 89

4.3.5 最大公約數 91

4.3.6河內塔梵塔)問題 93

4.4 程式調試和排錯 95

4.4.1 測試 95

4.4.2 白箱測試 95

4.4.3 黑箱測試 96

4.4.4 排除程式里的錯誤 98

語言細節和問題 98

程式的逐步求精和控制結構嵌套 99

循環中的幾種變數 99

與輸入輸出有關的幾個問題 100

輸入與安全性 100

幾個常用程式模式 101

本章討論的重要概念 102

練習 102

第5章 c程式結構 105

5.1 數值類型 105

5.1.1字元類型 105

5.1.2 整數類型 106

5.1.3 基本數據類型的選擇 107

5.2 幾種控制語句 107

5.2.1 do-while循環結構 107

5.2.2 流程控制語句 108

5.2.3 開關語句 109

5.3 一些標準庫函式 110

5.3.1 字元分類函式 111

5.3.2 隨機數生成函式112

5.4 程式的函式分解 113

5.4.1 函式分解 113

5.4.2 對函式的兩種觀點 114

5.4.3 函式定義與調用之間的配合 118

5.4.4 函式原型 119

5.4.5 求函式的根 121

5.4.6 一個簡單猜數遊戲 123

5.5 c程式結構與變數 125

5.5.1 外部定義的變數 125

5.5.2 作用域、存在期和變數類 126

5.5.3 變數的其他問題 130

5.6 預處理 131

5.6.1 檔案包含命令 132

5.6.2 宏定義與宏替換 132

5.6.3 條件編譯命令 135

5.6.4 定義常量 135

5.6.5 單詞計數問題 136

5.7 字位運算符 138

本章討論的重要概念 141

練習 141

第6章 順序數據組織:數組 144

6.1 數組的定義和使用 144

6.1.1 數組變數的定義和聲明 145

6.1.2 數組的使用 145

6.1.3 數組的初始化 147

6.1.4 數組程式實例 147

6.1.5 定義數組的問題 151

6.2 以數組為參數的函式 151

6.2.1 一個例子 152

6.2.2 修改實參數組的元素 153

6.3 二維和多維數組 153

6.3.1 多維數組的初始化 154

6.3.2 多維數組的使用 154

6.3.3 多維數組作為函式的參數 155

6.4 字元數組與字元串 156

6.4.1 字元數組 156

6.4.2 字元串 156

6.4.3 程式實例 157

6.4.4 標準庫字元串處理函式 159

6.4.5 輸出文本里的最長行 160

6.5 編程實例 162

6.5.1 成績直方圖 162

6.5.2 一個通用的帶檢查的整數輸入函式 165

6.5.3 “計算”數組變數的大小 166

6.5.4 數組的劃分 167

6.5.5 數組的排序 169

6.5.6 統計c程式里的關鍵字 170

語言細節和問題 172

數組的存儲實現 172

越界訪問的可能後果 173

多維數組的實現 173

函式參數與sizeof運算符 173

字元串的字典序174

幾個常用程式模式 174

本章討論的重要概念 174

練習 174

第7章 指針的套用 176

7.1 指針的定義和使用 176

7.1.1 指針的定義 177

7.1.2 指針操作 177

7.1.3 指針作為函式參數 178

7.1.4 有關指針的幾個問題 180

7.2 指針與數組 181

7.2.1 指向數組元素的指針 181

7.2.2 基於指針運算的數組程式設計 183

7.2.3 數組參數與指針 184

7.2.4 指針與數組操作的程式實例 184

7.2.5 字元指針與字元數組 187

7.2.6 多維數組作為參數的通用函式 188

7.3 指針數組 189

7.3.1 字元指針數組 190

7.3.2 指針數組與二維數組 190

7.3.3 命令行參數及其處理 191

7.4 動態存儲管理 193

7.4.1 c語言的動態存儲管理機制 194

7.4.2 兩個程式實例 196

7.4.3 函式、指針和動態存儲 199

7.4.4 定義類型 200

7.5 指向函式的指針 202

7.5.1 函式指針的定義和使用 202

7.5.2 函式指針作為函式的參數 203

語言細節和問題 206

指針運算原理 206

指針轉換 206

使用動態存儲管理的要點和細節 206

動態調整策略 207

過時的函式指針形式 207

複雜類型描述與解讀 208

幾個常用程式模式 209

本章討論的重要概念 209

練習 209

第8章 檔案和輸入輸出程式設計 211

8.1 檔案的概念 211

8.1.1 流和檔案指針 211

8.1.2 緩衝式輸入輸出 212

8.2 檔案的使用 213

8.2.1 檔案的打開和關閉 213

8.2.2 輸入輸出函式 214

8.2.3 程式實例 215

8.2.4 標準錯誤流 216

8.2.5 直接輸入輸出函式 217

8.3 標準流輸入輸出與格式控制 218

8.3.1 行式輸入和輸出 218

8.3.2 輸入格式控制 218

8.3.3 輸出格式控制 221

8.3.4 以字元串作為格式化輸入輸出對象 223

8.4 程式實例 223

8.4.1 求檔案中數據的平均值 223

8.4.2 一個背單詞程式 225

8.4.3 資金賬目系統 228

幾個常用程式模式 230

本章討論的重要概念 231

練習 231

第9章 結構和複雜數據組織 232

9.1 結構 232

9.1.1 結構聲明與變數定義 232

9.1.2 結構變數的初始化和使用 235

9.1.3 結構、數組與指針 236

9.2 枚舉 237

9.3 結構與函式 238

9.3.1 處理結構的函式 238

9.3.2 程式實例 241

9.4 編程實例 243

9.4.1 數據組的排序 243

9.4.2 複數的表示和處理 245

9.5 連結結構(自引用結構) 247

9.5.1 連結結構 247

9.5.2 自引用結構的定義 249

9.5.3 程式實現 249

9.5.4 數據與查找 252

語言細節和問題 253

結構的實現 253

聯合 254

欄位 256

本章討論的重要概念 257

練習 257

第10章 程式開發技術 259

10.1 分別編譯和c程式的分塊開發 259

10.1.1 分塊開發的問題和方法 259

10.1.2 程式實例:學生成績處理 260

10.1.3 分塊重整 263

10.1.4 其他安排和考慮 266

10.1.5 模組化思想和技術 267

10.1.6 單一頭檔案結構和多個頭檔案結構 271

10.2 功能模組和程式庫 273

10.2.1 複數模組 273

10.2.2 目標檔案和庫 275

10.2.3 防止重複包含 276

10.3 錯誤報告和處理 276

10.3.1 建立統一的錯誤報告機制 276

10.3.2 定義變參數的錯誤報告函式 277

10.3.3 運行中錯誤的檢查和處理 279

10.4 程式的配置 283

10.4.1 程式的行為參數和啟動時配置 283

10.4.2 互動式配置 285

10.4.3 通過命令行參數 286

10.4.4 採用配置檔案 287

10.5 程式開發過程 287

10.5.1 自上而下的開發 288

10.5.2 自下而上的開發 289

10.5.3 實際開發過程 290

本章討論的重要概念 291

練習 291

第11章 標準庫 293

11.1 標準庫結構 293

11.1.1 標準定義([stddef.h]) 294

11.1.2 錯誤信息([errno.h]) 294

11.1.3 c99的幾個頭檔案 295

11.2 幾個已經介紹過的頭檔案 295

11.3 字元串函式([string.h]) 295

11.3.1 一些字元串函式 296

11.3.2 存儲區操作函式 299

11.4 功能函式([stdlib.h]) 299

11.4.1 幾個整數函式 299

11.4.2 數值轉換 299

11.4.3 執行控制 300

11.4.4 與執行環境互動 301

11.4.5 常用函式bsearch和qsort301

11.5 日期和時間([time.h]) 302

11.6 實現特徵([limit.h]和[float.h]) 303

11.6.1 整數類型特徵 303

11.6.2 浮點數類型特徵 304

11.7 其他與輸入輸出有關的函式([stdio.h]) 304

11.7.1 符號常量和類型 305

11.7.2 檔案操作函式 305

11.7.3 流緩衝區操作函式 306

11.7.4 檔案定位及定位函式 306

11.7.5 其他有關函式 307

11.7.6 採用va_list參數的輸出函式 308

11.8 定義變長參數表([stdarg.h]) 309

11.9 非局部控制轉移([setjmp.h]) 311

11.10 調試斷言和信號處理([assert.h]和[signal.h]) 313

11.11 標準庫的其他功能 314

11.11.1 本地化 314

11.11.2 多位元組字元 315

本章討論的重要概念 316

練習 316

第12章 c99導引 317

12.1 c99擴充 317

12.1.1 語言層擴充 317

12.2 c99 數組和結構 319

12.2.1 複合對象的初始化 319

12.2.2 變長數組的定義和聲明 320

12.2.3 函式的變長數組參數 321

12.2.4 結構的變長數組成員 322

12.3 幾個c99標準庫包 324

12.3.1 標準庫包[stdint.h]和[inttype.h] 324

12.3.2 標準庫包[complex.h] 325

附錄ac語言運算符表 327

附錄b c語言速查 328

進一步學習的建議 333

參考文獻 336

相關詞條

相關搜尋

熱門詞條

聯絡我們