c語言程式設計[孟愛國主編書籍]

c語言程式設計[孟愛國主編書籍]

《c語言程式設計》是2010年2月復旦大學出版社出版的圖書,作者是孟愛國。

內容簡介

C語言是在當今軟體開發領域有著十分廣泛套用的一種語言。本書全面地介紹了C語言的基本概念、各種語法成分及套用,並通過大量實例程式講述了C語言套用中的重點和難點,引導讀者掌握一般程式設計的方法。

全書共有9章,第1章介紹了C語言程式設計的基本知識。第2章介紹了C語言的基本數據類型、常量和變數以及表達式。第3章介紹了用C語言進行結構化程式設計的基本方法,包括結構化程式的順序結構、選擇結構、循環結構及其設計方法,並介紹了C語言程式的風格和程式設計中的常見錯誤及調試方法。第4章介紹了函式與編譯預處理。第5、第6章對C語言的數組、指針作了充分闡述。第7章對結構體、共用體作了較詳細的介紹。第8章對C語言檔案操作作了詳細的闡述。第9章介紹了C語言的綜合編程套用。

作者簡介

孟愛國,男,在長沙理工大學任教,從事《大學計算機基礎》、《C語言程式設計》和《Visual Basic程式設計》等系列課程教學。

圖書目錄

第1章 C語言概述1

1.1 C語言的歷史1

1.1.1 起源1

1.1.2 標準化1

1.1.3 基於C的語言2

1.2 C語言的優缺點3

1.2.1 C語言的優點3

1.2.2 C語言的缺點3

1.2.3 高效地使用C語言4

問與答5

第2章 C語言基本概念7

2.1 編寫一個簡單的C程式7

程式顯示雙關語7

2.1.1 編譯和連結8

2.1.2 集成開發環境8

2.2 簡單程式的一般形式9

2.2.1 指令9

2.2.2 函式9

2.2.3 語句10

2.2.4 顯示字元串10

2.3 注釋11

2.4 變數和賦值12

2.4.1 類型12

2.4.2 聲明13

2.4.3 賦值13

2.4.4 顯示變數的值14

程式計算箱子的空間重量14

2.4.5 初始化15

2.4.6 顯示表達式的值16

2.5 讀入輸入16

程式計算箱子的空間重量(改進版)16

2.6 定義常量的名字17

程式華氏溫度轉換為攝氏溫度17

2.7 標識符18

2.8 C程式的書寫規範19

問與答21

練習題23

編程題24

第3章 格式化輸入/輸出26

3.1 printf函式26

3.1.1 轉換說明27

程式用printf函式格式化數28

3.1.2 轉義序列28

3.2 scanf函式29

3.2.1 scanf函式的工作方法30

3.2.2 格式串中的普通字元31

3.2.3 易混淆的printf函式和scanf函式32

程式分數相加32

問與答33

練習題34

編程題35

第4章 表達式36

4.1 算術運算符36

程式計算通用產品代碼的校驗位38

4.2 賦值運算符39

4.2.1 簡單賦值40

4.2.2 左值41

4.2.3 複合賦值41

4.3 自增運算符和自減運算符42

4.4 表達式求值43

4.5 表達式語句45

問與答45

練習題47

編程題49

第5章 選擇語句50

5.1 邏輯表達式50

5.1.1 關係運算符50

5.1.2 判等運算符51

5.1.3 邏輯運算符51

5.2 if語句52

5.2.1 複合語句53

5.2.2 else子句53

5.2.3 級聯式if語句54

程式計算股票經紀人的佣金55

5.2.4 “懸空else”的問題56

5.2.5 條件表達式57

5.2.6 C89中的布爾值58

5.2.7 C99中的布爾值58

5.3 switch語句59

程式顯示法定格式的日期61

問與答62

練習題65

編程題67

第6章 循環69

6.1 while語句69

程式顯示平方表71

程式數列求和71

6.2 do語句72

程式計算整數的位數73

6.3 for語句73

6.3.1 for語句的慣用法74

6.3.2 在for語句中省略表達式75

6.3.3 C99中的for語句75

6.3.4 逗號運算符76

程式顯示平方表(改進版)77

