從零開始學C語言

從零開始學C語言

《從零開始學C語言》是2010年12月出版的圖書,作者是戴晟輝、祝明慧。本書系統地介紹了程式設計的基本理論與編程技術。

基本信息

內容簡介

為了使初學者都更好地掌握這門高級語言——C語言,本書每一個知識點都作為一個獨立的章節進行詳細的講解,目的在於讓讀者在學習C語言的過程中,能循序漸進、由淺入深。

本書共4篇分為18章,內容包括C語言入門基礎、C語言程式、常量、變數與標識符、數據類型、運算符及其表達式、輸入與輸出、順序結構與選擇結構、循環結構程式設計、結構語句的轉移、數組、函式、指針、結構體、共用體和檔案等內容。最後的實例篇,運用C語言建立一個學生成績管理系統,通過對該系統的界面設計、功能分析、模組描述,使讀者對C語言程式設計有一個更加系統、深刻的理解。

本書配DVD光碟1張,內容為本書的實例檔案和作者專門為本書錄製的全程多媒體語音教學視頻。

近年來,C語言是套用最為廣泛的一種高級程式設計語言,它不僅是計算機專業學生的必修課,也是許多非計算機專業學生所青睞的技術學科。C語言程式設計是全國和各省計算機等級考試的重要考試內容。C語言功能豐富,表達能力強,使用靈活方便,程式效率高,是結構化程式設計語言。C語言具有很強的實用性,既可用來編寫套用軟體,也適合於編寫系統軟體。

本書內容全面,論述翔實,適合C語言的初學者,也可作為大、中專院校師生的培訓教材,對於C語言愛好者,本書也有很大的參考價值。

前 言

近年來,C語言是套用最為廣泛的一種高級程式設計語言,它不僅是計算機專業學生的必修課,也是許多非計算機專業學生所青睞的技術學科。C語言程式設計是全國和各省計算機等級考試的重要考試內容。C語言功能豐富,表達能力強,使用靈活方便,程式效率高,是結構化程式設計語言。C語言具有很強的實用性,既可用來編寫套用軟體,也適合於編寫系統軟體。

本書的特點

C語言是學習其他語言的基礎,讀者只要掌握C語言,學其他語言就會很快入門。本書為了使讀者能夠從C語言的初學者成為編程高手,專門對C語言知識進行研究分析。本書的主要特點如下:

結構清晰明了。本書共18章,每章都分為若干個節,每節一個小知識點。結構層次清晰可見。

內容全面詳細。本書涵蓋了C語言中的所有知識,並將C語言各個知識點作為單獨章節進行講解,並舉出大量實例。

講解由淺入深。向讀者介紹C語言的基本理論知識、數據結構和基本的編程規則,讓讀者對C語言的基本知識及結構化程式設計思想有一個初步的認識;接著對C語言一些複雜的數結構類型如數組、函式、指針操作、結構體與共用體、檔案等進行詳細的講解。

實例豐富多樣。本書所講的每一個知識點都運用充分的實例進行講解說明,便於讀者掌握。

本書的主要內容

第1章主要帶領讀者了解了計算機語言的演變和C語言的發展簡史,介紹程式設計算法及數制、數制轉換與存儲,為以後的學習打下基礎。

第2章運用一個C語言程式設計實例講解C語言的結構特徵和書寫風格。以前的C語言參考書大部分使用的是Turbo C開發環境,本書運用Visual C++ 6.0集成開發環境,詳細介紹了Visual C++ 6.0環境的程式開發過程。

第3章講解常量、變數與標識符,第4章講解了數據結構,第5章講解了運算符及其表達式,第6章講解了輸入與輸出,這4章所講解的內容均為C語言入門的基礎知識,是學習後面幾章的前提,本書對這幾章的內容做了詳細的講解。

第7章講解了順序結構和選擇結構,第8章講解了循環結構,這兩章介紹了C語言程式設計的三種結構,它們構成了C語言程式設計的框架。這兩章還運用大量的實例講解了如何使用if-else、switch-case、while等語句來解決問題。

第9章在第7章、第8章的基礎上講解了幾種跳轉語句,如break、continue,使程式設計語句更加靈活,有利於解決更加複雜的問題。

第10章講解了數組,用於處理數據類型相同的一批數據。講解了一維數組、二維數組及它們的定義、初始化及引用,並給出了大量的實例,幫助讀者理解。

第11章講解了字元串數組,在第10章的基礎上講解了用於處理多個字元的數組。本章講解了字元數組的定義、初始化、引用、字元數組與字元串的關係及字元數組的輸入與輸出,最後講解了字元串處理函式,並舉出實例說明。

第12、13章主要介紹函式,這兩章講解了函式的定義、參數值傳遞問題、函式調用、變數的作用域,以及調用系統函式時的預編譯操作等。

