內容簡介
本書共19章,分4篇。基礎篇介紹了C語言概述、C語言中的數據和表達式、順序程式設計、選擇程式設計、循環程式設計、控制結構綜合實例、數組。提高篇主要介紹了函式、指針、字元串、編譯預處理和變數作用域、結構體和共用體、鍊表。算法篇主要介紹了常用算法、數據結構與算法。底層處理篇主要介紹了位運算、檔案、系統調用,最後還介紹了一個綜合案例(教務管理系統)的開發。
本書內容豐富,實用性強,實例貼近生活,容易理解,而且書中每一個實例都經過仔細調試。本書適合C語言初、中級學習人員學習和提高使用,也可以作為程式設計師案頭必備的參考資料。另外,對於C/C++求職人員,本書也有較好的參考價值。
圖書目錄
第1篇 基 礎 篇
第1章 C語言初步(教學視頻:31分鐘) 2
1.1 C語言概述 2
實例001 一個體現C語言特點的例子 2
實例002 設計第一個C語言程式 3
實例003 演示C程式書寫規範 5
1.2 C語言程式的調試 7
實例004 演示C程式調試過程 7
實例005 演示開始階段常見錯誤 9
第2章 C語言中的數據和表達式(教學視頻:39分鐘) 11
2.1 數據類型和常量 11
實例006 體現數據類型的作用 11
實例007 符號常量的使用 13
實例008 數值型常量的使用 14
實例009 字元型常量的使用 15
2.2 變數以及變數的套用 17
實例010 演示變數的錯誤定義 17
實例011 變數的存儲 18
實例012 變數的賦值 20
實例013 數據的溢出 21
2.3 算術運算符和表達式 23
實例014 基本算術運算符的套用 23
實例015 自加自減表達式的套用 24
實例016 體現表達式構成的實例 25
2.4 賦值和逗號表達式和運算符 27
實例017 賦值運算符的套用 27
實例018 賦值表達式類型的轉化 28
實例019 複合賦值運算符的套用 29
實例020 逗號運算符的套用 30
2.5 關係運算符和表達式 31
實例021 關係運算符的套用 31
實例022 關係表達式進行算術運算 32
2.6 邏輯運算符和表達式 33
實例023 邏輯運算符的套用 33
實例024 體現邏輯運算符特殊性的實例 34
2.7 sizeof、取址運算符和數據類型強制轉換36
實例025 sizeof和取址運算符的套用 36
實例026 類型強制轉換 37
第3章 順序程式設計(教學視頻:44分鐘) 39
3.1 基本語句的組成 39
實例027 表達式語句的使用 39
實例028 複合語句的使用 41
3.2 標準庫函式的套用 42
實例029 stdlib庫的函式套用 42
實例030 math庫的函式套用 43
3.3 標準輸出和輸入函式 45
實例031 得到正確的輸入數據 45
實例032 輸出格式設定 47
3.4 字元輸入和輸出函式 48
實例033 字元的輸入和輸出 49
實例034 字元串常量的輸出 50
3.5 順序程式結構 51
實例035 兩個變數交換 51
實例036 輸出字元的前驅和後繼 52
實例037 攝氏度和華氏度之間的轉換 53
實例038 分解三位整數的各位數字 54
實例039 計算一元二次方程ax2+bx+c=0的根 55
實例040 列印用星號組成的圖案 56
實例041 小寫字母轉換成大寫字母 57
實例042 計算圓形周長、面積和球體體積 58
實例043 求學生總成績和平均成績 59
實例044 求三角形面積 60
實例045 小數的四捨五入 61
第4章 選擇程式設計(教學視頻:101分鐘) 62
4.1 if型選擇語句 62
實例046 單條件單分支選擇語句的套用 62
實例047 單條件雙分支if語句的套用 64
實例048 多條件if語句的套用 65
實例049 按照數據由小到大的順序輸出三個數 68
實例050 常見的if語句使用的錯誤實例 70
實例051 條件運算符的使用 72
4.2 if型選擇程式設計綜合實例 73
實例052 輸入整數判斷正負和奇偶 73
實例053 判斷輸入字元的種類 75
實例054 數學分支函式 76
實例055 輸入三角形的邊長求面積 78
實例056 不大於5位的正整數的每位數的處理 80
實例057 解方程ax2+bx+ c=0 82
實例058 判斷閏年 83
實例059 求某學生的總分、平均分、最高分和最低分 85
4.3 switch 分支選擇程式設計 86
實例060 switch的使用 86
實例061 switch使用的錯誤分析實例 88
實例062 簡單計算器 90
實例063 計算工人工資 92
實例064 學生百分製成績等級評判 93
實例065 模擬自動飲料機 95
實例066 判斷某年某月某日是這一年的第幾天 96
實例067 根據銀行利息的變化計算到期的應得金額 98
4.4 選擇程式的測試 100
實例068 並列選擇結構的測試 100
實例069 嵌套選擇結構的測試 101
實例070 switch結構選擇結構的測試 103
第5章 循環程式設計(教學視頻:119分鐘) 105
5.1 while型循環 105
實例071 while語句的使用 105
實例072 while語句的常見錯誤實例分析 107
實例073 簡單的猜數遊戲 109
實例074愛因斯坦階梯問題 110
實例075 判斷一個整數是否為素數 112
實例076 統計字元 113
實例077 求(的值 115
實例078 最大公約數和最低公倍數 116
實例079 十進制轉換為八進制 118
實例080 求某數的階乘 119
5.2 do…while型循環程式設計 120
實例081 do…while型循環控制實例分析 120
實例082 加密和解密 122
實例083 組成數字的各位和 123
實例084 牛頓疊代法計算方程的根 124
實例085 選單程式的列印 125
實例086 整數逆序輸出 127
實例087 do…while語句常見的錯誤實例分析 128
5.3 for型循環程式設計 129
實例088 for型循環的使用 130
實例089 輸出1~20中能被3整除的數,並求出它們的和 131
實例090 輸出華氏——攝氏溫度對照表 132
實例091 對給定數目數據的統計 133
實例092 求2000~2050年間的閏年 134
實例093 求4位反序數135
實例094斐波那契數列136
實例095 判斷n是否為迴文數 138
實例096 計算數列12+22+···+502 139
實例097 銀行存款問題 140
實例098 找出個位數為6且能被3整除的五位數 141
5.4 break和continue的套用 142
實例099break語句的套用 142
實例100 continue語句的套用 143
實例101 輸出10~100之間的全部素數 145
實例102 統計不及格的人數 146
5.5 三種循環形式的套用分析 148
實例103 求自然數中各位數字之和 148
實例104 求1!+2!+3!+…n! 149
實例105 計算多個數據的最大值 151
實例106 增長率問題 153
第6章 控制結構綜合實例(教學視頻:139分鐘) 155
6.1 累計問題 155
實例107 計算自然對數e的值 155
實例108 分數數列求和 156
實例109 求a+aa+…+aa…a的和 158
實例110 彈球落地彈起多次的路程計算 159
實例111 猴子吃桃問題 160
實例112 計算s=11+22+33+…+nn 161
實例113 求解立方和不等式13+23+…+m3<n 162
實例114 求解調和級數不等式 163
實例115 求解平方根不等式 164
實例116 實數數列求和 165
實例117 求數列1-1/2-1/3+1/4-…1/n的和 166
6.2 圖形輸出問題 167
實例118 星號圖形的列印 167
實例119 列印九九乘法表 169
實例120 輸出數字金字塔 170
實例121 輸出字母金字塔 172
實例122 輸出西洋棋棋盤 174
實例123 輸出星號組成的菱形 175
實例124 繪製餘弦曲線177
實例125 繪製餘弦曲線和直線 179
6.3 數學問題 180
實例126 將一個正整數分解質因數181
實例127 用疊代法計算平方根 183
實例128 若ab×ba=1855,求a、b的取值 184
實例129 用0~9組成無重複的三位數的個數 185
實例130 用對分法求方程的實根 186
實例131 求非線性方程x-1-arctanx=0的一個實根 188
實例132 分子多項式求值 189
實例133愛因斯坦數學問題 191
實例135 輸出10 000以內所有的完全數 193
實例136 求4位以內的相親數 194
實例137 求具有abcd=(ab+cd)2性質的四位數 196
實例138 分數四則運算 197
實例139 輸出1~100之間每位數的乘積大於每位數的和的數 199
實例140 階乘尾數中含有0的個數計算 200
實例141 採用近似計算的方法計算已知函式的定積分 201
6.4 選擇問題 202
實例142 求水仙花數 202
實例143 搬磚問題 203
實例144 百元百雞問題 205
實例145 選人執行任務 207
實例146 排列組合問題 209
實例147 大獎賽評分程式 210
實例148 桌球隊進行比賽名單 212
第7章 數組(教學視頻:153分鐘) 213
7.1 一維數組 213
實例149 一維數組的定義 213
實例150 一維數組的初始化 215
實例151 存放統計各分數段的人數 216
實例152 用數組來處理斐波那契數列 219
實例153 數組中元素的比較與交換實例 220
實例154選擇法排序221
實例155起泡法排序 223
實例156 數組的查找和插入實例 224
實例157 數據的折半查找 226
實例158 求出平均分並輸出學生成績 229
實例159 課程的總評成績 230
實例160 成績的分段統計 231
實例161 判斷迴文數 233
實例162 三個數組的關係 234
實例163 用5個數組成方陣 236
實例164 找素數並排序 237
實例165 有序數列的插入 239
實例166 判斷一個整數是否在數組裡 240
實例167 篩選法求素數 241
實例168 將數組元素逆序存放 242
實例169 數字加密 244
7.2 二維數組 245
實例170 二維數組的使用 246
實例171 學生成績處理 247
實例172多維數組的處理 249
實例173 下三角形問題 250
實例174 列印楊輝三角 251
實例175矩陣的轉置 253
實例176 兩個矩陣相乘 254
實例177 求方陣的對角線元素和 256
實例178 求二維數組每一行的最大值 257
實例179 數組程式實例分析 258
實例180 找出二維數組元素最值 260
實例181 簡單的學生成績管理系統 261
實例182馬鞍點問題 264
實例183 不同行進行排序 266
7.3特殊矩陣267
實例184 設計對稱矩陣 267
實例185 矩陣特殊元素的填充 269
實例186 蛇形排列數組元素 271
實例187 設計螺旋方陣 273
實例188 設計魔方陣 276
實例189 二維數組每行最大值中的最小值 278
第2篇 提 高 篇
第8章 函式(教學視頻:132分鐘) 282
8.1 函式的套用 282
實例190 程式中的函式套用 282
實例191 函式的定義 284
實例192 函式的調用 285
實例193 形參和實參單向的值傳遞 287
實例194 函式參數的求值順序289
實例195 聲明函式 290
實例196 return語句的套用 291
實例197 有規律數列的求和 292
實例198 編寫函式輸出圖形 294
實例199歌德巴赫猜想295
實例200 求1~1000的階乘和數 296
實例201 比較兩個分數的大小 297
實例202 求整數n的全部素數因子 299
8.2 用數組作為函式參數 300
實例203 求數組中元素的最大值 300
實例204 數組元素逆序存放 302
實例205 兩個數組元素的交換 304
實例206約瑟夫環問題 305
實例207 數組中連續相等數的計數 307
實例208 數組中元素的分類存放 308
實例209 兩個有序數組中元素的交換 310
實例210 兩個矩陣的和 311
實例211 螺旋方陣的填充 313
實例212 判斷二維數組元素是否互不相同 315
8.3 嵌套函式 316
實例213 函式嵌套調用 316
實例214 梯形法計算積分 317
實例215 編寫連分式的計算程式 319
實例216 組合數的求法 320
實例217 函式嵌套驗證哥德巴赫猜想322
實例218 計算正數的n次根 323
8.4 遞歸調用 324
實例219 遞歸解決猴子吃桃問題 324
實例220 遞歸函式的執行分析 326
實例221 遞歸求解最大公約數 328
實例222 遞歸求解數組中的最大值 329
實例223 遞歸實現整數逆序 330
實例224 遞歸求數據的平方根 331
實例225 遞歸輸出等腰三角形 332
實例226 遞歸進行1~n的自然數求和 333
實例227 漢諾塔問題 334
實例228 楊輝三角的遞歸解決方案 336
實例229 Ackermann()函式的遞歸程式337
實例230 組合問題遞歸 338
實例231 遞歸計算函式值 339
第9章 指針(教學視頻:174分鐘) 341
9.1 指針以及指針變數 341
實例232 變數與地址的套用 341
實例233 指針變數的定義 342
實例234 取地址運算符的使用 343
實例235 指針運算符的使用 344
實例236 指針變數使用錯誤的實例 345
實例237 指針變數的指向 347
實例238 指針變數和整數的運算 348
實例239 指針變數相減運算 350
實例240 指針中比較運算符的套用 351
實例241 指針變數作為函式參數 352
實例242 統計空白符和小寫字元的個數 353
9.2 指針和一維數組 355
實例243 利用指針輸出一維數組中的元素 355
實例244 統計數組中大於平均值的元素個數 356
實例245 利用指針把數組逆序 357
實例246 指針實現數組元素的移位 358
實例247 對數組中奇偶下標的數據分別求和 360
實例248 使用指針交換兩個數組中的最大值 361
實例249 判斷數組是否中心對稱 362
實例250 整數逆序存放 363
實例251 計算數組連續兩個元素積 364
9.3 指針和二維數組 365
實例252 二維數組的地址描述 365
實例253 處理二維數組中的所有元素 367
實例254 使用指向一維數組的指針處理二維數組 368
實例255 求二維數組中元素的最大值 370
實例256 輸出二維數組中每行的最大值以及其存儲位置 371
實例257 輸出學生成績中2門以上成績不及格的學生 372
9.4 指向函式的指針 373
實例258 函式指針的套用 373
實例259 利用函式指針求兩個數據的最值、和、差 374
9.5 返回指針的函式 376
實例260 返回指針的函式套用 376
實例261 指針函式找出不合格的參賽人員 377
9.6指針數組378
實例262 指針數組的套用 379
實例263 指針數組處理字元串 380
9.7二級指針381
實例264 二級指針變數的套用 381
實例265 用二級指針處理多個字元串 382
9.8 具有參數的主函式 383
實例266 具有參數的主函式套用 383
實例267 根據命令行的提示選擇程式的功能 384
9.9 指針套用綜合實例 385
實例268 數組中元素不改變次序的排序 386
實例269有序數組中刪除多餘元素 387
實例270 實現有序數組的合併 389
實例271 刪除數組中的連續元素 390
實例272 有序數組中元素的插入 391
實例273 統計數組中不同元素出現的次數 392
實例274 利用函式指針計算定積分 394
實例275 利用指針函式輸出銷售額 396
第10章 字元串(教學視頻:183分鐘) 398
10.1 字元數組 398
實例276 字元串中逐個字元的輸入和輸出 398
實例277 字元串的整體輸入和輸出 399
實例278 不同字元的統計 401
實例279 統計一個字元串中單詞的個數 402
實例280 處理多個字元串 403
10.2 字元數組處理字元串 404
實例281 判斷字元串是否對稱 404
實例282 整數轉化為字元串 405
實例283 字元串匹配 406
實例284 字元串複製中實現空白符的顯示 408
實例285 轉化無符號數據為二進制表示 409
實例286 刪除字元串中指定字元 410
實例287 有序字元串的合併 411
實例288 把字元串中的字元插入到升序的字元串中 412
實例289 輸出兩個字元串的前綴 413
實例290 判斷反對稱的字元串 414
實例291 數字字元串轉換為數字 415
實例292 統計字元串的長度 416
實例293 密碼輸入程式 417
10.3 字元串函式 418
實例294 去掉字元串的尾空格 418
實例295 計算字元串長度 419
實例296 字元串複製 420
實例297 字元串逆序賦值 421
實例298 字元串連線 422
實例299 自定義字元串連線 423
實例300 字元串比較 424
實例301 自定義字元串比較函式 425
10.4 字元串函式套用 426
實例302 對子串的定位 426
實例303 求子串 427
實例304 子串的插入 428
實例305 刪除多個連續字元 430
實例306 字元串升序排序 431
實例307 密碼檢測 432
10.5 字元指針 433
實例308 使用字元指針變數表示和引用字元串 433
實例309 字元指針作為函式參數 434
實例310 統計子串出現次數 435
實例311 在字元串中刪除字元 436
實例312 函式實現字元串連線 437
實例313 去掉字元串前綴0 438
實例314 數字字元串轉化為數字 439
實例315 判斷子串 441
實例316 字元串的格式化 442
實例317 羅馬數字轉換 444
實例318 實現通配符匹配功能 445
10.6 字元串處理綜合實例分析 446
實例319 返回字元串中的最長單詞 446
實例320 十進制數據轉換二進制、八進制和十六進制 448
實例321 字元串最大公共子串實例分析 449
實例322 刪除指定格式單詞 451
實例323 求最長等值子串 452
實例324 串的置換 454
實例325 字元串的插入 456
實例326 字元串的查找 457
第11章 編譯預處理和變數作用域(教學視頻:112分鐘) 460
11.1 宏定義 460
實例327 無參宏的定義 460
實例328 查看預處理結果 461
實例329 無參宏定義的使用 462
實例330 宏的定義域 463
實例331 設計宏進行血壓正常的判斷 464
實例332 疊代求根中利用宏表示精度 465
實例333 帶參宏的定義 466
實例334 宏定義常見的錯誤實例分析 466
實例335 奇數求和 467
實例336 創建宏計算上繳稅款 468
實例337 宏計算三角形面積 469
11.2 檔案包含 470
實例338 檔案包含的套用 470
實例339 設計輸出模式 472
實例340 編寫頭檔案包含圓和球的計算公式 473
11.3 條件編譯 474
實例341 #if條件編譯指令的使用 474
實例342 條件編譯隱藏密碼 475
實例343 #elif條件編譯指令的使用 476
實例344 #ifdef條件編譯指令的使用 477
實例345 #ifndef條件編譯指令的使用 478
實例346 用條件編譯實現加密和解密 479
實例347 條件編譯實現開關功能 480
實例348 條件編譯調試程式 481
11.4 變數的作用域 482
實例349局部變數的套用 483
實例350 尋找nx和ny中末3位數相同且能使x+y的和最小的x和y 484
實例351 全局變數實現交換 485
實例352 全局變數實現成績處理 486
實例353 變數同名問題的處理 487
11.5 變數的存儲屬性 489
實例354 使用auto定義的局部變數 489
實例355 使用static定義的局部變數 490
實例356 靜態局部變數計算階乘 491
實例357 使用register定義的局部變數 493
實例358 使用static定義的全局變數 494
實例359 使用external定義的全局變數 494
11.6 函式的作用域 495
實例360 外部函式的套用 495
實例361 多檔案程式的運行 497
第12章 結構體和共用體(教學視頻:116分鐘) 500
12.1 結構體類型和結構變數 500
實例362 結構體類型的定義 500
實例363 結構體變數定義及使用 501
實例364 結構變數記憶體空間的分配 503
實例365 結構變數的整體套用 504
實例366 結構變數的初始化 505
實例367 結構變數作為函式參數的套用 506
實例368 求空間任兩點距離 508
實例369 點和圓的位置判斷 509
12.2 結構體數組 510
實例370 結構體數組的使用 510
實例371 結構數組的初始化 512
實例372 整數排序 513
實例373 建立同學通訊錄 514
實例374 票數統計 515
實例375 結構數組作為函式參數的套用 517
12.3 結構體指針 518
實例376 結構指針處理變數 518
實例377 指針變數處理結構數組 520
實例378 部分字元加密 521
實例379 指向數組元素的結構指針運算 522
12.4 共用體 523
實例380 共用體變數的套用 523
實例381 共用體變數使用錯誤實例分析 524
實例382 取出整型變數的高位元組和低位元組數據 526
實例383 處理任意類型數據 527
12.5 枚舉類型 528
實例384 枚舉類型的套用 528
實例385 日期的計算 529
實例386 求解不同水果組成的拼盤數目 530
12.6 綜合實例分析 532
實例387 複數運算 532
實例388 日期處理 535
實例389 數據連續查詢 538
實例390 數據的排序輸出 539
實例391 輸出火車票價 541
實例392 模擬人工洗牌 542
實例393 使用聯合變數保存表格數據 544
第13章 鍊表(教學視頻:113分鐘) 548
13.1動態分配記憶體548
實例394 typedef自定義類型的套用 548
實例395 調用malloc()函式分配記憶體 550
實例396 調用calloc()函式分配記憶體 551
實例397 一個學生信息的動態存放 552
實例398 處理任意長度的多個字元串 553
13.2 單鍊表 554
實例399 構建單鍊表結構 554
實例400 頭插法建立單鍊表 556
實例401 尾插法建立單鍊表 558
實例402 單鍊表長度計算 560
實例403 在單鍊表中按照序號實現元素的查找 561
實例404 在單鍊表中按照指定值實現元素的查找 562
實例405 單鍊表中第n個結點前的插入 564
實例406 鍊表中結點的刪除 566
實例407 有序單鍊表的合併 568
實例408 帶有頭結點的單鍊表逆序 570
實例409 在帶頭結點的單鍊表中尋找最小值結點 571
實例410 刪除鍊表中從第i個元素開始的len個元素 572
13.3 單循環鍊表 574
實例411 單循環鍊表的建立 575
實例412 兩個單循環鍊表的合併 576
實例413 單循環鍊表中的結點個數統計 577
13.4 雙向鍊表 578
實例414 雙向鍊表的建立 579
實例415 雙向鍊表的插入 580
實例416 雙向鍊表的刪除 582
13.5 鍊表的套用實例 583
實例417 對帶有頭結點的單鍊表中的結點進行排序 584
實例418 尋找兩個鍊表的相同元素 586
實例419 單鍊表的分解 587
實例420 求兩個集合的差 589
實例421 單鍊表中結點的下標和數據的處理 590
實例422 處理整數單鍊表 591
實例423 刪除單鍊表中連續相同的數據結點 593
實例424 子串的判定 594
實例425 交換雙向鍊表的前後兩個結點 595
第3篇 算 法 篇
第14章 常用算法(教學視頻:80分鐘) 600
14.1 枚舉法 600
實例426 找到交通肇事犯 600
實例427 奇異的三位數 601
實例428 三色球問題 602
實例429 求回文素數603
14.2 遞推法 604
實例430 8除不盡的自然數 604
實例431 出售金魚 605
14.3 模擬人工 606
實例432 迴文數的形成 606
實例433 填表格 607
14.4 回溯法 609
實例434 滿足特異條件的數列 609
實例435 教師值班問題 611
14.5 常用內部排序 612
實例436直接插入排序613
實例437 折半插入排序 614
實例438 希爾排序 615
實例439 冒泡排序 617
實例440 快速交換排序 618
實例441 堆排序 620
實例442 二路歸併排序 621
第15章數據結構與算法(教學視頻:91分鐘) 623
15.1 線性數據結構 623
實例443 建立線性順序表 623
實例444 建立順序棧 625
實例445 括弧匹配 627
實例446 循環佇列實現 629
實例447 稀疏矩陣的存儲 631
實例448 稀疏矩陣轉置 632
15.2 二叉樹 634
實例449 創建二叉樹的二叉鍊表存儲 634
實例450 二叉樹先序非遞歸遍歷 636
實例451 二叉樹中序非遞歸遍歷 637
實例452 二叉樹後序非遞歸遍歷 639
實例453 哈夫曼樹 641
15.3 圖 643
實例454 圖的鄰接鍊表存儲結構 643
實例455 圖的深度優先遍歷645
實例456 圖的廣度優先遍歷646
實例457 拓撲排序 647
15.4 常見查找算法 650
實例458 順序查找的實現 650
實例459 有序表折半查找 651
實例460 動態表的查找 652
第4篇 底層處理與項目開發篇
第16章 位運算(教學視頻:36分鐘) 658
16.1 按位與、或運算 658
實例461 按位與的運算 658
實例462 取數據的某些位 659
實例463 按位清零 660
實例464 按位或的運算 661
實例465 將一個數的低5位置為1 662
16.2 按位異或、取反運算 663
實例466 按位異或的運算 663
實例467 交換兩個數據的值 664
實例468 數據的翻轉 664
實例469 按位取反的運算 665
16.3 移位運算 666
實例470 按位左移的運算 666
實例471 按位右移的運算 667
實例472 輸出數據的補碼 668
16.4 位段 668
實例473 位段變數的記憶體分配 669
實例474 指向位段指針變數的套用 670
實例475 溫度測控系統 671
16.5 位運算綜合套用 673
實例476 取出數據的連續幾位 673
實例477 數據二進制的存儲形式輸出 674
實例478 取出數據的偶數位 675
實例479 數據的循環右移位 676
實例480 計算整數中位值為1的個數 677
第17章 檔案(教學視頻:97分鐘) 679
17.1 檔案打開 679
實例481 檔案的打開與關閉 679
實例482 打開一批檔案 681
17.2 檔案讀寫 682
實例483 使用fputc()函式寫入檔案 683
實例484 使用fgetc()函式讀取檔案 684
實例485 磁碟檔案的複製 685
實例486 多個檔案合併 686
實例487 使用fputs()函式寫入檔案 687
實例488 使用fgets()函式讀取檔案 688
實例489 文本的存儲和輸出 689
實例490 使用fprintf()函式寫入檔案 690
實例491 使用fscanf()函式讀取檔案 692
實例492 使用fwrite()函式寫入檔案 693
實例493 使用fread()函式讀取檔案 694
17.3 檔案定位和錯誤檢測 696
實例494 檔案指針定位到開頭 696
實例495 檔案隨機讀寫 697
實例496 檔案倒置 699
實例497 出錯標誌變化 700
實例498 檔案檢錯函式 701
實例499 文本的追加 702
實例500 檔案部分輸出 703
17.4 檔案操作的套用 704
實例501 多個字元存儲 705
實例502 多行字元串存儲 706
實例503 標準輸入輸出設備的數據和檔案數據 707
實例504 帶有行號的文本顯示 708
實例505 檔案中關鍵字的檢索 709
實例506 檔案查找字元串 711
實例507 結構型數據的存儲 712
實例508 統計檔案的字元數 714
實例509 同時顯示兩個檔案的內容 715
實例510 檔案統計 716
第18章 系統調用(教學視頻:83分鐘) 719
18.1 文本視窗調用 719
實例511 多視窗的定義以及背景色的設定 719
實例512 視窗內文本的輸入和輸出實例 720
實例513 製作簡單的文本選單 721
18.2 圖形視窗調用 723
實例514 繪圖前的準備 723
實例515 繪圖視窗的顏色設定 724
實例516 圖形視窗的坐標 725
實例517 畫點函式的使用 725
實例518 繪製直線 726
實例519 繪製矩形 727
實例520 繪製條形條塊 728
實例521 繪製多邊形 729
實例522 繪製圓形 729
實例523 繪製扇形 730
實例524 設定線條類型 731
實例525 填充類型和填充顏色的設定 732
實例526 圖形文本的輸出 733
實例527 設定圖形文本屬性 734
實例528 模擬兩個小球動態碰撞 735
實例529 飄帶圖案 737
實例530 矩形區域的顏色填充738
實例531 設計立體視窗739
18.3 中斷系統 740
實例532 軟中斷的調用 740
實例533 硬體中斷 742
實例534 在圖形界面中調用滑鼠 743
實例535 DOS中多任務模擬 746
第19章 教務管理系統(教學視頻:22分鐘) 748
實例536 教務管理系統主要數據結構設計 748
實例537 程式界面設計 752
實例538 學生記錄檔案建立 755
實例539 學生成績記錄的錄入 758
實例540 計算本學期課程平均成績 759
實例541 成績排序 761
實例542 分類統計成績分布情況 762
實例543 成績的輸出 765
實例544 學生記錄的保存 766
實例545 學生的查找操作 767
實例546 學生記錄的追加 769
實例547 刪除資料庫中指定的學生記錄 771
實例548 學生數據的修改 773
實例549 課程信息表的建立 775
實例550 安排課程的授課順序 777
實例551 安排教學計畫 779
實例552 教務管理系統實現 780
創作背景
本書約定
【實例介紹】:對需要解決的問題的已知條件和需要解決的部分做出說明,對於某些複雜的問題舉例說明該題目的功能是什麼,以及要求是什麼。
【技術要點】:對待解決的問題給出精闢的分析說明,主要說明問題解決思路,代碼構成特點。
【難點剖析】:對於比較困難的實例,給出難點是什麼,如何分析難點解決難點,在前面的基礎知識部分,難點剖析部分給出的是對於初學者來講不容易理解的部分和對它的詳細分析;後面的套用部分,難點剖析給出的是難點代碼的分析實現思路擴展。
【程式代碼】:這一部分給出了解決問題的主要C語言代碼,在代碼中對於重要的變數或者複雜的語句給出注釋和解釋,對於複雜的函式給出了功能介紹,每一個函式以及函式內的每一條代碼都是按照常見的C語言的格式書寫的,仔細研讀不但可以掌握常見問題的代碼書寫,對於養成良好的書寫風格也是有幫助的。一個實例中有兩處代碼,或者有正確代碼和錯誤代碼對比的,用【程式代碼1】、【程式代碼2】等標識。
【關鍵代碼分析】:對於程式代碼中的關鍵之處加以詳細說明。
【程式運行】:除程式運行過程,對於特殊的部分,例如預編譯部分,給出查看預編譯效果的運行過程,也就是使用tcc工具查看運行結構過程,對代碼中的變數和某些重要語句的作用給出分析和說明。
【拓展套用】:通過代碼的學習,為以後的問題解決提供了什麼思路,該問題在解決過程應該注意的事項和該問題還可以採用何種算法來解決,都在這部分給出說明。
配書光碟內容介紹
為了方便讀者閱讀本書,本書附帶1張DVD光碟。內容如下:
* 本書550餘個實例的原始碼。
* 本書550餘個實例的多媒體視頻講解,包括實例的實現過程和運行演示。
* 免費贈送的大量互補學習資料,包括編程講座視頻、編程電子書和套用系統等。
適合閱讀本書的讀者
* 所有想學習C語言的初學者。
* 已經學習C語言基礎知識,想進一步學習C語言程式設計的讀者。
* 想參加初級、中級程式設計師考試以及參加全國二級C或者C++考試的人員。
* 進一步學習計算機其他課程例如數據結構想選擇參考書的人員。
* 想了解C作為中級語言特點的人員,可以作為開發底層程式的第一本書。
* 各大、中專院校和培訓學校的C語言教材。
閱讀本書的建議
* 沒有C語言基礎的讀者,建議從第一章順次閱讀並演練每一個實例。
* 有一定C語言基礎的讀者,可以根據實際情況有重點地選擇閱讀。
* 對於每一個實例,可以先思考一下實現的思路,然後再閱讀,這樣的學習效果 更好。
* 先對每一個實例的實現思路和實現過程完整地閱讀一遍,然後再結合光碟中的多媒體視頻講解動手實現一次,這樣理解會更加深刻。