6.4 退出循環78

6.4.1 break語句78

6.4.2 continue語句78

6.4.3 goto語句79

程式賬簿結算80

6.5 空語句81

問與答83

練習題84

編程題85

第7章 基本類型88

7.1 整數類型88
7.1.1 C99中的整數類型90
7.1.2 整數常量90
7.1.3 C99中的整數常量91
7.1.4 整數溢出91
7.1.5 讀/寫整數91
程式數列求和(改進版)92
7.2 浮點類型93
7.2.1 浮點常量94
7.2.2 讀/寫浮點數94
7.3 字元類型94
7.3.1 字元操作95
7.3.2 有符號字元和無符號字元95
7.3.3 算術類型96
7.3.4 轉義序列96
7.3.5 字元處理函式97
7.3.6 用scanf和printf讀/寫字元98
7.3.7 用getchar和putchar讀/寫字元98

程式確定訊息的長度99

7.4 類型轉換100

7.4.1 常用算術轉換101

7.4.2 賦值過程中的轉換102

7.4.3 C99中的隱式轉換103

7.4.4 強制類型轉換103

7.5 類型定義105

7.5.1 類型定義的優點105

7.5.2 類型定義和可移植性105

7.6 sizeof運算符106

問與答107

練習題109

編程題110

第8章 數組113

8.1 一維數組113

8.1.1 數組下標113

程式數列反向115

8.1.2 數組初始化115

8.1.3 指定初始化式116

程式檢查數中重複出現的數字116

8.1.4 對數組使用sizeof運算符117

程式計算利息118

8.2 多維數組119

8.2.1 多維數組初始化120

8.2.2 常量數組121

程式發牌121

8.3 C99中的變長數組122

問與答123

練習題124

編程題125

第9章 函式129

9.1 函式的定義和調用129

程式計算平均值129

程式顯示倒計數130

程式顯示雙關語(改進版)131

9.1.1 函式定義132

9.1.2 函式調用133

程式判定素數134

9.2 函式聲明135

9.3 實際參數136

9.3.1 實際參數的轉換137

9.3.2 數組型實際參數138

9.3.3 變長數組形式參數140

9.3.4 在數組參數聲明中使用static141

9.3.5 複合字面量141

9.4 return語句142

9.5 程式終止143

9.6 遞歸144

程式快速排序146

問與答147

練習題150

編程題153

第10章 程式結構155

10.1 局部變數155

10.1.1 靜態局部變數156

10.1.2 形式參數156

10.2 外部變數156

10.2.1 示例:用外部變數實現棧156

10.2.2 外部變數的利與弊157

程式猜數158

10.3 程式塊161

10.4 作用域162

10.5 構建C程式163

程式給一手牌分類163

問與答169

練習題169

編程題170

第11章 指針172

11.1 指針變數172

11.2 取地址運算符和間接定址運算符173

11.2.1 取地址運算符173

11.2.2 間接定址運算符174

11.3 指針賦值174

11.4 指針作為參數176

程式找出數組中的最大元素和最小元素177

11.5 指針作為返回值179

問與答180

練習題181

編程題182

第12章 指針和數組184

12.1 指針的算術運算184

12.1.1 指針加上整數185

12.1.2 指針減去整數185

12.1.3 兩個指針相減186

12.1.4 指針比較186

12.1.5 指向複合常量的指針186

12.2 指針用於數組處理186

12.3 用數組名作為指針188程式數列反向(改進版)189

12.3.1 數組型實際參數(改進版)189

12.3.2 用指針作為數組名191

12.4 指針和多維數組191

12.4.1 處理多維數組的元素191

12.4.2 處理多維數組的行192

12.4.3 處理多維數組的列192

12.4.4 用多維數組名作為指針192

12.5 C99中的指針和變長數組193

問與答194

練習題195

編程題197

第13章 字元串198

13.1 字元串字面量198

13.1.1 字元串字面量中的轉義序列198

13.1.2 延續字元串字面量199

13.1.3 如何存儲字元串字面量199

13.1.4 字元串字面量的操作200

13.1.5 字元串字面量與字元常量200

13.2 字元串變數200

