C語言程序設計(微課版)
吳紹根
相關主題
商品描述
作者簡介
目錄大綱
目錄
第1章C語言概述1
1.1C語言簡介1
1.2建立C語言程序開發環境2
1.2.1下載並安裝CLion集成環境2
1.2.2配置和驗證安裝2
1.3C語言程序基本結構5
1.4程序運行亂碼解決方法6
1.5基本輸出7
1.5.1type類型控制符8
1.5.2flags標誌控制符10
1.5.3width常用數據顯示寬度控制11
1.5.4“.precision”數據顯示精度控制11
1.5.5length控制符11
1.5.6轉義符12
1.6算法及其描述13
1.6.1使用自然語言描述算法13
1.6.2使用流程圖描述算法13
1.7案例: 微笑的自己15
1.8課後練習: 繪制圖形並計算面積16
第2章數據類型和數據運算17
2.1數據類型17
2.2變量18
2.2.1變量定義及其本質19
2.2.2變量賦值20
2.3數據輸入21
2.3.1格式說明符22
2.3.2數據輸入註意事項23
2.4數據運算24
2.4.1基本算術運算25
2.4.2強制類型轉換25
2.4.3自增和自減運算26
2.4.4復合運算符27
2.4.5表達式和運算符的優先級27
2.5常用數學函數28
2.6案例: 驗證sin2(x)+cos2(x)等於128
2.7課後練習: 三角形面積和周長29
第3章條件控制及程序分支30
3.1單分支if語句30
3.2關系運算和邏輯運算31
3.2.1關系運算與關系運算符31
3.2.2邏輯運算與邏輯運算符32
3.3雙分支if語句33
3.4多分支if語句34
3.5if語句的嵌套36
3.6條件表達式和表達式書寫註意事項37
3.6.1條件表達式37
3.6.2表達式書寫註意事項38
3.7switch語句39
3.8案例: 求一元二次方程的根41
3.9課後練習: 判斷一個年份是否是閏年42
第4章循環結構程序設計43
4.1while循環43
4.1.1while循環入門43
4.1.2while循環詳解44
4.1.3while循環使用舉例44
4.2do...while循環46
4.3for循環47
4.43種循環語句的等價性49
4.4.13種循環語句等價性舉例: 巴塞爾問題49
4.4.2宏常量與const關鍵字的使用51
4.5循環結構中的break語句和continue語句52
4.5.1break語句和continue語句使用舉例52
4.5.2隨機數發生器53
4.6循環的嵌套54
4.7案例: 猜數遊戲55
4.8課後練習: 求最大公約數和最小公倍數57
第5章數組58
5.1一維數組58
5.1.1定義數組58
5.1.2訪問數組元素58
5.1.3數組的初始化60
5.1.4sizeof關鍵字的使用60
5.1.5一維數組在內存中的存儲方式61
5.1.6一維數組應用舉例62
5.2二維數組64
5.2.1二維數組的定義和初始化64
5.2.2二維數組的訪問65
5.2.3三維及高維數組的定義和訪問65
5.2.4二維數組在內存中的存儲方式66
5.2.5二維數組應用舉例67
5.3案例: 計算學生課程成績69
5.4課後練習: 排序二維數組71
第6章字符數組和字符串72
6.1字符類型72
6.1.1字符及其編碼72
6.1.2字符類型變量73
6.1.3字符數據的輸入和輸出73
6.2字符數組74
6.2.1char類型數組的定義和初始化75
6.2.2字符數組的簡單應用75
6.3字符串77
6.3.1字符串常量77
6.3.2字符數組和字符串78
6.3.3字符串的輸入和輸出79
6.4字符數組和字符串應用舉例81
6.5常用字符串處理函數和字符型二維數組83
6.5.1常用的字符串處理函數83
6.5.2字符類型二維數組84
6.5.3字符串函數及字符二維數組的應用舉例84
6.6案例: 電子字典87
6.7課後練習: 逆轉字符矩陣89
第7章函數基礎90
7.1函數的分類及其意義90
7.1.1C語言標準庫函數90
7.1.2自定義函數91
7.1.3函數是程序模塊化和分工協作的基礎92
7.2定義函數92
7.2.1一個簡單的自定義函數92
7.2.2定義函數的一般形式93
7.2.3定義函數舉例93
7.3調用函數95
7.3.1調用自定義函數舉例95
7.3.2函數調用的一般形式及其應用96
7.3.3函數的形參和實參97
7.3.4函數聲明100
7.3.5文件包含#include預處理命令的本質102
7.4函數的嵌套調用和遞歸調用103
7.4.1函數的嵌套調用103
7.4.2函數的遞歸調用104
7.5數組作為函數參數105
7.5.1數組元素作為函數參數105
7.5.2數組名作為函數參數107
7.5.3二維數組名作為函數參數110
7.6案例: 檢查回文數字114
7.7課後練習: 求斐波那契數列任一項的值116
第8章函數進階117
8.1變量的作用域和變量的存儲類型117
8.1.1變量的作用域117
8.1.2變量的存儲類型121
8.2C語言預處理命令123
8.2.1#define預處理命令123
8.2.2#undef預處理命令125
8.2.3#ifndef...#endif預處理命令125
8.3程序工程管理和extern關鍵字及其使用126
8.3.1程序工程管理126
8.3.2extern關鍵字及其使用127
8.4程序調試129
8.5案例: 圖書信息管理系統132
8.6課後練習: 學生信息管理系統136
第9章指針基礎137
9.1存儲器和存儲器地址137
9.2指針變量入門138
9.2.1定義指針變量138
9.2.2取地址運算符&及其使用139
9.2.3取內容運算符及其使用139
9.2.4指針的形象理解140
9.3指針與一維數組141
9.3.1指針與一維數組基礎141
9.3.2使用指針操作一維數組舉例143
9.4指針與二維數組146
9.4.1指針與二維數組基礎146
9.4.2二維數組地址的等價性148
9.5指針與字符數組和字符串150
9.5.1指向字符變量的指針150
9.5.2指向字符數組元素的指針150
9.5.3指向字符串常量的指針151
9.6案例: 二維數組排序153
9.7課後練習: 字符串逆轉154
第10章指針進階155
10.1指針數組和二級指針155
10.1.1指針數組155
10.1.2二級指針158
10.2指針與函數160
10.2.1指針作為函數參數160
10.2.2指針作為函數返回值及nullptr空指針的使用165
10.2.3函數指針變量及其應用167
10.3動態內存分配169
10.3.1動態內存分配入門169
10.3.2動態內存申請及釋放庫函數171
10.3.3動態內存申請應用舉例172
10.4帶參數的main()函數173
10.4.1在命令行終端執行程序173
10.4.2帶參數的main()函數的參數含義及其使用174
10.4.3生成沒有調試信息的可執行文件並交付用戶使用176
10.5指針使用中常見錯誤177
10.5.1錯誤一: 使用未初始化的指針178
10.5.2錯誤二: 返回局部變量的地址作為指針179
10.5.3錯誤三: 沒有釋放動態申請的內存空間180
10.6案例: 自制運算器180
10.7課後練習: 小字符串連接成大字符串183
第11章結構體184
11.1結構體入門184
11.2結構體類型定義和使用詳解186
11.2.1結構體類型定義186
11.2.2定義和使用結構體變量187
11.2.3結構體類型的嵌套及其使用188
11.3結構體與數組189
11.4結構體與指針190
11.4.1結構體指針的基本使用190
11.4.2結構體與動態內存分配191
11.5結構體與函數193
11.5.1結構體作為函數參數193
11.5.2結構體作為函數的返回值194
11.6聯合體union195
11.7枚舉類型198
11.8使用typedef自定義類型名稱200
11.9案例: 基於鏈表的圖書信息管理系統202
11.10課後練習: 完善圖書信息管理系統210
第12章文件操作211
12.1文件操作概述211
12.2文件讀/寫入門212
12.2.1將數據寫入文件中212
12.2.2從文件中讀取數據213
12.3文件讀/寫的一般過程及其關鍵函數214
12.3.1打開文件: fopen()214
12.3.2寫數據到文件中: fwrite()、fprintf()、fputs()、fputc()216
12.3.3從文件中讀取數據: fread()、fscanf()、fgets()、fgetc()217
12.3.4關閉文件: fclose()219
12.3.5文件操作錯誤碼及其處理方式219
12.4以文本模式或二進制模式打開文件220
12.4.1以二進制(十六進制)模式觀察文件的原始內容220
12.4.2以文本模式或二進制打開文件的總結222
12.5文件讀/寫位置定位224
12.5.1移動讀/寫位置指針到文件開始處: rewind()224
12.5.2設定讀/寫位置指針到指定位置: fseek()225
12.5.3獲取讀/寫位置指針的當前位置: ftell()228
12.6讀/寫結構化數據229
12.6.1讀/寫單個結構化數據229
12.6.2讀/寫結構體數組數據230
12.7案例: 保存圖書信息到文件232
12.8課後練習: 個人財務管理系統239
第13章位操作和地址空間對齊241
13.1位操作241
13.1.1位邏輯運算241
13.1.2移位運算242
13.1.3位操作應用舉例242
13.2位段246
13.2.1定義和訪問位段246
13.2.2位段使用舉例247
13.2.3定義位段註意事項248
13.3地址空間對齊248
13.3.1地址空間對齊的基本概念249
13.3.2修改地址空間對齊方式250
13.3.3地址空間對齊應用251
13.4案例: 基於位段的數制轉換252
13.5課後練習: 絢麗跑馬燈254
第14章AI輔助編程255
14.1AI輔助編程初探255
14.2使用AI輔助編程插件258
14.2.1安裝AI輔助編程插件259
14.2.2AI輔助編程功能介紹260
14.3正確使用AI輔助編程261
參考文獻262