C語言程序設計教程

人民郵電出版社出版圖書(楊有安主編)

《C語言程序設計教程》是2012年人民郵電出版社出版的圖書,作者是楊有安。

內容簡介


本書根據全國高等學校計算機基礎教育研究會發布的“中國高等院校計算機基礎教育課程體系2008”的計算機基礎教育的綱領性文件中有關“程序設計”課程的教學要求及人才培養的新要求編寫而成。全書共11章,主要內容包括C語言的基本概念、變數、運算符、表達式、順序結構、分支結構、循環結構、數組、函數、指針、結構體、聯合體和枚舉類型、預處理和標準函數、文件、數據結構和數據抽象。同時,還將介紹程序設計的基本方法和常用演演算法。
本書內容全面,由淺入深,詳略得當,注重實踐,實例豐富,面嚮應用。各章附有適量的習題,便於自學。另外,針對書中各章內容和上機實驗,本書還配有輔導教材《C語言程序設計實踐教程》,引導讀者學習和掌握各章節的知識。全書貫徹傳授知識、培養能力、提高素質的教學理念。
本書為高等學校非計算機專業“C語言程序設計”課程的教材,也可以作為初次學習C語言程序設計的讀者、準備計算機二級考試者和計算機工程技術人員的參考書。

目錄


