程式設計基礎:從問題到程式(第2版)

《程式設計基礎:從問題到程式(第2版)》是2016年1月1日出版的圖書,作者是胡明、王紅梅。

書籍信息

作者:胡明、王紅梅
定價:39元
印次:2-2
ISBN:9787302411802
出版日期:2016.01.01
印刷日期:2016.02.01

內容簡介

本書以C語言為工具,以程式設計過程為主線,結合實際問題,基於計算思維,通過“問題→想法→算法→程式”的問題求解過程,帶領讀者分析問題、構造算法、設計程式,在潛移默化中掌握程式設計語言的基本知識,掌握程式設計的一般過程和基本方法,提高計算思維能力以及應 用程式設計語言解決實際問題的能力。 本書適用於程式設計的初學者,主要面向沒有任何編程知識和編程經歷的讀者。本書遵循初學者的認知規律和知識基礎,科學安排知識單元之間的拓撲關係,概念清晰,實例豐富,深入淺出,是程式設計初學者的理想教材。

圖書目錄

第1章緒論1

1.1程式、程式設計與程式設計語言1

1.1.1程式與程式設計1

1.1.2程式設計語言2

1.2程式的基本構成4

1.2.1程式示例5

1.2.2基本字元集6

1.2.3詞法單位6

1.2.4語法單位8

1.2.5程式8

1.3程式的上機過程12

1.3.1編程環境12

1.3.2程式編輯12

1.3.3程式編譯13

1.3.4程式連線13

1.3.5運行調試13

1.4程式風格14

1.4.1標識符的命名規則14

1.4.2注釋15

1.4.3縮進15

1.4.4行文格式16

1.5問題求解與程式設計17

1.5.1程式設計的一般過程17

1.5.2程式設計的核心——算法18

1.5.3程式設計實例——雞兔同籠問題21

習題122

第2章數據的存儲表示25

引例2.1計算圓的面積25

2.1數據的存儲26

2.1.1二進制26

2.1.2記憶體27

2.2基本數據類型28

2.2.1整型29

2.2.2實型31

2.2.3字元型32

2.2.4邏輯型33

2.3常量34

2.3.1字面常量34

2.3.2符號常量36

2.4變數38

2.4.1變數的概念38

2.4.2變數的定義和初始化39

2.4.3變數的賦值40

2.5程式設計實例43

2.5.1實例1——溫度轉換43

2.5.2實例2——計算本息和43

習題244

第3章數據的運算處理47

3.1算術運算47

引例3.1求平均值47

3.1.1算術運算48

3.1.2運算符的優先權和結合性49

3.2邏輯運算50

引例3.2判斷閏年50

3.2.1關係運算51

3.2.2邏輯運算51

3.3賦值運算52

3.3.1賦值運算52

3.3.2自增/自減運算53

3.4其他運算54

3.4.1逗號運算54

3.4.2取長度運算54

3.4.3條件運算55

3.5運算對象的類型轉換55

3.5.1自動轉換56

3.5.2強制轉換57

3.6程式設計實例58

3.6.1實例1——通用產品代碼UPC58

3.6.2實例2——瘋狂賽車59

習題360

第4章程式的基本控制結構63

4.1順序結構63

引例4.1整數的逆值63

4.1.1簡單的順序結構64

4.1.2複合語句65

4.2選擇結構65

引例4.2水仙花數66

4.2.1邏輯值控制的選擇結構67

4.2.2算術值控制的選擇結構69

4.3循環結構71

引例4.3歐幾里得算法71

4.3.1當型循環72

4.3.2直到型循環72

4.3.3計數型循環73

4.3.4循環結構的比較74

4.3.5循環結構的嵌套77

4.4其他控制語句78

引例4.4素數判定78

4.4.1break語句79

4.4.2continue語句80

4.5程式設計實例81

4.5.1實例1——將三個整數由小到大輸出81

4.5.2實例2——今年已經過去多久了81

4.5.3實例3——百元買百雞問題83

4.5.4實例4——哥德巴赫猜想84

習題485

第5章批量同類型數據的組織——數組88

