C語言程序設(shè)計(jì)——程序思維與代碼調(diào)試
定 價(jià):89 元
- 作者:周幸妮
- 出版時(shí)間:2019/7/1
- ISBN:9787121370984
- 出 版 社:電子工業(yè)出版社
- 中圖法分類:TP312.8
- 頁碼:464
- 紙張:
- 版次:01
- 開本:16開
本書站在程序設(shè)計(jì)的角度,從程序和算法、數(shù)據(jù)、程序語句、指針、結(jié)構(gòu)體、函數(shù)和文件等基本的C語言要素講起,全面介紹C語言程序設(shè)計(jì)的方方面面,引導(dǎo)學(xué)習(xí)者以“程序的思維”看問題,即如何從一個(gè)問題入手,算法應(yīng)該如何設(shè)計(jì)、程序如何實(shí)現(xiàn)的角度去看程序設(shè)計(jì)問題,讓初學(xué)者容易理解并掌握程序設(shè)計(jì)的基本思想與方法。通過對(duì)實(shí)際問題、解決方法或存在問題的討論,引入新概念,深入淺出,讓學(xué)習(xí)的過程變得有趣且容易。本書圖文、表格并茂,便于直觀理解。
周幸妮,西安電子科技大學(xué)計(jì)算機(jī)學(xué)院教授,長期從事程序設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)等課程的教學(xué)工作,著有C語言、數(shù)據(jù)結(jié)構(gòu)與算法等方面的多部教材。
第1章 程序概論 1
1.1 流程的概念 1
1.1.1 關(guān)于流程 1
1.1.2 流程的表達(dá)方式 3
1.1.3 流程的基本邏輯結(jié)構(gòu) 4
1.2 程序的概念 8
1.2.1 自動(dòng)化流程 9
1.2.2 程序的概念 9
1.2.3 程序的執(zhí)行特點(diǎn) 12
1.2.4 計(jì)算機(jī)工作流程 12
1.3 程序的構(gòu)成 13
1.3.1 計(jì)算機(jī)解題流程之?dāng)?shù)據(jù) 14
1.3.2 計(jì)算機(jī)解題流程之處理 15
1.3.3 計(jì)算機(jī)解題流程之結(jié)果 15
1.4 程序的開發(fā)過程 17
1.4.1 問題引例 17
1.4.2 程序開發(fā)基本步驟 18
1.4.3 計(jì)算機(jī)解題實(shí)例 19
1.4.4 程序開發(fā)流程 24
1.5 C語言程序簡介 25
1.5.1 C程序樣例 25
1.5.2 C程序框架結(jié)構(gòu) 28
1.5.3 代碼格式要求 29
1.6 本章小結(jié) 30
習(xí)題 31
第2章 算法 32
2.1 算法的概念 32
2.2 算法的表示 35
2.3 算法的可行性 39
2.4 算法的通用性 42
2.5 算法的全面性 44
2.6 算法設(shè)計(jì)過程與算法特性 49
2.6 本章小結(jié) 52
習(xí)題 52
第3章 基本數(shù)據(jù) 54
3.1 常量與變量 54
3.1.1 常量 54
3.1.2 變量 56
3.2 數(shù)據(jù)類型 62
3.2.1 計(jì)算機(jī)中的信息表示 62
3.2.2 計(jì)算機(jī)中的信息處理問題
討論 63
3.2.3 C語言的基本數(shù)據(jù)類型 66
3.3 整數(shù)存儲(chǔ)規(guī)則 67
3.3.1 有符號(hào)整數(shù) 68
3.3.2 無符號(hào)整數(shù) 68
3.3.3 字符類型數(shù)據(jù) 69
3.4 實(shí)數(shù)存儲(chǔ)規(guī)則 70
3.5 運(yùn)算符與表達(dá)式 74
3.6 數(shù)值處理 76
3.6.1 算術(shù)運(yùn)算符和算術(shù)表達(dá)式 76
3.6.2 數(shù)據(jù)運(yùn)算中的出界問題 80
3.7 邏輯判斷處理 81
3.7.1 關(guān)系運(yùn)算 81
3.7.2 邏輯運(yùn)算 82
3.8 數(shù)據(jù)類型轉(zhuǎn)換 86
3.8.1 強(qiáng)制類型轉(zhuǎn)換 88
3.8.2 自動(dòng)類型轉(zhuǎn)換 89
3.9 其他運(yùn)算 90
3.9.1 條件表達(dá)式 90
3.9.2 sizeof運(yùn)算符 91
3.9.3 賦值運(yùn)算符與表達(dá)式 92
3.9.4 復(fù)合賦值運(yùn)算符 92
3.9.5 逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式 92
3.10 本章小結(jié) 93
習(xí)題 94
第4章 輸入/輸出 95
4.1 輸入/輸出的概念 95
4.1.1 標(biāo)準(zhǔn)輸入/輸出 95
4.1.2 C標(biāo)準(zhǔn)庫函數(shù) 96
4.1.3 頭文件 96
4.2 數(shù)據(jù)的輸出 97
4.2.1 字符輸出函數(shù) 97
4.2.2 字符串輸出函數(shù) 98
4.2.3 格式輸出函數(shù) 99
4.3 數(shù)據(jù)的輸入 102
4.3.1 字符輸入函數(shù) 103
4.3.2 字符串輸入函數(shù) 104
4.3.3 格式輸入函數(shù) 105
4.4 數(shù)據(jù)輸入的常見問題 109
4.5 本章小結(jié) 112
習(xí)題 113
第5章 程序語句 115
5.1 順序結(jié)構(gòu) 115
5.2 雙分支選擇結(jié)構(gòu) 117
5.2.1 雙分支選擇結(jié)構(gòu)的語法規(guī)則 117
5.2.2 復(fù)合語句的作用 118
5.2.3 if語句實(shí)例 119
5.2.4 嵌套的if-else語句 121
5.3 多分支選擇結(jié)構(gòu) 124
5.3.1 多分支問題的引入 124
5.3.2 多分支結(jié)構(gòu)語法規(guī)則 125
5.3.3 多分支結(jié)構(gòu)實(shí)例 128
5.3.4 各種分支結(jié)構(gòu)語句的比較 134
5.4 循環(huán)問題的引入 134
5.4.1 循環(huán)中的要素分析 134
5.4.2 循環(huán)三要素 136
5.4.3 循環(huán)語句 137
5.5 當(dāng)型循環(huán)結(jié)構(gòu) 137
5.5.1 當(dāng)型循環(huán)語法規(guī)則 137
5.5.2 循環(huán)要素必要性驗(yàn)證 138
5.5.3 當(dāng)型循環(huán)實(shí)例 142
5.5.4 循環(huán)控制方式 146
5.6 直到型循環(huán)結(jié)構(gòu) 146
5.6.1 直到型循環(huán)語法規(guī)則 146
5.6.2 do-while的適用場(chǎng)合 150
5.6.3 do-while語句實(shí)例 150
5.7 當(dāng)型循環(huán)的另一種形式 151
5.7.1 for語句語法規(guī)則 151
5.7.2 for語句實(shí)例 152
5.8 無限循環(huán) 154
5.8.1 實(shí)際問題中的無限制循環(huán) 154
5.8.2 無限循環(huán)的while語句表達(dá) 154
5.8.3 無限循環(huán)的for語句表達(dá) 155
5.9 中斷循環(huán) 157
5.9.1 實(shí)際問題中的循環(huán)中斷 157
5.9.2 跳出循環(huán)的break語句 158
5.9.3 在循環(huán)內(nèi)跳轉(zhuǎn)的continue
語句 161
5.10 自由跳轉(zhuǎn)機(jī)制 164
5.10.1 自由跳轉(zhuǎn)的概念 164
5.10.2 無條件轉(zhuǎn)移語句規(guī)則 164
5.10.3 無條件轉(zhuǎn)移語句實(shí)例 164
5.10.4 goto語句的特點(diǎn) 166
5.11 本章小結(jié) 167
習(xí)題 168
第6章 數(shù)組 172
6.1 數(shù)組的概念 172
6.1.1 一組同類型數(shù)據(jù)的處理
問題 172
6.1.2 一組同類型數(shù)據(jù)所需要的
表達(dá)方式 175
6.2 數(shù)組的存儲(chǔ) 176
6.2.1 數(shù)組的定義 176
6.2.2 數(shù)組的初始化 178
6.2.3 數(shù)組的空間分配 179
6.2.4 數(shù)組的空間查看 180
6.3 一維數(shù)組的操作 183
6.4 二維數(shù)組的操作 196
6.5 字符數(shù)組的操作 205
6.6 本章小結(jié) 214
習(xí)題 215
第7章 指針 217
7.1 指針的概念 217
7.1.1 名稱引用和地址引用 217
7.1.2 存儲(chǔ)空間的管理 219
7.1.3 指針的概念 223
7.2 指針的運(yùn)算 224
7.2.1 指針運(yùn)算符 224
7.2.2 指針運(yùn)算種類 224
7.2.3 指針運(yùn)算基本規(guī)則 224
7.2.4 指針偏移的意義 227
7.2.5 空指針的概念 230
7.3 指針與數(shù)組 230
7.3.1 指針與一維數(shù)組 230
7.3.2 指針與二維數(shù)組 234
7.4 指針與多組字符串問題 238
7.4.1 一維指針數(shù)組與指向指針的
指針 240
7.5 本章小結(jié) 241
習(xí)題 242
第8章 復(fù)合類型數(shù)據(jù) 244
8.1 結(jié)構(gòu)體的概念 244
8.1.1 問題引入 244
8.1.2 綜合數(shù)據(jù)表的存儲(chǔ)方案 245
8.2 結(jié)構(gòu)體的存儲(chǔ) 246
8.2.1 結(jié)構(gòu)體類型定義 246
8.2.2 結(jié)構(gòu)體變量定義 248
8.2.3 結(jié)構(gòu)體初始化 248
8.2.4 結(jié)構(gòu)體變量空間分配 249
8.2.5 結(jié)構(gòu)體成員引用 253
8.3 結(jié)構(gòu)體應(yīng)用實(shí)例 254
8.4 共用體 264
8.4.1 問題引入 264
8.4.2 共用體的空間存儲(chǔ)描述 264
8.5 枚舉 269
8.5.1 問題引入 269
8.5.2 枚舉的概念及定義形式 270
8.5.3 枚舉實(shí)例 271
8.5.4 枚舉的使用規(guī)則 272
8.6 聲明新的類型名 273
8.6.1 問題引入 273
8.6.2 typedef聲明形式及使用 275
8.7 本章小結(jié) 275
習(xí)題 276
第9章 函數(shù) 278
9.1 函數(shù)的概念 278
9.1.1 問題的提出 278
9.1.2 模塊的概念 279
9.2 函數(shù)形式設(shè)計(jì) 281
9.2.1 模塊間信息交流方法 281
9.2.2 函數(shù)形式設(shè)計(jì) 282
9.3 函數(shù)間信息交流機(jī)制設(shè)計(jì) 285
9.3.1 函數(shù)間信息交流特點(diǎn)分析 285
9.3.2 函數(shù)間信息交流之處理數(shù)據(jù)
的提交與接收 287
9.3.3 函數(shù)結(jié)果的獲取方式 288
9.4 函數(shù)總體設(shè)計(jì) 289
9.4.1 函數(shù)設(shè)計(jì)要素 289
9.4.2 函數(shù)間信息傳遞歸結(jié) 289
9.4.3 函數(shù)的調(diào)用 290
9.5 函數(shù)設(shè)計(jì)實(shí)例 292
9.5.1 傳值調(diào)用 292
9.5.2 傳址調(diào)用 298
9.5.3 函數(shù)綜合實(shí)例 306
9.5.4 main函數(shù)的參數(shù) 316
9.6 作用域 319
9.6.1 問題引入 319
9.6.2 模塊的屏蔽機(jī)制 321
9.6.3 內(nèi)存分區(qū)與存儲(chǔ)分類 322
9.6.4 屏蔽機(jī)制1——變量的有效期
和作用范圍 323
9.6.5 屏蔽機(jī)制2——函數(shù)的有效
范圍 330
9.6.6 屏蔽機(jī)制3——共享數(shù)據(jù)的
使用限制 332
9.7 遞歸 333
9.7.1 引例 333
9.7.2 遞歸概念 336
9.7.3 遞歸實(shí)例 337
9.8 本章小結(jié) 339
習(xí)題 340
第10章 編譯預(yù)處理——編譯前的
工作 343
10.1 問題的引入 343
10.2 宏定義 344
10.2.1 簡單的宏定義 344
10.2.2 帶參數(shù)的宏定義 346
10.2.3 宏定義的副作用 348
10.3 文件包含 348
10.4 條件編譯 350
10.5 本章小結(jié) 353
習(xí)題 354
第11章 文件——外存數(shù)據(jù)的操縱 356
11.1 問題的引入 356
11.2 文件的概念 357
11.3 文件的操作流程 358
11.4 內(nèi)存和外存的數(shù)據(jù)交流 359
11.5 程序?qū)ξ募牟僮?361
11.5.1 打開文件 361
11.5.2 文件的讀寫 362
11.5.3 關(guān)閉文件 366
11.5.4 隨機(jī)讀取文件內(nèi)容 367
11.6 關(guān)于文件讀寫函數(shù)的討論 368
11.7 程序調(diào)試與輸入輸出重定向 372
11.8 本章小結(jié) 374
習(xí)題 375
第12章 程序的運(yùn)行 377
12.1 程序運(yùn)行環(huán)境 377
12.1.1 集成環(huán)境主界面 379
12.1.2 建立項(xiàng)目 380
12.1.3 新建源文件 382
12.1.4 編輯源文件 382
12.1.5 編譯源文件 384
12.1.6 鏈接程序 385
12.1.7 運(yùn)行程序 386
12.2 程序測(cè)試 387
12.2.1 引子 387
12.2.2 程序測(cè)試方法與實(shí)例 388
12.3 程序調(diào)試概念 392
12.3.1 bug與debug 392
12.3.2 bug無處不在 393
12.3.3 軟件調(diào)試的困難 393
12.4 軟件調(diào)試的方法論 394
12.4.1 引例 394
12.4.2 軟件調(diào)試的基本過程 395
12.4.3 程序錯(cuò)誤的查找方法討論 395
12.4.4 跟蹤方法方案探索 397
12.5 程序調(diào)試工具 399
12.5.1 IDE中調(diào)試器的功能 399
12.5.2 調(diào)試命令 401
12.6 調(diào)試實(shí)例 405
12.6.1 基本調(diào)試步驟示例 405
12.6.2 調(diào)試查找程序錯(cuò)誤示例 407
12.6.3 調(diào)用棧的使用示例 416
12.6.4 數(shù)據(jù)斷點(diǎn)使用示例 418
12.7 本章小結(jié) 420
習(xí)題 421
附錄A 運(yùn)算符的優(yōu)先級(jí)和結(jié)合性 425
附錄B ASCII碼表 426
附錄C C語言常用庫函數(shù) 427
附錄D 常用轉(zhuǎn)義字符表 432
附錄E 位運(yùn)算簡介 433
附錄F 在工程中加入多個(gè)文件 435
附錄G 編程范式 441
附錄H 空類型void問題 449
參考文獻(xiàn) 450