第1章 C語言概述 1
1.1 C語言的發展和特點 1
1.1.1 C語言的發展 1
1.1.2 C語言的主要特點 1
1.2 C語言的辭彙 2
1.2.1 C語言字符集 3
1.2.2 關鍵字 3
1.2.3 標識符 3
1.2.4 保留標識符 4
1.2.5 註釋 4
1.3 C程序的結構 4
1.3.1 簡單C程序舉例 4
1.3.2 C語言程序的結構特點 6
1.3.3 書寫程序時應遵循的規則 7
1.4 Visual C++ 6.0上機簡介 7
1.4.1 Visual C++ 6.0集成開發環境簡介 7
1.4.2 Visual C++ 6.0集成環境上機步驟 9
小結 13
習題 13
第2章 基本數據類型和運算符 15
2.1 基本數據類型 15
2.1.1 常量和變數的概念 16
2.1.2 常量類型 17
2.1.3 變數類型 20
2.2 運算符和表達式 25
2.2.1 算術運算符與算術表達式 27
2.2.2 賦值運算符與賦值表達式 28
2.2.3 增量運算符與增量表達式 32
2.2.4 邏輯運算符與邏輯表達式 33
2.2.5 關係運算符與關係表達式 35
2.2.6 條件運算符與條件表達式 36
2.2.7 逗號運算符與逗號表達式 38
2.2.8 運算符的優先順序與結合性 38
2.3 數據類型的轉換 39
2.3.1 自動轉換 39
2.3.2 賦值轉換 40
2.3.3 強制類型轉換 40
小結 41
習題 41
第3章 順序和選擇結構程序設計 45
3.1 程序設計概述 45
3.1.1 程序設計基本步驟 45
3.1.2 C語言編寫風格 46
3.1.3 語句 46
3.2 scanf()函數和字元輸入/輸出函數調用 47
3.2.1 數據輸入的概念 47
3.2.2 scanf()函數的調用 47
3.2.3 getchar()函數 49
3.2.4 putchar()函數 50
3.3 程序的3種基本結構 51
3.4 if選擇結構語句 52
3.4.1 if語句的3種形式 52
3.4.2 if語句的嵌套 56
3.5 switch選擇結構語句 58
3.6 程序設計舉例 61
小結 65
習題 65
第4章 循環結構程序設計 70
4.1 for循環 70
4.2 while循環 72
4.3 do-while循環 74
4.4 3種循環語句的比較 76
4.5 跳轉語句 76
4.5.1 break語句 76
4.5.2 continue語句 77
4.5.3 goto語句 78
4.6 循環語句的嵌套 79
4.7 程序設計舉例 82
小結 88
習題 89
第5章 數組 92
5.1 一維數組 92
5.1.1 一維數組的定義 92
5.1.2 一維數組元素的引用 93
5.1.3 一維數組元素的初始化 95
5.2 二維數組 96
5.2.1 二維數組的定義 96
5.2.2 二維數組元素的引用 97
5.2.3 二維數組元素的初始化 98
5.3 字元型數組 100
5.3.1 字元數組的定義 101
5.3.2 字元數組的引用 101
5.3.3 字元數組的初始化 102
5.3.4 字元串及其結束標誌 103
5.3.5 字元數組的輸入/輸出 104
5.3.6 常用的字元串處理函數 106
5.4 使用數組的程序設計方法 109
5.4.1 排序 110
5.4.2 查找 112
5.5 程序設計舉例 114
小結 117
習題 118
第6章 函數和模塊設計 122
6.1 結構化程序設計 122
6.1.1 結構化程序設計的基本概念 122
6.1.2 結構化程序設計的基本特徵 123
6.2 函數的定義和調用 124
6.2.1 函數的定義 124
6.2.2 函數的調用 125
6.2.3 函數的返回值 128
6.2.4 函數參數及函數間的數據傳遞 131
6.3 函數的嵌套調用和遞歸調用 136
6.3.1 函數的嵌套調用 136
6.3.2 函數的遞歸調用 139
6.4 作用域和存儲類型 141
6.5 內部函數和外部函數 148
6.5.1 內部函數 148
6.5.2 外部函數 148
6.6 模塊化程序設計 150
6.6.1 模塊化程序設計方法的指導思想 150
6.6.2 模塊分解的原則 150
6.7 程序設計舉例 151
小結 156
習題 156
第7章 指針 159
7.1 指針的概念 159
7.1.1 地址與指針 159
7.1.2 指針變數的定義和引用 160
7.1.3 指針變數的運算 162
7.2 指針變數作為函數參數 164
7.3 指針與一維數組 167
7.3.1 一維數組的指針表示 167
7.3.2 數組作函數參數時的指針表示 169
7.3.3 字元串的指針表示 171
7.4 指針與多維數組 174
7.4.1 多維數組的處理 174
7.4.2 指向多維數組的指針 175
7.5 指針數組和多級指針 177
7.5.1 指針數組的概念 177
7.5.2 指針數組的應用 178
7.5.3 多級指針(指向指針的指針) 181
7.6 指針與函數 182
7.6.1 指向函數的指針 183
7.6.2 函數指針的應用 184
7.6.3 返回指針的函數 187
7.7 命令行參數 190
小結 191
習題 193
第8章 結構體與聯合體 195
8.1 結構體 195
8.1.1 結構體類型的定義 195
8.1.2 結構體類型變數的定義與使用 196
8.1.3 結構體類型變數的賦值與初始化 197
8.1.4 結構體類型數組的定義與引用 198
8.1.5 結構體類型指針的定義和引用 201
8.1.6 結構體類型數據的動態存儲分配 204
8.1.7 鏈表及其基本操作 206
8.2 聯合體 211
8.3 其他自定義數據類型 213
8.3.1 枚舉類型 213
8.3.2 類型定義符typedef 215
小結 217
習題 217
第9章 預處理和輸入/輸出標準函數 219
9.1 預處理命令 219
9.1.1 宏定義 219
9.1.2 文件包含 222
9.1.3 條件編譯 222
9.2 輸入/輸出標準函數 224
9.2.1 格式輸出函數(printf) 225
9.2.2 格式輸入函數(scanf) 227
9.3 自定義頭文件設計的原則 229
小結 232
習題 232
第10章 文件 234
10.1 文件的基本概念 234
10.2 文件的基本操作 235
10.2.1 文件的打開與關閉 235
10.2.2 文件的讀寫 237
10.2.3 文件檢測函數 246
10.3 程序設計舉例 246
小結 249
習題 249
第11章 數據結構和數據抽象 251
11.1 數據抽象 251
11.1.1 數據結構和數據類型 251
11.1.2 抽象數據類型 252
11.2 線性表 252
11.2.1 線性表的定義 252
11.2.2 線性表的基本操作 253
11.2.3 線性表的順序存儲 254
11.2.4 順序表上基本運算的實現 255
11.3 堆棧 256
11.3.1 抽象棧的定義及基本操作 257
11.3.2 抽象棧的定義 257
11.3.3 順序棧的基本運算的實現 257
11.4 隊列 259
11.4.1 隊列的定義 259
11.4.2 隊列的存儲結構及其相關演演算法 259
小結 262
習題 263
附錄1 ASCII代碼對照表 264
附錄2 C庫函數 265
附錄3 Debugger調試器使用簡介 271