C語言程式設計(第2版)[馬靖善、秦玉平、馮佳昕、劉福德編著書籍]

《C語言程式設計(第2版)》是2011年清華大學出版社出版的圖書,作者是馬靖善、秦玉平、馮佳昕、劉福德。

內容簡介

本書共9章。前7章介紹C語言的基本語法、各種數據類型、程式設計方法及檔案操作,後2章介紹C語言的圖形處理以及C語言與DOS和BIOS的接口與調用。書中對常規的C語言教材的體系結構做了適當調整,將指針部分分散到各個相應的章節中分別進行介紹。使讀者很容易理解指針的概念,很自然地掌握各種指針的用法。本書內容循序漸進,結構清晰,層次分明,通俗易懂,通過大量例題驗證語法和說明程式設計方法。為了使讀者更好地掌握各章節內容,章末配有精選的大量習題。本書可作為高等學校相關專業教材,也可作為自學者或各種計算機培訓班的教材。

圖書目錄

第1章 C語言概述1

1.1 C語言功能簡介1

1.1.1 C語言的發展1

1.1.2 C語言的特點2

1.1.3 C語言的32個關鍵字和語句形式3

1.1.4 程式的三種基本結構與流程圖簡介4

1.2 Turbo C上機操作指導7

1.2.1 Turbo C用戶視窗界面7

1.2.2 Turbo C的主要選單功能8

1.2.3 獲取幫助與編輯操作功能11

1.3 簡單的C程式介紹13

習題16

第2章 基本語法規則17

2.1 常量、變數和指針17

2.1.1 標識符17

2.1.2 常量和變數18

2.1.3 整型數據20

2.1.4 實型數據21

2.1.5 字元型數據22

2.1.6 字元串常量23

2.1.7 變數及指針24

2.2 運算符與表達式27

2.2.1 算術運算符和算術表達式28

2.2.2 關係運算符和關係表達式32

2.2.3 邏輯運算符和邏輯表達式33

2.2.4 位運算符35 2.2.5 賦值運算符和賦值表達式37

2.2.6 逗號運算符和逗號表達式39

2.2.7 條件運算符和條件表達式39

2.2.8 求長度運算符40

2.2.9 指針運算符41

2.3 基本輸入輸出函式42

2.3.1 字元輸出函式--putchar () 42

2.3.2 字元輸入函式--getchar () 43

2.3.3 格式輸出函式--printf () 44

2.3.4 格式輸入函式--scanf () 47

2.4 程式舉例49

習題50

C語言程式設計(第2版)目錄 第3章 控制語句與預處理命令57

3.1 分支語句57

3.1.1 if語句57

3.1.2 switch-case語句60

3.2 循環語句62

3.2.1 while語句62

3.2.2 do-while語句63

3.2.3 for語句64

3.2.4 循環語句的嵌套66

3.2.5 break語句和continue語句67

3.2.6 goto語句68

3.3 編譯預處理69

3.3.1 宏定義69

3.3.2 檔案包含72

3.3.3 條件編譯73

3.4 程式設計舉例75

習題77

第4章 數組85

4.1 一維數組及指針85

4.1.1 一維數組的定義和初始化85

4.1.2 一維數組元素的下標法引用86

4.1.3 一維數組的指針87

4.1.4 一維數組元素的指針法引用89

4.2 一維字元數組及指針91

4.2.1 一維字元數組的定義和初始化91

4.2.2 字元數組的輸入和輸出92

4.2.3 用字元數組實現字元串96

4.2.4 用字元指針變數實現字元串97

4.2.5 常用字元串處理函式99

4.3 多維數組及指針102

4.3.1 二維數組的定義和初始化102

4.3.2 二維數組元素的下標法引用103

4.3.3 二維數組的指針104

4.3.4 二維數組元素的指針法引用105

4.4 指針數組107

4.5 二級指針109

4.6 程式設計舉例110

習題114

第5章 函式123

5.1 函式概述123

5.2 函式定義125

5.3 函式調用126

5.3.1 函式調用的一般形式126

5.3.2 函式調用的方式126

5.4 函式引用說明127

5.5 函式的參數和返回值128

