內容簡介
C語言是程式設計師的入門語言,也是許多大學為學生安排的第一門程式設計課程。本書的主要內容包括:C語言概述、C語言的基本知識、順序和選擇結構程式設計、循環結構程式設計、函式、數組、指針、結構體等構造數據類型和檔案。全書通過大量的實例講解了用C語言進行結構化程式設計的要領。
為了方便讀者參加全國計算機等級考試二級C語言程式設計的考試,本版教材將最新的一次考試的題目分門別類,按照對應的學習內容在第2~8章的最後一節做了講解。
本書適合作為高等學校套用型本科學生學習C程式設計課程的教材,也可作為高職高專學生學習C語言程式設計課程的教材以及C語言自學者的教材或參考書。
圖書目錄
第1章 C語言概述 1
1.1 程式與程式設計語言 1
1.1.1 程式 1
1.1.2 程式設計語言 2
1.2 C語言發展概述和主要特點 3
1.2.1 C語言的發展歷史 3
1.2.2 C語言的主要特點 4
1.3 C語言的基本結構 5
1.3.1 第一個程式 5
1.3.2 第二個程式 6
1.3.3 printf()函式使用初步 6
1.3.4 第三個程式 7
1.4 程式的調試 7
1.4.1 調試步驟 7
1.4.2 在Visual C++ 6.0 調試環境
下調試第一個程式 8
本章小結 11
習題 11
第2章 C語言的基本知識 13
2.1 字元集和標識符 13
2.1.1 字元集 13
2.1.2 標識符 14
2.2 變數與常量 15
2.2.1 變數 15
2.2.2 常量 17
2.3 C語言的數據類型 18
2.3.1 為什麼要討論數據類型 18
2.3.2 C語言有哪些數據類型 20
2.3.3 基本數據類型 20
2.4 整型數據 20
2.4.1 整型數據在記憶體中的
存儲方式 21
2.4.2 整型變數 22
2.4.3 整型常量 22
2.4.4 用printf()顯示整型數據 23
2.4.5 用scanf()輸入整型數據 24
2.5 浮點數 26
2.5.1 浮點數據在記憶體中的
存儲方式 26
2.5.2 浮點變數 26
2.5.3 浮點常量 27
2.5.4 用printf()顯示浮點數據 27
2.5.5 用scanf()輸入浮點數據 28
2.6 字元型數據 28
2.6.1 字元數據在記憶體中的
存儲方式 29
2.6.2 字元變數與字元常量 29
2.6.3 用printf()顯示字元 30
2.6.4 用scanf()輸入字元 31
2.6.5 用getchar()輸入字元和
用putchar()輸出字元 31
2.6.6 字元串常量 33
2.7 不同數據類型數據間的混合運算 33
2.7.1 自動轉換 33
2.7.2 強制轉換 34
2.7.3 賦值表達式的類型轉換 34
2.8 典型錯誤及典型例題 36
本章小結 39
習題 39
第3章 順序和選擇結構程式設計 41
3.1 結構化程式設計 41
3.1.1 結構化程式設計思想的
產生 41
3.1.2 結構化程式設計的三種
基本結構 42
3.2 語句與分程式 45
3.3 順序結構程式設計 46
3.4 算術運算符與賦值運算符 48
3.4.1 算術運算符的種類及運算 48
3.4.2 算術表達式及算術
運算符的優先權 49
3.4.3 算術運算符的結合性 49
3.4.4 普通賦值運算符 50
3.4.5 複合賦值運算符 50
3.5 選擇結構程式設計 51
3.5.1 問題提出與程式示例 51
3.5.2 if形式 52
3.5.3 if…else 形式 55
3.5.4 else if形式 57
3.5.5 嵌套的if語句 60
3.6 關係運算符與邏輯運算符 62
3.6.1 關係運算符 63
3.6.2 邏輯運算符 63
3.7 自增/自減運算符 64
3.8 求位元組數運算符 65
3.9 switch語句 67
3.10 條件運算符 71
3.11 程式舉例 72
3.12 典型錯誤及典型例題 75
本章小結 81
習題 81
第4章 循環結構程式設計 83
4.1 問題提出與程式示例 83
4.2 while語句 85
4.2.1 while 語句的語法和
流程圖 85
4.2.2 使用while 語句需要
注意的問題 87
4.3 do…while語句 89
4.3.1 do…while語句的語法和
流程圖 89
4.3.2 使用do…while語句解決
問題 89
4.3.3 使用do…while 語句需要
注意的問題 91
4.4 for語句 92
4.4.1 for語句的語法和流程圖 92
4.4.2 使用for語句解決問題 93
4.4.3 使用for語句需要注意的
問題 94
4.5 多重循環 95
4.6 break語句在循環語句中的用法 97
4.7 continue語句 99
4.7.1 continue語句的用法 99
4.7.2 break語句與continue語句
的區別 100
4.8 程式舉例 100
4.9 典型錯誤及典型例題 107
本章小結 110
習題 110
第5章 函式 112
5.1 問題提出與程式示例 112
5.2 函式基礎 113
5.3 函式的定義 114
5.3.1 函式的定義形式 114
5.3.2 函式的返回值 116
5.4 函式調用 117
5.4.1 函式的調用方式 117
5.4.2 嵌套調用 118
5.5 函式說明 120
5.6 參數傳遞 121
5.6.1 形參和實參 121
5.6.2 形參的數據類型 122
5.7 遞歸調用 124
5.8 變數的存儲類別 128
5.8.1 自動變數與外部變數 129
5.8.2 靜態變數 133
5.8.3 暫存器變數 135
5.9 典型錯誤及典型例題 135
本章小結 139
習題 140
第6章 數組 141
6.1 問題提出與程式示例 141
6.2 一維數組 143
6.2.1 一維數組的定義 143
6.2.2 一維數組的引用 144
6.2.3 一維數組的初始化 145
6.2.4 程式舉例 146
6.3 二維數組 150
6.3.1 二維數組的定義 150
6.3.2 二維數組的引用 151
6.3.3 二維數組的初始化 152
6.3.4 程式舉例 153
6.4 數組作為函式的參數 154
6.5 字元串與字元串函式 157
6.5.1 字元數組 157
6.5.2 字元串變數 158
6.5.3 字元串變數的輸入與輸出 159
6.5.4 字元串函式 161
6.5.5 程式舉例 165
6.6 典型錯誤及典型例題 172
本章小結 177
習題 177
第7章 指針 180
7.1 指針類型與指針運算符 180
7.1.1 指針數據類型 181
7.1.2 指針運算符&和*的使用 182
7.2 空間的動態分配與指針運算 183
7.2.1 問題提出和程式示例 183
7.2.2 空指針 184
7.2.3 存儲器申請 184
7.2.4 存儲器釋放 185
7.2.5 指針值的算術運算 185
7.3 指針與函式 190
7.3.1 形參的數據類型是指針
類型 190
7.3.2 返回指針值的函式 192
7.3.3 指向函式的指針 194
7.4 指針與一維數組 197
7.4.1 問題提出與程式示例 197
7.4.2 數組名及指針作為函式
參數 200
7.4.3 指針與字元串 202
7.5 二級指針 204
7.6 指針數組 206
7.6.1 問題提出與程式示例 206
7.6.2 指針數組的定義和使用 207
7.7 指針與二維數組 209
7.7.1 用指針方法操作二維
數組 209
7.7.2 動態的二維數組 210
7.7.3 用指向數組的指針操作
二維數組 212
7.8 命令行參數 214
7.9 典型錯誤及典型例題 219
本章小結 224
習題 225
第8章 結構體等構造數據類型 227
8.1 結構體 227
8.1.1 問題提出與程式示例 227
8.1.2 結構體的說明和結構體
變數的定義 228
8.1.3 結構體成員的引用 229
8.1.4 結構體的初始化 230
8.2 結構體數組 231
8.3 結構體與指針 232
8.3.1 指向結構體的指針 232
8.3.2 結構體中的成員包含
指針 235
8.3.3 用結構體類型指針
建立鍊表 236
8.4 結構體與函式 241
8.4.1 結構體數據作為函式的
參數 241
8.4.2 返回指向結構體的指針的
函式 242
8.5 聯合體 243
8.5.1 問題提出與程式示例 243
8.5.2 聯合體的說明和聯合體
變數的定義 245
8.5.3 聯合體變數成員的引用 246
8.5.4 指向聯合體變數的指針 246
8.5.5 聯合體變數與函式 247
8.6 枚舉 249
8.6.1 枚舉的說明和枚舉變數的
定義 249
8.6.2 枚舉變數的使用 250
8.7 類型定義 251
8.8 程式舉例 252
8.9 典型錯誤及典型例題 255
本章小結 261
習題 261
第9章 檔案 264
9.1 問題提出與程式示例 264
9.2 檔案操作的基本方法和
相關概念 265
9.2.1 數據檔案 265
9.2.2 檔案類型指針 265
9.2.3 檔案的打開 266
9.2.4 檔案的關閉 268
9.2.5 檔案操作順序 269
9.2.6 C語言的設備檔案 270
9.3 檔案的讀/寫操作 270
9.3.1 fputc()函式與fgetc()函式 270
9.3.2 fprintf()函式與fscanf()
函式 274
9.3.3 fread()函式與fwrite()函式 277
9.3.4 fgets()函式和fputs()函式 280
9.4 檔案的定位 281
9.4.1 檔案的順序存取和隨機
存取 281
9.4.2 rewind()函式 281
9.4.3 fseek()函式 282
9.5 程式舉例 283
本章小結 288
習題 288
附錄A ASCII碼與字元對照表 291
附錄B 運算符的優先權和結合性 293
附錄C printf()函式的轉換說明模式 295
附錄D 預處理命令的使用 297
參考文獻 301