內容簡介
本書系統地介紹了利用C語言進行程式設計的基本知識。全書共11章,主要內容包括算法與程式設計基礎、C語言的基本概念、數據類型與表達式、順序結構程式設計、選擇結構程式設計、循環結構程式設計、數組、函式、指針、結構體與共用體、檔案。在掌握C語言基礎知識和基本技能的前提下,以綜合案例開發、拓展與探究題目、思維導圖形式的課後總結為手段,以Microsoft Visio 2010和RAPTOR為工具,培養學生科學思維的意識和能力,使其養成嚴謹的程式設計風格和習慣,初步具備運用C語言解決實際問題的能力。
目錄信息
第1章 程式設計基礎 1
1.1 引例 1
1.1.1 軟硬體基礎 1
1.1.2 編寫程式 1
1.2 算法 3
1.2.1 算法及其特性 3
1.2.2 算法的表示方法 4
1.2.3 算法設計的基本方法 7
1.3 程式與程式設計 12
1.3.1 程式與程式設計語言 12
1.3.2 程式設計語言處理過程
13
1.3.3 計算機解題過程 15
1.3.4 程式設計方法 17
1.4 案例—“學生成績管理系統”
需求分析與模組圖的繪製 19
本章小結 21
探究性題目:使用RAPTOR進行程式設計 22
第2章 C語言概述 23
2.1 引例 23
2.2 C語言出現的歷史背景 23
2.3 C語言的特點 24
2.4 C程式結構和代碼書寫規則 25
2.4.1 C程式結構 25
2.4.2 代碼書寫規則 28
2.5 C程式的實現 31
2.5.1 C程式的實現步驟和調試 31
2.5.2 VC++6.0的使用 34
本章小結 38
探究性題目:C語言套用領域及其套用前景的分析 39
第3章 數據類型與表達式 40
3.1 引例 40
3.2 C語言的數據類型 40
3.3 常量與變數 41
3.3.1 常量 41
3.3.2 變數 43
3.3.3 常變數 44
3.4.4 標識符 44
3.4 基本數據類型 45
3.4.1 整型數據 45
3.4.2 浮點型數據 48
3.4.3 字元型數據 50
3.4.4 如何確定常量的類型 52
3.5 運算符和表達式 53
3.5.1 運算符和表達式簡介 53
3.5.2 算術運算符和算術表達式 53
3.5.3 賦值運算符和賦值表達式 55
3.5.4 逗號運算符和逗號表達式 56
3.5.5 位運算符與位運算表達式 56
3.6 類型轉換 59
3.6.1 隱含類型轉換 59
3.6.2 強制類型轉換 60
3.6.3 賦值過程中的類型轉換
60
3.7 案例—“學生成績管理系統”
中學生屬性數據的描述 62
3.7.1 任務描述 62
3.7.2 數據描述 62
3.7.3 算法描述 62
3.7.4 程式實現 62
本章小結 63
探究性題目:VC++6.0中浮點型數據
存儲形式 64
第4章 順序結構程式設計 65
4.1 引例 65
4.2 C語句概述 66
4.3 數據輸入/輸出 68
4.3.1 字元數據的輸入和輸出 68
4.3.2 格式輸入與輸出函式 69
4.4 順序結構程式設計 74
4.5 使用scanf()函式常見的問題 79
4.6 案例—“學生成績管理系統”
中用戶選單的設計與實現 84
本章小結 86
探究性題目:常用緩衝和非緩衝輸入
庫函式使用方法的剖析 87
第5章 選擇結構程式設計 88
5.1 引例 88
5.2 關係運算和邏輯運算 90
5.2.1 關係運算 90
5.2.2 邏輯運算 90
5.3 if語句 93
5.3.1 if語句的3種基本形式
93
5.3.2 if語句的嵌套 96
5.4 條件運算符 97
5.5 switch語句 98
5.6 選擇結構程式設計舉例 100
5.7 案例—“學生成績管理系統”
中用戶選單的選擇 107
5.7.1 任務描述 107
5.7.2 數據描述 107
5.7.3 算法描述 107
5.7.4 程式實現 108
本章小結 109
探究性題目:C編譯器對邏輯運算的
最佳化 110
第6章 循環結構程式設計 111
6.1 引例 111
6.2 概述 111
6.2.1 C語言中實現循環的5種
機制 111
6.2.2 goto語句以及用goto語句
構成循環 111
6.3 循環語句 113
6.3.1 while語句 113
6.3.2 do-while語句 114
6.3.3 for語句 115
6.3.4 幾種循環的比較 116
6.4 循環的嵌套 118
6.5 break語句和continue語句 119
6.5.1 break語句 119
6.5.2 continue語句 120
6.6 循環結構程式舉例 122
6.7 案例—“學生成績管理系統”
中用戶選單的循環選擇 130
6.7.1 任務描述 130
6.7.2 數據描述 130
6.7.3 算法描述 130
6.7.4 程式實現 131
本章小結 132
探究性題目:算法中循環結構的時間
複雜度分析 133
第7章 數組 134
7.1 引例 134
7.2 一維數組的定義和引用 135
7.2.1 一維數組的定義 135
7.2.2 一維數組的引用 136
7.2.3 一維數組的初始化 136
7.2.4 一維數組套用舉例 137
7.3 二維數組的定義和引用 146
7.3.1 二維數組的定義 146
7.3.2 二維數組的引用 147
7.3.3 二維數組的初始化 148
7.3.4 二維數組套用舉例 149
7.4 字元數組 152
7.4.1 字元數組的定義與引用
153
7.4.2 字元數組與字元串 153
7.4.3 字元數組的初始化 154
7.4.4 字元數組的輸入/輸出 154
7.4.5 字元串處理函式 156
7.4.6 字元數組套用舉例 159
7.5 案例—以數組為數據結構實現“學生成績管理系統” 160
7.5.1 任務描述 160
7.5.2 數據描述 160
7.5.3 算法描述 160
7.5.4 程式實現 161
本章小結 163
探究性題目:高精度計算 164
第8章 函式 165
8.1 引例 165
8.2 函式的分類和定義 166
8.2.1 函式的分類 166
8.2.2 函式定義的一般形式 167
8.3 函式的調用 168
8.3.1 函式調用概述 168
8.3.2 形式參數和實際參數 169
8.3.3 函式的返回值 171
8.3.4 函式原型 172
8.4 數組作為函式參數 173
8.4.1 數組元素作函式實參 173
8.4.2 數組名作函式參數 174
8.4.3 多維數組名作函式參數
177
8.5 函式的嵌套調用和遞歸調用 178
8.5.1 函式的嵌套調用 178
8.5.2 函式的遞歸調用 180
8.6 變數的作用域 184
8.6.1 局部變數 184
8.6.2 全局變數 184
8.6.3 同名變數的作用域重合
問題 186
8.7 變數的存儲類別 188
8.7.1 動態存儲方式與靜態存儲方式 188
8.7.2 auto變數和register變數 189
8.7.3 用extern聲明外部變數
189
8.7.4 static變數 191
8.8 內部函式和外部函式 192
8.9 預處理命令 192
8.10 再論C程式組織結構 197
8.11 案例—以函式為模組化設計手段改寫“學生成績管理系統” 200
8.11.1 任務描述 200
8.11.2 模組劃分 200
8.11.2 接口設計 201
8.11.3 主模組的實現 202
8.11.4 子模組的實現 204
本章小結 206
探究性題目:C語言中函式調用機理的探討 207
第9章 指針 208
9.1 引例 208
9.2 地址和指針的概念 209
9.2.1 地址和指針 209
9.2.2 記憶體單元的地址與記憶體單
元的值 210
9.2.3 直接訪問與間接訪問 210
9.3 指針變數 210
9.3.1 指針變數的定義 210
9.3.2 指針變數的引用 211
9.3.3 指針變數作為函式參數
212
9.4 指針與數組 214
9.4.1 一維數組與指針 214
9.4.2 二維數組與指針 219
9.5 字元串與指針 223
9.5.1 通過指針訪問字元串常量 223
9.5.2 通過指針訪問字元數組
224
9.5.3 字元指針作函式參數 224
9.5.4 使用字元指針變數和字
數組的比較 225
9.6 指針與函式 226
9.6.1 用函式指針變數調用函式 226
9.6.2 返回指針值的函式 227
9.7 指針數組和指向指針的指針 228
9.7.1 指針數組的概念 228
9.7.2 指向指針的指針 230
9.7.3 指針數組作main函式的
形參 231
9.8 動態記憶體分配 233
9.8.1 C程式存儲空間布局 233
9.8.2 動態記憶體分配函式 233
9.9 案例—以指針為編程手段改寫
“學生成績管理系統” 236
9.9.1 任務描述 236
9.9.2 數據描述 236
9.9.3 算法描述 236
9.9.4 程式實現 236
本章小結 240
探究性題目:使用C語言實現動態數組 241
第10章 結構體與共用體 242
10.1 引例 242
10.2 結構體類型與結構體變數 243
10.2.1 結構體類型的聲明 243
10.2.2 結構體變數的定義 245
10.2.3 結構體變數的引用和初
始化 246
10.3 結構體數組 250
10.3.1 結構體數組的定義和初
始化 250
10.3.2 結構體數組套用舉例
251
10.4 指向結構體類型數據的指針
252
10.4.1 指向結構體變數的指針 252
10.4.2 指向結構體數組的指針 254
10.4.3 結構體變數和指向結構體的指針作函式參數 255
10.5 線性表 259
10.5.1 線性表概述 259
10.5.2 線性表的順序表示和實現 259
10.5.3 線性表的鏈式表示和實現 261
10.6 共用體 265
10.6.1 共用體的概念 265
10.6.2 共用體變數的引用方式 266
10.6.3 共用體的數據類型的數據
特徵 267
10.7 枚舉類型 268
10.8 用typedef聲明新類型名 269
10.9 案例—以線性表為數據結構改
寫“學生成績管理系統” 270
10.9.1 任務描述 270
10.9.2 數據描述 271
10.9.3 算法描述 271
10.9.4 程式實現 271
本章小結 275
探究性題目:用C語言實現Excel中多欄位排序 276
第11章 檔案 277
11.1 引例 277
11.2 C檔案概述 277
11.2.1 檔案 277
11.2.2 檔案標識 278
11.2.3 檔案的分類 278
11.2.4 檔案緩衝區 279
11.2.5 檔案類型指針 280
11.2.6 C語言中檔案操作的基本
步驟 281
11.3 檔案的打開與關閉 282
11.3.1 檔案的打開 282
11.3.2 檔案的關閉 283
11.4 檔案的順序讀寫 283
11.4.1 字元的讀寫 283
11.4.2 字元串的讀寫 285
11.4.3 格式化讀寫 288
11.4.4 數據塊的讀寫 289
11.5 檔案的隨機讀寫 291
11.6 檔案讀寫的出錯檢測 293
11.7 案例—“學生成績管理系統”中學生數據 檔案的輸入與輸出 294
本章小結 297
探究性題目:漢字點陣字型檔中漢字點陣的提取與顯示操作初探 298
附錄A C語言中的關鍵字 299
附錄B C運算符的優先權與結合性 300
附錄C 常用ASCII字元表 301
附錄D 常用庫函式 302
參考文獻 306