5.5.1 形式參數和實際參數128

5.5.2 函式的返回值129

5.5.3 指針作為函式參數130

5.5.4 主函式與命令行參數133

5.6 函式與帶參數的宏的區別134

5.7 函式的嵌套調用與遞歸調用136

5.7.1 函式的嵌套調用136

5.7.2 函式的遞歸調用137

5.8 函式指針與返回指針的函式138

5.8.1 函式指針138

5.8.2 函式指針作為函式的參數139

5.8.3 返回指針的函式140

5.9 變數的作用域141

5.9.1 局部變數141

5.9.2 全局變數142

5.10 變數的存儲類別143

5.10.1 局部變數的存儲類別143

5.10.2 全局變數的存儲類別145

5.11 內部函式和外部函式148

5.11.1 內部函式148

5.11.2 外部函式148

5.12 程式設計舉例149

習題157

第6章 結構體、共用體和枚舉165

6.1 結構體類型與變數165

6.1.1 結構體類型定義165

6.1.2 結構體變數的定義和引用166

6.2 結構體數組168

6.3 結構體類型數據的指針170

6.3.1 結構體變數的指針與指針變數170

6.3.2 結構體數組的指針與指針變數171

6.3.3 結構體指針與變數作函式參數172

6.3.4 自定義類型173

6.4 鍊表的基本知識174

6.4.1 動態分配和釋放空間的函式175

6.4.2 建立和輸出鍊表176

6.4.3 鍊表的基本操作177

6.5 結構體位段184

6.6 共用體類型與變數187

6.6.1 共用體類型定義187

6.6.2 共用體變數的定義和引用187

6.7 枚舉類型與變數190

6.7.1 枚舉類型定義190

6.7.2 枚舉變數與枚舉元素191

6.8 程式設計舉例194

習題198

第7章 檔案系統207

7.1 檔案系統概述與檔案類型207

7.2 檔案的打開與關閉208

7.2.1 檔案的打開(fopen函式)208

7.2.2 檔案的關閉(fclose函式)210

7.3 檔案的讀寫操作210

7.3.1 讀寫一個字元的函式(fgetc(),fputc()或getc(),putc()) 210

7.3.2 讀寫一個字元串函式(fgets()和fputs()) 212

7.3.3 讀寫一個數據字塊函式(fread ()和fwrite () ) 214

7.3.4 檔案的格式化讀寫函式(fscanf ()和fprintf () ) 216

7.4 檔案定位與隨機讀寫217

7.5 程式設計舉例220

習題229

第8章 C語言繪圖235

8.1 PC的顯示系統235

8.2 Turbo C基本繪圖函式237

8.2.1 圖形控制函式238

8.2.2 顏色控制函式239

8.2.3 基本繪圖函式239

8.2.4 填充243

8.2.5 獲取當前信息函式245

8.3 圖形方式下的文本輸出247

8.3.1 文本輸出函式247

8.3.2 定義文本字形248

8.3.3 文本輸出字元串250

8.4 動畫設計技術250

8.4.1 存圖取圖250

8.4.2 頁操作252

8.4.3 圖視口操作253

8.4.4 圖形運行控制和聲音函式254

8.5 文本視窗254

8.5.1 文本方式的控制254

8.5.2 螢幕信息與存取258

8.5.3 選單設計261

8.6 創建獨立的圖形運行程式265

8.7 程式設計舉例265

第9章 C程式與DOS、BIOS接口281

9.1 常用DOS功能調用說明281

9.2 常用BIOS功能調用說明286

9.3 C程式調用DOS、BIOS功能288

9.3.1 C程式中暫存器的使用格式288

9.3.2 調用DOS、BIOS功能的系統函式289

9.4 程式設計舉例292

附錄A 常用字元與ASCII代碼對照表297

附錄B C庫函式299

參考文獻309

第1章 C語言概述1

1.1 C語言功能簡介1

1.1.1 C語言的發展1

1.1.2 C語言的特點2

1.1.3 C語言的32個關鍵字和語句形式3

1.1.4 程式的三種基本結構與流程圖簡介4

1.2 Turbo C上機操作指導7

1.2.1 Turbo C用戶視窗界面7