13.2.1 初始化字元串變數201

13.2.2 字元數組與字元指針202

13.3 字元串的讀和寫203

13.3.1 用printf函式和puts函式寫字元串203

13.3.2 用scanf函式和gets函式讀字元串203

13.3.3 逐個字元讀字元串204

13.4 訪問字元串中的字元205

13.5 使用C語言的字元串庫206

13.5.1 strcpy函式207

13.5.2 strlen函式208

13.5.3 strcat函式208

13.5.4 strcmp函式209程式顯示一個月的提醒列表209

13.6 字元串慣用法211

13.6.1 搜尋字元串的結尾211

13.6.2 複製字元串213

13.7 字元串數組214

程式核對行星的名字217

問與答218

練習題220

編程題222

第14章 預處理器225

14.1 預處理器的工作原理225

14.2 預處理指令227

14.3 宏定義227

14.3.1 簡單的宏227

14.3.2 帶參數的宏229

14.3.3 #運算符231

14.3.4 ##運算符231

14.3.5 宏的通用屬性232

14.3.6 宏定義中的圓括弧233

14.3.7 創建較長的宏233

14.3.8 預定義宏234

14.3.9 C99中新增的預定義宏235

14.3.10 空的宏參數236

14.3.11 參數個數可變的宏236

14.3.12 __func__標識符237

14.4 條件編譯237

14.4.1 #if指令和#endif指令238

14.4.2 defined運算符238

14.4.3 #ifdef指令和#ifndef指令239

14.4.4 #elif指令和#else指令239

14.4.5 使用條件編譯240

14.5 其他指令240

14.5.1 #error指令240

14.5.2 #line指令241

14.5.3 #pragma指令242

14.5.4 _Pragma運算符242

問與答243

練習題245

第15章 編寫大型程式248

15.1 源檔案248

15.2 頭檔案249

15.2.1 #include指令249

15.2.2 共享宏定義和類型定義250

15.2.3 共享函式原型251

15.2.4 共享變數聲明252

15.2.5 嵌套包含253

15.2.6 保護頭檔案253

15.2.7 頭檔案中的#error指令254

15.3 把程式劃分成多個檔案254程式文本格式化255

15.4 構建多檔案程式260

15.4.1 makefile260

15.4.2 連結期間的錯誤262

15.4.3 重新構建程式262

15.4.4 在程式外定義宏264

問與答264

練習題265

編程題266

第16章 結構、聯合和枚舉267

16.1 結構變數267

16.1.1 結構變數的聲明267

16.1.2 結構變數的初始化269

16.1.3 指定初始化269

16.1.4 對結構的操作270

16.2 結構類型270

16.2.1 結構標記的聲明271

16.2.2 結構類型的定義272

16.2.3 結構作為參數和返回值272

16.2.4 複合字面量273

16.3 嵌套的數組和結構274

16.3.1 嵌套的結構274

16.3.2 結構數組274

16.3.3 結構數組的初始化275程式維護零件資料庫275

16.4 聯合281

16.4.1 用聯合來節省空間282

16.4.2 用聯合來構造混合的數據結構284

16.4.3 為聯合添加“標記欄位”284

16.5 枚舉285

16.5.1 枚舉標記和類型名286

16.5.2 枚舉作為整數286

16.5.3 用枚舉聲明“標記欄位”286

問與答287

練習題289

編程題293

第17章 指針的高級套用294

17.1 動態存儲分配294

17.1.1 記憶體分配函式294

17.1.2 空指針295

17.2 動態分配字元串296

……

第18章 聲明 327

第19章 程式設計 345

第20章 底層程式設計 363

第21章 標準庫 377

第22章 輸入/輸出 384

第23章 庫對數值和字元數據的支持 419

第24章 錯誤處理 446

第25章 國際化特性 456

第26章 其他庫函式 482

第27章 C99對數學計算的新增支持 503

附錄A C語言運算符 524

附錄B C99與C89的比較 525

附錄C C89與經典C的比較 529

附錄D 標準庫函式 532

附錄E ASCII字元集 569

參考文獻 570

索引 573

相關詞條

熱門詞條

聯絡我們