C語言自學視頻教程(實例版)

《C 語言自學視頻教程(實例版)》是清華大學出版社出版的圖書,作者是軟體開發技術聯盟。

圖書簡介

《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

相關詞條

熱門詞條

聯絡我們