1.2.2 Turbo C的主要選單功能8

1.2.3 獲取幫助與編輯操作功能11

1.3 簡單的C程式介紹13

習題16

第2章 基本語法規則17

2.1 常量、變數和指針17

2.1.1 標識符17

2.1.2 常量和變數18

2.1.3 整型數據20

2.1.4 實型數據21

2.1.5 字元型數據22

2.1.6 字元串常量23

2.1.7 變數及指針24

2.2 運算符與表達式26

2.2.1 算術運算符和算術表達式28

2.2.2 關係運算符和關係表達式32

2.2.3 邏輯運算符和邏輯表達式33

2.2.4 位運算符34 2.2.5 賦值運算符和賦值表達式37

2.2.6 逗號運算符和逗號表達式38

2.2.7 條件運算符和條件表達式39

2.2.8 求長度運算符40

2.2.9 指針運算符41

C語言程式設計(第2版)目錄 2.3 基本輸入輸出函式41

2.3.1 字元輸出函式--putchar()41

2.3.2 字元輸入函式--getchar()42

2.3.3 格式輸出函式--printf()43

2.3.4 格式輸入函式--scanf()46

2.4 程式舉例48

習題50

第3章 控制語句與預處理命令57

3.1 分支語句57

3.1.1 if語句57

3.1.2 switch-case語句60

3.2 循環語句62

3.2.1 while語句62

3.2.2 do-while語句63

3.2.3 for語句64

3.2.4 循環語句的嵌套66

3.2.5 break語句和continue語句67

3.2.6 goto語句68

3.3 編譯預處理69

3.3.1 宏定義69

3.3.2 檔案包含72

3.3.3 條件編譯73

3.4 程式設計舉例74

習題77

第4章 數組85

4.1 一維數組及指針85

4.1.1 一維數組的定義和初始化85

4.1.2 一維數組元素的下標法引用86

4.1.3 一維數組的指針87

4.1.4 一維數組元素的指針法引用89

4.2 一維字元數組及指針91

4.2.1 一維字元數組的定義和初始化91

4.2.2 字元數組的輸入和輸出92

4.2.3 用字元數組實現字元串95

4.2.4 用字元指針變數實現字元串96

4.2.5 常用字元串處理函式97

4.3 多維數組及指針100

4.3.1 二維數組的定義和初始化100

4.3.2 二維數組元素的下標法引用102

4.3.3 二維數組的指針102

4.3.4 二維數組元素的指針法引用103

4.4 指針數組106

4.5 二級指針107

4.6 程式設計舉例108

習題112

第5章 函式120

5.1 函式概述120

5.2 函式定義123

5.3 函式調用124

5.3.1 函式調用的一般形式124

5.3.2 函式調用的方式124

5.4 函式引用說明125

5.5 函式的參數和返回值126

5.5.1 形式參數和實際參數126

5.5.2 函式的返回值127

5.5.3 指針作為函式參數128

5.5.4 主函式與命令行參數131

5.6 函式與帶參數的宏的區別132

5.7 函式的嵌套調用與遞歸調用134

5.7.1 函式的嵌套調用134

5.7.2 函式的遞歸調用135

5.8 函式指針與返回指針的函式136

5.8.1 函式指針136

5.8.2 函式指針作為函式的參數137

5.8.3 返回指針的函式138

5.9 變數的作用域139

5.9.1 局部變數139

5.9.2 全局變數140

5.10 變數的存儲類別141

5.10.1 局部變數的存儲類別141

5.10.2 全局變數的存儲類別143

5.11 內部函式和外部函式146

5.11.1 內部函式146

5.11.2 外部函式146

5.12 程式設計舉例147

習題155

第6章 結構體、共用體和枚舉163

6.1 結構體類型與變數163

6.1.1 結構體類型定義163

6.1.2 結構體變數的定義和引用164

6.2 結構體數組166

6.3 結構體類型數據的指針168

6.3.1 結構體變數的指針與指針變數168

6.3.2 結構體數組的指針與指針變數169

6.3.3 結構體指針與變數作函式參數170

6.3.4 自定義類型171

6.4 鍊表的基本知識172