第14章講解的指針操作是C語言的核心,也是難點。本章分別從指針與地址、指針和指針變數、指針和數組、指針和函式這四個方面進行介紹,並給出大量實例,幫助讀者理解。

第15章講解了結構體,第16章講解了共用體,分別介紹了幾種複雜的數據結構、它們的定義與引用,以及與其他數據結構的不同之處。

第17章講解了檔案,檔案也是一種數據類型,是存儲在外部存儲設備上的數據集合。本章講解了如何對外部數據進行各種操作。

第18章運用C語言來設計一個學生成績管理系統,整個系統綜合運用前幾章所學習的C語言的知識,如結構化程式設計、數組、函式、結構體等,在複習鞏固C語言的基礎知識的基礎上,進一步加深對C語言編程的理解和掌握。

適合閱讀本書的讀者

C語言的初、中級讀者。

了解C語言,但所學不全面的人員。

高等院校理科學校C語言課程的學生。

使用C語言進行畢業設計的學生。

熟悉其他語言,以此作為參考書的開發人員。

本書作者

本書主要由戴晟暉和祝明慧編寫。其他參與本書編寫的人員有昊燃、曾光、張雙、朱照華、黃永湛、孟祥嵩、張賀軍、李勇、關濤、王岩、李曉白、魏星、劉蕾。在此一併表示感謝!

目 錄

第1篇 C語言入門

第1章 C語言入門基礎 14

1.1 計算機語言的演變 14

1.1.1 機器語言 14

1.1.2 彙編語言 14

1.1.3 高級語言 14

1.1.4 面向對象或面向問題的高級語言 15

1.2 數制、數制轉換與存儲 15

1.2.1 數制 15

1.2.2 數制的轉換 16

1.2.3 計算機中數據的存儲 17

1.3 程式設計思想——算法 18

1.3.1 算法的概念 18

1.3.2 算法的特點 18

1.3.3 算法的表示方法 19

1.3.4 算法分析 21

1.4 C語言的發展簡史和特點 21

1.4.1 C語言的誕生與發展 22

1.4.2 C語言的特點 23

1.5 本章小結 24

1.6 習題 24

第2章 認識C語言程式 25

2.1 C語言程式的結構特徵 25

2.2 C語言程式的書寫風格 27

2.3 C語言程式的開發過程 28

2.4 Visual C++集成開發環境 29

2.4.1 熟悉Visual C++ 6.0集成開發環境 30

2.4.2 C語言在Visual C++ 6.0的開發過程 31

2.5 用Visual C++運行一個C程式 32

2.6 本章小結 33

2.7 習題 33

第2篇 C語言基礎

第3章 常量、變數與標識符 34

3.1 標識符 34

3.1.1 標識的命名 34

3.1.2 保留字 34

3.2 常量 35

3.2.1 直接常量 35

3.2.2 符號常量 35

3.3 變數 36

3.3.1 變數的定義 36

3.3.2 變數的初始化 36

3.4 變數的初始化 37

3.5 本章小結 37

3.6 習題 37

第4章 數據類型 38

4.1 C語言中的數據類型 38

4.1.1 基本數據類型 38

4.1.2 構造數據類型 39

4.1.3 指針數據類型 39

4.1.4 空類型 39

4.2 整型數據 39

4.2.1 整型常量 40

4.2.2 整型變數 40

4.3 實數型數據 41

4.3.1 實數型常量 42

4.3.2 實數型變數 42

4.4 字元型數據 43

4.4.1 字元型常量 43

4.4.2 字元型變數 44

4.5 數值型數據間的混合運算 46

4.5.1 自動類型轉換 46

4.5.2 強制類型轉換 47

4.6 本章小結 49

4.7 習題 49

第5章 運算符及其表達式 50

5.1 算術運算符及算術表達式 50

5.1.1 算術運算符 50

5.1.2 算術表達式 52

5.2 賦值運算符及賦值表達式 52

5.2.1 賦值運算符 53

5.2.2 賦值表達式 54

5.3 關係運算符及關係表達式 55

5.3.1 關係運算符 55

5.3.2 關係表達式 56

5.4 邏輯運算符及邏輯表達式 57

5.4.1 邏輯運算符 57

5.4.2 邏輯運算規則 58

5.4.3 邏輯表達式 59

5.5 條件運算符及條件表達式 61

5.5.1 條件運算符 61

5.5.2 條件表達式 62

5.6 逗號運算符及逗號表達式 65

5.6.1 逗號運算符 65

5.6.2 逗號表達式 66

5.7 位運算符 67

5.7.1 位邏輯運算符 67

5.7.2 移位運算符 69

