本書是為將C語言作為入門語言的程序設計課程編寫的以培養學生程序設計基本能力為目標的教材,在內容組織上以C語言為程序設計基礎,但不限于語言本身,注重程序設計思想的訓練及思路拓展;在例題與習題的選擇上同實際問題相結合,突出專業特色,精選了豐富的財經、管理等專業例題與習題,這些例題與習題給學生提供了實踐的基礎,通過這些題目引導學生拓展思路,提高學生解決專業問題的能力。
全書共分9章,主要內容包括C語言的基本概念、輸入和輸出、3種基本結構程序設計、函數、數組、指針、結構體和共用體、文件等內容。另外,每章配有大量的例題與習題,便于讀者鞏固所學知識,掌握程序設計的基本方法與編程技巧。為了配合本書的學習,作者還編寫了與本書配套的輔助教材《C語言程序設計實驗與習題解答》,以供讀者參考。
本書體系合理,條理清晰,邏輯性強,循序漸進,概念敘述準確、嚴謹,語言簡練,文字流暢,通俗易懂,注重培養讀者分析問題和程序設計的能力,注重培養良好的程序設計風格和習慣。
本書可以作為高等院校計算機程序設計教學用書,還可以供廣大C語言程序設計初學者自學參考。
1. 以“如何用程序解決問題”為指導,突出程序設計思路的講解。
非計算機專業學生學習C語言的目的是掌握同計算機交流的方式。C語言作為入門語言不僅簡潔,而且高效。本教材以C語言為媒介,通過例題分析,著重講解計算機解決問題同人解決問題方式上區別,讓學生理解計算機解決問題的基本原理和步驟,提高學生程序設計能力。
2. 豐富的財經、管理專業例題,提高學生解決專業問題的能力。
理解語言元素的語法和作用固然是學習C語言過程中的一個重要部分,但語言如何工作及應用也同等重要。本書不僅采用了代碼片段,還在每個章節中使用一些實際應用示例展示語言特性如何應用于特定的問題。這些示例提供了實踐的基礎。通過例題引導學生拓展思路,提高解決專業問題水平。
第1章C語言概述1
1.1程序設計語言1
1.2C語言的發展歷史3
1.3使用C語言進行程序開發3
1.3.1簡單的C語言程序4
1.3.2程序的編輯、編譯、連接與運行4
1.3.3使用VC++ 6.0軟件實現程序的編輯、編譯、連接與運行6
1.4C語言程序的組成與執行11
1.5C語言的特點13
1.6C程序的編程風格14
1.7綜合應用例題15
習題116
第2章數據類型、常量與變量18
2.1數據類型18
2.2標識符19
2.3常量20
2.3.1整型常量20
2.3.2實型常量20
2.3.3字符型常量20
2.3.4字符串常量21
2.3.5常量的使用與符號常量22
2.4變量22
2.4.1變量定義23
2.4.2整型變量23
2.4.3實型變量24
2.4.4字符型變量25
2.4.5變量的初始化與賦值26
2.5綜合應用例題26
習題229目錄C語言程序設計第3章數據的運算與輸入輸出32
3.1運算符和表達式概述32
3.2算術運算符和算術表達式32
3.2.1算術運算符33
3.2.2算術表達式35
3.3賦值運算符和賦值表達式35
3.3.1賦值運算符35
3.3.2賦值表達式36
3.3.3復合的賦值運算符37
3.4關系運算符和關系表達式37
3.4.1關系運算符37
3.4.2關系表達式38
3.5邏輯運算符和邏輯表達式38
3.5.1邏輯運算符38
3.5.2邏輯表達式39
3.6條件運算符和條件表達式41
3.7逗號運算符和逗號表達式42
3.8位運算符和位運算表達式43
3.8.1按位取反運算符(~)43
3.8.2按位“與”、按位“或”、按位“異或”運算43
3.8.3移位運算45
3.8.4位運算符的優先級及結合方向46
3.9數據類型的轉換46
3.9.1自動轉換規則46
3.9.2強制轉換47
3.10數據的輸入輸出48
3.10.1字符數據的輸入輸出48
3.10.2格式輸出函數printf50
3.10.3格式輸入函數scanf53
3.11綜合應用例題55
習題357
第4章C語言的三種基本結構程序設計61
4.1C語句61
4.2順序結構程序設計62
4.3選擇結構程序設計63
4.3.1if語句63
4.3.2switch語句69
4.4循環結構程序設計71
4.4.1while循環語句71
4.4.2do…while循環語句73
4.4.3for循環語句74
4.4.4循環語句的比較75
4.4.5循環的嵌套76
4.4.6循環控制語句break和continue76
4.5綜合應用例題80
習題485
第5章函數91
5.1概述91
5.1.1模塊與函數91
5.1.2函數的基本概念92
5.1.3函數定義的一般形式94
5.2函數的調用96
5.2.1函數調用的一般形式96
5.2.2函數調用的方式96
5.2.3函數的參數97
5.2.4函數的返回值98
5.2.5對被調函數的聲明99
5.3函數的嵌套和遞歸101
5.3.1嵌套調用101
5.3.2函數的遞歸104
5.4變量的存儲屬性106
5.4.1變量的作用域106
5.4.2變量的生存期109
5.4.3變量的存儲類型109
5.4.4存儲類型小結115
5.5編譯預處理116
5.5.1宏定義116
5.5.2“文件包含”處理121
5.6綜合應用例題123
習題5125
第6章數組130
6.1一維數組130
6.1.1一維數組的定義130
6.1.2一維數組元素的存儲形式131
6.1.3一維數組元素的引用131
6.1.4一維數組的初始化132
6.1.5一維數組應用舉例133
6.2二維數組136
6.2.1二維數組的定義136
6.2.2二維數組的存儲形式137
6.2.3二維數組元素的引用137
6.2.4二維數組的初始化138
6.3字符數組和字符串140
6.3.1字符數組的定義140
6.3.2字符串和字符串的存儲方法141
6.3.3字符數組的初始化142
6.3.4字符數組的引用143
6.3.5字符串的輸入輸出144
6.3.6字符串處理函數145
6.4函數與數組148
6.4.1數組元素作函數實參148
6.4.2一維數組名作函數參數149
6.4.3多維數組名作函數參數151
6.5綜合應用例題153
習題6159
第7章指針164
7.1指針的基本概念164
7.1.1地址與指針164
7.1.2指針變量的定義165
7.1.3指針變量的引用166
7.1.4指針變量作函數參數168
7.2指針的運算171
7.2.1指針的賦值運算172
7.2.2指針的算術運算173
7.2.3指針的關系運算173
7.3指針與數組174
7.3.1指針和一維數組174
7.3.2指針與字符串180
7.3.3指針和二維數組186
7.4函數的指針和指向函數的指針變量191
7.4.1函數指針變量的定義與使用191
7.4.2用函數指針變量作函數參數192
7.5指針型函數194
7.6指針數組和指向指針的指針195
7.6.1指針數組的概念195
7.6.2用指針數組處理多個字符串196
7.6.3命令行參數199
7.6.4指向指針的指針201
7.7綜合應用例題202
習題7205
第8章結構體211
8.1結構體類型211
8.1.1結構體類型的定義211
8.1.2結構體變量的定義212
8.1.3結構體變量的初始化214
8.1.4結構體類型變量的引用215
8.1.5結構數組217
8.2指向結構體類型的指針222
8.2.1指向結構體變量的指針222
8.2.2指向結構體數組的指針223
8.3結構體變量作函數的參數225
8.3.1用結構體變量的成員作為參數225
8.3.2用結構體變量作為函數參數226
8.3.3用指向結構體變量的指針作為函數參數227
8.4共用體229
8.4.1共用體的概念229
8.4.2共用體變量的引用231
8.5用typedef定義數據類型232
8.6動態數據結構的創建233
8.7鏈表234
8.7.1鏈表概述234
8.7.2動態鏈表的建立236
8.7.3鏈表的遍歷238
8.7.4鏈表的插入和刪除239
8.8枚舉類型242
8.9綜合應用例題244
習題8252
第9章文件系統256
9.1文件概述256
9.1.1什么是文件256
9.1.2C文件分類256
9.2文件指針258
9.3文件的打開與關閉259
9.3.1文件的打開函數fopen()260
9.3.2文件的關閉函數fclose()261
9.4文件的讀寫262
9.4.1字符文件的讀寫262
9.4.2字符串讀寫函數266
9.4.3數據塊讀寫函數fread()和fwrite()267
9.4.4格式化讀寫函數fscanf()和fprintf()267
9.5文件的定位268
9.5.1重新返回函數rewind()269
9.5.2文件定位函數fseek()270
9.6檢測文件狀態函數271
9.7綜合應用例題271
習題9276
附錄A常用ASCII碼對照表280
附錄BC語言中的關鍵字281
附錄CC語言運算符的優先級與結合性282
附錄D常用庫函數284
參考文獻291