6.4.1 動態分配和釋放空間的函式173

6.4.2 建立和輸出鍊表174

6.4.3 鍊表的基本操作175

6.5 結構體位段182

6.6 共用體類型與變數184

6.6.1 共用體類型定義185

6.6.2 共用體變數的定義和引用185

6.7 枚舉類型與變數187

6.7.1 枚舉類型定義187

6.7.2 枚舉變數與枚舉元素188

6.8 程式設計舉例191

習題196

第7章 檔案系統203

7.1 檔案系統概述與檔案類型203

7.2 檔案的打開與關閉204

7.2.1 檔案的打開(fopen函式)204

7.2.2 檔案的關閉(fclose函式)206

7.3 檔案的讀寫操作206

7.3.1 讀寫一個字元的函式(fgetc(),fputc()或getc(),putc()) 206

7.3.2 讀寫一個字元串函式(fgets()和fputs()) 208

7.3.3 讀寫一個數據字塊函式(fread()和fwrite()) 209

7.3.4 檔案的格式化讀寫函式(fscanf()和fprintf()) 211

7.4 檔案定位與隨機讀寫212

7.5 程式設計舉例215

習題224

第8章 C語言繪圖229

8.1 PC機的顯示系統229

8.2 Turbo C基本繪圖函式231

8.2.1 圖形控制函式232

8.2.2 顏色控制函式233

8.2.3 基本繪圖函式233

8.2.4 填充237

8.2.5 獲取當前信息函式239

8.3 圖形方式下的文本輸出241

8.3.1 文本輸出函式241

8.3.2 定義文本字型242

8.3.3 文本輸出字元串244

8.4 動畫設計技術244

8.4.1 存圖取圖244

8.4.2 頁操作245

8.4.3 圖視口操作246

8.4.4 圖形運行控制和聲音函式248

8.5 文本視窗248

8.5.1 文本方式的控制248

8.5.2 螢幕信息與存取252

8.5.3 選單設計254

8.6 創建獨立的圖形運行程式258

8.7 程式設計舉例259

第9章 C程式與DOS、BIOS接口274

9.1 常用DOS功能調用說明274

9.2 常用BIOS功能調用說明280

9.3 C程式調用DOS、BIOS功能282

9.3.1 C程式中暫存器的使用格式282

9.3.2 調用DOS、BIOS功能的系統函式283

9.4 程式設計舉例286

附錄A 常用字元與ASCII代碼對照表291

附錄B C庫函式293

參考文獻303

上篇 Java基礎

第1章 Java語言概述與編程環境3

1.1 Java的誕生3

1.2 Java的主要特性5

1.3 Java JDK的開發環境7

1.4 Java程式的運行原理9

1.5 開發工具MyEclipse的介紹10

1.5.1 MyEclipse的安裝10

1.5.2 MyEclipse的使用10

1.6 簡單Java程式結構12

1.6.1 一個簡單的Java程式 12

1.6.2 一個簡單的Java小應用程式13

習題115

第2章 Java編程基礎17

2.1 標識符與關鍵字17

2.1.1 標識符17

2.1.2 關鍵字17

2.2 數據類型18

2.3 常量與變數19

2.3.1 常量19

2.3.2 變數21

2.3.3 整型變數24

2.3.4 浮點類型變數25

2.3.5 字元類型變數25

2.3.6 布爾類型變數26 JavaEE基礎教程目錄 2.3.7 基本數據類型的轉換26

2.3.8 Java中的引用類型30

2.4 運算符與表達式31

2.4.1 算術運算32

2.4.2 關係運算32

2.4.3 邏輯運算33

2.4.4 位運算34

2.4.5 賦值運算36

2.4.6 條件運算36

2.4.7 特殊操作符 37

2.4.8 運算符的優先權和結合性匯總38

2.4.9 表達式和語句39

2.5 數組40

2.5.1 數組的概念40

2.5.2 數組的創建與初始化40

2.5.3 多維數組44

2.5.4 數組的複製48

2.5.5 運算元組的工具類49

2.5.6 數組的套用舉例51

習題253

第3章 控制結構57

3.1 分支結構57

3.1.1 if語句57

3.1.2 switch語句59

