C語言程序設計實用教程(微課視頻版)
王欣欣、冷玉池、潘慶先 董寧斐、劉霞、劉偉、牛傑、李湉雨
相關主題
商品描述
目錄大綱
目 錄
資源下載
基礎理論篇
第 1章一切從零開始 ——程序設計和 C語言概述
····2
1.1程序設計和編程語言 ·3
1.2 C語言之旅 ···5
1.3 C語言集成開發環境 Visual Studio 2010和 EasyX圖形庫·····7
1.4編寫運行一個 HelloWorld程序······8
1.5數制及進制轉換 10
1.6 C語言關鍵字 ····13 實驗 ···15 小結 ···19 習題 ···20 項目拓展20 探索與擴展:影片播放時數據的傳輸··21
第 2章程序的基礎 ——數據類型、運算符和表達式 ···23
2.1數據類型概述
······24
2.1.1 項目引入 24
2.1.2 數據類型 25
2.2常量和變量
···26
2.2.1 常量·26
2.2.2 變量·27
30
2.3整型數據
2.3.1 整型數據的概念 ··30
2.3.2 整型數據的存儲 ··30
2.3.3 整型數據的表示 ··31
2.4浮點型數據
···32
2.4.1 浮點型數據的概念 ·····32
2.4.2 浮點型數據的分類、存儲及變量的定義 ·····32
2.4.3 浮點型數據的運算及精度 ·33
2.5字符型數據 ·34
2.5.1 字符型數據的概念 ·····34
2.5.2 字符型數據的存儲和表示 ·35
2.6布爾類型數據 ····36
2.6.1 布爾類型 36
2.6.2 布爾類型示例 ······36
2.7運算符及表達式
··36
2.7.1 運算符和表達式 ··36
2.7.2 算術運算符及表達式 ··38
2.7.3 賦值運算符 ···39
2.7.4 條件運算符(三目運算符) ····39
2.7.5 關系運算符 ···40
2.7.6 邏輯運算符 ···40
2.7.7 位運算符 40
2.7.8 逗號運算符 ···40
2.7.9 指針運算符 ···41
2.7.10求字節數運算符 41
2.8基本數據類型之間的賦值 ······41 實驗 ···42 小結 ···43 習題 ···43 探索與擴展:關於新質生產力44
第 3章進行到底 ——順序結構 ···46
3.1項目引入——字符的顯示 ······47
3.2 C語句··47
3.2.1 C語句的作用和分類 ··47
3.2.2 賦值語句 49
3.3單個字符的輸出輸入 ······51
3.3.1 字符輸出函數 putchar( ) ····51
3.3.2 字符輸入函數 getchar( ) ····52
3.4格式輸出輸入
······53
3.4.1 格式輸出函數 printf( ) 53
3.4.2 格式輸入函數 scanf( ) 56
3.5什麽是算法
···59
目 錄 V
3.5.1 算法舉例 59
3.5.2 算法的描述 ···61 實驗 ···64 小結 ···65 習題 ···66 項目拓展:彩色泡泡的顯示 ···67 探索與擴展:關於數據和人工智能······68
第 4章程序的判斷力 ——選擇結構 ···69
4.1項目引入——字符的選擇
·70
4.2關系運算和邏輯運算 ······70
4.2.1 關系運算符 ···70
4.2.2 關系表達式 ···71
4.2.3 邏輯運算符 ···71
4.2.4 邏輯表達式 ···73
4.3 if語句實現判斷
···74
4.3.1 if語句舉例 ····74
4.3.2 if語句一般形式 ···75
4.3.3 條件運算符 ···80
4.3.4 if語句的嵌套 81
4.4多路開關 switch語句······82
4.5選擇結構綜合舉例 ···84 實驗 ···88 小結 ···89 習題 ···90 項目拓展:泡泡的顏色自選 ···91 探索與擴展:棧與隊列——關於瀏覽器中的“前進”和“後退”按鈕 ···93
第 5章不必親手愚公移山 ——循環結構 ··94
5.1項目引入——字符的運動和反彈
···95
5.2 while語句實現循環
····95
···975.3 do…while語句實現循環
5.4 for語句實現循環
·98
5.5循環的嵌套
·101
5.6改變循環的執行狀態
103
5.6.1 break語句···103
5.6.2 continue語句·····104
5.7循環結構綜合舉例 ·107 實驗 · 111 小結 · 112 習題 · 112 項目拓展:彩色泡泡的跳動 · 114 探索與擴展:串——關於中國文化中的“詩歌” · 115
第 6章批量處理數據 ——數組 · 116
6.1項目引入 ——多個字符在平面中的反彈· 117
6.2一維數組 ··· 118
6.2.1 一維數組的定義
··· 118
6.2.2 引用一維數組元素
······ 118
6.2.3 一維數組的初始化
······ 119
6.2.4 一維數組程序舉例 ···120
6.3二維數組 ···123
6.3.1 二維數組的定義
···123
6.3.2 引用二維數組的元素
··124
6.3.3 二維數組的初始化
······125
6.3.4 二維數組程序舉例 ···126
6.4字符及字符串數組 ·128
6.4.1 字符數組的定義
···128
6.4.2 字符數組的初始化
······128
·····129
6.4.3 引用字符數組中的元素
6.4.4 字符串和字符串結束標志
·129
6.4.5 字符數組的輸入輸出
··130
6.4.6 使用字符串處理函數
··131
6.4.7 字符數組應用舉例 ···136 實驗一 · 136 實驗二 · 137 實驗三 · 138 實驗四 · 138 小結 · 139 習題 · 140 項目拓展:多個彩色泡泡的反彈·140 探索與擴展:使用數組實現線性表,創建搜索引擎·····142
第 7章程序模塊化的手段 ——函數·144
7.1項目引入——模塊化彩色泡泡項目 ··145
7.2函數概述
·····145
7.3函數的定義和調用
···146
7.3.1 為什麽要定義函數 ···146
目 錄 VII
7.3.2 函數的定義 ·147
7.3.3 函數的調用 ·147
7.4函數聲明
·····149
7.5函數的嵌套調用
150
7.6函數的遞歸調用
152
7.7數組作為函數參數
···153
7.7.1 數組元素作函數實參 154
7.7.2 數組名作函數實參 ···154
7.8變量的作用域及存儲類別
······155
7.9常用函數
·····156 實驗一 · 156 實驗二 · 157 實驗三 · 158 實驗四 · 158 小結 · 159 習題 · 159 項目拓展:彩色泡泡項目中加入音樂和圖片··160 探索與擴展:排序功能——黨的百年史詩······162
第 8章閃耀的星星 ——指針·····164
···165
8.1地址和指針的基本概念
8.1.1 什麽是地址和指針 ···165
8.1.2變量的訪問 ·166
8.2指針變量
·····167
8.2.1 定義指針變量 ····167
8.2.2 引用指針變量 ····168
8.2.3 指針變量作為函數參數 ···170
8.3數組與指針
·173
8.3.1 數組元素的指針 173
8.3.2 在引用數組元素時指針的運算 ·····173
8.3.3 通過指針引用數組元素 ···174
8.3.4 用數組名作函數參數 176
8.3.5 通過指針引用多維數組 ···180
8.4字符串與指針
····183
8.4.1 字符串的引用方式 ···183
8.4.2 字符指針作函數參數 185
8.4.3 使用字符指針變量和字符數組的比較 186
8.5函數與指針 ······189
8.6動態內存分配 ··191 8.6.1 內存的動態分配 191
8.6.2 建立內存的動態分配 191
8.6.3 void指針類型····192
8.7 main( )函數參數 ·····192 實驗一 · 193 實驗二 · 195 實驗三 · 195 實驗四 · 197 小結 · 198 習題 · 198 項目拓展:彩色泡泡項目中加入鍵盤交互······199 探索與擴展:樹——關於人機對弈····201
第 9章我的類型我做主 ——自定義數據類型
·203
9.1項目引入——用結構類型定義泡泡信息 ·204
9.2結構體類型變量 ·····205
9.2.1 結構體類型變量的定義 ···205
9.2.2 結構體變量的引用 ···206
9.3結構體數組和結構體指針 ····208
9.3.1 結構體數組 ·208
9.3.2 結構體指針 ·209
9.4共享體類型 ······210
9.5枚舉類型 ···212
9.6用 typedef自定義類型 ··215
9.7鏈表····216
9.7.1 單鏈表 ··216
9.7.2 存儲空間處理的庫函數 ···218
9.7.3 單鏈表的基本操作 ···219 實驗 ·221 小結 ·222 習題 ·222 探索與擴展:關於數字導航地圖·224
第 10章“位”得根深蒂固——位運算
·····225
10.1 位運算符和位運算 ······226
10.1.1 位運算操作 ····226
10.1.2 位運算操作舉例 ···231
10.2 位段··232 實驗 · 234
目 錄 IX
小結 ·235 習題 ·235 探索與擴展:家譜···235
第 11章數據的最終歸屬 ——文件 ·····237
11.1文件概述 ·238
11.1.1 文件類型 ·238
11.1.2 文件指針 ·239
11.1.3 文件的緩沖區 240
11.2文件打開與關閉 ···240
11.2.1 文件的打開操作 ····240
11.2.2 文件的關閉操作 ····241
11.3順序讀寫文件 242
11.3.1 字符的讀寫 ····242
11.3.2 字符串的讀寫 243
11.3.3 數據塊的讀寫 244
11.3.4 格式化讀寫函數 ····246
11.4隨機讀寫文件 247 實驗 · 249 小結 · 249 習題 · 250 探索與擴展:查找···251
應用進階篇
第 12章綜合應用項目 ···254
12.1 貪吃蛇項目 ····256
12.2 人機對弈五子棋項目 ··261
附錄 A大廠筆試、面試題 ··275
A.1面試官談面試和基礎知識 ···276
A.2基礎概念和語句真題 ···278
A.3數組和指針真題 ····286
A.4算法編程真題 ·289
附錄 BC語言運算符優先級一覽表·296
附錄 C十進制 ASCII表·····299
參考文獻·····301