本書作為高級程序設計語言的入門與應用教程,講授C語言程序設計的基本思想、方法和解決問題的技巧。在內容安排和章節組織上,盡可能將概念、知識點和例程結合。本書注重基礎,突出應用,更好地滿足了高等學校應用型人才培養的需求。全書共分10章,內容包括:C/C++語言的發展過程及特點,程序設計基礎知識,程序設計基本結構,函數,編譯預處理命令,數組,指針,結構體、共用體和枚舉型,文件,面向對象技術與C++語言概述。 本書易教易學、學以致用、注重能力,對初學者容易混淆的內容進行了重點提示和講解。本書可作為高等學校各專業“C語言與程序設計”課程的教材,以及計算機愛好者自學用書和各類工程技術人員的參考書。
南京郵電大學通達學院教師,畢業于江蘇科技大學計算機應用技術專業,碩士研究生,曾出版《C語言程序設計》。
目 錄
第1章 概述 1
1.1 語言的發展及特點 1
1.1.1 語言的發展 1
1.1.2 語言的特點 2
1.2 簡單的語言程序介紹 3
1.2.1 簡單的C程序分析 3
1.2.2 簡單的C++程序分析 4
1.3 程序上機環境、步驟方法簡介 5
習題 12
第2章 程序設計基礎知識 13
2.1 基本字符、基本詞匯 13
2.1.1 基本字符 13
2.1.2 基本詞匯 13
2.1.3 常量和變量 14
2.2 數據類型 15
2.2.1 整型 16
2.2.2 字符型 18
2.2.3 實型 20
2.2.4 數據類型轉換 21
2.3 運算符與表達式 22
2.3.1 算術運算符與算術表達式 22
2.3.2 賦值運算符與賦值表達式 24
2.3.3 逗號運算符與逗號表達式 25
2.3.4 關系運算符與關系表達式 26
2.3.5 邏輯運算符與邏輯表達式 26
2.3.6 條件運算符與條件表達式 27
2.4 數據的輸入和輸出 28
2.4.1 字符輸入函數 28
2.4.2 字符輸出函數 28
2.4.3 格式輸入函數 29
2.4.4 格式輸出函數 31
習題 33
第3章 程序設計基本結構 36
3.1 算法及算法描述方法 36
3.1.1 算法 36
3.1.2 算法描述方法 36
3.2 順序結構 38
3.3 選擇結構 39
3.3.1 if語句 39
3.3.2 switch語句 43
3.3.3 break語句 45
3.4 循環結構 45
3.4.1 while語句 46
3.4.2 do-while語句 47
3.4.3 for語句 48
3.4.4 goto語句 50
3.4.5 break語句和continue語句在循環體中的應用 50
3.4.6 循環的嵌套 51
3.5 應用舉例 52
習題 55
第4章 函數 57
4.1 函數的概念 57
4.2 函數的定義 57
4.3 函數調用 58
4.3.1 普通調用 58
4.3.2 嵌套調用 62
4.3.3 遞歸調用 63
4.4 函數聲明 64
4.5 變量的作用域 66
4.5.1 局部變量 66
4.5.2 全局變量 68
4.6 變量的存儲類型 70
習題 73
第5章 編譯預處理 76
5.1 文件包含 76
5.2 宏定義 77
5.2.1 無參宏 77
5.2.2 帶參宏 79
5.3 條件編譯 81
習題 82
第6章 數組 85
6.1 一維數組 85
6.1.1 一維數組的定義 85
6.1.2 一維數組的引用 85
6.1.3 一維數組的初始化 87
6.2 二維數組 87
6.2.1 二維數組的定義 87
6.2.2 二維數組的引用 87
6.2.3 二維數組的初始化 88
6.3 字符串及其操作 89
6.3.1 字符串與字符數組 89
6.3.2 字符串的輸入與輸出 90
6.3.3 字符串處理函數 94
6.4 應用舉例 97
習題 101
第7章 指針 103
7.1 指針的概念 103
7.1.1 指針變量的定義 103
7.1.2 指針變量的引用 104
7.1.3 指針變量的初始化 104
7.1.4 指針變量的運算 104
7.2 指針與數組 106
7.2.1 指針與一維數組 106
7.2.2 指針與二維數組 108
7.3 指針與字符串 111
7.4 指針與函數 113
7.4.1 指針變量作為函數的參數 113
7.4.2 指針變量作為函數的返回值 114
7.4.3 指向函數的指針與指向指針的指針 115
習題 116
第8章 結構體、共用體和枚舉型 118
8.1 結構體的定義與應用 118
8.1.1 結構體類型的定義 118
8.1.2 結構體變量的定義 119
8.1.3 結構體變量的引用與初始化 120
8.1.4 結構體數組 123
8.1.5 結構體指針 125
8.1.6 結構體與函數 127
8.2 鏈表 130
8.2.1 動態內存管理 130
8.2.2 鏈表概述 131
8.2.3 鏈表的基本操作 132
8.3 共用體 137
8.3.1 共用體類型與共用體變量的定義 137
8.3.2 共用體變量的引用和初始化 138
8.4 枚舉類型 139
8.5 typedef類型聲明 141
習題 142
第9章 文件 145
9.1 文件概述 145
9.2 文件的基本操作 145
9.2.1 文件的打開 146
9.2.2 文件的關閉 147
9.2.3 文件的讀寫操作 147
9.3 文件的定位 151
習題 152
第10章 面向對象技術與C++語言概述 155
10.1 面向對象技術 155
10.1.1 為什么要面向對象 155
10.1.2 面向對象程序設計的基本內容 156
10.2 C++語言對C語言的擴充 157
10.2.1 C++的輸入/輸出流 157
10.2.2 變量的定義 158
10.2.3 動態內存分配和釋放運算符new和delete 158
10.2.4 作用域運算符:: 159
10.2.5 C++中函數新特性之一:函數重載 159
10.2.6 C++中函數新特性之二:內聯函數 162
10.2.7 C++中函數新特性之三:函數原型 163
10.2.8 C++中函數新特性之四:帶缺省參數的函數 163
10.2.9 引用 165
10.2.10 名字空間 168
10.2.11 const修飾符 169
10.3 類和對象的定義 170
10.3.1 類的定義 170
10.3.2 對象的定義 172
10.3.3 成員函數 173
10.3.4 對象成員的訪問 175
10.3.5 this指針 176
10.4 構造函數和析構函數 177
10.4.1 構造函數 177
10.4.2 析構函數 183
10.5 對象數組和數組指針 184
10.5.1 對象數組 184
10.5.1 對象指針 185
10.6 靜態成員 186
10.6.1 靜態數據成員 186
10.6.2 靜態成員函數 187
10.7 友元 187
10.7.1 友元函數 187
10.7.2 友元類 189
習題 190
附錄I 常用字符與ASCII碼對照表 194
附錄II 運算符的優先級及其結合性 195
附錄III 常用庫函數 196
附錄IV 習題參考答案 200
附錄V 全國計算機等級考試二級C語言程序設計考試大綱 219
全國計算機等級考試二級公共基礎知識考試大綱(2013年版) 219
全國計算機等級考試二級C語言程序設計考試大綱(2013年版) 220
參考文獻 223