5.7.3 位自反賦值運算符 70

5.8 位運算符 71

5.9 本章小結 72

5.10 習題 72

第6章 輸入與輸出 73

6.1 C語句概述 73

6.1.1 流程控制語句 73

6.1.2 函式調用語句 77

6.1.3 表達式語句 77

6.1.4 空語句 77

6.1.5 複合語句 77

6.2 輸入與輸出函式 78

6.2.1 格式輸出函式 78

6.2.2 格式輸入函式 81

6.2.3 字元輸入與字元輸出函式 85

6.3 整型數據的輸入與輸出 87

6.3.1 整型數據的輸出 87

6.3.2 整型數據的輸入 89

6.4 浮點型數據的輸入與輸出 89

6.5 本章小結 90

6.6 習題 90

第7章 順序結構與選擇結構 91

7.1 順序結構程式設計 91

7.2 選擇結構程式設計 93

7.2.1 if語句 93

7.2.2 switch語句 98

7.3 套用舉例 101

7.4 本章小結 104

7.5 習題 104

第8章 循環結構程式設計 105

8.1 while語句 105

8.2 do…while語句 107

8.3 for語句 110

8.3.1 for循環結構 110

8.3.2 for循環語句的嵌套 113

8.4 總結套用 115

8.4.1 幾種循環的比較 115

8.4.2 循環語句的嵌套 116

8.4.3 套用舉例 118

8.5 本章小結 121

8.6 習題 121

第9章 結構語句的轉移 122

9.1 break語句 122

9.1.1 跳出switch結構 122

9.2 跳出循環結構 124

9.2.1 問題1 124

9.2.2 問題2 125

9.3 continue語句 126

9.4 goto語句 127

9.5 本章小結 128

9.6 習題 128

第3篇 C語言進階

第10章 數組 129

10.1 數組的概述 129

10.2 一維數組 130

10.2.1 一維數組的定義 130

10.2.2 一維數組的初始化 131

10.2.3 一維數組的引用 132

10.2.4 一維數組的程式舉例 133

10.3 二維數組 139

10.3.1 二維數組的定義 139

10.3.2 二維數組的初始化 140

10.3.3 二維數組的引用 142

10.3.4 數組的程式舉例 144

10.4 本章小結 146

10.5 習題 146

第11章 字元數組 147

11.1 字元數組的定義 147

11.2 字元數組的初始化 147

11.3 字元數組的引用 148

11.4 字元數組與字元串的關係 148

11.5 字元數組的輸入與輸出 149

11.6 字元串處理函式 150

11.6.1 輸入字元串函式gets 151

11.6.2 輸出字元串函式puts 151

11.6.3 字元串測長度函式strlen 151

11.6.4 字元串比較函式strcmp 151

11.6.5 字元串複製函式strcpy和strncpy 152

11.6.6 字元串連線函式strcat 152

11.7 套用舉例 153

11.8 本章小結 158

11.9 習題 158

第12章 函式 159

12.1 函式的初步認識 159

12.2 函式定義 161

12.2.1 無參函式定義 161

12.2.2 有參函式定義 162

12.2.3 空函式定義 162

12.3 函式參數及返回值 163

12.3.1 函式的參數 163

12.3.2 函式的返回值 165

12.4 函式的參數傳遞 166

12.4.1 函式參數的數值傳遞 166

12.4.2 函式參數的地址傳遞 167

12.5 套用舉例 168

12.6 本章小結 170

12.7 習題 170

第13章 函式的調用 171

13.1 函式調用的一般形式 171

13.2 函式調用的形式 172

13.3 被調用函式的聲明與函式原型 173

13.4 函式的嵌套調用和遞歸調用 176

13.4.1 函式的嵌套調用 176

13.4.2 函式的遞歸調用 177

13.5 變數作用域 178

13.5.1 變數作用域和生存期 178

13.5.2 局部變數和全局變數 178

13.5.3 變數存儲類別 181

13.6 編譯預處理 185

13.6.1 宏定義 186

13.6.2 檔案包含處理 189

13.6.3 條件編譯 190

13.7 本章小結 191

13.8 習題 191

第14章 指針操作 192

14.1 指針與地址 192

14.2 指針和指針變數 192

14.2.1 指針變數的定義 193

14.2.2 指針變數的引用 194

14.2.3 指針的運算 196

14.3 指針和數組 199

14.3.1 數組的指針和指向數組的指針變數 200

14.3.2 指針數組和指向指針的指針 203

14.3.3 指向字元串的指針 206

14.3.4 數組名作為函式參數 207

14.4 指針和函式 211

14.4.1 函式的指針和指向函式的指針變數 211

14.4.2 用指向函式的指針作為函式參數 212

14.4.3 指針數組作為函式參數 218

