本書共11章,主要內容有C語言概述、算法、數據類型、運算符和表達式、順序結構程序設計、選擇結構程序設計、循環結構程序設計、數組、函數及編譯預處理、指針、結構體和共用體、文件等部分,內容上盡量做到布局合理、豐富、難度適中,邏輯性、系統性和實踐性強。 本書既可以作為非計算機專業本科學生的計算機C語言教材,也可以作為高等院校計算機專業本科和專科學生的基礎教材,還可以作為自學者和教師的參考教材。
盧社階,湖北省計算機學會理事,湖北科技學院計算機學院教授,是該校C語言程序設計課程主要負責人,多次獲得校級優秀講師稱號。出版過多部教材。
第1章 初識C語言1
1.1 C語言歷史背景1
1.1.1 C語言的歷史1
1.1.2 C語言的主要特點2
1.2 程序與程序設計語言3
1.2.1 程序與程序設計3
1.2.2 程序設計語言3
1.2.3 C語言程序的基本結構4
1.3 C語言上機過程6
1.3.1 啟動VC++7.07
1.3.2 Visual C++7.0的菜單欄8
1.3.3 Visual C++7.0的工具欄10
1.3.4 Visual C++7.0編輯、編譯、鏈接和運行程序的步驟11
本章小結14
習題114
第2章 程序的靈魂—算法16
2.1 算法的概念16
2.2 算法設計的基本方法17
2.3 簡單算法舉例18
2.4 算法的描述19
2.5 算法設計的要求22
2.6 算法的復雜度22
2.7 結構化程序設計方法23
第3章 數據類型、運算符和表達式25
3.1 標識符與關鍵字25
3.1.1 標識符25
3.1.2 關鍵字26
3.2 數據類型26
3.2.1 常量26
3.2.2 變量30
3.2.3 整型變量32
3.2.4 實型變量35
3.2.5 字符變量36
3.2.6 數據類型轉換37
3.3 運算符和表達式39
3.3.1 運算符的優先級和結合性39
3.3.2 算術運算符及其表達式40
3.3.3 自增、自減運算符及其表達式40
3.3.4 賦值運算符與賦值表達式41
3.3.5 關系運算符及其表達式42
3.3.6 邏輯運算符及其表達式42
3.3.7 條件運算符及其條件表達式43
3.3.8 逗號運算符及其表達式44
3.3.9 位運算符及其表達式44
本章小結48
習題348
第4章 順序結構程序設計51
4.1 順序程序設計舉例51
4.2 C語言基本語句54
4.3 字符數據的輸入/輸出56
4.3.1 字符數據的輸出putchar函數56
4.3.2 字符數據的輸入getchar函數57
4.4 格式數據的輸入/輸出58
4.4.1 標準格式輸出printf函數58
4.4.2 標準格式輸入scanf函數62
習題464
第5章 選擇結構程序設計70
5.1 簡單選擇結構70
5.1.1 單分支if語句70
5.1.2 雙分支if語句71
5.2 多分支選擇結構71
5.2.1 多分支if語句71
5.2.2 if語句的嵌套73
5.2.3 多分支switch語句74
5.3 選擇結構精選案例75
本章小結80
習題580
第6章 循環結構程序設計88
6.1 用while語句實現循環88
6.1.1 while語句的一般形式88
6.1.2 while語句的執行過程88
6.2 用do-while語句實現循環89
6.2.1 do-while語句的一般形式89
6.2.2 do-while語句的執行過程90
6.3 用for語句實現循環91
6.3.1 for語句的一般形式91
6.3.2 for語句的執行過程92
6.4 循環結構嵌套93
6.5 三種循環語句的比較95
6.6 改變循環執行的狀態95
6.6.1 用break語句提前終止循環95
6.6.2 用continue語句提前結束本次循環96
6.6.3 用goto語句提前終止多重循環97
6.7 循環結構精選案例97
本章小結102
習題6103
第7章 數組111
7.1 一維數組111
7.1.1 一維數組的定義112
7.1.2 一維數組的初始化113
7.1.3 一維數組元素的引用及基本操作113
7.1.4 一維數組精選案例114
7.2 二維數組121
7.2.1 二維數組的定義121
7.2.2 二維數組的初始化122
7.2.3 二維數組元素的引用123
7.2.4 二維數組精選案例124
7.3 字符數組與字符串125
7.3.1 字符串的存儲126
7.3.2 字符數組的定義和初始化126
7.3.3 字符數組的基本操作127
7.3.4 字符串處理函數129
7.3.5 字符數組精選案例132
本章小結134
習題7134
第8章 函數及編譯預處理139
8.1 函數概述139
8.1.1 庫函數139
8.1.2 自定義函數141
8.1.3 C程序構成141
8.2 函數的定義141
8.3 函數的調用和參數傳遞144
8.3.1 函數調用144
8.3.2 函數聲明146
8.3.3 函數間的參數傳遞147
8.4 函數的嵌套調用和遞歸調用151
8.4.1 函數的嵌套調用151
8.4.2 函數的遞歸調用153
8.5 函數精選案例155
8.6 變量的作用域和存儲類別158
8.6.1 變量的作用域158
8.6.2 變量的存儲類別161
8.7 編譯預處理163
8.7.1 宏定義163
8.7.2 文件包含166
8.7.3 條件編譯167
本章小結168
習題8170
第9章 指針176
9.1 地址與指針的概念176
9.2 變量的指針和指向變量的指針變量177
9.2.1 定義一個指針變量177
9.2.2 指針變量的初始化177
9.2.3 指針變量的引用178
9.2.4 指針變量作為函數參數180
9.2.5 指針變量幾個問題的進一步說明183
9.3 數組指針和指向數組的指針變量185
9.3.1 指向數組元素的指針185
9.3.2 通過指針引用數組元素186
9.3.3 數組名作函數參數188
9.3.4 指向多維數組的指針和指針變量192
本章小結193
習題9194
第10章 結構體和共用體198
10.1 結構體類型和變量198
10.1.1 結構體類型的聲明199
10.1.2 結構體變量的定義、初始化、引用及基本操作200
10.1.3 結構體精選實例204
10.2 結構體數組206
10.2.1 結構體數組的定義和初始化206
10.2.2 結構體數組的引用206
10.2.3 結構體數組精選實例207
10.3 共用體類型208
10.3.1 共用體變量的定義209
10.3.2 共用體變量的引用210
10.3.3 共用體精選實例210
10.4 枚舉類型212
10.4.1 枚舉類型的聲明212
10.4.2 枚舉變量的定義與引用213
10.4.3 枚舉精選實例213
本章小結215
習題10215
第11章 文件220
11.1 文件概述220
11.1.1 數據項、記錄和文件220
11.1.2 數據文件的存儲形式221
11.1.3 緩沖區221
11.2 文件類型指針222
11.3 文件操作223
11.3.1 文件的操作函數223
11.3.2 創建文件232
11.3.3 顯示文件232
11.3.4 追加文件233
11.3.5 復制文件234
11.3.6 刪除文件235
本章小結235
習題11236
附錄A 常用字符與ASCII代碼對照表244
附錄B C語言中的關鍵字246
附錄C 運算符的優先級和結合性247
附錄D C語言常用語法提要249
附錄E C庫函數252