3.2 循環語句60

3.2.1 for循環語句61

3.2.2 for-each循環語句 64

3.2.3 while與do-while語句65

3.3 break與continue語句67

習題369

第4章 類與對象的基本概念73

4.1 類與對象的概念73

4.1.1 類的聲明73

4.1.2 方法重載77

4.1.3 構造方法79

4.1.4 對象81

4.1.5 父類、子類和繼承87

4.1.6 super關鍵字93

4.1.7 上轉型對象97

4.1.8 多態性99

4.2 類的訪問許可權與包的概念101

4.2.1 類的訪問控制101

4.2.2 類成員的訪問控制103

4.2.3 類的組織106

習題4113

第5章 類的高級特性119

5.1 static關鍵字119

5.2 this關鍵字123

5.3 靜態導入126

5.4 final關鍵字128

5.5 抽象類與接口129

5.5.1 抽象類129

5.5.2 接口的定義131

5.5.3 接口的實現132

5.5.4 接口的套用133

5.5.5 接口回調136

習題5137

第6章 常用類庫139

6.1 字元串處理類139

6.1.1 String類的構造函式139

6.1.2 String類的常用方法140

6.2 數據封裝類142

6.3 Scanner類144

6.4 日期和時間類145

6.4.1 Date類145

6.4.2 Calendar類146

6.5 數據類型的轉換147

6.5.1 數值型數據與字元串之間的轉換147

6.5.2 日期型數據與字元串之間的轉換148

6.6 集合類150

6.6.1 Set接口與HashSet類150

6.6.2 List接口與ArrayList類151

6.6.3 Map接口與HashMap類152

6.7 泛型154

6.7.1 泛型的概念154

6.7.2 泛型類和泛型方法155

6.7.3 List接口和ArrayList類156

6.7.4 Map接口和HashMap類157

習題6158

第7章 異常161

7.1 異常的處理機制161

7.2 異常的處理161

7.2.1 Java內置異常162

7.2.2 try和catch語句163

7.2.3 throw語句165

7.2.4 throws語句166

7.2.5 finally語句167

7.3 自定義異常167

習題7168

第8章 輸入輸出流171

8.1 獲取檔案和目錄的屬性171

8.2 Java中的I/O流173

8.2.1 I/O流的概念173

8.2.2 InputStream流173

8.2.3 OutputStream流173

8.3 位元組流174

8.3.1 FileInputStream流174

8.3.2 FileOutputStream流175

8.4 字元流176

8.4.1 Reader流176

8.4.2 Writer流177

8.4.3 FileReader流177

8.4.4 FileWriter流178

習題8179

第9章 多執行緒181

9.1 執行緒概述181

9.1.1 進程的概念181

9.1.2 執行緒的概念181

9.2 執行緒的創建182

9.2.1 繼承Thread類182

9.2.2 實現Runnable接口183

9.3 執行緒的調度184

9.3.1 執行緒的生命周期184

9.3.2 執行緒的優先權185

9.3.3 執行緒的同步185

9.3.4 wait-notify機制188

習題9191

第10章 資料庫編程193

10.1 MySQL資料庫的安裝與配置193

10.1.1 MySQL資料庫的安裝193

10.1.2 在MyEclipse中連線和使用MySQL資料庫196

10.2 JDBC技術簡介198

10.3 JDBC訪問資料庫199

10.3.1 DriverManager類199

10.3.2 Connectin接口200

10.3.3 Statement接口201

10.3.4 PreparedStatement接口203

10.3.5 ResultSet接口205

10.4 資料庫的操作示例206

10.4.1 更新數據206

10.4.2 查詢數據209

習題10212

下篇 Java Web開發

第11章 Java Web概述與Web發布217

11.1 Java Web概述217

11.2 HTTP協定219

11.2.1 GET方法的請求和回響格式219

11.2.2 POST方法的請求格式222

11.3 Web伺服器Tomcat223

11.3.1 Servlet容器介紹223

11.3.2 Tomcat簡介224

11.3.3 Tomcat的安裝配置224

11.3.4 測試Tomcat225

11.3.5 在MyEclipse中啟動自定義的Tomcat225

