第 1章 步入C的世界1
1.1 認識C語言2
1.1.1 編程的魔力2
1.1.2 C語言的來源和特點2
1.1.3 讓計算機開口說話5
1.1.4 C語言的用途5
1.1.5 學習C語言的方法6
1.2 認識常用的開發(fā)環(huán)境6
1.2.1 認識Visual C++開發(fā)環(huán)境7
1.2.2 認識Turbo開發(fā)環(huán)境8
1.3 開始C編程—我的第 一個C程序9
1.3.1 程序編寫及運行流程9
1.3.2 在Visual C++ 6.0中開發(fā)C程序10
1.3.3 在Turbo C中開發(fā)C程序12
1.4 本章小結13
1.5 疑難解答14
1.6 實戰(zhàn)練習14
第 2章 C 語言的基本構成元素15
2.1 簡單例子16
2.1.1 頭文件16
2.1.2 函數聲明17
2.1.3 變量聲明18
2.1.4 主函數19
2.1.5 注釋20
2.1.6 代碼的規(guī)矩20
2.2 標識符和關鍵字21
2.2.1 標識符21
2.2.2 關鍵字22
2.3 常量22
2.3.1 什么是常量22
2.3.2 常量的聲明24
2.3.3 數值常量24
2.3.4 字符常量25
2.3.5 字符串常量26
2.3.6 符號常量27
2.4 變量28
2.4.1 什么是變量28
2.4.2 變量的定義與聲明29
2.4.3 什么是變量29
2.5 本章小結31
2.6 疑難解答31
2.7 實戰(zhàn)練習32
第3章 計算機如何識數—數制33
3.1 二進制34
3.2 八進制35
3.3 十進制35
3.4 十六進制35
3.5 數制間的轉換36
3.6 綜合應用—數制轉換37
3.7 本章小結37
3.8 疑難解答38
3.9 實戰(zhàn)練習38
第4章 數據類型39
4.1 數據類型的分類40
4.1.1 基本數據類型40
4.1.2 構造數據類型40
4.1.3 指針數據類型40
4.1.4 空類型41
4.2 整型41
4.3 字符型43
4.4 浮點型45
4.5 類型轉換47
4.5.1 隱式轉換48
4.5.2 顯式轉換49
4.6 綜合應用—類型轉換50
4.7 本章小結51
4.8 疑難解答51
4.9 實戰(zhàn)練習52
第5章 運算符和表達式53
5.1 C語言中的運算符和表達式54
5.1.1 運算符54
5.1.2 表達式54
5.2 算術運算符和表達式55
5.2.1 算術運算符55
5.2.2 算術表達式55
5.2.3 應用舉例56
5.3 關系運算符和表達式58
5.3.1 關系運算符58
5.3.2 關系表達式58
5.3.3 應用舉例58
5.4 邏輯運算符和表達式59
5.4.1 邏輯運算符59
5.4.2 邏輯表達式60
5.4.3 應用舉例60
5.5 條件運算符和表達式62
5.6 賦值運算符和表達式63
5.6.1 賦值運算符63
5.6.2 賦值表達式63
5.6.3 應用舉例64
5.7 自增、自減運算符65
5.8 逗號運算符和表達式67
5.9 位運算符68
5.9.1 按位與運算符68
5.9.2 按位或運算符69
5.9.3 按位異或運算符70
5.9.4 按位取反運算符70
5.9.5 左移運算符71
5.9.6 右移運算符71
5.9.7 位運算賦值運算符73
5.9.8 位運算應用73
5.10 優(yōu)先級和結合性75
5.10.1 算術運算符的優(yōu)先級和結合性76
5.10.2 關系運算符的優(yōu)先級和結合性76
5.10.3 邏輯運算符的優(yōu)先級和結合性76
5.10.4 賦值運算符的優(yōu)先級和結合性76
5.11 本章小結77
5.12 疑難解答77
5.13 實戰(zhàn)練習78
第6章 順序結構和選擇結構79
6.1 程序流程概述80
6.2 語句80
6.2.1 基本賦值語句80
6.2.2 表達式語句81
6.2.3 基本輸入/輸出語句81
6.2.4 控制語句83
6.2.5 空語句和復合語句84
6.3 順序結構和語句84
6.4 選擇結構86
6.4.1 選擇結構86
6.4.2 單分支選擇結構—if語句86
6.4.3 雙分支選擇結構—if-else語句88
6.4.4 多分支選擇結構—if-else的嵌套形式90
6.4.5 多分支選擇結構—switch語句94
6.5 綜合應用—根據不同的利潤計算獎金97
6.6 綜合應用—求解一元二次方程98
6.7 本章小結100
6.8 疑難解答101
6.9 實戰(zhàn)練習102
第7章 循環(huán)結構和轉向語句103
7.1 循環(huán)結構和語句104
7.1.1 循環(huán)結構104
7.1.2 for循環(huán)105
7.1.3 while循環(huán)108
7.1.4 do-while循環(huán)109
7.1.5 循環(huán)的嵌套111
7.2 轉向語句115
7.2.1 goto語句115
7.2.2 break語句116
7.2.3 continue語句118
7.3 經典循環(huán)案例120
7.3.1 冒泡排序法120
7.3.2 快速排序法121
7.3.3 質因數分解123
7.3.4 最大公約數的歐幾里得算法124
7.4 綜合應用—簡單計算器125
7.5 本章小結127
7.6 疑難解答128
7.7 實戰(zhàn)練習128
第8章 輸入和輸出129
8.1 標準輸入/輸出130
8.2 格式化輸入/輸出130
8.2.1 格式化輸出函數—printf()131
8.2.2 格式控制字符132
8.2.3 格式化輸入函數—scanf()137
8.3 字符輸入/輸出140
8.3.1 字符輸出函數—putchar()140
8.3.2 字符輸入函數—getchar()141
8.4 本章小結142
8.5 疑難解答143
8.6 實戰(zhàn)練習143
第9章 數組147
9.1 數組概述148
9.2 一維數組148
9.2.1 一維數組的定義148
9.2.2 一維數組的初始化151
9.2.3 一維數組元素的操作152
9.2.4 一維數組的應用舉例155
9.3 二維數組157
9.3.1 二維數組的定義157
9.3.2 二維數組的初始化158
9.3.3 二維數組元素的操作159
9.3.4 二維數組的應用舉例159
9.4 多維數組161
9.5 綜合應用—楊輝三角162
9.6 綜合應用—八皇后問題的實現163
9.6.1 問題描述163
9.6.2 問題分析及實現164
9.6.3 開發(fā)過程中的常見問題及解決166
9.7 本章小結167
9.8 疑難解答167
9.9 實戰(zhàn)練習168
第 10章 字符數組和字符串171
10.1 字符數組概述172
10.2 字符數組172
10.2.1 字符數組的初始化172
10.2.2 字符數組的引用172
10.2.3 字符數組的輸入與輸出173
10.3 字符串174
10.3.1 字符串和字符數組175
10.3.2 字符串的輸入/輸出176
10.3.3 應用舉例178
10.4 綜合應用—自動分類字符180
10.5 本章小結181
10.6 疑難解答181
10.7 實戰(zhàn)練習183
第 11章 函數185
11.1 函數概述186
11.1.1 什么是函數186
11.1.2 函數的分類187
11.2 函數的定義188
11.3 函數的返回值和類型190
11.3.1 函數的返回值191
11.3.2 函數的類型192
11.4 函數的參數和傳遞方式195
11.4.1 函數的參數195
11.4.2 函數參數的傳遞方式196
11.5 函數的調用198
11.5.1 函數調用方式198
11.5.2 函數的聲明200
11.5.3 函數的嵌套調用201
11.5.4 函數的遞歸調用203
11.6 內部函數和外部函數208
11.6.1 內部函數208
11.6.2 外部函數208
11.7 main()函數210
11.8 綜合應用—用截弦法求方程的根211
11.9 本章小結213
11.10 疑難解答214
11.11 實戰(zhàn)練習215
第 12章 函數中的變量217
12.1 局部變量和全局變量218
12.1.1 局部變量218
12.1.2 全局變量219
12.2 變量的存儲類別222
12.2.1 自動類型223
12.2.2 寄存器類型223
12.2.3 靜態(tài)類型224
12.2.4 外部類型227
12.3 綜合應用—日期判斷228
12.4 本章小結230
12.5 疑難解答230
12.6 實戰(zhàn)練習232
第 13章 指針233
13.1 指針概述234
13.1.1 指針的類型234
13.1.2 指針所指向的類型234
13.1.3 指針的值234
13.1.4 指針所占內存235
13.2 指針的算術運算235
13.2.1 指針與整數的運算235
13.2.2 指針與指針的運算237
13.2.3 運算符&和*237
13.3 數組指針239
13.3.1 數組指針作為函數參數239
13.3.2 指針與字符數組241
13.3.3 指針數組與指針的指針241
13.4 指針和函數243
13.4.1 函數指針243
13.4.2 指針函數246
13.4.3 指針作為函數參數248
13.5 指針和字符串250
13.5.1 字符串指針250
13.5.2 字符串指針作為函數參數255
13.5.3 字符指針變量與字符數組的區(qū)別256
13.6 綜合應用—“回文”問題257
13.7 本章小結258
13.8 疑難解答259
13.9 實戰(zhàn)練習260
第 14章 結構體和聯合體261
14.1 結構體262
14.1.1 結構體類型262
14.1.2 定義結構體變量263
14.1.3 初始化結構體變量264
14.1.4 結構體變量的引用265
14.2 結構體數組267
14.2.1 定義結構體數組267
14.2.2 初始化結構體數組269
14.2.3 結構體數組元素的引用269
14.3 結構體和函數270
14.3.1 結構體作為函數參數270
14.3.2 結構體作為函數返回值273
14.4 聯合體274
14.4.1 聯合體類型274
14.4.2 聯合體變量的定義275
14.4.3 聯合體變量的初始化276
14.4.4 聯合體變量的引用278
14.5 結構體指針280
14.5.1 定義結構體指針280
14.5.2 初始化結構體指針280
14.5.3 使用指針訪問成員281
14.5.4 給結構體指針賦值282
14.5.5 指向結構體變量的指針282
14.5.6 指向結構體數組的指針284
14.6 結構體和聯合體的區(qū)別與聯系285
14.7 綜合應用—計算學生成績286
14.8 本章小結287
14.9 疑難解答288
14.10 實戰(zhàn)練習289
第 15章 文件291
15.1 文件概述292
15.1.1 文件類型292
15.1.2 C語言中如何操作文件—文件指針292
15.1.3 文件緩沖區(qū)293
15.2 文件的打開和關閉293
15.2.1 文件的打開 — fopen()函數293
15.2.2 文件的關閉—fclose()函數294
15.2.3 文件結束檢測—feof()函數295
15.3 文件的順序讀寫295
15.3.1 文本文件中字符的輸入/輸出296
15.3.2 文本文件中字符串的輸入/輸出298
15.3.3 格式化輸入/輸出300
15.3.4 二進制文件的輸入/輸出—數據塊讀寫302
15.4 文件的隨機讀寫304
15.5 綜合應用—文件操作305
15.6 本章小結307
15.7 疑難解答307
15.8 實戰(zhàn)練習308