本書通過介紹C語言的基本概念和大量的習題讓讀者掌握C語言。為滿足廣大讀者學習C語言程序設計知識、熟練掌握編程技巧、備考和應考的需要,本書系統介紹了C語言的基本語法,包括數據類型及運算規律、基本語句、結構控制、數組和函數等,并介紹了編譯預處理、指針、結構體、共用體、位運算和文件操作等較深層次的內容。本書根據當前學生的學習特點,緊扣C語言教學大綱的要求精心編寫。 在本書的編寫過程中,充分考慮了計算機等級考試的性質和學生學習及應試的特點,列出了各章的重點、難點及主要內容,其中絕大部分習題和例題都是平常學習C語言的一些典型例子。其目的是幫助讀者在學習過程中把握重點,掌握典型題目,有的放矢地學習,以便在各類考試中發揮出應有水平,取得滿意效果。 本書適合開設C語言課程的高等院校學生使用,也可作為C語言自學者及備考者的參考用書。目 錄
第1章 C語言入門 1
1.1 基本概念 1
1.1.1 C語言 1
1.1.2 C語法單位 1
1.1.3 C程序 4
1.1.4 程序的實現 4
1.1.5 數據 5
1.1.6 指令 5
1.1.7 編譯系統和解釋系統 5
1.2 基本理論 6
1.2.1 C語言的特點 6
1.2.2 C程序的特性 6
1.2.3 算法的特性 7
1.2.4 算法的表示方法 8
1.2.5 C源程序的書寫規范 8
1.2.6 程序設計方法 8
1.2.7 程序上機步驟 9
1.3 典型例題 10
1.4 習題 19
1.4.1 選擇題 19
1.4.2 填空題 20
第2章 數據類型、運算符與表達式 22
2.1 基本概念 22
2.1.1 數據類型 22
2.1.2 運算符 25
2.1.3 表達式 28
2.1.4 常量 29
2.1.5 變量 32
2.2 基本理論 33
2.2.1 數據類型間的轉換 33
2.2.2 變量的賦值 35
2.3 典型例題 36
2.4 習題 47
2.4.1 選擇題 47
2.4.2 填空題 49
第3章 順序結構設計 52
3.1 基本概念 52
3.1.1 C語句 52
3.1.2 getchar函數 53
3.1.3 putchar函數 54
3.1.4 scanf函數 54
3.1.5 printf格式輸出函數 56
3.1.6 賦值語句 56
3.2 基本理論 57
3.3 典型例題 57
3.4 習題 68
3.4.1 選擇題 68
3.4.2 填空題 72
第4章 選擇結構程序 77
4.1 基本概念 77
4.1.1 關系運算符及其優先次序 77
4.1.2 關系表達式 78
4.1.3 邏輯運算符及其優先次序 78
4.1.4 邏輯表達式 79
4.1.5 條件運算符 81
4.2 基本理論 82
4.2.1 if語句的形式 82
4.2.2 if語句的嵌套 84
4.2.3 switch語句 85
4.3 典型例題 87
4.4 習題 100
4.4.1 選擇題 100
4.4.2 填空題 104
第5章 循環控制 109
5.1 基本概念 109
5.1.1 goto語句 109
5.1.2 while語句 109
5.1.3 do…while語句 110
5.1.4 for語句 111
5.1.5 循環的嵌套 114
5.1.6 break語句 115
5.1.7 continue語句 115
5.2 基本理論 115
5.3 典型例題 116
5.4 習題 130
5.4.1 選擇題 130
5.4.2 填空題 133
第6章 數組 139
6.1 基本概念 139
6.1.1 一維數組的定義 139
6.1.2 二維數組的定義 139
6.1.3 字符數組的定義 140
6.2 基本理論 141
6.2.1 一維數組的初始化 141
6.2.2 一維數組元素的引用 142
6.2.3 二維數組的初始化 143
6.2.4 二維數組的引用 144
6.2.5 字符數組的初始化和引用 145
6.2.6 字符串和字符結束標志 145
6.2.7 字符數組的輸入輸出 146
6.2.8 字符串處理函數 148
6.3 典型例題 151
6.4 習題 175
6.4.1 選擇題 175
6.4.2 填空題 181
第7章 函數 187
7.1 基本概念 187
7.1.1 函數 187
7.1.2 局部變量 188
7.1.3 全局變量 188
7.1.4 動態存儲變量 189
7.1.5 靜態存儲變量 190
7.1.6 內部函數 192
7.1.7 外部函數 192
7.2 基本理論 193
7.2.1 函數定義的形式 193
7.2.2 函數參數和值 194
7.2.3 函數的調用 195
7.2.4 函數的嵌套調用 195
7.2.5 函數的遞歸調用 196
7.3 典型例題 197
7.4 習題 216
7.4.1 選擇題 216
7.4.2 填空題 221
第8章 預編譯 228
8.1 基本概念 228
8.1.1 預編譯 228
8.1.2 宏定義 228
8.1.3 文件包含 230
8.1.4 條件編譯 231
8.2 典型例題 232
8.3 習題 242
8.3.1 選擇題 242
8.3.2 填空題 244
第9章 指針 247
9.1 基本概念 247
9.1.1 指針與指針變量 247
9.1.2 指針常量與變量 247
9.1.3 指針變量指向單一 變量地址 248
9.1.4 指針變量指向數組 變量地址 249
9.1.5 函數的指針和指向函數 的指針變量 254
9.1.6 返回指針值的函數 255
9.1.7 指針變量指向動態 分配的內存 255
9.1.8 指針數組 255
9.2 基本理論 256
9.2.1 指針的基本屬性 256
9.2.2 與指針有關的運算 256
9.2.3 指針與數組的關系 258
9.2.4 用指向函數的指針變量作 為函數的參數 258
9.2.5 正確建立指針對象的方法 258
9.2.6 指針與數組的復合類型 259
9.3 典型例題 260
9.4 習題 276
9.4.1 選擇題 276
9.4.2 填空題 279
第10章 結構體與共用體 285
10.1 基本概念 285
10.1.1 結構體變量的定義 285
10.1.2 結構體數組及其初始化 287
10.1.3 指向結構體類型 數據的指針 288
10.1.4 鏈表 289
10.1.5 共用體(聯合)類型 變量定義 289
10.1.6 枚舉類型 290
10.1.7 用typedef定義新類型 291
10.2 基本理論 293
10.2.1 結構體類型變量的 使用規則 293
10.2.2 結構體類型變量的 初始化 294
10.2.3 共用體變量的引用 方式和特點 294
10.2.4 結構變量與函數 295
10.2.5 創建、輸出和連接鏈表 295
10.3 典型例題 296
10.4 習題 312
10.4.1 選擇題 312
10.4.2 填空題 320
第11章 文件 326
11.1 基本概念 326
11.1.1 C文件 326
11.1.2 文件指針 326
11.1.3 fopen()函數 327
11.1.4 fclose()函數 327
11.1.5 文件讀取函數 328
11.1.6 寫入文件函數 328
11.1.7 文件的隨機讀寫函數 328
11.1.8 feof()和rewind()函數 329
11.1.9 open()和close()函數 329
11.1.10 read()函數和write()函數 330
11.1.11 隨機定位函數 330
11.2 典型例題 330
11.3 習題 338
11.3.1 選擇題 338
11.3.2 填空題 342
第12章 位運算 346
12.1 基本概念 346
12.1.1 位運算 346
12.1.2 字節與位 346
12.1.3 數的表達方式 347
12.1.4 符號表達式 348
12.1.5 位運算符 348
12.1.6 按位與運算符 349
12.1.7 按位或運算 349
12.1.8 異或運算符 349
12.1.9 取反運算符 349
12.1.10 左移和右移運算符 350
12.1.11 位段 350
12.2 典型例題 351
12.3 習題 355
12.3.1 選擇題 355
12.3.2 填空題 358
附錄 習題答案 361