本書主要介紹C語言程序設計的基礎知識,包括變量、數據類型、運算符、控制語句、函數、指針等基本概念和語法,以及如何使用這些知識編寫簡單的程序。本書內容實用且通俗易讀,體系合理,既可作為高等院校學生的C 語言課程的教材,也可作為培訓機構的教材。
陳洪生,博士研究生,畢業(yè)于華中科技大學,湖北科技學院計算機科學與技術學院副教授,主要從事數據結構、操作系統(tǒng)原理、計算機導論、傳感網原理及應用等課程的教學,主要研究方向為工業(yè)互聯(lián)網、無線自組織/傳感器網絡、容遲/擾網絡、大數據、云計算、人工智能等。
目錄
第1章 C語言入門 1
1.1 C語言概述 1
1.1.1 程序、程序設計與程序設計語言 1
1.1.2 C語言的主要特點 2
1.1.3 C語言程序的基本結構 4
1.2 C語言的上機過程 6
1.2.1 安裝與啟動Microsoft Visual C++ 2010學習版 6
1.2.2 Microsoft Visual C++ 2010學習版環(huán)境 11
1.2.3 編譯、生成和運行程序 16
本章小結 19
課后習題 19
第2章 數據類型、運算符和表達式 21
2.1 標識符與關鍵字 21
2.1.1 標識符 21
2.1.2 關鍵字 22
2.2 數據類型 22
2.2.1 常量 23
2.2.2 變量 27
2.2.3 整型變量 31
2.2.4 實型變量 33
2.2.5 字符變量 34
2.2.6 數據類型的轉換 36
2.3 運算符和表達式 39
2.3.1 運算符的優(yōu)先級、結合性及表達式的基本知識 39
2.3.2 算術運算符及其表達式 40
2.3.3 自增、自減運算符及其表達式 41
2.3.4 賦值運算符及其表達式 42
2.3.5 關系運算符及其表達式 43
2.3.6 邏輯運算符及其表達式 44
2.3.7 條件運算符及其表達式 46
2.3.8 逗號運算符及其表達式 47
2.3.9 位運算符及其表達式 48
本章小結 52
課后習題 52
第3章 順序結構程序設計 57
3.1 順序結構程序設計舉例 57
3.2 C語言的基本語句 59
3.2.1 流程控制語句 59
3.2.2 表達式語句 60
3.2.3 函數調用語句 61
3.2.4 空語句 61
3.2.5 復合語句 61
3.3 輸入輸出函數 62
3.3.1 標準輸出函數printf 62
3.3.2 標準輸入函數scanf 68
3.3.3 字符型數據輸出函數putchar 71
3.3.4 字符型數據輸入函數getchar 72
3.4 順序結構程序設計的精選示例 73
本章小結 74
課后習題 74
第4章 選擇結構程序設計 81
4.1 選擇結構程序設計舉例 81
4.2 簡單選擇結構 83
4.2.1 單分支if語句 83
4.2.2 雙分支if語句 84
4.3 多分支選擇結構 85
4.3.1 多分支if語句 85
4.3.2 if語句的嵌套 87
4.3.3 switch語句 89
4.4 選擇結構程序設計的精選示例 91
4.5 選擇結構程序設計的綜合示例 95
本章小結 96
課后習題 97
第5章 循環(huán)結構程序設計 105
5.1 循環(huán)結構程序設計舉例 105
5.2 使用while語句實現(xiàn)循環(huán) 107
5.2.1 while語句的一般形式 107
5.2.2 while語句的執(zhí)行過程 107
5.3 使用do-while語句實現(xiàn)循環(huán) 109
5.3.1 do-while語句的一般形式 109
5.3.2 do-while語句的執(zhí)行過程 109
5.4 使用for語句實現(xiàn)循環(huán) 111
5.4.1 for語句的一般形式 112
5.4.2 for語句的執(zhí)行過程 112
5.5 循環(huán)語句的嵌套 114
5.6 循環(huán)語句的比較 116
5.7 循環(huán)執(zhí)行狀態(tài)的改變 116
5.7.1 使用break語句提前終止整個循環(huán) 116
5.7.2 使用continue語句提前結束本次循環(huán) 118
5.8 循環(huán)結構程序設計的精選示例 119
本章小結 124
課后習題 124
第6章 數組 134
6.1 一維數組 135
6.1.1 一維數組的定義 135
6.1.2 一維數組的初始化 136
6.1.3 一維數組元素的引用及一維數組的基本操作 137
6.1.4 一維數組的精選示例 138
6.2 二維數組 141
6.2.1 二維數組的定義 142
6.2.2 二維數組的初始化 143
6.2.3 二維數組元素的引用及二維數組的基本操作 144
6.2.4 二維數組的精選示例 145
6.3 字符數組與字符串 147
6.3.1 字符串的存儲 147
6.3.2 字符數組的定義和初始化 148
6.3.3 字符數組的基本操作 148
6.3.4 字符串處理函數 151
6.3.5 字符數組的精選示例 154
本章小結 156
課后習題 156
第7章 函數及編譯預處理 162
7.1 函數概述 163
7.1.1 庫函數 163
7.1.2 自定義函數 164
7.1.3 C語言程序的構成 164
7.2 函數的定義 165
7.3 函數的調用和聲明 167
7.3.1 函數的調用 168
7.3.2 函數的聲明 170
7.3.3 參數的傳遞 171
*7.4 函數的嵌套調用和遞歸調用 175
7.4.1 函數的嵌套調用 175
7.4.2 函數的遞歸調用 177
*7.5 變量的作用域和存儲類別 179
7.5.1 變量的作用域 180
7.5.2 變量的存儲類別 183
*7.6 編譯預處理 185
7.6.1 宏定義 185
7.6.2 文件包含 188
7.6.3 條件編譯 189
本章小結 191
課后習題 192
第8章 指針 198
8.1 地址與指針的概念 198
8.2 變量的指針和指向變量的指針變量 200
8.2.1 指針變量的定義 201
8.2.2 指針變量的初始化 202
8.2.3 指針變量的引用 203
8.2.4 指針變量作為函數參數 207
8.2.5 指針變量幾個問題的進一步說明 211
8.3 數組指針和指向數組的指針變量 214
8.3.1 指向數組的指針變量 214
8.3.2 通過指針變量引用數組元素 216
8.3.3 指向字符串的指針變量 218
8.3.4 數組名作為函數參數 219
本章小結 224
課后習題 225
第9章 結構體與共用體 230
9.1 結構體的概念 230
9.2 結構體類型 231
9.2.1 結構體類型的聲明 231
9.2.2 結構體變量的定義、初始化、引用及基本操作 233
9.2.3 結構體類型的精選示例 237
9.3 結構體數組 239
9.3.1 結構體數組的定義及初始化 239
9.3.2 結構體數組的引用 240
9.3.3 結構體數組的精選示例 241
9.4 共用體類型 242
9.4.1 共用體變量的定義 242
9.4.2 共用體變量的引用 243
9.4.3 共用體類型的精選示例 244
9.5 枚舉類型 246
9.5.1 枚舉類型的聲明 246
9.5.2 枚舉變量的定義及引用 246
9.5.3 枚舉類型的精選示例 247
本章小結 250
課后習題 250
第10章 文件 256
10.1 什么是文件 256
10.2 文件與文件指針變量 259
10.3 文件操作函數 262
本章小結 276
課后習題 276
附錄A 常用字符與ASCII碼值對照表 284
附錄B 運算符的優(yōu)先級和結合性 285
附錄C C語言的常用語法提要 287
附錄D 庫函數 291