C語言程式設計(慕課版第2版)

C語言程式設計(慕課版第2版)

《C語言程式設計(慕課版 第2版)》是2023年人民郵電出版社出版的圖書。

基本介紹

  • 中文名:C語言程式設計(慕課版 第2版)
  • 作者:徐國華 袁立 代美麗
  • 出版時間:2023年
  • 出版社: 人民郵電出版社
  • ISBN: 9787115531711
內容簡介,圖書目錄,

內容簡介

本書系統全面的介紹了有關C語言程式設計開發所涉及的各類知識。全書共分18章,內容包括C語言概述、算法、數據類型、運算符與表達式、常用的數據輸入/輸出函式、選擇結構程式設計、循環控制、數組、函式、指針、結構體和共用體、位運算、預處理、檔案、存儲管理、網路套接字編程、綜合開發實例——趣味俄羅斯方塊、課程設計——學生信息管理系統。

圖書目錄

第1章 C語言概述 1
1.1 C語言的發展史 2
1.1.1 程式語言簡述 2
1.1.2 C語言的歷史2
1.2 C語言的特點 3
1.3 一個簡單的C程式
3 1.4 一個完整的C程式 5
1.5 C語言程式的格式 8
1.6 開發環境 9
1.6.1 Dev C++ 9
1.6.2 Visual C++ 6.0 12
1.6.3 Visual Studio 2019 14
小結 16
上機指導 16
習題 17
第2章 算法 18
2.1 算法的基本概念 19
2.1.1 算法的特性 19
2.1.2 算法的優劣 19
2.2 算法的描述 20
2.2.1 自然語言 20
2.2.2 流程圖 21
2.2.3 N-S流程圖 24
小結 25
上機指導 26
習題 26
第3章 數據類型 27
3.1 編程規範 28
3.2 關鍵字 28
3.3 標識符 29
3.4 數據類型 30
3.5 常量 31
3.5.1 整型常量 31
3.5.2 實型常量 32
3.5.3 字元型常量 33
3.5.4 轉義字元 36
3.5.5 符號常量 36
3.6 變數 37
3.6.1 整型變數 37
3.6.2 實型變數 39
3.6.3 字元型變數 41
3.7 變數的存儲類別 42
3.7.1 auto變數 42
3.7.2 static變數 43
3.7.3 register變數 44
3.7.4 extern變數 44
3.8 混合運算 45
小結 46
上機指導 47
習題 47
第4章 運算符與表達式 48
4.1 表達式 49
4.2 賦值運算符與賦值表達式 50
4.2.1 變數賦初值 50
4.2.2 自動類型轉換 52
4.2.3 強制類型轉換 52
4.3 算術運算符與算術表達式 53
4.3.1 算術運算符 54
3.3.2 算術表達式 54
4.3.3 優先權與結合性 55
4.3.4 自增、自減運算符 56
4.4 關係運算符與關係表達式 57
4.4.1 關係運算符 58
4.4.2 關係表達式 58
4.4.3 優先權與結合性 59
4.5 邏輯運算符與邏輯表達式 60
4.5.1 邏輯運算符 60
4.5.2 邏輯表達式 60
4.5.3 優先權與結合性 60
4.6 位邏輯運算符與位邏輯表達式 61
4.6.1 位邏輯運算符 61
4.6.2 位邏輯表達式 62
4.7 逗號運算符與逗號表達式 62
4.8 複合賦值運算符 63
小結 64
上機指導 65
習題 66
第5章 常用的數據輸入/輸出函式 67
5.1 語句 68 5.2 字元數據輸入/輸出 68
5.2.1 字元數據輸出 68
5.2.2 字元數據輸入 69
5.3 字元串輸入/輸出 71
5.3.1 字元串輸出函式 71
5.3.2 字元串輸入函式 72 5.4 格式輸出函式 73
5.5 格式輸入函式 76 5.6 順序程式設計套用 79
小結 81
上機指導 81
習題 81
第6章 選擇結構程式設計 82
6.1 if語句 83
6.2 if語句的基本形式 83
6.2.1 if語句形式 83
6.2.2 if...else語句形式 85
6.2.3 else if語句形式 88
6.3 if的嵌套形式 91
6.4 條件運算符 93
6.5 switch語句 95
6.5.1 switch語句的基本形式 95
6.5.2 多路開關模式的switch語句 98
6.6 if...else語句和switch語句的區別 100
6.7 選擇結構程式套用 101
小結 103
上機指導 103
習題 104
第7章 循環控制 105
7.1 循環語句 106
7.2 while語句 106
7.3 do...while語句 107
7.4 for語句 109
7.4.1 for語句使用 109
7.4.2 for循環的變體 111
7.4.3 for語句中的逗號套用 112
7.5 3種循環語句的比較 113
7.6 循環嵌套 114
7.6.1 循環嵌套的結構 114
7.6.2 循環嵌套實例 115
7.7 轉移語句 116
7.7.1 goto語句 116
7.7.2 break語句 118
7.7.3 continue語句 119
小結 120
上機指導 120
習題 120
第8章 數組 121
8.1 一維數組 122
8.1.1 一維數組的定義和引用 122
8.1.2 一維數組初始化 123
8.1.3 一維數組套用 125
8.2 二維數組 126
8.2.1 二維數組的定義和引用 126
8.2.2 二維數組初始化 127
8.2.3 二維數組套用 130
8.3 字元數組 131
8.3.1 字元數組的定義和引用 131
8.3.2 字元數組初始化 132
8.3.3 字元數組的結束標誌 133
8.3.4 字元數組的輸入和輸出 134
8.3.5 字元數組套用 135 8.4 多維數組 136
8.5 數組的排序算法 136
8.5.1 選擇法排序 136
8.5.2 冒泡法排序 138
8.5.3 交換法排序 139
8.5.4 插入法排序 141
8.5.5 折半法排序 143
8.5.6 排序算法的比較 145
8.6 字元串處理函式 145
8.6.1 字元串複製 145
8.6.2 字元串連線 146
8.6.3 字元串比較 147
8.6.4 字元串大小寫轉換 148
8.6.5 獲得字元串長度 149
8.7 數組套用 150
8.7.1 反轉輸出字元串 150
8.7.2 輸出系統日期和時間 151
8.7.3 字元串的加密和解密 153
小結 155
上機指導 155
習題 155
第9章 函式 156
9.1 函式概述 157
9.2 函式的定義 158
9.2.1 函式定義的形式 159
9.2.2 聲明與定義 160
9.3 返回語句 163
9.3.1 從函式返回 163
9.3.2 返回值 163
9.4 函式參數 165
9.4.1 形式參數與實際參數 165
9.4.2 數組作函式參數 166
9.4.3 main函式的參數 171
9.5 函式的調用 172
9.5.1 函式的調用方式 172
9.5.2 嵌套調用 175
9.5.3 遞歸調用 178
9.6 內部函式和外部函式 179
9.6.1 內部函式 180
9.6.2 外部函式 181
9.7 局部變數和全局變數 182
9.7.1 局部變數 182
9.7.2 全局變數 184
9.8 函式套用 186
小結 190
上機指導 191
習題 191
第10章 指針 192
10.1 指針相關概念 193
10.1.1 地址與指針 193
10.1.2 變數與指針 193 10.1.3 指針變數 194
10.1.4 指針自加自減運算 197
10.2 數組與指針 198
10.2.1 一維數組與指針 198
10.2.2 二維數組與指針 201
10.2.3 字元串與指針 204
10.2.4 字元串數組 205 10.3 指向指針的指針 207
10.4 指針變數作函式參數 209
10.5 返回指針值的函式 216
10.6 指針數組作main函式的參數 217
小結 219
上機指導 219
習題 219
第11章 結構體和共用體 220
11.1 結構體 221
11.1.1 結構體類型的概念 221
11.1.2 結構體變數的定義 222
11.1.3 結構體變數的引用 223
11.1.4 結構體類型變數的初始化 225
11.2 結構體數組 226
11.2.1 定義結構體數組 226
11.2.2 結構體數組的初始化 227
11.3 結構體指針 229
11.3.1 指向結構體變數的指針 229
11.3.2 指向結構體數組的指針 231
11.3.3 結構體作為函式參數 233
11.4 包含結構的結構 235
11.5 鍊表 236
11.5.1 鍊表概述 236
11.5.2 創建動態鍊表 237
11.5.3 輸出鍊表 239
11.6 鍊表相關操作 242
11.6.1 鍊表的插入操作 242
11.6.2 鍊表的刪除操作 243
11.7 共用體 246
11.7.1 共用體的概念 246
11.7.2 共用體變數的引用 246
11.7.3 共用體變數的初始化 247
11.7.4 共用體類型的數據特點 248
11.8 枚舉類型 248
小結 249
上機指導 250
習題 250
第12章 位運算 251
12.1 位與位元組 252
12.2 位運算操作符 252
12.2.1 “與”運算符 252
12.2.2 “或”運算符 253
12.2.3 “取反”運算符 254
12.2.4 “異或”運算符 255
12.2.5 “左移”運算符 257
12.2.6 “右移”運算符 258
12.3 循環移位 260
12.4 位段 261
12.4.1 位段的概念與定義 261
12.4.2 位段相關說明 262
小結 264
上機指導 264
習題 264
第13章 預處理 265
13.1 宏定義 266
13.1.1 不帶參數的宏定義 266
13.1.2 帶參數的宏定義 267
13.2 #include命令 268
13.3 條件編譯 269
13.3.1 #if命令 269
13.3.2 #ifdef及#ifndef命令 271
13.3.3 #undef命令 273
13.3.4 #line命令 273
13.3.5 #pragma命令 273
小結 274
上機指導 274
習題 275
第14章 檔案 276
14.1 檔案概述 277
14.2 檔案基本操作 277
14.2.1 檔案類型指針 277
14.2.2 檔案的打開 278
14.2.3 檔案的關閉 278
14.3 檔案的讀寫 279
14.3.1 fputc函式 279
14.3.2 fgetc函式 279
14.3.3 fputs函式 280
14.3.4 fgets函式 281
14.3.5 fprintf函式 282
14.3.6 fscanf函式 283
14.3.7 fread和fwrite函式 284
14.4 檔案的定位 286
14.4.1 fseek函式 286
14.4.2 rewind函式 287
14.4.3 ftell函式 288
小結 289 上機指導 289
習題 290
第15章 存儲管理 291
15.1 記憶體組織方式 292
15.1.1 記憶體的組織方式 292
15.1.2 堆與棧 292
15.2 動態管理 294
15.2.1 malloc函式 294
15.2.2 calloc函式 295
15.2.3 realloc函式 296
15.2.4 free函式 296
15.3 記憶體丟失 297
小結 298
上機指導 298
習題 298
第16章 網路套接字編程 299 16.1 記憶體組織方式 300 16.1.1 IP位址 300 16.1.2 OSI七層參考模型 300 16.1.3 地址解析 301 16.1.4 域名系統 301 16.1.5 TCP/IP 302 16.1.6 連線埠 303 16.1.7 套接字的引入 303 16.1.8 網路位元組順序 304 16.2 套接字概述 304 16.2.1 套接字概述 304 16.2.2 TCP的套接字的socket編程 304 16.2.3 UDP的套接字的socket編程 305 16.3 套接字函式 30516.3.1 套接字函式介紹 306 16.3.2 基於TCP的網路聊天程式 310
小結 315
上機指導 315 習題 315
第17章 綜合開發實例 ——趣味俄羅斯方塊 316
17.1 開發背景 317
17.2 系統功能設計 317
17.2.1 系統功能結構 317
17.2.2 業務流程圖 317
17.3 使用Dev C++項目創建 318
17.3.1 開發環境需求 318
17.3.2 創建項目 318
17.4 預處理模組設計 321
17.4.1 檔案引用 321
17.4.2 宏定義 321
17.4.3 定義全局變數 321
17.4.4 函式聲明 322
17.5 遊戲歡迎界面設計 322
17.5.1 遊戲歡迎界面概述 322
17.5.2 設定文字顏色 323
17.5.3 設定文字顯示位置 324
17.5.4 設計標題部分 324
17.5.5 設計字元花裝飾界面 326
17.5.6 設計選單選項的框線 327
17.5.7 設計選單選項的文字 328
17.6 遊戲主窗體設計 329
17.6.1 遊戲主窗體設計概述 329
17.6.2 列印輸出遊戲界面 329
17.6.3 繪製俄羅斯方塊 331 17.6.4 列印俄羅斯方塊 335
17.7 遊戲邏輯設計 336
17.7.1 遊戲邏輯概述 336
17.7.2 判斷俄羅斯方塊是否 可移動 336
17.7.3 清除俄羅斯方塊下落的 痕跡 337
17.7.4 判斷方塊是否滿行 338
17.7.5 隨機產生俄羅斯方塊 類型的序號 339
17.8 開始遊戲 340
17.8.1 開始遊戲模組概述 340
17.8.2 顯示俄羅斯方塊 341
17.8.3 實現各種按鍵操作 342
17.8.4 遊戲結束界面 346
17.8.5 重新開始遊戲 347
17.9 遊戲按鍵說明模組 348
17.9.1 遊戲按鍵說明簡介 348
17.9.2 按鍵說明界面的實現 348
17.10 遊戲規則介紹模組 349
17.10.1 遊戲規則介紹 349
17.10.2 遊戲規則介紹的實現 350
17.11 退出遊戲 351
小結 352
第18章 綜合實例 —學生信息管理系統 353
18.1 開發背景 354
18.2 開發環境需求 354
18.3 系統功能設計 354
18.4 預處理模組設計 354
18.5 主函式設計 355
18.5.1 功能概述 355
18.5.2 實現主函式 356
18.5.3 顯示主選單 357
18.6 錄入學生信息 358
18.6.1 模組概述 358
18.6.2 實現檔案的打開和 關閉功能 358
18.6.3 實現錄入學生信息 359
18.7 查詢學生信息 361
18.7.1 模組概述 361
18.7.2 查詢沒有記錄的檔案 362
18.7.3 查找並列印學生信息 362
18.8 刪除學生信息 363 18.8.1 模組概述 363
18.8.2 實現刪除學生信息 363
18.9 修改學生信息 364
18.9.1 模組概述 364
18.9.2 實現修改學生信息 365
18.10 插入學生信息 366
18.10.1 模組概述 36618.10.2 實現插入學生信息 367
18.11 學生成績排名 368
18.11.1 模組概述 368 18.11.2 使用交換排序法實現 排序功能 369
18.11.3 實現學生成績排名 369
18.12 統計學生總數 370
18.12.1 模組概述 370
18.12.2 實現統計學生總數 371
18.13 顯示所有學生信息 371 18.13.1 模組概述 371
18.13.2 讀取並顯示所有學生 信息 372
小結 372
附錄
上機實驗 373
實驗1:Visual C++6.0的下載和安裝 373
實驗2:計算某日是該年的第幾天 376
實驗3:老師分糖果問題 377
實驗4:求一元二次方程的根 378
實驗5:求學生總成績和平均成績 379
實驗6:模擬ATM機界面程式 379
實驗7:猜數字遊戲 382
實驗8:使用數組統計學生成績 385
實驗9:設計函式計算學生平均身高 386
實驗10:使用指針交換兩個數組中的 最大值 386
實驗11:設計通信錄 388
實驗12:取出給定16位二進制數的 奇數位 389
實驗13:編寫頭檔案包含圓面積的 計算公式 390
實驗14:複製檔案內容到另一檔案 391
實驗15:商品信息的動態存放 392
實驗16:利用UDP實現廣播通信 393

相關詞條

熱門詞條

聯絡我們