C語言是一門基礎(chǔ)性的程序設(shè)計語言,學習C語言有助于計算機專業(yè)的學生更好地學習其他程序設(shè)計語言。本書的主要內(nèi)容包括:C語言程序設(shè)計基礎(chǔ)、順序結(jié)構(gòu)程序設(shè)計、選擇結(jié)構(gòu)程序設(shè)計、循環(huán)結(jié)構(gòu)程序設(shè)計、數(shù)組、函數(shù)、指針、結(jié)構(gòu)體、文件、位運算等內(nèi)容。書中每章都提供了豐富的案例和精心挑選的課后練習題,重點章節(jié)還提供了相關(guān)實訓項目。本書體系結(jié)構(gòu)完整,內(nèi)容介紹深入淺出,注重理論與實踐相結(jié)合,每個案例都經(jīng)過精心調(diào)試并配有源代碼和運行結(jié)果,方便讀者學習。
曾昭江,軟件設(shè)計師,講師。曾獲”藍橋杯”全國軟件大賽廣東賽區(qū)(Java高職組)優(yōu)秀指導教師獎,曾參與高職高專人才水平評估中專業(yè)剖析與說課等工作。主要擔任C語言、Java面向?qū)ο蟪绦蛟O(shè)計、PHP程序設(shè)計、網(wǎng)站建設(shè)與管理等課程的教學。并在國家相關(guān)刊物發(fā)表專業(yè)論文多篇,參與科研課題多項,并參與《計算機應(yīng)用基礎(chǔ)》、《數(shù)據(jù)庫原理與應(yīng)用》精品課程的建設(shè)。
目錄
第1章 C語言程序設(shè)計基礎(chǔ) 1
1.1 程序與程序設(shè)計語言 1
1.1.1 程序 1
1.1.2 程序設(shè)計語言 2
1.2 算法的概念及描述 3
1.2.1 算法的概念 3
1.2.2 算法的描述 4
1.2.3 常用算法 6
1.3 C語言的發(fā)展及特點 7
1.3.1 C語言的發(fā)展 7
1.3.2 C語言的特點 7
1.4 C語言程序的基本結(jié)構(gòu) 8
1.4.1 結(jié)構(gòu)化程序設(shè)計 8
1.4.2 C語言程序的結(jié)構(gòu) 9
1.5 C語言程序的開發(fā)環(huán)境 9
1.5.1 在Visual C++ 6.0中開發(fā)C語言程序 10
1.5.2 使用Dev C++開發(fā)C語言程序 12
1.6 C語言程序舉例 14
本章小結(jié) 16
習題1 17
第2章 順序結(jié)構(gòu)程序設(shè)計 19
2.1 順序結(jié)構(gòu)程序舉例 19
2.2 數(shù)據(jù)的表現(xiàn)形式 21
2.2.1 常量和變量 21
2.2.2 C語言中的數(shù)據(jù)類型 22
2.2.3 整型數(shù)據(jù) 23
2.2.4 實型數(shù)據(jù) 25
2.2.5 字符型數(shù)據(jù) 26
2.2.6 枚舉類型數(shù)據(jù) 28
2.3 運算符和表達式 28
2.3.1 C語言中的運算符 28
2.3.2 算術(shù)運算符和算術(shù)表達式 29
2.3.3 關(guān)系運算符和關(guān)系表達式 31
2.3.4 邏輯運算符和邏輯表達式 32
2.3.5 賦值運算符和賦值表達式 34
2.4 C語言中的語句 35
2.4.1 C語言中的語句的分類及作用 35
2.4.2 賦值語句 36
2.5 數(shù)據(jù)的輸入/輸出 37
2.5.1 printf()函數(shù)輸出數(shù)據(jù) 37
2.5.2 scanf()函數(shù)輸入數(shù)據(jù) 39
2.5.3 字符的輸入/輸出 40
本章小結(jié) 41
習題2 42
第3章 選擇結(jié)構(gòu)程序設(shè)計 45
3.1 選擇結(jié)構(gòu)程序舉例 45
3.2 選擇結(jié)構(gòu)和條件判斷 47
3.3 if語句實現(xiàn)選擇結(jié)構(gòu) 48
3.3.1 if語句實現(xiàn)選擇結(jié)構(gòu)舉例 49
3.3.2 簡單的if語句結(jié)構(gòu) 51
3.3.3 if-else語句結(jié)構(gòu) 51
3.3.4 if-else-if語句結(jié)構(gòu) 52
3.4 選擇結(jié)構(gòu)的嵌套 54
3.4.1 if語句的3種應(yīng)用 54
3.4.2 if語句的嵌套 55
3.4.3 if語句嵌套的應(yīng)用 56
3.5 switch語句實現(xiàn)多分支選擇結(jié)構(gòu) 57
3.5.1 switch語句的一般形式 58
3.5.2 switch語句的實際應(yīng)用 59
本章小結(jié) 62
習題3 62
第4章 循環(huán)結(jié)構(gòu)程序設(shè)計 65
4.1 循環(huán)結(jié)構(gòu)程序舉例 65
4.2 while語句實現(xiàn)循環(huán)結(jié)構(gòu) 66
4.3 do-while語句實現(xiàn)循環(huán)結(jié)構(gòu) 68
4.4 for語句實現(xiàn)循環(huán)結(jié)構(gòu) 70
4.5 幾種循環(huán)結(jié)構(gòu)的比較 73
4.6 循環(huán)結(jié)構(gòu)的嵌套 73
4.7 改變循環(huán)執(zhí)行的狀態(tài) 74
4.7.1 break語句提前結(jié)束整個循環(huán) 74
4.7.2 continue語句提前結(jié)束本次循環(huán) 76
4.7.3 break語句和continue語句的區(qū)別 76
本章小結(jié) 77
習題4 78
第5章 數(shù)組 81
5.1 一維數(shù)組的定義、引用和初始化 81
5.1.1 一維數(shù)組的定義 81
5.1.2 一維數(shù)組的引用 82
5.1.3 一維數(shù)組的初始化 84
5.1.4 一維數(shù)組程序舉例 84
5.2 二維數(shù)組的定義、引用和初始化 88
5.2.1 二維數(shù)組的定義 88
5.2.2 二維數(shù)組的引用 89
5.2.3 二維數(shù)組的初始化 90
5.2.4 二維數(shù)組程序舉例 91
5.3 字符數(shù)組的定義、引用和初始化 93
5.3.1 字符數(shù)組的定義 93
5.3.2 字符數(shù)組的初始化 94
5.3.3 字符數(shù)組的引用 95
5.3.4 字符串處理函數(shù) 96
5.3.5 字符數(shù)組程序舉例 101
本章小結(jié) 102
習題5 103
第6章 函數(shù) 107
6.1 概述 107
6.2 函數(shù)的定義 108
6.2.1 無參函數(shù)的定義 108
6.2.2 有參函數(shù)的定義 109
6.2.3 空函數(shù)的定義 109
6.3 函數(shù)的參數(shù)和返回值 110
6.3.1 形參和實參 110
6.3.2 函數(shù)的返回值 111
6.4 函數(shù)的調(diào)用和聲明 114
6.4.1 調(diào)用函數(shù)的一般形式 114
6.4.2 調(diào)用函數(shù)的方式 115
6.4.3 函數(shù)的聲明 116
6.5 函數(shù)的嵌套調(diào)用 118
*6.6 函數(shù)的遞歸調(diào)用 120
*6.7 數(shù)組作為函數(shù)的參數(shù) 124
*6.8 函數(shù)中變量的作用域 127
6.8.1 局部變量 127
6.8.2 全局變量 128
本章小結(jié) 131
習題6 131
第7章 指針 134
7.1 變量的地址和指針 134
7.2 指針變量的定義和基類型 135
7.3 為指針變量賦值 137
7.3.1 為指針變量賦地址值 137
7.3.2 為指針變量賦其他值 139
7.4 對指針變量的操作 140
7.4.1 指針變量的賦值運算 140
7.4.2 指針變量的算術(shù)運算 142
7.4.3 指針變量的關(guān)系運算 143
*7.5 函數(shù)之間地址值的傳遞 144
7.5.1 指針變量作為函數(shù)的參數(shù) 144
7.5.2 指針變量作為函數(shù)返回的地址值 146
本章小結(jié) 148
習題7 149
第8章 結(jié)構(gòu)體 152
8.1 結(jié)構(gòu)體類型 152
8.2 結(jié)構(gòu)體變量 153
8.2.1 結(jié)構(gòu)體變量的定義 153
8.2.2 結(jié)構(gòu)體變量的引用 155
8.2.3 結(jié)構(gòu)體變量的初始化 156
8.3 結(jié)構(gòu)體數(shù)組 157
8.3.1 結(jié)構(gòu)體數(shù)組的定義 157
8.3.2 結(jié)構(gòu)體數(shù)組的初始化 158
8.3.3 結(jié)構(gòu)體數(shù)組的應(yīng)用 159
本章小結(jié) 160
習題8 160
第9章 文件 163
9.1 文件的相關(guān)概念 163
9.1.1 文件的分類 163
9.1.2 文件指針變量 163
9.2 文件的打開與關(guān)閉 164
9.2.1 文件的打開 164
9.2.2 文件的關(guān)閉 164
9.3 文件的順序讀寫 165
9.3.1 fputc()函數(shù)和fgetc()函數(shù) 165
9.3.2 fgets()函數(shù)和fputs()函數(shù) 167
9.3.3 fprintf()函數(shù)和fscanf()函數(shù) 168
*9.4 文件的隨機讀寫 169
*9.5 文件操作的出錯檢測 171
本章小結(jié) 171
習題9 171
第10章 位運算 173
10.1 位運算符和位運算 173
10.1.1 按位與運算符 173
10.1.2 按位或運算符 174
10.1.3 按位異或運算符 175
10.1.4 取反運算符 176
10.1.5 左移運算符 177
10.1.6 右移運算符 177
10.1.7 位運算符與賦值運算符組合 178
10.1.8 不同長度的數(shù)據(jù)進行位運算 178
10.2 位運算程序舉例 178
10.3 位段 179
本章小結(jié) 182
習題10 182
實訓1 順序結(jié)構(gòu)程序設(shè)計 184
實訓2 選擇結(jié)構(gòu)程序設(shè)計 185
實訓3 循環(huán)結(jié)構(gòu)程序設(shè)計 186
實訓4 數(shù)組的應(yīng)用 190
實訓5 函數(shù)的應(yīng)用 195
實訓6 學生成績管理系統(tǒng) 198
附錄A ASCII碼表 213
附錄B 運算符的優(yōu)先級與結(jié)合性 214
參考文獻 216