C語言程序設計教程

郝瑩、劉亞姝編著書籍

《C語言程序設計教程》,是清華大學出版社於2009年10月1日出版的計算機編程類圖書,作者是郝瑩、劉亞姝。

書籍信息


定價:29.50元
ISBN:9787302206378

內容簡介


本書是從結構化程序設計的角度來編寫的,各章節結構緊湊,前後銜接緊密。在內容上,改變傳統C程序設計圖書中各控制流程佔據過多篇幅而不能突出結構化、模塊化程序設計的安排,將“控制流程”的語法內容集中在一個章節中,而將各種“控制流程”的應用在隨後章節中體現。為了能夠強化結構化程序設計方法,本書以較大篇幅介紹“函數”,並在每個實例中分析其功能模塊的結構設計。“指針”是C語言功能強大的體現,也是教學中的難點,為了使讀者更好地理解“指針”的概念,書中著重分析了指針與“數組”、函數以及字元串的關係。此外,為了設計優良的程序,也將數據結構的概念在“結構體”這一章中體現,並介紹簡單數據結構及應用,為不同專業的學生後續學習打下良好的基礎。書中各章還附有習題。
本書主要針對高等院校建築類專業的學生編寫,在實例中體現了其專業的應用領域特色

圖書目錄


第1章 C語言概述1
1.1 C語言的發展過程1
1.1.1 C語言的地位2
1.1.2 C語言的特點3
1.2 編寫一個簡單C語言程序4
1.2.1 C語言程序運行步驟5
1.2.2 C語言程序編譯環境6
習題14
第2章 數據類型及基本輸入輸出15
2.1 基本數據類型15
2.2 標識符15
2.3 常量16
2.3.1 數值常量16
2.3.2 標識符常量18
2.4 變數19
2.4.1 變數的定義19
2.4.2 變數類型及存儲單元20
2.4.3 變數的初始化23
2.5 數據類型的混合運算24
2.5.1 自動類型轉換規則24
2.5.2 強制類型轉換25
2.6算術運算符與算術表達式26
2.6.1C語言的運算符26
2.6.2基本的算術運算符27
2.6.3算術表達式27
2.6.4算術運算符的優先順序、結合性27
2.6.5自增、自減運算符28
2.7.1基本賦值運算符29
2.7.2複合賦值運算符29
2.7.3類型轉換30
2.8逗號運算符與逗號表達式31
2.8.1逗號運算符31
2.8.2逗號表達式31
2.9基本輸入輸出函數32
2.9.1數據輸入輸出的概念及在C語言中的實現32
2.9.2字元數據的輸入輸出33
2.9.3格式輸入輸出35
習題44
第3章控制流程47
3.1演演算法47
3.1.1演演算法概述47
3.1.2演演算法的特性49
3.1.3演演算法的表示方法49
3.1.4流程圖49
3.1.5三種基本結構和改進的流程圖50
3.1.6N-S流程圖53
3.2順序結構程序設計54
3.2.1表達式語句54
3.2.2函數調用語句55
3.2.3控制語句55
3.2.4複合語句56
3.2.5空語句57
3.3選擇結構程序設計57
3.3.1關係運算符及關係表達式57
3.3.2邏輯運算符及邏輯表達式58
3.3.3if語句61
3.3.4switch語句69
3.4循環結構71
3.4.1goto語句72
3.4.2while語句72
3.4.3do…while語句74
3.4.4for語句76
3.4.5循環語句的嵌套78
3.5break與continue語句79
3.5.1break語句79
3.5.2continue語句80
3.6應用實例81
習題85
第4章數組89
4.1一維數組89
4.1.1一維數組的定義89
4.1.2一維數組的初始化90
4.1.3一維數組的引用91
4.2二維數組92
4.2.1二維數組的定義92
4.2.2二維數組的初始化93
4.2.3二維數組的引用95
4.3字元數組96
4.3.1字元數組的定義96
4.3.2字元數組的初始化97
4.3.3字元數組的引用97
4.4數組與存儲單元97
4.4.1一維數組元素的存儲98
4.4.2二維數組元素的存儲98
4.4.3字元串的存儲99
4.5應用實例99
習題103
第5章函數105
5.1結構化程序設計方法105
5.1.1自頂向下、逐步細化的方法106
5.1.2系統的模塊設計106
5.1.3結構化編碼107
5.2函數的定義108
5.2.1無參函數的定義形式108
5.2.2有參函數的定義形式109
5.3函數的調用110
5.3.1實參與形參110
5.3.2函數的返回值112
5.4函數的嵌套調用和遞歸調用112
5.4.1函數的嵌套調用113
5.4.2函數的遞歸調用114
5.5數組作為函數的參數傳遞117
5.5.1數組元素作函數實參117
5.5.2數組名作函數參數118
5.6存儲類別和變數的作用域123
5.6.1動態存儲方式與靜態存儲方式123
5.6.2auto變數123
5.6.3用static聲明局部變數124
5.6.4register變數125
5.6.5用extern聲明外部變數126
5.6.6變數的作用域126
5.7應用實例130
習題139
第6章指針140
6.1指針的概念140
6.2指針與指針的運算141
6.2.1指針定義與初始化141
6.2.2指針的運算142
6.2.3直接引用與間接引用144
6.2.4多級間址147
6.3指針與數組148
6.3.1指針與一維數組的關係148
6.3.2指針與二維數組的關係150
6.3.3指向一個由n個元素組成的數組指針152
6.3.4指針數組154
6.3.5動態數組156
6.4指針與函數159
6.4.1指針作函數的形參161
6.4.2數組與指針作函數的形參的比較162
6.4.3返回指針值的函數167
6.4.4指向函數的指針169
6.5指針與字元串172
6.5.1字元串的表示方法172
6.5.2字元指針作函數參數174
6.5.3字元型指針數組176
6.6帶參數的main函數177
6.7應用實例178
6.7.1需要多個返回值時採用指針作參數的實例178
6.7.2用指針實現更為靈活的數組操作的實例181
6.7.3指針與字元串的應用實例183
習題186
第7章結構體190
7.1概述190
7.2結構體類型的定義191
7.3結構體變數的定義及初始化191
7.3.1結構體變數的定義191
7.3.2結構體成員的引用193
7.3.2結構體變數的初始化194
7.4結構體數組196
7.4.1結構體數組的定義197
7.4.2結構體數組的初始化197
7.4.3結構體數組的應用實例198
7.5指針與結構體203
7.5.1結構體指針的定義與使用204
7.5.2指向結構體數組的結構體指針205
7.5.3結構體指針作函數參數207
7.6聯合體209
7.7枚舉212
7.8用typedef定義類型215
7.9應用實例216
7.9.1簡單結構體變數的參數傳遞216
7.9.2結構體數組的排序218
7.9.3結構體、聯合體以及枚舉的綜合實例221
習題224
第8章簡單數據結構226
8.1數據結構概述226
8.2順序表226
8.2.1順序表的創建227
8.2.2順序表的插入228
8.2.3順序表的刪除231
8.3鏈表232
8.3.1單鏈表的創建233
8.3.2單鏈表的插入235
8.3.3單鏈表的刪除238
8.4棧240
8.4.1棧的創建241
8.4.2棧的入棧操作243
8.4.3棧的出棧操作244
8.5隊列250
8.5.1隊列的創建251
8.5.2隊列的入隊操作253
8.5.3隊列的出隊操作254
8.6應用實例260
8.6.1鏈表應用實例260
8.6.2棧的應用實例264
8.6.3隊列的應用實例267
習題271
第9章預處理命令273
9.1#include預處理命令273
9.2#define命令274
9.2.1無參#define命令274
9.2.2有參#define命令276
9.3條件編譯命令277
9.3.1#if、#else、#elif以及#endif命令277
9.3.2#ifdef與#ifndef命令279
習題280
第10章文件282
10.1文件概述282
10.2文件結構體284
10.3文件打開與關閉函數285
10.3.1文件打開函數(fopen函數)285
10.3.2文件關閉函數(fclose函數)287
10.4輸入與輸出函數288
10.4.1fgetc函數與fputc函數288
10.4.2fgets函數與fputs函數292
10.4.3fread函數與fwrite函數294
10.4.4fscanf函數與fprintf函數295
10.5fseek函數和二進位隨機文件297
10.5.1文件定位297
10.5.2文件的隨機讀寫298
10.6應用實例299
習題305
參考文獻308