內容簡介
《C語言程式設計(第2版)》指出“千里之行,始於足下”,和其他的技能一樣,程式設計技術是一個循序漸進的過程,不可能一蹴而就。作為一個學習的起點,《C語言程式設計(第2版)》在內容安排上力求面向初學者,如第1章介紹計算機的發展歷史、工作原理和系統構成等內容,為初學者的學習做充分的鋪墊。為了幫助讀者很好地掌握全書內容,每章還設計了“學習內容”、“基本要求”和“小結”等,章後有習題,供讀者使用。
主要內容包括:概述、C語言數據類型、運算符和表達式、結構化程式設計(順序、選擇和循環結構程式設計)、數組、函式、指針、結構體與共用體、檔案、位運算、預處理命令、圖形函式及簡單界面設計、綜合套用等,還包括兩個附錄——C語言運算符優先權和結合性以及ASCII代碼與字元對照表。每章還有本章的學習內容、基本要求及小結,並附有習題供讀者練習。本書是作者多年教學和軟體開發實踐經驗的總結,具有內容豐富、敘述清晰、實用性強的特點。適合作為高等院校計算機、軟體工程等專業的程式設計基礎課程教材,也可供對C語言及軟體開發感興趣的自學者使用。
目錄
第1章概述1
1.1計算機簡介1
1.1.1計算機發展簡史1
1.1.2計算機工作原理5
1.1.3現代計算機硬體系統的構成6
1.1.4計算機軟體系統的構成7
1.2程式設計語言8
1.3C語言簡介9
1.3.1C語言的特點10
1.3.2C語言的發展和標準化11
1.4簡單的C語言程式11
1.4.1C語言程式的特點11
1.4.2C語言程式的編譯和運行14
1.4.3C語言程式的書寫格式16
1.5解決實際問題的過程16
1.5.1解決問題的基本步驟16
1.5.2算法的概念17
1.5.3算法的特性18
1.5.4算法的表示19
1.6小結20
習題21
第2章C語言數據類型、運算符和表達式22
2.1基本字元、關鍵字和標識符23
2.2常量24
2.3變數的定義和使用26
2.3.1變數的定義及變數類型26
2.3.2變數的屬性和分類27
2.3.3變數的使用及賦初值28
2.4基本數據類型及其在計算機中的表示29
2.4.1數的進制29
2.4.2整型數據35
2.4.3整型變數36
2.5實型數據39
2.5.1實型常量的表示方法39
2.5.2實型變數40
2.6字元型數據40
2.6.1字元型常量40
2.6.2字元變數42
2.6.3字元變數在記憶體中的存儲方式42
2.6.4字元數據和整型數據的關係42
2.6.5字元串常量44
2.7不同運算中各種數據類型間的相互轉換44
2.8運算符和表達式47
2.8.1算術運算符和算術表達式48
2.8.2賦值運算符和賦值表達式55
2.8.3關係運算符和關係表達式56
2.8.4邏輯運算符和邏輯表達式57
2.8.5條件運算符和條件表達式59
2.8.6逗號運算符和逗號表達式61
2.8.7其他運算符及其運算61
2.9小結62
習題62
第3章結構化程式設計64
3.1什麼是結構化程式設計64
3.2程式流程圖65
3.2.1傳統流程圖65
3.2.2N-S結構化流程圖66
3.33種基本結構及流程圖表示67
3.3.1順序結構67
3.3.2選擇結構67
3.3.3循環結構67
3.4小結68
習題68
第4章順序結構程式設計69
4.1字元型數據的輸入/輸出函式69
4.1.1putchar函式69
4.1.2getchar函式70
4.2格式輸入/輸出函式71
4.2.1printf函式71
4.2.2scanf函式77
4.3程式舉例81
4.4小結83
習題83
第5章選擇結構程式設計85
5.1if語句85
5.1.1if語句的標準格式85
5.1.2if語句的嵌套87
5.2switch語句91
5.3程式舉例93
5.4小結98
習題98
第6章循環結構程式設計100
6.1循環結構問題的提出100
6.2for循環100
6.2.1for循環語句100
6.2.2for循環的簡單舉例102
6.3while循環103
6.3.1while循環語句103
6.3.2while循環的簡單舉例105
6.4do-while循環105
6.4.1do-while循環語句105
6.4.2do-while循環的簡單舉例106
6.5循環語句的嵌套107
6.5.1循環語句的嵌套形式107
6.5.2循環語句的嵌套舉例107
6.6break語句和continue語句108
6.6.1break語句108
6.6.2continue語句110
6.7程式舉例111
6.8小結117
習題117
第7章數組119
7.1一維數組119
7.1.1一維數組的定義119
7.1.2一維數組的初始化120
7.1.3一維數組元素的引用120
7.1.4一維數組程式舉例122
7.2二維數組124
7.2.1二維數組的定義124
7.2.2二維數組的初始化125
7.2.3二維數組元素的引用126
7.2.4二維數組程式舉例127
7.3字元數組128
7.3.1字元數組的定義、初始化及引用128
7.3.2字元串處理函式131
7.3.3字元數組程式舉例133
7.4小結135
習題135
第8章函式137
8.1C語言程式的一般結構137
8.2函式的定義和返回值138
8.2.1函式的定義及聲明138
8.2.2函式的返回值142
8.3函式間的數據傳遞142
8.3.1實參與形參143
8.3.2值傳遞與地址傳遞144
8.3.3簡單變數作參數148
8.3.4數組作參數150
8.4函式的調用154
8.4.1函式調用的語法要求154
8.4.2函式的嵌套調用154
8.4.3函式的遞歸調用155
8.5變數的作用域及其存儲類型160
8.5.1變數的作用域160
8.5.2變數的存儲類型163
8.5.3變數分類總結168
8.6內部函式和外部函式169
8.6.1內部函式169
8.6.2外部函式171
8.7小結173
習題173
第9章指針175
9.1指針的概念175
9.1.1變數的地址175
9.1.2變數的訪問方式176
9.1.3指針和地址176
9.2指針變數177
9.2.1指針變數的定義177
9.2.2指針變數的初始化177
9.2.3指針的基本運算178
9.2.4指針程式舉例179
9.3指針變數作函式參數181
9.4指向數組的指針184
9.4.1指向一維數組元素的指針184
9.4.2數組名或指針變數作函式參數189
9.4.3二維數組的指針191
9.5指向字元串的指針197
9.5.1指向字元串的指針變數197
9.5.2字元串指針作函式參數200
9.6指針數組203
9.6.1指針數組的概念203
9.6.2命令行參數206
9.7函式的指針和返回指針值的函式208
9.7.1函式的指針208
9.7.2指針型函式211
9.8指針的指針214
9.9小結215
習題216
第10章結構體與共用體217
10.1結構體概述217
10.1.1結構體的概念217
10.1.2結構體類型的定義217
10.2結構體變數219
10.2.1結構體變數的定義219
10.2.2結構體變數的初始化220
10.2.3結構體變數的引用221
10.3結構體變數作為函式參數222
10.4結構體數組224
10.4.1結構體數組的定義224
10.4.2結構體數組的初始化225
10.4.3結構體數組元素的引用226
10.5指向結構體類型數據的指針227
10.5.1指向結構體變數的指針227
10.5.2指向結構體數組的指針229
10.5.3結構體指針變數作函式參數230
10.6動態存儲分配232
10.7鍊表233
10.7.1鍊表的概念233
10.7.2鍊表的操作234
10.8共用體241
10.8.1共用體類型定義242
10.8.2共用體變數的定義與引用242
10.8.3套用舉例243
10.9枚舉類型246
10.9.1枚舉類型的定義和枚舉變數的說明246
10.9.2枚舉類型變數的賦值和使用247
10.10類型定義符typedef248
10.11小結249
習題250
第11章檔案253
11.1檔案概述253
11.1.1檔案的概念及分類253
11.1.2檔案指針254
11.2檔案的打開與關閉255
11.2.1fopen函式255
11.2.2fclose函式256
11.3檔案的讀寫257
11.3.1字元讀寫函式fgetc和fputc257
11.3.2字元串讀寫函式fgets和fputs259
11.3.3數據塊讀寫函式fread和fwrite261
11.3.4磁碟檔案讀寫函式fscanf和fprintf263
11.3.5檔案的定位265
11.4檔案檢測函式268
11.5C語言庫檔案268
11.6小結269
習題270
第12章位運算271
12.1位運算符271
12.1.1按位與運算271
12.1.2按位或運算271
12.1.3按位異或運算272
12.1.4求反運算272
12.1.5左移運算272
12.1.6右移運算272
12.2位段272
12.2.1位段的定義和位段變數的說明273
12.2.2位段的使用274
12.3小結275
習題275
第13章預處理命令277
13.1概述277
13.2宏定義277
13.2.1不帶參數的宏定義277
13.2.2帶參數的宏定義280
13.3檔案包含283
13.4條件編譯285
13.5小結286