本書注重培養(yǎng)讀者的程序閱讀能力和程序設計能力,是一本集知識性和實用性為一體的C語言程序設計教材。全書由10章組成,全面系統(tǒng)地介紹了C語言的基本語法和基本結(jié)構(gòu)、流程控制、數(shù)組、函數(shù)、指針、結(jié)構(gòu)體與共用體、編譯預處理、位運算、文件等內(nèi)容;介紹了結(jié)構(gòu)化程序設計思想和方法以及解決實際問題的技巧。
本書結(jié)構(gòu)合理、邏輯性強、通俗易懂,注重C語言在學科中的基礎地位。大部分章節(jié)從實際問題導引,在分析問題的過程中引出知識點,形成較為清晰的思路和知識主線。全書將概念、知識點與案例相結(jié)合,應用實例貫穿始末,盡可能地適應讀者的接受能力,力求將復雜的概念用簡潔淺顯的語言來描述,做到深入淺出。本書配有《C語言程序設計實驗指導與課程設計》教材,還配有可以向任課教師免費提供的多媒體教學課件、例題代碼和習題解答。
本書既可作為高等院校理工類專業(yè)計算機程序設計課程教學用書,也可作為等級考試的輔導用書和自學參考書
1.本書結(jié)構(gòu)合理、邏輯性強、通俗易懂,注重C語言在學科中的基礎地位。
2.全書將概念、知識點與案例相結(jié)合,應用實例貫穿始末。
3.本書配有《C語言程序設計實驗指導與課程設計》教材,并配有多媒體教學課件、例題代碼和習題解答,可以向任課教師免費提供。
郭有強教授,主要研究方向數(shù)據(jù)挖掘、網(wǎng)絡信息處理、優(yōu)化算法研究,擁有幾十年的C語言教學經(jīng)驗,創(chuàng)造出獨特的教學方法,受益學生上萬人。
第1章 C語言概述 1
1.1 程序設計概述 1
1.1.1 程序設計語言 1
1.1.2 C語言的發(fā)展 2
1.1.3 C語言的特點 2
1.2 C語言程序的語法 3
1.2.1 C語言的字符集、詞匯和語句 5
1.2.2 數(shù)據(jù)類型 8
1.2.3 常量 9
1.2.4 變量 12
1.2.5 各類數(shù)值型數(shù)據(jù)間的混合運算及數(shù)據(jù)類型轉(zhuǎn)換 16
1.2.6 標準庫函數(shù)和輸入、輸出函數(shù) 17
1.3 基本運算符和表達式 25
1.3.1 運算符、表達式、優(yōu)先級和結(jié)合性 26
1.3.2 算術(shù)運算符與算術(shù)表達式 28
1.3.3 賦值運算符與賦值表達式 29
1.3.4 自增、自減運算符與表達式 32
1.3.5 關系運算符與關系表達式 33
1.3.6 邏輯運算符與邏輯表達式 34
1.3.7 逗號運算符及逗號表達式 36
1.3.8 條件運算符與條件表達式 36
1.3.9 sizeof運算符 37
1.4 C語言程序的開發(fā)過程 37
1.4.1 問題分析與算法設計 37
1.4.2 編輯程序 39
1.4.3 編譯與連接 40
1.4.4 運行與調(diào)試 41
本章小結(jié) 42
習題1 42
第2章 程序流程控制 46
2.1 順序結(jié)構(gòu)程序設計 46
2.2 選擇結(jié)構(gòu)程序設計 47
2.2.1 if語句 47
2.2.2 switch語句 52
2.3 循環(huán)結(jié)構(gòu)程序設計 55
2.3.1 while語句 55
2.3.2 do-while語句 58
2.3.3 for循環(huán) 59
2.3.4 循環(huán)的嵌套 61
2.3.5 幾種循環(huán)的比較 65
2.4 幾種控制語句 65
2.4.1 break語句 65
2.4.2 continue語句 66
2.4.3 return語句 66
本章小結(jié) 67
習題2 68
第3章 數(shù)組 72
3.1 一維數(shù)組 72
3.2 二維數(shù)組與多維數(shù)組 78
3.2.1 二維數(shù)組 78
3.2.2 多維數(shù)組 83
3.3 字符數(shù)組 83
3.3.1 字符數(shù)組的定義與初始化 83
3.3.2 字符串與字符數(shù)組 85
3.3.3 字符數(shù)組的輸入和輸出 86
3.3.4 字符串處理函數(shù) 87
本章小結(jié) 93
習題3 93
第4章 函數(shù) 100
4.1 函數(shù) 100
4.2 函數(shù)參數(shù) 106
4.2.1 值傳遞方式 106
4.2.2 地址傳遞方式 107
4.2.3 數(shù)組作為函數(shù)參數(shù) 109
4.3 函數(shù)的嵌套調(diào)用與遞歸調(diào)用 112
4.3.1 函數(shù)的嵌套調(diào)用 112
4.3.2 函數(shù)的遞歸調(diào)用 113
4.4 變量的存儲類別與作用域 115
4.4.1 變量的作用域:局部變量和全局變量 115
4.4.2 變量的存儲類別 118
本章小結(jié) 123
習題4 123
第5章 指針 130
5.1 地址、指針、指針變量 130
5.1.1 地址 130
5.1.2 指針 131
5.1.3 指針變量 131
5.2 指針的運算 134
5.2.1 指針的算術(shù)運算 134
5.2.2 指針的關系運算 135
5.2.3 多級指針 136
5.2.4 指向void類型的指針 137
5.3 指針變量作為函數(shù)參數(shù) 137
5.4 指針與數(shù)組 141
5.4.1 指向一維數(shù)組的指針變量 142
5.4.2 數(shù)組指針作函數(shù)參數(shù) 144
5.4.3 指向二維數(shù)組的指針變量 148
5.4.4 內(nèi)存的動態(tài)分配 152
5.5 指針與字符串 154
5.5.1 字符串的指針表示 154
5.5.2 字符串指針作函數(shù)參數(shù) 156
5.5.3 字符串指針變量與字符數(shù)組的區(qū)別 157
5.6 指針數(shù)組 158
5.6.1 指針數(shù)組的概念 158
5.6.2 帶參數(shù)的main函數(shù) 161
5.7 指針與函數(shù) 163
5.7.1 指針型函數(shù) 163
5.7.2 指向函數(shù)的指針變量 164
本章小結(jié) 165
習題5 167
第6章 結(jié)構(gòu)體與共用體 173
6.1 結(jié)構(gòu)體類型的定義與應用 173
6.1.1 結(jié)構(gòu)體類型的定義 173
6.1.2 結(jié)構(gòu)體變量的定義與引用 174
6.2 結(jié)構(gòu)體數(shù)組的定義與應用 178
6.2.1 對結(jié)構(gòu)體數(shù)組元素的操作 178
6.2.2 結(jié)構(gòu)體數(shù)組作為函數(shù)參數(shù) 180
6.3 指向結(jié)構(gòu)體的指針 184
6.3.1 指向結(jié)構(gòu)體變量的指針 184
6.3.2 指向結(jié)構(gòu)體數(shù)組的指針 185
6.4 鏈表 186
6.4.1 單鏈表的建立 186
6.4.2 單鏈表的基本操作 191
6.5 共用體類型的定義與應用 196
6.6 枚舉類型的定義與應用 200
6.7 typedef重定義類型名 201
本章小結(jié) 202
習題6 203
第7章 編譯預處理 209
7.1 編譯預處理 209
7.2 宏定義與宏替換 209
7.3 文件包含 214
7.4 條件編譯 215
本章小結(jié) 218
習題7 218
第8章 位運算 222
8.1 數(shù)的機器碼表示方法 222
8.1.1 字節(jié)與位 222
8.1.2 原碼、反碼、補碼 222
8.2 位運算符和位運算 223
8.2.1 按位取反運算符~ 224
8.2.2 按位與運算符& 224
8.2.3 按位或運算符| 225
8.2.4 按位異或運算符^ 226
8.2.5 左位移運算符<< 226
8.2.6 右位移運算符>> 228
8.3 位域(位段) 229
8.3.1 位域的定義和位域變量的說明 229
8.3.2 位域的使用 231
本章小結(jié) 232
習題8 232
第9章 文件 235
9.1 文件及文件指針 235
9.1.1 文件的概念 235
9.1.2 文件指針 236
9.2 文件的打開與關閉 237
9.2.1 文件的打開(fopen函數(shù)) 237
9.2.2 文件關閉函數(shù)(fclose函數(shù)) 238
9.3 文件的讀寫 238
9.3.1 字符讀寫函數(shù)fgetc和fputc 239
9.3.2 字符串讀寫函數(shù)fgets和fputs 241
9.3.3 數(shù)據(jù)塊讀寫函數(shù)fread和fwrite 242
9.3.4 格式化讀寫函數(shù)fscanf和fprintf 245
9.4 文件的隨機讀寫 246
9.4.1 文件定位 246
9.4.2 文件的隨機讀寫 247
9.5 文件檢測函數(shù) 249
本章小結(jié) 249
習題9 249
第10章 綜合實訓 253
10.1 通信錄管理程序 253
10.1.1 項目要求 253
10.1.2 項目分析 253
10.1.3 總體設計 253
10.1.4 代碼實現(xiàn) 254
10.1.5 測試結(jié)果 261
10.2 學生成績管理系統(tǒng) 262
10.2.1 項目要求 262
10.2.2 項目分析 262
10.2.3 總體設計 262
10.2.4 代碼實現(xiàn) 263
10.2.5 測試結(jié)果 275
本章小結(jié) 275
附錄A 標準ASCII碼表 276
附錄B 運算符的優(yōu)先級和結(jié)合性 278
附錄C C語言的庫函數(shù) 280
參考文獻 286