內容簡介
本書以程式設計的初學者為對象,從學習程式設計的角度出發,簡明扼要而又重點突出地介紹了學習程式設計所必需的預備知識,全面詳細地講述了C語言各種語法成分的語義和用法。書中豐富的例題既有對概念的闡述,又有對程式設計方法和思路的點撥,意在提高讀者的編程能力。全書講述力求深入淺出,通俗易懂。本書可作為高等學校計算機、信息管理及其他相關專業的程式設計課程教材,也可作為科技人員的自學用書或培訓教材。
圖書目錄
•第1章 預備知識 1
•1.1 計算機內的數據表示1
•1.1.1 數的二進制、 十進制、 八進制和十六進制表示2
•1.1.2 數制轉換2
•1.1.3 原碼、 反碼和補碼5
•1.2 數的定點和浮點表示7
•1.2.1 定點數的取值範圍7
•1.2.2 浮點數的取值範圍7
•1.2.3 整數的取值範圍9
•1.3 簡單的邏輯運算10
•1.3.1 “或”、 “與”、 “非”運算11
•1.3.2 真值表12
•1.4 程式的概念13
•1.4.1 程式的特性13
•1.4.2 電腦程式的執行過程14
•1.5 算法15
•1.5.1 算法的特點 15
•1.5.2 算法的表示 16
•1.5.3 結構化程式設計的三種基本結構 18
•1.5.4 程式設計中的幾種常用算法 23
•習題1 27
•第2章 C程式簡介 28
•2.1 C語言的歷史及其特點 28
•2.2 C程式示例 28
•2.3 printf和scanf的一般使用 33
•2.4 C程式的運行 34
•習題2 38
•第3章 C語言基本知識 39
•3.1 C語言基本元素 39
•3.1.1 C的字元集 39
•3.1.2 標識符 39
•3.1.3 關鍵字 39
•3.1.4 變數和常量 40
•3.1.5 字元串常量 41
•3.1.6 註解 41
•3.2 C的基本數據類型 42
•3.2.1 int(整數)類型 42
•3.2.2 char(字元)類型 45
•3.2.3 float和double類型 49
•3.2.4 變數賦初值 50
•3.3 C的運算符及表達式 51
•3.3.1 算術運算符 51
•3.3.2 自加(++)自減(--)運算符 52
•3.3.3 關係及邏輯運算符 54
•3.3.4 賦值運算符 58
•3.3.5 逗號運算符 61
•3.3.6 sizeof運算符 62
•3.3.7 條件運算符 63
•3.3.8 表達式中數據類型的轉換 65
•3.3.9 C運算符小結 68
•習題3 68
•第4章 語句及控制結構 72
•4.1 C語言語句 72
•4.2 簡單語句 73
•4.2.1 空語句 73
•4.2.2 表達式語句 73
•4.2.3 複合語句 74
•4.3 輸入/輸出功能語句 74
•4.3.1 字元輸入/輸出功能語句 75
•4.3.2 格式化輸入/輸出功能語句 76
•4.4 條件語句 84
•4.4.1 if語句 84
•4.4.2 switch語句 90
•4.5 循環語句 92
•4.5.1 for語句 92
•4.5.2 while語句 95
•4.5.3 do-while語句 99
•4.5.4 循環語句的嵌套 100
•4.6 轉向語句 106
•4.6.1 break語句 106
•4.6.2 continue語句 107
•4.6.3 goto語句 109
•4.6.4 return語句 110
•4.6.5 套用舉例111
•習題4 113
•課外上機練習題 117
•第5章 函式 119
•5.1 函式的定義 119
•5.2 函式的調用 121
•5.2.1 函式的參數傳遞 121
•5.2.2 函式的返回值 122
•5.2.3 函式的調用方式 123
•5.3 函式原型及函式聲明 131
•5.4 數據存儲類 135
•5.4.1 自動(auto)變數 135
•5.4.2 暫存器(register)變數 136
•5.4.3 靜態(static)變數 136
•5.4.4 外部變數 138
•5.5 多檔案程式中函式和變數的處理 141
•5.6 遞歸 146
•5.6.1 遞歸函式 147
•5.6.2 間接遞歸 155
•5.7 疊代 158
•5.7.1 疊代公式和疊代算法 158
•5.7.2 遞歸與疊代的比較 162
•5.8 系統庫函式 164
•5.8.1 rand函式 165
•5.8.2 srand函式 166
•習題5 168
•課外上機練習題 171
•第6章 數組 173
•6.1 數組的概念 173
•6.2 一維數組 173
•6.2.1 一維數組變數的定義 173
•6.2.2 一維數組元素的引用 174
•6.2.3 一維數組變數的初始化 175
•6.2.4 一維數組的套用 175
•6.2.5 數組作為函式的參數 184
•6.3 一維字元數組 194
•6.3.1 一維字元數組變數的定義和引用 194
•6.3.2 字元數組的輸入/輸出 195
•6.3.3 字元串處理函式 203
•6.3.4 字元數組的套用 209
•6.4 二維數組 214
•6.4.1 二維數組變數的定義 214
•6.4.2 二維數組元素的引用 215
•6.4.3 二維數組變數的初始化 216
•6.4.4 二維數組的套用 218
•6.5 多維數組 225
•6.5.1 多維數組的定義 225
•6.5.2 多維數組的引用 225
•習題6 226
•課外上機練習題 229
•第7章 指針 231
•7.1 指針的概念及定義 231
•7.2 指針運算 232
•7.2.1 指針運算符 232
•7.2.2 指針作函式參數 234
•7.2.3 最低訪問權原則和const限定符 238
•7.2.4 指針表達式與指針運算 241
•7.3 指針與數組 243
•7.3.1 一維數組和指針 243
•7.3.2 字元指針 252
•7.3.3 二維數組的地址及指針 259
•7.3.4 由指針組成的數組 267
•7.3.5 二級指針 272
•7.3.6 二維數組處理小結 275
•7.3.7 main函式的參數 277
•7.4 指針與函式 278
•7.4.1 指向函式的指針 279
•7.4.2 返回指針的函式 285
•7.4.3 從被調函式中獲取數據的渠道 288
•7.4.4 懸空引用 290
•7.4.5 二級指針作參數 291
•7.5 多級指針 293
•7.5.1 多級指針的定義 293
•7.5.2 多級指針與多維數組 295
•習題7 301
•課外上機練習題 303
•第8章 結構體、 共用體及枚舉類型 304
•8.1 結構體類型 304
•8.1.1 結構體變數的定義及初始化 304
•8.1.2 結構體數組及結構體分量的引用 308
•8.1.3 結構體變數和結構體指針作參數 316
•8.1.4 類型名定義typedef 320
•8.2 動態數據結構 321
•8.2.1 動態分配記憶體 322
•8.2.2 鍊表 326
•8.2.3 堆疊 334
•8.2.4 佇列 339
•8.2.5 二叉樹 342
•8.3 共用體 346
•8.4 位段 352
•8.5 枚舉類型 355
•習題8 357
•課外上機練習題 358
•第9章 檔案處理 360
•9.1C 語言中的檔案 360
•9.2 檔案類型指針 361
•9.3 檔案操作 362
•9.3.1 檔案的打開與關閉 362
•9.3.2 檔案的輸入與輸出 364
•9.3.3 檔案的定位 372
•9.3.4 檔案的錯誤檢測及錯誤處理函式 374
•習題9 375
•第10章 編譯預處理與位運算 376
•10.1 宏定義 376
•10.2 檔案包含 381
•10.3 條件編譯 384
•10.4 位運算 385
•10.4.1 位運算符 386
•10.4.2 與位運算有關的複合賦值運算符 390
•習題10 393
•附錄A 常用字元與ASCII代碼對照表 396
•附錄B C運算符一覽表 397
•附錄C 常用庫函式 399
•參考文獻 406