本書強調實用性,注重教材的理論與實踐相結合,以培養學生程序設計的基本方法和基本技能為目標。全書分為11章,主要內容包括C語言與程序設計、基本類型數據及其運算、選擇結構程序設計、循環結構程序設計、數組、函數、指針、結構體與共用體、文件、位運算和C語言應用。本書以程序設計為中心,語法介紹精練,內容敘述深入淺出、循序漸進,程序案例生動易懂,具有很好的啟發性,每章均配有教學課件和精心設計的習題。本書既可以作為高等學校本科及專科學生C語言程序設計的教材,又可以作為自學者的參考用書,同時可供各類考試人員復習參考。
本書以程序設計為主線,以培養初學者的編程思維、分析和解決問題的能力、程序設計基本能力為目標。強調實用性,注重理論與實際相結合,注重介紹程序設計的基本方法和基本技能。通過大量的例題,講解C語言的語法規則和應用,深入淺出,循序漸進,注重培養讀者的程序設計能力及良好的程序設計風格和習慣。
主要內容包括C語言與程序設計、基本類型數據及其運算、選擇結構程序設計、循環結構程序設計、數組、函數、指針、結構體與共用體、文件、位運算、C語言應用。以程序設計為中心,語法介紹精練,內容敘述深入淺出、循序漸進,程序案例生動易懂,具有很好的啟發性。每章均配備精心設計的習題。
配套資源豐富。本書配有作者編寫的《C語言程序設計實驗指導與習題解析(第2版)》及電子教案和相關教學資源。電子教案及相關教學資源可以從清華大學出版社網站下載。使用本書的學校也可以與作者聯系,索取更多相關教學資源。
C語言是一種結構化程序設計語言,兼有高級語言和低級語言的功能,不僅可用于編寫系統軟件,也可用于編寫各類應用程序以及工業控制程序。目前流行的面向對象程序設計語言,如C++、Java、C#等都是在C語言的基礎上發展派生而來的。通過學習C語言,學生不僅能夠掌握程序設計的基本思想,也可為今后學習Java、C++、VB等語言打下良好的基礎。
本書共分11章,其中包括C語言與程序設計、基本類型數據及其運算、選擇結構程序設計、循環結構程序設計、數組、函數、指針、結構體與共用體、文件、位運算和C語言應用。
本書整體結構編排合理,大部分教學內容采用例題的形式進行組織,并對例題進行分析,有助于學生對知識的理解與掌握。通過本書的學習,學生能夠掌握程序設計的基本思想和常見簡單問題的算法,并可以編寫程序加以實現。本書還介紹了C語言在硬件方面和軟件方面的應用,使學生能夠了解C語言的用途,增加學習C語言的興趣。
參加編寫的教師及編寫內容如下:編寫內容作者姓名編寫內容作者姓名第1章C語言與程序設計孫元第8章結構體與共用體劉通第2章基本類型數據及其運算趙永華第9章文件張玉春第3章選擇結構程序設計李曉峰第10章位運算王洋第4章循環結構程序設計李曉峰第11章中11.1、11.2劉通第5章數組黃玥第11章中的11.3節黃玥第6章函數孫元附錄A、附錄B、附錄C趙永華第7章指針張玉春附錄D孫元本書在編寫過程中得到吉林大學公共計算機教學與研究中心領導的大力支持,在此表示感謝。本書在出版過程中得到清華大學出版社袁勤勇編輯的大力支持,在此表示感謝。本書也是所有參編教師辛勤努力的結果,在此向他們表示感謝。
由于編者水平有限,書中難免存在疏漏與不足之處,敬請讀者指正。為方便教師的教學工作和讀者的學習,本書有配套的源程序代碼、習題答案和電子教案,需要者可通過出版社與編者聯系獲取。
第1章C語言與程序設計1
1.1程序設計語言及其發展1
1.1.1程序設計語言的發展歷程1
1.1.2程序處理方式2
1.2程序的基本結構及其表示3
1.3C語言概述4
1.3.1C語言發展簡史4
1.3.2C語言的特點5
1.3.3簡單的C程序介紹6
1.3.4C程序的上機步驟8
習題112
第2章基本類型數據及其運算13
2.1C語言的數據類型13
2.2常量與變量14
2.2.1標識符14
2.2.2常量15
2.2.3變量16
2.3整型數據17
2.3.1整型常量17
2.3.2整型變量18
2.4實型數據20
2.4.1實型常量20
2.4.2實型變量20
2.5字符型數據21
2.5.1字符常量22
2.5.2字符變量22
2.5.3字符串常量242.6運算符與表達式24
2.6.1運算符概述25
2.6.2表達式概述25
[1]〖3〗C語言程序設計教程(第2版)目錄〖3〗[3]2.6.3算術運算符與算術表達式26
2.6.4賦值運算符與賦值表達式27
2.6.5自增、自減運算符30
2.6.6逗號運算符與逗號表達式31
2.7數據的類型轉換32
2.8數據的輸入與輸出32
2.8.1格式化輸出函數printf33
2.8.2格式化輸入函數scanf37
2.8.3字符輸出函數putchar41
2.8.4字符輸入函數getchar41
2.9簡單程序設計——順序結構程序設計41
2.9.1C語句42
2.9.2順序結構程序舉例42
習題243
第3章選擇結構程序設計45
3.1關系運算符與關系表達式45
3.1.1關系運算符45
3.1.2關系表達式46
3.2邏輯運算符與邏輯表達式46
3.2.1邏輯運算符46
3.2.2邏輯表達式47
3.3if語句48
3.3.1if語句的形式48
3.3.2if語句的嵌套53
3.4switch語句54
3.5條件運算符與條件表達式57
3.6程序舉例58
習題359
第4章循環結構程序設計60
4.1while語句60
4.2dowhile語句62
4.3for語句63
4.4循環嵌套65
4.5break語句和continue語句67
4.5.1break語句67
4.5.2continue語句67
4.6程序舉例68
習題470
第5章數組72
5.1一維數組72
5.1.1一維數組的定義72
5.1.2一維數組元素的引用73
5.1.3一維數組的初始化75
5.1.4一維數組程序舉例75
5.2二維數組80
5.2.1二維數組的定義80
5.2.2二維數組元素的引用81
5.2.3二維數組的初始化84
5.2.4二維數組程序舉例85
5.3字符數組88
5.3.1字符數組的定義88
5.3.2字符數組的初始化89
5.3.3字符數組的輸入與輸出90
5.3.4字符串處理函數94
5.3.5字符數組應用舉例97
習題5102
第6章函數104
6.1C語言函數概述104
6.2函數的定義105
6.2.1函數定義的一般形式105
6.2.2函數參數與函數返回值106
6.3函數的調用110
6.3.1函數調用的一般形式110
6.3.2被調用函數的聲明111
6.4函數的嵌套調用與遞歸調用113
6.4.1函數的嵌套調用113
6.4.2函數的遞歸調用115
6.5用數組做函數參數117
6.5.1用數組元素做函數參數117
6.5.2用一維數組名做函數參數118
6.5.3用二維數組名做函數參數123
6.6局部變量和全局變量124
6.6.1局部變量124
6.6.2全局變量125
6.7變量的存儲類別127
6.7.1動態存儲方式與靜態存儲方式127
6.7.2局部變量的存儲類別128
6.7.3全局變量的存儲類別131
6.8C語言預處理133
6.8.1宏定義133
6.8.2文件包含136
習題6137
第7章指針138
7.1地址和指針138
7.1.1變量的地址和變量的值138
7.1.2變量的訪問方式139
7.2指針變量的定義與引用140
7.2.1指針變量的類型140
7.2.2指向變量的指針變量的定義140
7.2.3指針變量的引用141
7.2.4指針運算符141
7.2.5指針運算144
7.2.6用指針變量做函數參數145
7.3指針與數組147
7.3.1指針與一維數組147
7.3.2指針與二維數組150
7.3.3用指向數組的指針變量做函數參數156
7.4指針與字符串163
7.4.1字符指針與字符數組163
7.4.2用指向字符的指針做函數參數166
7.5指針與函數169
7.5.1指向函數的指針169
7.5.2返回指針的函數173
7.6指向指針的指針174
7.6.1間接訪問174
7.6.2指針數組175
7.7main函數的參數177
習題7178
第8章結構體與共用體180
8.1結構體180
8.1.1結構體類型的定義180
8.1.2結構體變量的定義181
8.1.3結構體變量的引用183
8.1.4結構體變量的賦值184
8.1.5結構體數組185
8.1.6結構體指針變量188
8.1.7用結構體數據做函數參數192
8.2共用體193
8.2.1共用體類型的定義193
8.2.2共用體變量的定義194
8.2.3共用體變量的引用和賦值195
8.3用typedef定義類型197
8.4動態鏈表198
8.4.1動態鏈表概述199
8.4.2動態存儲分配199
8.4.3單鏈表的基本操作200
習題8211
第9章文件213
9.1文件概述213
9.1.1文件的分類213
9.1.2緩沖區214
9.1.3文件指針215
9.2文件的打開與關閉216
9.2.1文件的打開216
9.2.2文件的關閉218
9.3文件的順序讀/寫218
9.3.1字符讀/寫函數218
9.3.2字符串讀/寫函數222
9.3.3數據塊讀/寫函數224
9.3.4格式化讀/寫函數226
9.4文件的隨機讀/寫228
9.4.1文件的定位操作228
9.4.2文件的隨機讀/寫操作229
9.5文件檢測函數230
習題9 232
第10章位運算233
10.1位運算符及其運算233
10.1.1位運算符233
10.1.2位運算應用舉例236
10.2位段及其應用239
10.2.1位段239
10.2.2位段應用舉例241
習題10242
第11章C語言應用243
11.1C語言開發環境概述243
11.2C語言在硬件方面的應用244
11.2.1C語言直接訪問硬件244
11.2.2C語言利用中斷訪問計算機系統245
11.2.3C語言通過操作系統訪問計算機系統247
11.3C語言在軟件方面的應用248
附錄A常用字符與ASCII碼值對照表256
附錄BC語言關鍵字261
附錄C運算符和結合性262
附錄DC庫函數264
參考文獻270