本書以程序設計為主線,通過重點講解程序設計的思路和分析綜合實例培養(yǎng)學生編程思維和綜合應用能力。本書全面介紹了C語言的基本概念、數(shù)據(jù)類型、語句及結構特點,系統(tǒng)地講述了C語言程序設計的基本方法和技巧。全書共10章,其中第1章~第7章主要介紹C語言基礎知識、數(shù)據(jù)類型與基本運算、邏輯控制結構、函數(shù)與數(shù)組等;第8章~第10章主要介紹C語言中的難點內容,包括指針、結構體與共用體、文件操作。本書以層次化的知識結構組織教材,每章*后都設置了綜合與提高內容,并且在難度較大的章節(jié)和提高章節(jié)都加以標注,供不同層次學生選修。為配合本書的學習,作者還編寫了與本書配套的《C語言程序設計實驗指導教程》,供讀者學習時參考使用。
本書可作為高等院校計算機專業(yè)及非計算機專業(yè)C語言程序設計課程的教材,也可作為工程技術人員和計算機愛好者的參考書。
適合普通高等院校C語言用書
陳家俊
第1章 C語言程序設計概述1
1.1 程序設計語言的發(fā)展過程 1
1.1.1 機器語言 1
1.1.2 匯編語言 1
1.1.3 高級語言(面向過程) 2
1.1.4* 面向對象的程序設計語言 2
1.2 認識C語言 2
1.2.1 C語言的發(fā)展過程 2
1.2.2 C語言的特點 3
1.2.3 C程序的基本結構 3
1.2.4 C程序的書寫格式 4
1.3 算法及其描述 5
1.3.1 算法與程序 5
1.3.2 算法的概念 6
1.3.3 算法的特點 6
1.3.4* 算法的描述方法 7
1.4 Visual C 6.0集成開發(fā)環(huán)境 9
1.4.1 C程序可執(zhí)行文件的生成過程 9
1.4.2 Visual C 6.0上機操作過程 10
習題 11
第2章 基本數(shù)據(jù)類型與運算符 13
2.1 基本數(shù)據(jù)類型和取值范圍 13
2.1.1 基本數(shù)據(jù)類型和取值范圍 13
2.1.2 整型常量 14
2.1.3 實型常量 15
2.1.4 字符常量 15
2.1.5 字符串常量 16
2.2 運算符與表達式 16
2.2.1 優(yōu)先級與結合規(guī)則 16
2.2.2 賦值運算與連續(xù)賦值 17
2.2.3 算術運算 18
2.2.4 關系運算 20
2.2.5 邏輯運算、連續(xù)比較和邏輯
優(yōu)化 20
2.2.6 位運算 21
2.2.7 條件運算 22
2.2.8 復合賦值運算 22
2.2.9* 逗號運算 23
2.2.10 其他運算sizeof 23
2.2.11* 類型轉換與類型轉換規(guī)則 23
2.3* 綜合與提高 26
2.3.1 本章重要概念 26
2.3.2 常見錯誤 26
2.3.3 提高實踐 27
習題 27
第3章 順序結構程序設計 30
3.1 C語言的基本語句 30
3.1.1 簡單語句 30
3.1.2 復合語句 31
3.2 數(shù)據(jù)的輸入與輸出 31
3.2.1 putchar( )函數(shù)(單個字符的
輸出) 31
3.2.2 getchar( )函數(shù)(單個字符的
輸入) 31
3.2.3 printf( )函數(shù) 32
3.2.4 scanf( )函數(shù) 34
3.3* 綜合與提高 35
3.3.1 本章重要概念 35
3.3.2 常見錯誤 36
3.3.3 提高實踐 36
習題 37
第4章 選擇結構程序設計 39
4.1 二分支選擇結構 39
4.1.1 二分支結構選擇語句 39
4.1.2 不平衡if結構 41
4.1.3 if語句的嵌套 43
4.2 多分支結構 46
4.2.1 switch語句的一般形式 46
4.2.2 switch語句的執(zhí)行過程 46
4.2.3 使用switch語句注意事項 46
4.3* 綜合與提高 47
4.3.1 本章重要概念 47
4.3.2 常見錯誤 48
4.3.3 提高實踐 48
習題 51
第5章 循環(huán)結構程序設計 53
5.1 循環(huán)結構 53
5.1.1 for語句 53
5.1.2 while語句 56
5.1.3 do~while語句 58
5.1.4 循環(huán)嵌套 59
5.2* break、continue及goto語句 60
5.2.1 break語句 60
5.2.2 continue語句 61
5.2.3* goto語句 62
5.3* 綜合與提高 62
5.3.1 本章重要概念 62
5.3.2 常見錯誤 63
5.3.3 提高實踐 63
習題 64
第6章 函數(shù)與編譯預處理 67
6.1 函數(shù)的定義與調用 67
6.1.1 標準庫函數(shù) 68
6.1.2 函數(shù)定義的一般形式 68
6.1.3 函數(shù)定義的幾點說明 69
6.1.4 函數(shù)的調用 70
6.2 函數(shù)的遞歸調用 73
6.2.1 遞歸概念 73
6.2.2 遞歸函數(shù)舉例 74
6.3 變量的存儲類型和作用域 76
6.3.1 變量存儲類型 76
6.3.2 變量的作用域 77
6.4 編譯預處理 81
6.4.1 文件包含命令 81
6.4.2 宏定義 82
6.4.3* 條件編譯 84
6.5* 綜合與提高 86
6.5.1 函數(shù)使用中的常見錯誤 86
6.5.2* 綜合舉例 87
習題 88
第7章 數(shù)組 92
7.1 一維數(shù)組 92
7.1.1 一維數(shù)組的定義與初始化 92
7.1.2 一維數(shù)組的使用 94
7.1.3 字符數(shù)組與字符串 96
7.1.4 字符串操作 96
7.2 二維數(shù)組 99
7.2.1 二維數(shù)組的定義 100
7.2.2 二維數(shù)組的引用 100
7.3* 多維數(shù)組 101
7.4 函數(shù)與數(shù)組 102
7.4.1 數(shù)組元素作為函數(shù)的實參 102
7.4.2 數(shù)組名作為參數(shù) 103
7.5 數(shù)組應用舉例 105
7.5.1 排序問題 105
7.5.2* 折半查找問題 106
7.5.3 矩陣問題 108
7.6* 綜合與提高 108
7.6.1 數(shù)組使用中的常見錯誤 109
7.6.2 綜合舉例 109
習題 111
第8章 指針 116
8.1 地址與指針 116
8.1.1 地址的概念與取地址運算 116
8.1.2 指針與變量 117
8.2 指針變量的定義與使用 117
8.2.1 指針變量的定義 117
8.2.2 指針變量的使用 118
8.2.3 指針的運算 119
8.2.4* 指向指針的指針 120
8.3 指針與數(shù)組 121
8.3.1 指向一維數(shù)組元素的指針 121
8.3.2 指向二維數(shù)組元素的指針 125
8.3.3 指向數(shù)組首元素的指針變量的
運算 126
8.3.4* 指向數(shù)組的指針 128
8.3.5* 指針數(shù)組 132
8.4 指針與字符串 136
8.4.1 使指針變量指向字符串的
方法 136
8.4.2 指向字符串常量的指針變量的
使用 137
8.4.3 使用字符指針變量與字符數(shù)組的
區(qū)別 137
8.5 指針與函數(shù) 139
8.5.1 指針作函數(shù)參數(shù) 139
8.5.2 返回指針的函數(shù) 142
8.5.3* 函數(shù)指針 144
8.6* 綜合與提高 146
8.6.1 本章重要概念 147
8.6.2 指針使用中的常見錯誤 147
8.6.3 提高實踐 148
習題 150
第9章 結構體 154
9.1 結構體類型 154
9.1.1 結構體類型 154
9.1.2 結構體類型定義 154
9.1.3 結構體變量引用規(guī)則 157
9.1.4 結構體變量的初始化 157
9.2 結構體數(shù)組 159
9.2.1 結構體數(shù)組的定義 159
9.2.2 結構體數(shù)組的初始化 159
9.3 結構體指針 160
9.3.1 指向結構體變量的指針 160
9.3.2 指向結構體數(shù)組的指針 162
9.3.3 用指向結構體的指針作函數(shù)
參數(shù) 162
9.3.4* 嵌套結構體 163
9.4* 鏈表 164
9.4.1 鏈表概述 164
9.4.2 建立與輸出鏈表 165
9.4.3 鏈表的刪除與插入操作 167
9.5 共用體 171
9.5.1 共用體類型 171
9.5.2 共用體變量的使用 172
9.6 枚舉類型 173
9.7* 綜合與提高 174
9.7.1 位運算符與位運算 174
9.7.2 定義類型 176
習題 177
第10章 文件 183
10.1 文件概述與文件類型指針 183
10.1.1 文件概述 183
10.1.2 文件指針 184
10.2 文件的打開與關閉 184
10.2.1 文件的打開 184
10.2.2 文件的關閉 186
10.3 文件的讀寫 186
10.3.1 字符讀寫函數(shù)fgetc( )和
fputc( ) 187
10.3.2 字符串讀寫函數(shù)fgets( )和
fputs( ) 188
10.3.3 格式化讀寫函數(shù)fscanf( )和
fprintf( ) 189
10.3.4* 數(shù)據(jù)塊讀寫函數(shù)fread( )和
fwrite( ) 190
10.4* 文件的隨機讀寫 191
10.5* 文件檢測 192
10.5.1 文件結束檢測函數(shù)feof( ) 193
10.5.2 讀寫文件出錯檢測函數(shù)
ferror( ) 193
10.5.3 文件出錯標志和文件結束標志置
0函數(shù)clearerr( ) 193
10.5.4 檢測文件內部的位置指針的
當前位置函數(shù)ftell( ) 193
10.6* 綜合實例 193
10.6.1 需求分析 193
10.6.2 系統(tǒng)設計 194
10.6.3 功能設計 194
10.6.4 小結 200
10.6.5 成績管理系統(tǒng)的完整代碼 200
習題 213
附錄1 常用字符與ASCII值
對照表 216
附錄2 C語言保留字一覽表 217
附錄3 運算符的優(yōu)先級及其
結合性 218
附錄4 常用C庫函數(shù) 220
參考文獻 227