11.4 在MyEclipse 中開發Web226

11.4.1 Web工程的創建226

11.4.2 Web工程的發布227

習題11229

第12章 JSP技術231

12.1 JSP簡介231

12.2 JSP標準語法232

12.2.1 一個簡單的JSP程式232

12.2.2 JSP注釋與聲明233

12.2.3 JSP表達式和JSP程式段234

12.2.4 JSP與HTML的混合使用235

12.3 JSP編譯指令 236

12.3.1 include指令236

12.3.2 page指令237

12.3.3 taglib指令238

12.4 JSP動作239

12.4.1 forward動作239

12.4.2 include動作240

12.4.3 useBean動作240

12.5 JSP的隱含對象242

12.5.1 輸出對象out242

12.5.2 請求對象request243

12.5.3 回響對象response245

12.5.4 會話對象session246

12.5.5 Web伺服器對象application248

12.6 編程示例: 網上書店249

習題12252

第13章 JavaBean255

13.1 JavaBean的定義255

13.2 兩種JavaBean的封裝類255

13.2.1 封裝數據的JavaBean255

13.2.2 封裝業務的JavaBean257

13.3 在JSP中使用JavaBean259

13.4 JSP設計模式260

13.4.1 ModelI體系結構260

13.4.2 ModelII體系結構261

習題13262

第14章 Servlet基礎知識265

14.1 Servlet的定義265

14.2 Servlet的生命周期268

14.2.1 載入和實例化268

14.2.2 初始化268

14.2.3 服務268

14.2.4 銷毀268

14.3 Servlet體系結構和層次結構269

14.3.1 Servlet體系結構269

14.3.2 Servlet API層次結構269

14.4 Servlet與JSP之間的關係271

14.5 主要Servlet API介紹271

14.5.1 HttpServlet類272

14.5.2 ServletRequest接口272

14.5.3 HttpServletRequest接口273

14.5.4 ServletResponse接口275

14.5.5 HttpServletResponse接口275

14.5.6 ServletContext接口277

14.6 在MyEclipse中利用嚮導創建Servlet279

14.7 編程示例: 網上書店280

14.7.1 修改圖書操作類代碼280

14.7.2 圖書列表頁面listBook.jsp和其他頁面283

14.7.3 編寫Servlet287

習題14289

第15章 Servlet的會話跟蹤技術291

15.1 session與會話291

15.2 Servlet實現會話跟蹤 292

15.3 編程示例: 網上書店293

15.3.1 顧客瀏覽圖書293

15.3.2 顯示圖書詳細信息295

15.3.3 將圖書添加到購物車並顯示購物車信息296

15.3.4 添加訂單信息並結賬299

習題15301第16章 過濾器303

16.1 Servlet過濾器簡介303

16.2 Servlet過濾器體系結構304

16.3 Servlet過濾器的實現304

16.3.1 編寫實現類304

16.3.2 過濾器的配置306

16.4 中文亂碼問題307

16.4.1 JSP頁面中文亂碼問題307

16.4.2 表單提交亂碼問題307

習題16309

第17章 EL與JSTL311

17.1 EL表達式311

17.1.1 EL表達式的基礎知識311

17.1.2 EL隱式對象312

17.1.3 EL表達式的使用示例313

17.2 JSTL簡介319

17.3 JSTL核心標籤庫319

17.3.1 工程中添加對JSTL的支持319

17.3.2 通用標籤320

17.3.3 條件標籤321

17.3.4 疊代標籤323

17.4 編程示例: 網上書店325

17.4.1 用EL表達式重寫圖書顯示頁面325

17.4.2 用EL表達式重寫顯示圖書詳細信息的頁面326

習題17327

第18章 JSP自定義標籤329

18.1 JSP自定義標籤簡介329

18.2 開發自定義JSP標籤330

18.2.1 創建標籤處理類330

18.2.2 創建標籤庫描述檔案TLD332

18.2.3 JSP中使用自定義標籤332

18.3 編程示例: 網上書店333

18.3.1 分頁標籤處理類333

18.3.2 分頁標籤庫描述檔案336

18.3.3 使用分頁標籤336

熱門詞條

聯絡我們