從問題到程式——程式設計與C語言引論(第2版)

從問題到程式——程式設計與C語言引論(第2版)

《從問題到程式——程式設計與C語言引論(第2版)》是2019年7月機械工業出版社出版的圖書,作者是裘宗燕。

基本介紹

  • 中文名:從問題到程式——程式設計與C語言引論(第2版)
  • 作者:裘宗燕
  • 出版時間:2019年7月
  • 出版社:機械工業出版社
  • ISBN:9787111337157
  • 定價:39 元
  • 開本:16 開
  • 裝幀:平裝
內容簡介,圖書目錄,

內容簡介

本書以C作為工具語言,討論了基本程式設計的各方面內容,詳細解釋了與C語言和程式設計有關的問題。在新版修訂中,特別加強了針對近年日益受到業界和學術界廣泛重視的問題的討論,並通過詳細地分析和討論大量符合C99標準的實例,給出了分析和分解問題、找出解決問題的主要步驟、確定函式抽象、找出循環、選擇語言結構直至後做出所需程式的完整過程。 本書適合作為高等院校計算機及相關專業第一門程式設計課程的教材,也可供其他學習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.3 實現二元運算符操作的賦值運算符55
3.6.4 空語句55
3.6.5 定義枚舉常量56
3.7 輸入和輸出56
3.7.1 格式輸入函式scanf57
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 標準定義294
11.1.2 錯誤信息294
11.1.3 C99的幾個頭檔案295
11.2 幾個已經介紹過的頭檔案295
11.3 字元串函式295
11.3.1 一些字元串函式296
11.3.2 存儲區操作函式299
11.4 功能函式299
11.4.1 幾個整數函式299
11.4.2 數值轉換299
11.4.3 執行控制300
11.4.4 與執行環境互動301
11.4.5 常用函式bsearch和qsort301
11.5 日期和時間302
11.6 實現特徵(和)303
11.6.1 整數類型特徵303
11.6.2 浮點數類型特徵304
11.7 其他與輸入輸出有關的函式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 定義變長參數表309
11.9 非局部控制轉移311
11.10 調試斷言和信號處理(和)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 標準庫包和324
12.3.2 標準庫包325
附錄A C語言運算符表327
附錄B C語言速查328
進一步學習的建議333
參考文獻336

相關詞條

熱門詞條

聯絡我們