5.1一維數組88

引例5.1舞林大會88

5.1.1一維數組的定義和初始化89

5.1.2一維數組的操作92

5.2二維數組94

引例5.2哥尼斯堡七橋問題94

5.2.1二維數組的定義和初始化95

5.2.2二維數組的操作97

5.3程式設計實例99

5.3.1實例1——折半查找99

5.3.2實例2——合併有序數組100

5.3.3實例3——對角線元素之和101

5.3.4實例4——幻方問題103

習題5104

第6章 程式的組裝單元——函式 107

6.1 用戶定義的函式——自定義函式 107

引例6.1 歐幾里得算法 107

6.1.1 函式定義 108

6.1.2 函式調用 110

6.1.3 函式聲明 112

6.2 系統定義的函式——庫函式 113

引例6.2 素數判定 114

6.2.1 頭檔案與檔案包含 115

6.2.2 標準輸入輸出函式 116

6.2.3 隨機函式 119

6.2.4 其他常用庫函式 120

6.3 變數的作用域 121

引例6.3 雞兔同籠問題 121

6.3.1 局部變數 122

6.3.2 全局變數 124

6.4 變數的生存期 125

引例6.4 字數統計 125

6.4.1 自動變數 126

6.4.2 靜態變數 127

6.5 程式設計實例 128

6.5.1 實例1——三角形的面積 128

6.5.2 實例2——猜數遊戲 129

習題6 131

第7章 變數的間接訪問——指針 134

7.1 指針 134

引例7.1 答疑教室 134

7.1.1 指針的概念 135

7.1.2 指針變數的定義和初始化 137

7.1.3 指針變數的操作 139

7.1.4 指針所指變數的操作 141

7.2 指針作為函式的參數 141

引例7.2 雞兔同籠問題 141

7.2.1 值傳遞方式——函式的輸入 143

7.2.2 指針傳遞方式——函式的輸出 144

7.2.3 指針傳遞方式——函式的輸入輸出 145

7.3 數組作為函式的參數 146

引例7.3 順序查找 146

7.3.1 一維數組作為函式的參數 147

7.3.2 二維數組作為函式的參數 149

7.4 程式設計實例 150

7.4.1 實例1——三個整數由小到大輸出 150

7.4.2 實例2——哥德巴赫猜想 151

7.4.3 實例3——求一元二次方程的根 152

7.4.4 實例4——簡單選擇排序 154

習題7 155

第8章 字元數據的組織——字元串 158

引例8.1 愷撒加密 158

8.1 字元串變數的定義和初始化 159

8.1.1 字元數組 160

8.1.2 字元串指針 162

8.2 字元串的操作 162

8.2.1 輸入輸出操作 162

8.2.2 賦值操作 166

8.2.3 字元串的比較 167

8.2.4 常用字元串庫函式 168

8.3 程式設計實例 168

8.3.1 實例1——字數統計 168

8.3.2 實例2——字元串匹配 169

習題8 171

第9章 自定義數據類型 174

9.1 可枚舉數據的組織——枚舉類型 174

引例9.1 行走機器人 174

9.1.1 枚舉類型的定義 176

9.1.2 枚舉變數的定義與初始化 176

9.1.3 枚舉變數的操作 178

9.2 不同類型數據的組織——結構體類型 179

引例9.2 統計入學成績 179

9.2.1 結構體類型的定義 180

9.2.2 結構體變數的定義和初始化 181

9.2.3 結構體變數的操作 183

9.3 批量不同類型數據的組織——結構體數組 185

引例9.3 統計入學成績 186

9.3.1 結構體數組的定義和初始化 187

9.3.2 結構體數組的操作 189

9.4 為自定義數據類型定義別名 190

9.5 程式設計實例 191

9.5.1 實例1——荷蘭國旗問題 191

9.5.2 實例2——最近對問題 193

習題9 195

第10章 再談函式 198

10.1 函式的嵌套調用 198

引例10.1 字元串的循環左移 198

10.1.1 函式——封裝的小程式 200

10.1.2 函式的嵌套調用 201

