圖書簡介
《C 語言自學視頻教程(實例版)》以初學者為主要對象,全面介紹C 語言程式設計的相關技術。書中內容編排由淺入深,並結合豐富的實例和形象的比喻,且附有大量的注意、說明、技巧等欄目,夯實讀者理論技術,豐富管理與開發經驗。
《C 語言自學視頻教程(實例版)》共分3 篇20 章,其中,第1 篇為入門篇,主要包括初識C 語言、編寫一個簡單的C 程式、掌握數據類型、運算符與表達式的使用、數據的輸入與輸出、算法入門、選擇結構程式設計、循環結構程式設計等內容;第2 篇為提高篇,主要包括數組的套用、處理字元串、封裝函式、靈活套用指針、構造數據類型、掌握位運算、記憶體管理、編譯預處理、使用檔案處理數據、製作圖形圖像等內容;第3 篇為實戰篇,主要包括C 語言遊戲開發和圖書管理系統等項目。
目錄
本書光碟“自主學習系統”內容索引…XIII
第1篇入門篇
第1章初識C語言..................................2
視頻講解:14分鐘
1.1程式語言發展史...............................3
1.1.1機器語言..........................................3
1.1.2彙編語言..........................................3
1.1.3高級語言..........................................4
1.2C語言的發展...................................5
1.2.1C語言的產生..................................5
1.2.2C程式的特點..................................6
1.2.3C語言發展趨勢..............................7
1.2.4C語言的套用領域..........................8
1.2.5如何學好C語言.............................8
實例1輸出“HelloWorld!”...............9
實例2計算10+20...................................9
1.3本章小結.........................................10
第2章編寫一個簡單的C程式...............11
視頻講解:1小時42分鐘
2.1C程式結構.....................................12
2.2C語言基礎知識.............................15
2.2.1介紹兩種C程式開發工具...........15
2.2.2設定標識符....................................25
2.2.3認識關鍵字....................................26
2.2.4添加注釋........................................28
2.2.5定義變數........................................28
實例1求一個數的平方根.....................29
實例2猴子吃桃.....................................29
2.3分析錯誤提示信息.........................30
2.3.1出現嚴重錯誤................................30
2.3.2提示一般錯誤信息........................30
2.3.3警告信息........................................37
實例3求圓面積.....................................38
實例4十進制數轉八進制......................39
2.4提高程式的可讀性.........................40
2.5綜合套用.........................................41
2.5.1輸出三角形....................................41
2.5.2交換兩個數....................................41
2.6本章常見錯誤.................................42
2.6.1定義的標識符不是一個整體.........42
2.6.2語句結束沒有結束符.....................42
2.7本章小結.........................................43
2.8跟我上機.........................................43
第3章掌握C語言算法....44
視頻講解:22分鐘
3.1算法概述......45
3.1.1什麼是算法.45
3.1.2算法的特性.45
3.1.3算法的優缺點....46
實例1求圓的周長.....46
實例2求一元二次方程ax2+bx+c=0
的根...47
3.2描述算法......48
3.2.1用自然語言描述48
3.2.2用流程圖描述....48
3.2.3三種基本結構....50
3.2.4繪製N-S流程圖52
3.2.5用偽代碼描述算法...54
實例3任意輸入三個數,求這三個數中
的最大數..54
Contents
IV
C語言自學視頻教程(實例版)
Note
實例4判斷2000~2500年中每一年
是否為閏年....55
實例5用偽代碼描述n!....56
3.3綜合套用......56
3.3.1判斷三角形的類型...56
3.3.2計算某日是該年第幾天..57
3.3.3婚禮上的謊言....58
3.3.4百錢百雞問題....59
3.4本章常見錯誤.....59
3.4.1合理安排基本結構...59
3.4.2全面考慮.....60
3.5本章小結......60
3.6跟我上機......60
第4章C語言基礎——數據類型.....64
視頻講解:1小時25分鐘
4.1數據類型概述.....65
4.1.1數據類型的概念65
4.1.2數據類型的分類65
實例1複製字元串.....66
實例2一分鐘倒計時.67
4.2常量67
4.2.1整型常量.....68
4.2.2實型常量.....70
4.2.3字元型常量.70
4.2.4符號常量.....76
實例3進制轉換..77
實例4以不同格式輸出數據...77
4.3變數78
4.3.1整型變數.....78
4.3.2實型變數.....81
4.3.3字元型變數.84
4.3.4轉換數據類型....85
實例5求100~200之間的素數....86
實例6字元型數據進行算術運算..87
4.4綜合套用......88
4.4.1小球下落問題....88
4.4.2老師分糖果.89
4.5本章常見錯誤.....89
4.5.1scanf()輸入數據要用地址......89
4.5.2指針無法訪問register變數....90
4.5.3變數先定義後使用...90
4.6本章小結......90
4.7跟我上機......90
第5章運算符與表達式的使用.92
視頻講解:52分鐘
5.1表達式概述..93
5.2賦值運算......93
5.2.1為變數賦值.94
5.2.2自動類型轉換....94
5.2.3強制類型轉換....95
實例1模擬鐘點工的計費.96
實例2顯示類型轉化的結果....96
5.3算術運算......97
5.3.1算術運算符.97
5.3.2算術表達式.98
5.3.3算術運算符的優先權與結合性.....98
5.3.4自增自減運算符99
實例3溫度轉換..99
實例4算術運算符的優先權和
結合性....100
實例5比較自增自減運算符前綴與
後綴的不同...101
實例6自增運算的結合性......102
5.4關係運算....103
5.4.1關係運算符......103
5.4.2關係表達式......104
實例7關係運算符的使用......104
實例8輸入密碼104
5.5邏輯運算....106
5.5.1邏輯運算符......106
5.5.2邏輯表達式......106
實例9判斷閏年107
實例10黑紙與白紙.108
5.6逗號運算....109
5.7條件運算符與表達式.....110
5.8複合賦值運算符......111
5.9綜合套用....112
V
目錄
Note
5.9.1阿姆斯特朗數..112
5.9.2求1~10的累加和.113
5.9.3求解二元一次不定方程113
5.9.4可逆素數...115
5.10本章常見錯誤.116
5.10.1表達式“a=b”和“a==b”.116
5.10.2對浮點數求餘117
5.10.3邏輯運算部分被執行..117
5.11本章小結..117
5.12跟我上機..118
第6章輸入輸出數據120
視頻講解:1小時38分鐘
6.1語句概述....121
6.1.1表達式語句......121
6.1.2函式調用語句..121
6.1.3空語句122
6.1.4控制語句...122
6.1.5複合語句...123
實例1判斷迴文數...123
實例2求最小數124
6.2輸入輸出字元數據..125
6.2.1輸出字元數據..125
6.2.2字元數據的輸入.....126
實例3使用putchar函式實現字元數據
輸出126
實例4使用getchar函式實現字元數據
輸入127
實例5使用getchar函式取消獲取
回車128
6.3字元串的輸入輸出..128
6.3.1字元串輸出函式.....128
6.3.2字元串輸入函式.....129
實例6使用字元串輸出函式進行顯示
信息提示....129
實例7使用字元串輸入函式gets()獲取
輸入信息....130
6.4按指定格式輸出...131
6.5按指定格式輸入...135
6.6順序程式設計套用.....138
6.7綜合套用...140
6.7.1輸出一個字元的前驅字元.....140
6.7.2求學生總成績和平均成績.....140
6.7.3將輸入的小寫字元轉化為大寫
字元....141
6.8本章常見錯誤.141
6.8.1用scanf輸入字元串不能接受
空格....141
6.8.2scanf格式控制用逗號問題...142
6.9本章小結...142
6.10跟我上機.142
第7章分支結構程式設計...143
視頻講解:1小時2分鐘
7.1if語句的基本形式144
7.1.1if語句形式.....144
7.1.2if…else語句形式.147
7.1.3elseif語句形式....150
實例1判斷偶數.....153
實例2判斷字母是否大寫..154
7.2if的嵌套形式..154
7.3switch語句157
7.3.1switch語句的基本形式...157
7.3.2多路開關模式的switch語句160
實例3使用switch語句輸出分
數段.160
實例4使用多路開關模式編寫日程
安排程式.....162
7.4ifelse語句和switch語句的
區別.....163
7.5選擇結構程式套用.....165
7.6綜合套用...167
7.6.1檢查字元類型167
7.6.2求學生的最低分和最高分.....168
7.6.3模擬自動售貨機..168
7.7本章常見錯誤.169
7.7.1ifelse的匹配問題169
7.7.2注意case後不要跟變數..170
VI
C語言自學視頻教程(實例版)
Note
7.7.3if判斷表達式的比較問題.....170
7.8本章小結...170
7.9跟我上機...171
第8章循環結構程式設計..173
視頻講解:2小時
8.1循環結構概述.174
8.2while型循環...174
8.2.1while語句的一般形式....174
8.2.2while語句的空循環體....175
8.2.3注意while循環語句常見錯誤....176
實例1使用while語句求n!.177
實例2使用while為用戶提供選單
顯示177
8.3do-while語句.179
8.4for型循環語句.....180
8.4.1for循環語句的一般形式181
8.4.2靈活多變的for循環語句.....184
8.4.3套用for語句中的逗號...186
實例3一元錢的兌換方案.187
實例4特殊等式.....188
8.5比較三種循環.188
8.6嵌套多個循環.189
8.7轉移語句...192
8.7.1goto語句..193
8.7.2break語句195
8.7.3continue語句..196
8.7.4區別三種跳轉語句....197
實例5求解從鍵盤中輸入字元的
個數.197
實例6平方和運算的問題..198
8.8綜合套用...199
8.8.1求總數問題....199
8.8.2燈塔數量..200
8.9本章常見錯誤.201
8.9.1在循環中注意清0.....201
8.9.2注意循環條件201
8.10本章小結.201
8.11跟我上機.202
第2篇提高篇
第9章C語言數組的套用...204
視頻講解:1小時56分鐘
9.1數組概述...205
9.2一維數組...205
9.2.1定義一維數組206
9.2.2引用一維數組206
9.2.3初始化一維數組..207
實例1使用數組保存學生資料.....210
實例2輸出20個整數中最大的
數值......211
9.3二維數組...211
9.3.1定義二維數組...211
9.3.2二維數組的引用........212
9.3.3初始化二維數組........213
9.3.4二維數組套用...215
實例3求二維數組各元素之和...216
實例4使用二維數組保存數據...217
9.4多維數組...218
9.5字元數組...219
9.5.1字元數組的定義........219
9.5.2字元數組的引用........219
9.5.3字元數組初始化........219
9.5.4字元數組的結束標誌.222
9.5.5字元數組的輸出........223
9.5.6字元數組的輸入........224
9.5.7字元數組套用...225
實例5計算字元串中有多少個單詞....226
實例6不使用strcpy()函式實現字元串
複製功能........227
9.6字元串處理函式228
9.6.1字元串複製.......228
9.6.2字元串連線.......230
9.6.3字元串比較.......231
9.6.4獲得字元串長度........232
實例7實現字元匹配233
實例8反轉輸出字元串.....234
9.7綜合套用...235
9.7.1逆序存放數據...235
9.7.2相鄰元素之和..235
9.8本章常見錯誤....236
9.8.1輸出數組內容時後面出現
亂碼.236
9.8.2sizeof(a)和sizeof(a+1)......236
9.9本章小結...237
9.10跟我上機.237
第10章封裝函式......239
視頻講解:44分鐘
10.1函式概述.240
10.2定義函式.240
10.2.1函式定義形式.240
10.2.2定義與聲明.....242
實例1輸出兩個數中的最大值..243
實例2判斷素數........244
10.3返回語句.245
10.3.1終止一個函式.245
10.3.2返回值....246
實例3函式執行完畢自動返回..246
實例4分數計算器程式.....247
實例5計算下面函式的值.249
實例6返回值類型與return值類型....249
10.4傳遞函式參數..250
10.4.1形式參數與實際參數.......250
10.4.2數組做函式參數......252
10.4.3main()函式傳參.......253
實例7求學生的平均身高.254
實例8數組作為函式參數.254
10.5調用函式.255
10.5.1函式調用方式.257
10.5.2嵌套調用260
10.5.3遞歸調用261
實例9遞歸解決年齡問題..263
實例10遞歸解決分魚問題264
10.6內部函式和外部函式........265
10.6.1內部函式265
10.6.2外部函式266
實例11內部函式的使用...266
實例12外部函式的使用...267
10.7綜合套用.268
10.7.1小數分離268
10.7.2固定格式輸出當前時間....269
10.8本章常見錯誤..269
10.8.1函式定義時容易犯的錯誤269
10.8.2函式中返回的數組地址無效.....270
10.8.3聲明函式時不要忘記加分號.....270
10.9本章小結.271
10.10跟我上機........271
第11章靈活套用指針........272
視頻講解:42分鐘
11.1指針概述.273
11.1.1地址與指針.....273
11.1.2保存變數的地址......274
11.1.3使用指針變數.275
11.1.4指針自加自減運算..279
實例1使用指針實現整數排序...280
實例2輸出學生信息281
11.2使用指針引用數組元素....282
11.2.1引用一維數組元素..282
11.2.2引用二維數組元素..287
11.2.3字元型指針的套用..290
實例3使用指針輸出數組元素...291
實例4使用指針查找數列中最大值和
最小值...292
11.3指向指針的指針.......292
11.4指針在函式中的套用........294
11.4.1指針做函式參數......294
11.4.2指針做函式返回值..296
11.4.3通過指針調用函式..297
實例5求奇數之和....298
實例6使用指針實現冒泡排序..299
11.5指針數組做main()函式的參數...300
11.6綜合套用.302
11.6.1用指針實現逆序存放數組
元素.......302
11.6.2顯示星期303
11.7本章常見錯誤..304
11.7.1通過指針修改字元串出錯........304
11.7.2釋放記憶體提示錯誤..304
11.7.3釋放空間以後,記得給指針
賦空.......304
11.8本章小結.305
11.9跟我上機.305
第12章構造數據類型........307
視頻講解:30分鐘
12.1結構體的定義和使用........308
12.1.1結構體類型的概念..308
12.1.2定義結構體變數......309
12.1.3引用結構體成員......311
12.1.4初始化結構體變數..312
實例1輸出商品信息313
實例2顯示學生信息314
12.2結構體數組概述.......315
12.2.1定義結構體數組......316
12.2.2初始化結構體數組..317
實例3比較計數........318
實例4找出最高分....319
12.3包含結構的結構.......320
12.4共用體的套用..322
12.4.1共用體的概念.322
12.4.2引用共用體成員......322
12.4.3初始化共用體變數..323
12.4.4共用體類型的數據特點...324
實例5共用體處理不同類型數據.......325
實例6取出整型數據的高位元組數據...326
12.5聲明枚舉類型..327
12.6綜合套用.328
12.6.1候選人選票程式......328
12.6.2使用共用體存放學生和老師
信息........329
12.6.3輸出今天是星期幾..330
12.7本章常見錯誤..331
12.7.1結構體位元組對齊問題........331
12.7.2用指針動態申請結構體記憶體時
失敗........332
12.7.3忘記分號332
12.8本章小結....332
12.9跟我上機....332
第13章建立鍊表334
視頻講解:18分鐘
13.1結構體指針335
13.1.1指向結構體變數的指針..335
13.1.2指向結構體數組的指針..338
13.1.3結構體做函式參數.........339
實例1使用結構體變數作為函式
參數..........340
實例2使用結構體指針作為函式
參數..........341
13.2鍊表概述....342
13.3鍊表的相關操作...344
13.3.1創建鍊表...344
13.3.2遍歷鍊表...346
13.3.3向鍊表中插入節點.........347
13.3.4從鍊表中刪除節點.........347
13.3.5釋放鍊表...349
實例3創建鍊表並將數據輸出.349
實例4插入和刪除學生信息.....351
13.4綜合套用....354
13.4.1查看學生成績......354
13.4.2修改日程安排......356
13.5本章常見錯誤.......358
13.5.1頭指針的保護......358
13.5.2注意判斷鍊表是否為空..358
13.6本章小結....358
13.7跟我上機....359
第14章掌握位運算.......361
視頻講解:36分鐘
14.1位與位元組的關係...362
14.2位運算操作符.......362
14.2.1“與”運算符......363
14.2.2“或”運算符......365
14.2.3“取反”運算符..366
14.2.4“異或”運算符..367
14.2.5“左移”運算符..370
14.2.6“右移”運算符..371
14.2.7位運算複合賦值運算符.373
14.2.8長度不同的數據進行位運算....373
實例1使二進制數特定位翻轉373
實例2將輸入的數左移兩位並輸出....374
14.3循環移位....375
14.4位段概述....377
14.5綜合套用....380
14.5.1取一個整數的後4位.....380
14.5.2整數與0異或......380
14.6本章常見錯誤.......381
14.6.1區分&&和||與&和|.........381
14.6.2注意位運算的數據類型.381
14.7本章小結....381
14.8跟我上機....382
第15章記憶體管理383
視頻講解:26分鐘
15.1記憶體組織方式.......384
15.1.1記憶體組織方式......384
15.1.2堆與棧.......384
實例1在堆中分配記憶體並釋放385
實例2棧在函式調用時的操作386
15.2動態管理....387
15.2.1malloc()函式........387
15.2.2calloc()函式..........388
15.2.3realloc()函式........389
15.2.4free()函式..390
實例3使用malloc()函式分配記憶體.....391
實例4調用calloc()函式動態分配
記憶體..........391
15.3記憶體丟失....392
15.4變數的存儲類別...393
15.4.1動態存儲與靜態存儲......393
15.4.2定義auto變數......394
15.4.3static靜態變數.....395
15.4.4設為register變數396
15.4.5使用extern變數..396
實例5auto變數的套用..396
實例6使用static變數...397
實例7計算1~5的階層值.......398
實例8定義extern變數.398
15.5綜合套用....399
15.5.1商品信息動態存放.........399
15.5.2為二維數組動態分配記憶體.........400
15.6本章常見錯誤.......401
15.6.1分配了一塊記憶體空間,但沒有
初始化.......401
15.6.2釋放記憶體空間後繼續引用其
內容401
15.6.3沒有保存記憶體地址,造成此記憶體
不可用.......401
15.6.4指針無法訪問register變數.......402
15.7本章小結....402
15.8跟我上機....402
第16章編譯預處理.......404
視頻講解:48分鐘
16.1宏定義........405
16.1.1不帶參數的宏定義.........405
16.1.2帶參數的宏定義..407