本書以C語言的基本語法、語句為基礎,深入淺出地講述了C語言程序設計的基本概念、思想與方法。全書以程序案例為導向,采用結構化方法設計程序,通過程序案例拓寬學生的思維,引導學生自主思考,使學生逐步掌握程序設計的一般規(guī)律和方法。全書理論聯系實際,突出模塊化程序設計方法。
全書內容分為3個部分,共11章。第1部分為第1、2章,為初學者介紹入門知識,主要內容有C語言程序的結構,基本數據類型及取值范圍,基本運算符、表達式及運算的優(yōu)先級。第2部分為第3~5章,介紹程序設計的基本結構,主要內容有程序的簡單算法設計、程序語句的基本控制結構。只要掌握了第1、2部分的內容,學生就可以完成簡單的程序設計。第3部分為第6~11章,介紹模塊化程序設計的概念和實現方法,主要內容有函數、數組、指針、結構體、文件、位運算等,為處理一些復雜數據提供了多種不同的方法和途徑。通過對這?3?個部分內容的學習,學生能夠逐步認識模塊化程序設計的思想,掌握模塊化程序設計的方法。
本書語言簡潔、通俗易懂,程序案例豐富,內容敘述由淺入深,可作為高校程序設計相關課程的教材,也可供相關領域的工程技術人員參考。
1.引導學生從感性認識上升到理性認識
本書的開始部分介紹C語言程序的基本結構和開發(fā)環(huán)境,使學生可以從感性上認識C 語言程序的基本組成,了解C語言從程序編寫到程序調試、運行的基本過程。第3章介紹程序的簡單算法表示方法,為程序設計提供有效的依據。附錄C部分描述數據存儲的預備知識,供有興趣的學生自行閱讀,以加深對計算機數據的了解。
2.案例豐富,層次感強,具有較好的可擴展性
本書共精選了100多個程序,大部分程序都在Visual Studio 2010環(huán)境和Dev C 5.11 環(huán)境下通過驗證(個別不能在Visual Studio 2010環(huán)境和Dev C 5.11環(huán)境下通過的程序有特別說明),并且對程序的結構、函數的設計、變量的設置進行了恰當的注釋和說明。其中大部分程序案例采用計算思維的方法給出了分析,并留有可進一步探討的余地,給學習留下廣闊的空間,可以啟發(fā)學生思考,從中發(fā)現問題,尋找解決問題的方法,從而不斷激發(fā)學生的學習興趣,激發(fā)其想象力和創(chuàng)新思維。
3.問題分析引導,程序流程圖規(guī)范
本書通過對問題的分析引導,找出解決問題的關鍵,并給出規(guī)范的流程圖,強化解決問題的科學過程和手段,培養(yǎng)學生嚴謹的思考問題和解決問題的能力。
李麗娟,博士,湖南大學教授,曾任湖南大學計算機與通信學院應用系主任,主要從事計算機應用、軟件工程、模式識別、信息安全等方面的研究;主講C語言程序設計、計算機模式識別、數字圖像處理等課程;主編近10本教材,其中4本獲評十一五國家級規(guī)劃教材。
【章名目錄】
第 1章 引言
第 2章 基本的程序語句
第3章 程序的簡單算法設計
第4章 分支結構
第5章 循環(huán)結構
第6章 函數與宏定義
第7章 數組
第8章 指針
第9章 構造數據類型
第 10章 文件操作
第 11章 位運算
附錄A C語言的關鍵字 300
附錄B ASCII字符表 301
附錄C 預備知識 304
【詳細目錄】
第 1章 引言
1.1 C語言的發(fā)展過程 1
1.2 C語言的特點 1
1.3 簡單的C語言程序 3
1.4 C語言程序的結構 5
1.5 C語言程序的執(zhí)行 6
1.5.1 源程序翻譯 6
1.5.2 鏈接目標程序 7
1.5.3 集成開發(fā)工具 8
1.6 本章小結 9
習題
第 2章 基本的程序語句
2.1 基本數據類型及取值范圍 11
2.2 標識符、變量和常量 14
2.2.1 標識符 14
2.2.2 變量和常量 14
2.3 基本運算符、表達式及運算的優(yōu)先級 21
2.3.1 算術運算符及算術表達式 21
2.3.2 關系運算符及關系表達式 26
2.3.3 邏輯運算符及邏輯表達式 26
2.3.4 位運算符及表達式 28
2.3.5 條件運算符 28
2.3.6 逗號表達式 29
2.3.7 數據類型的轉換 30
2.3.8 復雜表達式的計算順序 31
2.3.9 C語言的基本語句結構 32
2.4 標準輸入 / 輸出函數 33
2.4.1 格式化輸出函數 34
2.4.2 格式化輸入函數 38
2.4.3 字符輸出函數 42
2.4.4 字符輸入函數 43
2.5 程序范例 44
2.6 本章小結 46
習題
第3章 程序的簡單算法設計
3.1 結構化程序的算法設計 53
3.2 結構化算法的性質及結構 54
3.2.1 結構化算法的性質 54
3.2.2 結構化算法的結構 54
3.3 結構化算法的描述方法 55
3.3.1 自然語言 55
3.3.2 流程圖 56
3.3.3 偽代碼 60
3.4 算法設計范例 63
3.5 本章小結 65
習題
第4章 分支結構
4.1 if結構 67
4.1.1 if語句 67
4.1.2 if...else語句 69
4.1.3 if語句的嵌套 71
4.2 switch結構 74
4.2.1 switch語句 75
4.2.2 break語句在switch語句中的作用 76
4.3 程序范例 78
4.4 本章小結 85
習題
第5章 循環(huán)結構
5.1 for語句 92
5.2 while語句 98
5.3 do...while語句 102
5.4 用于循環(huán)中的break語句和continue語句 104
5.5 循環(huán)結構的嵌套 108
5.6 goto語句 109
5.7 程序范例 111
5.8 本章小結 115
習題 115
第6章 函數與宏定義
6.1 函數的概念 123
6.1.1 函數的定義 123
6.1.2 函數的聲明和調用 124
6.1.3 函數的傳值方式 125
6.2 變量的作用域和存儲類型 128
6.3 內部函數與外部函數 130
6.4 遞歸函數的設計和調用 132
6.5 預處理 135
6.5.1 宏定義 136
6.5.2 文件包含 138
6.5.3 條件編譯及其他 139
6.6 程序范例 141
6.7 本章小結 148
習題
第7章 數組
7.1 一維數組的定義和初始化 154
7.1.1 一維數組的定義 154
7.1.2 一維數組的初始化 156
7.2 一維數組的使用 157
7.3 多維數組 161
7.3.1 二維數組的概念 161
7.3.2 二維數組的定義 161
7.3.3 多維數組的定義 162
7.3.4 二維數組及多維數組的初始化 163
7.4 字符數組 166
7.4.1 字符數組的初始化 167
7.4.2 字符串的輸入 167
7.4.3 字符串的輸出 168
7.4.4 二維字符數組 169
7.5 數組作為函數的參數 173
7.5.1 數組元素作為函數的參數 173
7.5.2 數組名作為函數的參數 174
7.6 程序范例 178
7.7 本章小結 184
習題
第8章 指針
8.1 指針的概念 191
8.1.1 指針變量的定義 192
8.1.2 指針變量的使用 192
8.1.3 指針變量與簡單變量的關系 193
8.2 指針的運算 194
8.2.1 指針的算術運算 194
8.2.2 指針的關系運算 196
8.3 指針與數組的關系 196
8.3.1 指向一維數組的指針 197
8.3.2 指向多維數組的指針 199
8.3.3 字符指針 204
8.3.4 指針數組 205
8.4 指針作為函數的參數 207
8.5 函數的返回值為指針 209
*8.6 指向函數的指針 211
*8.7 main函數的參數 212
*8.8 指向指針的指針 214
8.9 程序范例 217
8.10 本章小結 223
習題
第9章 構造數據類型
9.1 結構體數據類型 229
9.1.1 結構體的定義 229
9.1.2 結構型變量的定義 230
9.1.3 結構型變量的初始化 231
9.1.4 結構型變量成員的引用 232
9.1.5 結構型變量成員的輸入/輸出 234
9.2 結構型數組 235
9.2.1 結構型數組的定義 235
9.2.2 結構型數組成員的初始化和引用 235
9.3 結構型變量與函數 236
9.3.1 函數的形參與實參為結構體 236
9.3.2 函數的返回值類型為結構體 237
9.4 共用型數據 238
9.5 枚舉型數據 241
9.6 鏈表 242
9.6.1 動態(tài)分配內存 243
9.6.2 單鏈表的建立 244
9.6.3 從單鏈表中刪除結點 248
9.6.4 向鏈表中插入結點 251
9.7 程序范例 253
9.8 本章小結 259
習題
第 10章 文件操作
10.1 文件的概念 265
10.2 文件的操作 265
10.2.1 文件的打開與關閉 265
10.2.2 文件操作的錯誤檢測 268
10.2.3 文件的順序讀/寫 268
10.2.4 文件的隨機讀/寫 273
10.3 程序范例 277
10.4 本章小結 279
習題 279
第 11章 位運算
11.1 按位取反運算 283
11.2 按位左移運算 284
11.3 按位右移運算 286
11.4 按位與運算 288
11.5 按位或運算 290
11.6 按位異或運算 292
11.7 復合位運算賦值運算符 294
11.8 程序范例 294
11.9 本章小結 297
習題
附錄A C語言的關鍵字 300
附錄B ASCII字符表 301
附錄C 預備知識 304