10.2 函式的遞歸調用 202

引例10.2 求n! 202

10.2.1 遞歸的定義 203

10.2.2 函式的遞歸調用 204

10.3 程式設計實例 206

10.3.1 實例1——公共子序列 206

10.3.2 實例2——弦截法求方程的根 208

10.3.3 實例3——漢諾塔問題 210

10.3.4 實例4——折半查找 211

習題10 213

第11章 再談指針 216

11.1 指針與數組 216

引例11.1 判斷回文串 216

11.1.1 用指針訪問一維數組 217

11.1.2 用指針訪問二維數組 219

11.1.3 指針數組 221

11.2 指針與結構體 222

引例11.2 統計入學成績 222

11.2.1 指向結構體的指針 223

11.2.2 結構體指針作為函式參數 224

11.3 動態存儲分配 225

引例11.3 發紙牌 226

11.3.1 申請和釋放存儲空間 227

11.3.2 動態數組 230

11.3.3 鍊表 232

11.4 程式設計實例 236

11.4.1 實例1——求最大字元串 236

11.4.2 實例2——進制轉換 237

習題11 239

第12章 再談輸入輸出 241

引例12.1 統計入學成績 241

12.1 檔案與檔案指針 244

12.1.1 文本檔案和二進制檔案 244

12.1.2 檔案緩衝區 245

12.1.3 檔案指針 246

12.2 檔案的當前位置指針 246

12.2.1 什麼是檔案的當前位置指針 246

12.2.2 跟蹤檔案的當前位置指針 247

12.2.3 定位檔案的當前位置指針 248

12.3 檔案的打開與關閉 249

12.3.1 檔案的打開 249

12.3.2 檔案的關閉 251

12.4 檔案的讀寫操作 251

12.4.1 字元方式檔案讀寫 251

12.4.2 字元串方式檔案讀寫 252

12.4.3 格式化方式檔案讀寫 254

12.4.4 二進制方式檔案讀寫 255

12.5 程式設計實例 256

12.5.1 實例1——檔案複製 256

12.5.2 實例2——註冊與登錄 258

習題12 260

第13章 再談程式的基本結構 262

13.1 多檔案程式 262

13.1.1 多檔案程式的構成 262

13.1.2 將源程式檔案分解為多個程式檔案模組 263

13.2 外部變數和外部函式 264

13.2.1 外部變數 264

13.2.2 外部函式 265

13.3 嵌套包含 267

13.3.1 條件編譯 267

13.3.2 保護頭檔案 270

13.4 程式設計實例——石頭、剪子、布遊戲 271

習題13 276

第14章 低級程式設計 277

引例14.1 XOR加密 277

14.1 數據表示 278

14.1.1 二進制數與八進制數和十六進制數之間的轉換 278

14.1.2 位域 279

14.2 位運算 280

14.2.1 位邏輯運算 281

14.2.2 移位運算 282

14.2.3 補位原則 283

14.2.4 位運算的套用 283

14.3 程式設計實例 284

14.3.1 實例1——快速歐幾里得算法 284

14.3.2 實例2——過濾特殊字元 285

習題14 287

第15章 基本的算法設計技術 288

15.1 蠻力法 288

15.1.1 設計思想 288

15.1.2 程式設計實例——起泡排序 289

15.2 窮舉法 291

15.2.1 設計思想 291

15.2.2 程式設計實例——假幣問題 292

15.3 遞推法 295

15.3.1 設計思想 295

15.3.2 程式設計實例——捕魚知多少 296

15.4 分治法 297

15.4.1 設計思想 297

15.4.2 程式設計實例——數字旋轉方陣 299

15.5 動態規劃法 302

15.5.1 設計思想 302

15.5.2 程式設計實例——0/1背包問題 303

15.6 貪心法 305

15.6.1 設計思想 305

15.6.2 程式設計實例——埃及分數 306

習題15 308

附錄A 標準ASCII碼 310

附錄B 運算符的優先權和結合性 311

附錄C 常用庫函式 312

參考文獻 317

相關詞條

熱門詞條

聯絡我們