出版背景
C程式設計案例與提高教程(第2版)
作者:王金鵬 肖進傑
圖書詳細信息:
ISBN:9787302391739
定價:45元
印次:2-1
裝幀:平裝
印刷日期:2015-3-30
主要內容
Foreword
C語言是高等學校計算機及相關專業的必修專業課,是培養學生編程思想、動手能力的主要課程和工具,也是面向對象程式設計、數據結構等後續課程的先導課。對C語言的掌握情況將很大程度上決定著學生大學4年的學習情況。
鑒於C語言的重要地位,優秀的C語言教材層出不窮,廣泛用於課堂教學。但限於篇幅,絕大多數教材都只列出了基本語法規則和基本知識點,對於實際編程中用到的一些編程技巧和經驗涉獵不多,而對於基本C語言(即一般C語言教材介紹的內容)之外的擴展知識和實用技術則更少提及,這使得學生在學完C語言後,在面對實際問題時依然感覺無從下手。針對這種情況,我們編寫了本書。
本書共分3篇。第1篇是對基本C語言中一些重要內容的總結和補充,概括基本C語言的精要和編程經驗,指出編程中易出現的問題並介紹一些編程技巧;第2篇講述擴展C語言的一些實用編程技術: 記憶體管理機制、DOS和BIOS調用、I/O接口的輸入輸出、中斷處理程式的編寫、滑鼠和鍵盤操作、C作圖、漢字處理以及數據結構基礎等;第3篇是實例解析,匯集大量典型實例,並對這些實例進行講解,給出原始碼。
編寫本書的目的是培養編程思想,擴展知識面,提高編程能力,為後續課程的學習和今後的工作打下堅實的基礎。
本書適用對象: 一是已經學過C語言,想繼續深入學習,以更好地掌握C語言的讀者,可將本書作為深入學習的教材;二是正在學習C語言的讀者,可將本書作為輔助教材或學習參考書。
關於本書有以下幾點說明。
目錄
第1章C語言標準及常用編譯器介紹31.1C語言標準介紹3
1.1.1經典C語言3
1.1.2C893
1.1.3C993
1.2Turbo C 2.0編程環境及常用操作簡介4
1.2.1TC的安裝和配置4
1.2.2TC的調用5
1.2.3在TC中編輯、運行程式並查看結果6
1.2.4在DOS命令行中運行程式6
1.2.5在TC中調試程式7
1.2.6多檔案程式的創建和運行8
1.3Visual C++6.0編程環境及常用操作簡介8
1.3.1工程及源檔案的建立8
1.3.2程式的編譯、連線和運行11
1.3.3程式的調試11
習題113
第2章輸入輸出14
2.1printf()和scanf()的常見問題14
2.1.1printf()函式14
2.1.2scanf()函式15
2.2輸入數據時的回車換行問題18
2.3輸出時常用的幾個函式19
2.3.1clrscr()19◆C程式設計案例與提高教程(第2版)目錄2.3.2getch()和getche()19
2.4輸入輸出重定向20
習題222
第3章程式的流程控制25
3.1選擇結構25
3.1.1if語句和ifelse語句25
3.1.2嵌套的if語句26
3.1.3if語句常見錯誤28
3.1.4if語句中的短路效應32
3.1.5switch語句33
3.1.6選擇結構程式舉例35
3.2循環結構38
3.2.13種循環語句38
3.2.2計數器控制循環和其他條件控制循環39
3.2.3break和continue40
3.2.4循環結束時循環變數的值42
3.2.5循環舉例43
習題346
第4章數組與指針48
4.1數組的由來及數組的元素48
4.1.1一維數組的由來及一維數組的元素48
4.1.2多維數組的由來及多維數組的元素48
4.1.3使用數組時的注意事項49
4.2指針變數及其套用50
4.2.1指針變數的定義、賦值和使用50
4.2.2指針變數的類型及運算52
4.3數組名的指針類型53
4.3.1數組名指向的對象53
4.3.2用數組名表示數組元素55
4.4用指針變數處理數組56
4.4.1用指向變數的指針變數處理數組56
4.4.2用指向數組的指針變數處理數組59
4.4.3用指針變數處理數組時的類型問題60
4.5不同場合下使用變數的方法61
4.5.1簡單變數61
4.5.2下標變數63
習題465
第5章函式67
5.1函式的定義67
5.1.1函式定義的格式67
5.1.2函式的返回類型68
5.1.3函式參數的設定70
5.2函式的調用72
5.2.1函式調用前的聲明72
5.2.2函式調用的方式73
5.3函式調用時的參數傳遞74
5.4地址作函式參數76
5.4.1什麼時候傳地址76
5.4.2變數的地址作參數76
5.4.3數組名作參數78
5.4.4不再用全局變數81
5.4.5地址作參數是單向傳遞還是雙向傳遞83
5.5遞歸函式84
5.5.1遞歸的條件84
5.5.2遞歸與疊代85
5.6函式編程的常見錯誤86
習題587
第6章檔案89
6.1檔案的概念和檔案的種類89
6.1.1檔案的範疇89
6.1.2檔案中存儲數據的兩種方式89
6.1.3檔案的種類90
6.1.4檔案操作的兩個層面及緩衝區的概念90
6.2檔案類型指針91
6.3檔案的打開和關閉93
6.3.1檔案的打開93
6.3.2檔案的關閉97
6.4檔案的讀寫98
6.4.1常用讀寫函式98
6.4.2讀寫指針的移動和定位99
6.4.3兩個與當前位置指針有關的函式99
6.4.4檔案讀寫的例子101
習題6103
第7章變數和字元處理的幾個問題105
7.1與變數有關的幾個問題105
7.1.1變數的本質105
7.1.2同名變數的分辨106
7.1.3變數賦初值及初值問題107
7.2實型變數的存儲及常見問題108
7.2.1實型變數的存儲方式108
7.2.2實型變數的常見使用問題110
7.3字元處理的幾個問題111
7.3.1結束標誌用空字元還是換行符111
7.3.2循環次數是數組大小還是實際字元個數112
習題7112
第二篇擴展C編程技術
第8章記憶體管理機制與TC編譯模式1178.1暫存器和偽變數117
8.1.1微處理器中的暫存器117
8.1.2段暫存器及其用途118
8.1.3偽變數119
8.2記憶體的定址模式119
8.2.1段式記憶體管理機制和實模式定址119
8.2.2保護模式定址120
8.2.3默認的段和偏移暫存器121
8.2.4近程指針與遠程指針121
8.2.5與地址操作有關的幾個函式(宏)122
8.3TC的編譯模式124
8.3.1微模式124
8.3.2小模式124
8.3.3中模式125
8.3.4緊湊模式125
8.3.5大模式125
8.3.6巨模式125
習題8125
第9章BIOS和DOS調用126
9.1概述126
9.2中斷和中斷向量表127
9.2.1中斷127
9.2.2中斷向量表127
9.3BIOS調用128
9.3.1BIOS調用簡介128
9.3.2BIOS調用的方法和例子129
9.4DOS調用130
9.4.1DOS調用簡介130
9.4.2DOS調用的方法和例子131
9.5BIOS和DOS系統調用函式134
9.5.1int86()134
9.5.2int86x()136
9.5.3intdos()137
9.5.4intdosx()137
9.5.5intr()138
習題9139
第10章I/O接口的輸入輸出140
10.1I/O連線埠地址及編址方式140
10.1.1I/O連線埠的地址140
10.1.2I/O連線埠的編址140
10.2C語言用於I/O接口輸入輸出的函式142
10.2.1接口輸入函式142
10.2.2接口輸出函式142
10.3I/O接口輸入輸出舉例143
習題10146
第11章中斷服務程式147
11.1硬中斷和軟中斷147
11.1.1硬中斷147
11.1.2軟中斷148
11.2中斷向量表的寫入148
11.3中斷服務的實現148
11.3.1中斷服務程式的編寫148
11.3.2中斷服務程式的安裝149
11.3.3中斷服務程式的激活150
11.4中斷服務程式舉例151
習題11155
第12章C作圖與圖形處理156
12.1圖形系統的初始化及基本框架156
12.1.1初始化圖形系統156
12.1.2圖形系統的關閉以及兩種顯示方式的轉換157
12.1.3程式的基本框架及實例158
12.2圖形系統中的像素與坐標159
12.2.1像素及坐標159
12.2.2像素函式及像素的顏色159
12.3常用圖形函式160
12.3.1畫點函式160
12.3.2有關畫圖坐標位置的函式160
12.3.3畫線函式161
12.3.4畫圓、橢圓和扇形函式161
12.3.5畫矩形和條形圖函式162
12.3.6顏色控制函式162
12.3.7線形控制函式163
12.3.8填充函式以及與填充有關的函式164
12.4圖形方式下的文本輸出函式165
12.5螢幕操作函式及動畫基本知識166
12.5.1常用的螢幕操作函式166
12.5.2C語言動畫設計的常用方法167
12.5.3動畫示例167
12.6VRAM的讀寫170
12.6.1螢幕圖形與VRAM的關係170
12.6.2VGA視頻存儲器的位面結構170
12.6.3將VRAM位面信息存入檔案171
12.6.4將檔案圖像信息寫入VRAM位面172
習題12174
第13章鍵盤和滑鼠操作175
13.1鍵盤操作175
13.1.1鍵盤的工作原理175
13.1.2鍵盤緩衝區176
13.1.3鍵盤處理函式176
13.2滑鼠操作177
13.2.1滑鼠的INT 33H功能調用178
13.2.2滑鼠主要操作函式180
13.2.3改變滑鼠形狀182
13.2.4滑鼠操作舉例184
習題13187
第14章漢字的顯示與放大188
14.1漢字的編碼188
14.1.1區位碼188
14.1.2國標碼189
14.1.3機內碼189
14.1.4字形碼190
14.1.5地址碼190
14.2用作圖方式顯示和放大漢字191
14.2.1漢字的顯示191
14.2.2漢字的放大193
14.3直接寫VRAM法顯示漢字195
14.3.1利用定序器直接寫VRAM195
14.3.2用方式暫存器和位禁止暫存器直接寫VRAM198
習題14201
第15章數據結構基礎202
15.1線性表202
15.1.1線性表的概念202
15.1.2線性表的存儲結構202
15.2順序表的操作203
15.2.1空順序表的建立203
15.2.2求順序表中某元素的序號203
15.2.3順序表元素的插入204
15.2.4順序表元素的刪除204
15.3鍊表及操作205
15.3.1線性鍊表的表示205
15.3.2線性鍊表的操作206
15.3.3循環鍊表209
15.3.4雙向鍊表209
15.4棧210
15.4.1棧的概念210
15.4.2棧的實現210
15.5佇列214
15.5.1佇列的概念214
15.5.2佇列的實現和操作215
習題15217
第三篇實 例 解 析
第16章基本編程實例221實例1利用輸入重定向從檔案中讀數據221
實例2火車託運費的計算222
實例3找小偷223
實例4判斷整數能被3、5、7中的哪些數整除224
實例5找假貨225
實例6計算某天是一年中的第幾天227
實例7國民生產總值多少年翻番227
實例8兌換硬幣228
實例9里程碑上的對稱數229
實例10輾轉賦值法求表達式的值230
實例11隨機數的生成231
實例12列印魔方陣233
實例13猜數遊戲234
實例14二維數組的排序輸出235
實例15尋找假幣236
實例16列印乘法口訣237
實例17計算矩陣相乘238
實例18向排好序的數組中插入數據239
實例19數組作計數器240
實例20判斷字元串是否回文241
實例21找素數242
實例22字元串轉換為實數243
實例23任意進制數的轉換245
實例24利用位運算求整數的原碼或補碼246
實例25字元串逆置246
實例26用遞歸法逆序輸出字元串247
實例27用遞歸法對數組排序247
實例28向主調函式中的局部變數存數據248
實例29通過指針變數使函式“返回”兩個值249
實例30利用位運算對字母進行大小寫轉換250
實例31用結構體處理學生成績251
實例32報數遊戲252
實例33帶參數的main函式253
實例34時鐘程式254
實例35簡單的計算器(一)256
實例36簡單的計算器(二)258
第17章算法與數據結構實例262
實例1冒泡法排序262
實例2選擇法排序263
實例3插入排序264
實例4儲油問題265
實例501背包問題267
實例6順序表的插入和刪除270
實例7鍊表操作(一)272
實例8鍊表操作(二)277
實例9鍊表的逆置279
實例10約瑟夫環280
實例11雙鍊表的操作283
實例12多項式的表示和計算287
實例13十進制數轉換為二進制數290
實例14檢查括弧配對292
實例15八皇后問題294
實例16迷宮問題296
實例17騎士巡遊問題299
實例18農夫過河問題302
實例19表達式計算308
第18章趣味數學和數值計算實例315
實例1馬克思手稿中的數學題315
實例2新郎和新娘配對316
實例3分糖果317
實例4泊松的分酒問題319
實例5求π的近似算法321
實例6角谷猜想323
實例7四方定量324
實例8卡布列克數325
實例9求解線性方程327
實例10求積分331
實例11超長整數的加法332
第19章圖形編程實例338
實例1畫點及畫線函式338
實例2繪製圓、圓弧和橢圓339
實例3畫矩形和條形的函式340
實例4設定背景色和前景色340
實例5設定線條類型341
實例6設定填充類型和填充顏色342
實例7圖形方式下輸出文本343
實例8繪製時鐘343
實例9跳動小球345
實例10用直方圖顯示學生成績分布347
實例11用圓餅圖顯示比例349
實例12相向運動的球350
實例13模擬滿天星351
實例14正弦曲線352
實例15衛星環繞地球運動353
實例16按鈕的製作355
實例17火箭發射演示358
實例18火焰動畫製作360
第20章系統和檔案操作實例364
實例1獲取並修改當前驅動器364
實例2建立目錄365
實例3選擇當前目錄366
實例4刪除目錄366
實例5獲得當前目錄367
實例6建立檔案368
實例7打開檔案369
實例8讀檔案370
實例9寫檔案371
實例10關閉檔案372
實例11刪除檔案373
實例12檔案改名374
實例13讀取CMOS信息375
實例14檔案連線376
實例15檔案讀寫操作377
第21章趣味遊戲實例379
實例1俄羅斯方塊379
實例2貪吃蛇遊戲381
實例3潛艇大戰383
實例4搬運工384
實例5商人過河遊戲387
實例6五子棋389
實例7掃雷389
第22章綜合套用實例392
實例1數據檔案的讀取及圖形顯示392
實例2數獨遊戲的求解399
實例3通信錄管理系統404
附錄A常用的視頻BIOS調用408
附錄BINT 21H常用功能調用一覽表414附錄CASCII碼錶419參考文獻421第1章圖像處理基礎1
1.1點陣圖與矢量圖1
1.1.1點陣圖1
1.1.2矢量圖2
1.2解析度2
1.3顏色模式3
1.4常用檔案的存儲格式6
1.5轉換圖像檔案格式實例8
第2章Photoshop基本操作10
2.1熟悉工作區10
2.2圖像處理基本工作流程13
2.2.1創建新圖像檔案 13
2.2.2存儲圖像檔案14
2.2.3打開和關閉檔案15
2.2.4顏色的設定16
2.2.5填充顏色18
2.2.6使用標尺、格線與參考線19
2.2.7圖像編輯的基本操作21
2.3改變圖像大小操作實例24
第3章選區的使用27
3.1創建選區27
3.1.1創建規則選區27
3.1.2創建不規則選區29
3.1.3智慧型化的選取工具303.2編輯選區32
3.2.1移動選區33
3.2.2反向選區33
3.2.3取消選區33
3.2.4再次選擇剛剛選取的選區33
3.2.5變換選區33
3.2.6增加選區33
3.2.7減少選區34
3.2.8修改選區34
3.2.9羽化選區35
3.2.10選區描邊35
3.2.11存儲與載入選區35
3.2.12複製、剪下、移動和貼上選區的內容35
3.3繪製一個太極圖圖示36
第4章圖像的繪製與修飾40
4.1繪製圖像40
4.1.1畫筆工具40
4.1.2鉛筆工具42
4.1.3顏色替換工具42
4.1.4擦除工具43
4.2修飾工具44
4.2.1修復畫筆工具組44
4.2.2圖章工具組47
4.2.3模糊工具組48
4.2.4歷史記錄畫筆工具組49
4.3繪製花紋圖案50
第5章色彩的調整53
5.1使用調整工具53
5.2色彩調整的基本方法54
5.2.1去色54
5.2.2反相54
5.2.3閾值55
5.2.4色調分離56
5.2.5色調均化56
5.2.6自動色調56
5.2.7自動對比度56
5.2.8自動顏色57
5.3色彩調整的中級方法57
5.3.1亮度/對比度57
5.3.2色彩平衡57
5.3.3替換顏色58
5.3.4照片濾鏡59
5.3.5通道混合器60
5.4色彩調整的高級方法61
5.4.1色階61
5.4.2曲線62
5.4.3色相/飽和度64
5.4.4漸變映射65
5.4.5可選顏色66
5.4.6匹配顏色66
5.5照片白天變黑夜67
第6章圖層的套用72
6.1圖層的基礎知識72
6.1.1圖層面板和選單72
6.1.2圖層的類型73
6.2圖層的編輯74
6.2.1新建、複製、移動和刪除圖層74
6.2.2圖層的連結、對齊、合併74
6.2.3圖層的變換75
6.2.4圖層的編組75