14.4.4 返回指針值的函式 219

14.4.5 字元串指針作為函式參數 220

14.5 本章小結 221

14.6 習題 221

第15章 結構體 222

15.1 結構體類型定義 222

15.1.1 結構體類型的說明 222

15.1.2 結構體類型的定義 222

15.2 結構體變數的定義與引用 224

15.2.1 結構體變數的定義與初始化 224

15.2.2 結構體變數的引用 226

15.3 結構數組 229

15.3.1 結構數組的定義 229

15.3.2 結構數組的引用 230

15.4 結構體指針 232

15.4.1 結構體指針變數的定義 232

15.4.2 結構體指針變數的引用 233

15.5 鍊表 236

15.5.1 鍊表概述 236

15.5.2 單鍊表建立 238

15.5.3 單鍊表簡單操作 242

15.6 本章小結 251

15.7 習題 251

第16章 共用體 252

16.1 共用體類型定義 252

16.1.1 定義共用體 252

16.1.2 共用體的存儲 253

16.2 共用體類型變數、數組和指針變數的定義 254

16.2.1 先定義共用體,再定義共用體變數、數組及指針變數 254

16.2.2 定義共用體的同時定義共用體變數、數組及指針變數 254

16.2.3 定義共用體變數、數組及指針變數時省略共用體名 255

16.3 共用體類型變數、數組和指針變數的引用 255

16.4 共用體套用舉例 257

16.5 枚舉類型 259

16.5.1 枚舉類型的定義 259

16.5.2 枚舉類型變數的賦值和引用 260

16.6 用typedef定義數據類型 262

16.7 本章小結 266

16.8 習題 266

第17章 檔案 267

17.1 檔案概述 267

17.1.1 檔案名稱 267

17.1.2 檔案的類型 268

17.2 檔案類型指針 268

17.3 檔案的打開與關閉 270

17.3.1 檔案打開函式fopen() 270

17.3.2 檔案關閉函式fclose() 272

17.4 檔案的讀寫操作 272

17.4.1 字元讀寫函式 272

17.4.2 字元串讀寫函式 275

17.4.3 數據塊讀寫函式 278

17.4.4 格式數據讀寫函式 281

17.5 檔案的定位 282

17.5.1 檔案頭定位函式rewind() 282

17.5.2 檔案隨機定位函式fseek() 283

17.5.3 測試當前位置函式ftell() 284

17.6 檔案的檢測 285

17.6.1 檔案末尾檢測函式feof() 285

17.6.2 檔案讀寫出錯檢測函式ferror() 286

17.6.3 清除檔案末尾和出錯標誌函式clearerr() 287

17.7 本章小結 287

17.8 習題 287

第4篇 案例實戰

第18章 學生成績管理系統設計 288

18.1 學生成績管理系統功能 288

18.2 功能模組的描述 288

18.2.1 數據結構 288

18.2.2 main()主函式 289

18.2.3 score *creatlink()創建動態鍊表 289

18.2.4 void print(score *head)顯示學生信息 290

18.2.5 score *add(score *head,score *stu)向鍊表中添加學生數據 290

18.2.6 score *search(score *head)查詢學生成績 290

18.2.7 score *dele(score *head)刪除數據 291

18.2.8 score *sortdata(score *head)對數據進行排序 291

18.2.9 save(score *p1)保存數據 291

18.2.10 score *load(score *head)從檔案中讀取數據 291

18.2.11 score *statistics(score *head)成績統計 292

18.2.12 int menu(int k)選單 292

18.2.13 用到的頭檔案和全局變數 292

18.3 程式代碼 292

18.3.1 主函式main()代碼 292

18.3.2 創建鍊表函式creatlink() 293

18.3.3 顯示學生信息函式print() 296

18.3.4 向鍊表中添加學生數據函式add() 296

18.3.5 查詢學生成績函式search 298

18.3.6 刪除數據函式dele 299

18.3.7 對數據進行排序函式sortdata() 300

18.3.8 保存數據函式save() 303

18.3.9 從檔案中讀取數據函式loadfile() 303

18.3.10 成績統計函式statistics() 304

18.4 程式運行 306

18.4.1 編輯學生成績 306

18.4.2 顯示學生成績 306

18.4.3 保存學生成績信息 307

18.4.4 查詢學生的成績 307

18.4.5 添加學生的成績 307

18.4.6 刪除學生的成績 307

18.4.7 學生成績排序 308

18.4.8 從檔案中讀取學生的成績 308

18.4.9 統計學生的成績 308

18.5 本章小結 308

附錄A ASCII字元集 309

附錄B 運算符的優先權與結合性 311

附錄C C語言常用庫函式 314

相關詞條

相關搜尋

熱門詞條

聯絡我們