本書分為三個部分:語言篇、信號與系統基礎篇以及信號與系統應用篇。系統地介紹MATLAB軟件,內容涉及:MATLAB軟件簡介、MATLAB編程基礎、MATLAB工具箱簡介、MATLAB混合編程等。
第1篇程 途 啟 步
第1單元簡單程序設計2
1.1C語言程序主框架2
1.1.1用偽代碼描述的簡單計算器程序算法2
1.1.2將偽代碼描述的算法逐步細化為C程序2
1.2數據類型與數據形式3
1.2.1數據類型3
1.2.2程序中的數據形式及其引用方式4
1.3標識符與聲明6
1.3.1標識符6
1.3.2聲明6
1.3.3變量的聲明與初始化7
1.4操作符8
1.4.1賦值操作符與賦值表達式8
1.4.2算術操作符與算術表達式8
1.4.3操作符的優先級與結合性9
1.5函數9
1.5.1函數及其應用過程10
1.5.2函數調用與函數返回11
1.5.3函數定義11
1.5.4局部變量12
1.5.5函數聲明14
1.5.6main()函數15
1.5.7函數庫、頭文件與文件包含命令15
1.6格式化輸入/輸出函數16
1.6.1printf()函數的基本用法16
1.6.2scanf()的基本用法17
1.7C程序的編譯與執行19
1.7.1C語言程序的編譯與連接19
1.7.2程序中的錯誤和異常20
1.7.3程序測試22
1.7.4設計用戶友好的程序23
習題123
第2單元選擇程序設計27
2.1可選擇計算類型的計算器程序算法分析27
2.1.1主函數的算法分析27
2.1.2計算函數calculate()的算法分析28
2.1.3判等操作符與關系操作符28
2.2ifelse型選擇結構29
2.2.1用ifelse結構實現的calculate()函數29
2.2.2ifelse結構的應用特點30
2.2.3良好的程序書寫風格32
2.3選擇結構的程序測試34
2.3.1白箱測試法34
2.3.2等價分類法35
2.4字符類型38
2.4.1ASCII碼38
2.4.2char類型的基本特點39
2.4.3轉義字符39
2.4.4字符的輸入/輸出40
2.5浮點類型41
2.5.1浮點類型取值范圍與表數精度41
2.5.2浮點類型變量和字面量42
2.5.3浮點類型數據的操作42
2.6switch型選擇結構43
2.6.1基于整數值匹配的選擇結構——switch結構43
2.6.2一個字符分類程序44
2.6.3用switch結構實現的calculate()函數47
2.6.4switch結構與ifelse結構的比較48
習題249
第3單元重復程序設計56
3.1可連續計算的計算器程序的算法分析56
3.1.1主函數初步算法56
3.1.2主函數算法細化56
3.1.3重復結構的C語言實現途徑57
3.2while結構57
3.2.1while結構的基本機理57
3.2.2使用while結構的可連續計算的計算器主函數57
3.2.3逗號操作符59
3.3dowhile結構59
3.3.1dowhile結構的基本機理59
3.3.2使用dowhile結構的可連續計算的計算器程
序主函數60
3.4for結構60
3.4.1for結構的基本機理60
3.4.2使用for結構的可連續計算的計算器程序主函數61
3.4.3計數型重復結構62
3.4.4復合賦值操作符與增值、減值操作符66
3.5重復結構的程序測試67
3.5.1基于路徑覆蓋的重復結構測試67
3.5.2邊值分析法與重復結構測試67
3.5.3基于因果分析的程序測試68
3.6在重復體內控制重復過程71
3.6.1跳出當前層控制結構語句break72
3.6.2提前結束當前重復體語句continue72
3.6.3實例: 求素數72
習題374
第2篇組 織 數 據
第4單元同類型數據的聚合類型: 數組86
4.1一維數組86
4.1.1數組的特點86
4.1.2數組的定義87
4.1.3數組初始化87
4.1.4訪問下標變量89
4.2二維數組90
4.2.1二維數組的概念90
4.2.2二維數組的初始化91
4.2.3訪問二維數組元素92
4.3字符串93
4.3.1字符串字面量93
4.3.2字符串變量94
4.3.3字符串的輸入/輸出95
4.3.4字符串操作庫函數98
習題4102
第5單元描述一類對象屬性的聚合類型: 結構體和共用體107
5.1結構體類型與結構體變量107
5.1.1結構體類型及其定制107
5.1.2結構體變量的聲明與初始化108
5.1.3結構體變量及其分量的應用109
5.2用結構體數組存儲一組學生信息111
5.2.1結構體數組的定義與初始化111
5.2.2結構體數組元素的訪問112
5.3共用體類型114
5.3.1共用體類型的定制與共用體變量的定義114
5.3.2共用體類型與結構體類型的比較115
5.3.3共用體變量的應用117
習題5118
第6單元指針124
6.1指針類型與指針變量124
6.1.1指針=基類型+地址124
6.1.2同類型指針間的賦值與判等操作126
6.1.3指針的遞引用127
6.1.4懸空指針、空指針與void指針128
習題6.1129
6.2數組的指針形式131
6.2.1數組名與指向數組元素的指針131
6.2.2指向數組元素指針的加減運算133
6.2.2指針與字符串135
6.2.3二維數組與指針137
習題6.2139
6.3指向結構體變量的指針與鏈表142
6.3.1指向結構體類型變量的指針142
6.3.2鏈表及其特點142
6.3.3構建鏈表144
習題6.3146
6.4動態存儲分配146
6.4.1申請需要的存儲空間147
6.4.2釋放一個指針指向的存儲空間149
6.4.3修改一個指針指向的存儲空間大小149
6.4.4構建動態鏈表150
習題6.4154
第3篇構 建 算 法
第7單元基礎算法156
7.1窮舉156
7.1.1搬磚問題156
7.1.2推斷名次159
習題7.1163
7.2迭代與遞推168
7.2.1用二分迭代法求方程在指定區間的根168
7.2.2猴子吃桃子171
7.2.3用輾轉相除法求兩個正整數的最大公因子173
習題7.2176
7.3遞歸180
7.3.1階乘的遞歸計算180
7.3.2漢諾塔182
習題7.3185
第8單元計算機模擬187
8.1隨機問題模擬187
8.1.1產品隨機抽樣187
8.1.2用蒙特卡洛法求π的近似值190
習題8.1192
8.2基于步長的模擬192
8.2.1事件步長法——中子擴散問題192
8.2.2時間步長法——鹽水池問題194
習題8.2198
第9單元數據處理201
9.1排序201
9.1.1直接選擇排序201
9.1.2冒泡排序203
習題9.1206
9.2查找206
9.2.1窮舉查找206
9.2.2二分查找207
習題9.2208
第4篇語 海 探 幽
第10單元算術數據類型及其轉換210
10.1C數據類型概覽210
10.2整數類型211
10.2.1有符號整數類型與無符號整數類型211
10.2.2標準整數類型與擴展整數類型211
10.2.3整數類型的極值宏212
10.2.4char類型213
10.2.5枚舉214
10.2.6_Bool類型216
10.3浮點類型216
10.3.1浮點類型的值特性216
10.3.2浮點數據的舍入模式217
10.3.3浮點數據的求值特性217
10.3.4IEEE 754標準218
10.3.5關于浮點數的判等操作218
10.3.6_Complex類型和_Imaginary類型218
10.4數據類型轉換219
10.4.1普通算術轉換——提升拉齊規則219
10.4.2傳送轉換——與目的類型一致原則221
10.4.3數據的顯式類型轉換規則222
10.4.4數據類型轉換注意事項222
習題10226
第11單元C語言中的常量229
11.1字面量229
11.1.1整數字面量的表示和辨識229
11.1.2浮點類型字面量的表示和辨識230
11.1.3復合字面量231
11.2宏232
11.2.1宏定義232
11.2.2使用宏應當注意的幾點233
11.2.3帶參宏定義234
11.3const類型限定符237
11.3.1用const限定變量237
11.3.2用const限定數組238
11.3.3用const限定函數參數239
11.3.4用const限定指針239
11.3.5在多文件程序中共享一個const定義240
習題11241
第12單元C程序中變量的訪問屬性247
12.1變量訪問屬性的概念247
12.1.1變量的存儲類型與生存期247
12.1.2標識符的作用域248
12.1.3標識符的鏈接屬性249
12.2C語言程序實體的存儲類型249
12.2.1C程序中的局部變量250
12.2.2外部變量的定義與聲明251
12.2.3初始化255
習題12256
第13單元操作符、表達式與語句261
13.1操作符與表達式261
13.1.1算術操作符261
13.1.2邏輯表達式262
13.1.3位操作符262
13.1.4條件表達式265
13.1.5增值表達式和減值表達式265
13.1.6下標表達式與指針的加減操作266
13.1.7賦值操作267
13.1.8左值表達式268
13.2操作符的副作用與序列點270
13.2.1操作符的副作用與透明引用270
13.2.2基于序列點的副作用不疊加表達式規則272
13.2.3函數的副作用274
13.3語句274
13.3.1表達式語句、空語句和復合語句274
13.3.2控制語句275
13.3.3跳轉語句276
13.3.4關于分號(;)的說明276
習題13276
第14單元函數280
14.1函數參數280
14.1.1現代C語言函數參數不能空280
14.1.2C語言函數調用中的值結合280
14.1.3指針類型參數282
14.2函數定義與函數聲明289
14.2.1函數定義289
14.2.2函數聲明290
14.3內聯函數291
14.3.1內聯函數的概念291
14.3.2C99的內聯函數定義291
14.3.3gcc的內聯函數定義292
14.3.4內聯函數的限制292
習題14292
第15單元輸入/輸出297
15.1格式化輸出函數printf()297
15.1.1printf()格式參數結構297
15.1.2printf()基本格式符297
15.1.3長度修飾符298
15.1.4域寬與精度說明299
15.1.5前綴修飾符299
15.2格式化輸入函數scanf()301
15.2.1scanf()指針參數301
15.2.2scanf()格式參數結構302
15.2.3數值數據的輸入控制304
15.2.4scanf()與輸入緩沖區305
15.2.5字符型數據的輸入控制306
15.2.6scanf()的停止與返回309
15.3C語言的文件操作310
15.3.1文件及其分類310
15.3.2FILE類型及其指針312
15.3.3C語言文件操作的一般過程313
15.3.4文件操作程序示例316
習題15318
附錄324
附錄AC語言關鍵字324
附錄BC語言運算符的優先級和結合方向324
附錄C編譯預處理命令325
C.1宏定義325
C.2文件包含326
C.3條件編譯326
附錄DC標準庫頭文件326
附錄EC語言常用標準庫函數327
E.1數學函數327
E.2字符函數和字符串函數328
E.3輸入/輸出函數329
E.4動態內存分配函數331
E.5退出程序函數331
E.6數值轉換函數331
E.7時間和日期函數332
參考文獻333