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é)果,方便讀者學習。 本書既可作為高等院校“C語言程序設(shè)計”課程的教材,又可作為廣大計算機程序設(shè)計人員和計算機程序設(shè)計愛好者的參考書,同時可供參加相關(guān)考試的讀者參考。
張仁忠,男,教授、博士生導師。中國系統(tǒng)仿真學會會員、中國自動化學會高級會員、曾任中國造船學會電子信息技術(shù)委員會委員、黑龍江省系統(tǒng)工程學會理事長。哈爾濱工程大學本科教學主講教師,研究生教學優(yōu)秀教師,并多次被評為研究生優(yōu)秀指導教師,主編、副主編、主審教材各一部;主持完成包括國防科工委基金、預研、型號,橫向聯(lián)合以及為地方服務等科研項目二十多項,累計項目經(jīng)費二千多萬元,獲省部級科技進步獎二等獎一次、三等獎一次;發(fā)表文章五十多篇,其中核心期刊三十多篇、EI檢索九篇,F(xiàn)任廣東創(chuàng)新科技職業(yè)學院軟件技術(shù)專業(yè)帶頭人,學校教學指導委員會委員。
目 錄
第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ā)展及其特點 6
1.3.1 C語言的發(fā)展歷史 6
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) 8
1.5 C語言程序的開發(fā)環(huán)境 9
1.5.1 在Visual C++ 6.0平臺上開發(fā)C語言程序 9
1.5.2 使用Dev C++編譯系統(tǒng)開發(fā)C語言程序 12
1.6 C語言程序舉例 13
本章小結(jié) 15
習題一 16
第2章 順序結(jié)構(gòu)程序設(shè)計 18
2.1 最簡單的C程序——順序結(jié)構(gòu)程序舉例 18
2.2 數(shù)據(jù)的表現(xiàn)形式 19
2.2.1 常量和變量 19
2.2.2 C語言的數(shù)據(jù)類型 20
2.2.3 整型數(shù)據(jù) 20
2.2.4 實型數(shù)據(jù) 22
2.2.5 字符型數(shù)據(jù) 23
2.2.6 字符串型數(shù)據(jù) 24
2.3 運算符和表達式 24
2.3.1 C運算符 24
2.3.2 算術(shù)運算符和算術(shù)表達式 25
2.3.3 關(guān)系運算符和關(guān)系表達式 26
2.3.4 邏輯運算符和邏輯表達式 27
2.4 C語句 29
2.4.1 C語句的分類及作用 29
2.4.2 最基本的C語句——賦值語句 30
2.5 數(shù)據(jù)的輸入/輸出 31
2.5.1 printf函數(shù)輸出數(shù)據(jù) 31
2.5.2 scanf函數(shù)輸入數(shù)據(jù) 33
2.5.3 字符數(shù)據(jù)的輸入/輸出 34
本章小結(jié) 36
習題二 36
第3章 選擇結(jié)構(gòu)程序設(shè)計 39
3.1 選擇結(jié)構(gòu)程序舉例 39
3.2 選擇結(jié)構(gòu)和條件判斷 41
3.3 if語句實現(xiàn)選擇結(jié)構(gòu) 42
3.3.1 if語句實現(xiàn)選擇結(jié)構(gòu)舉例 42
3.3.2 簡單的if語句結(jié)構(gòu) 44
3.3.3 if-else語句結(jié)構(gòu) 45
3.3.4 if-else-if語句結(jié)構(gòu) 46
3.4 選擇結(jié)構(gòu)的嵌套 48
3.4.1 if語句的3種應用與程序流程圖 48
3.4.2 嵌套if語句與程序流程圖 49
3.4.3 if語句的嵌套應用 50
3.5 switch語句實現(xiàn)多分支選擇結(jié)構(gòu) 51
3.5.1 多分支結(jié)構(gòu)的一般形式 52
3.5.2 多分支語句的實際應用 52
本章小結(jié) 55
習題三 55
第4章 循環(huán)結(jié)構(gòu)程序設(shè)計 58
4.1 循環(huán)結(jié)構(gòu)程序舉例 58
4.2 while語句實現(xiàn)循環(huán)結(jié)構(gòu) 59
4.3 do-while語句實現(xiàn)循環(huán)結(jié)構(gòu) 61
4.4 for語句實現(xiàn)循環(huán)結(jié)構(gòu) 63
4.5 幾種循環(huán)結(jié)構(gòu)的比較 65
4.6 循環(huán)結(jié)構(gòu)的嵌套 65
4.7 改變循環(huán)執(zhí)行的狀態(tài) 66
4.7.1 break語句提前終止循環(huán) 66
4.7.2 continue語句提前結(jié)束本次循環(huán) 67
4.7.3 break語句和continue語句的區(qū)別 68
本章小結(jié) 69
習題四 69
第5章 數(shù)組 72
5.1 一維數(shù)組的定義和引用 72
5.1.1 一維數(shù)組的定義 72
5.1.2 一維數(shù)組的引用 73
5.1.3 一維數(shù)組的初始化 74
5.1.4 一維數(shù)組程序舉例 75
5.2 二維數(shù)組的定義和引用 78
5.2.1 二維數(shù)組的定義 78
5.2.2 二維數(shù)組的引用 79
5.2.3 二維數(shù)組的初始化 80
5.2.4 二維數(shù)組程序舉例 81
5.3 字符數(shù)組 83
5.3.1 字符數(shù)組的定義 83
5.3.2 字符數(shù)組的初始化 83
5.3.3 字符數(shù)組的引用 84
5.3.4 字符串處理函數(shù) 86
5.3.5 字符數(shù)組程序舉例 90
本章小結(jié) 91
習題五 92
第6章 函數(shù) 96
6.1 概述 96
6.2 函數(shù)的定義 97
6.2.1 無參函數(shù)的定義 97
6.2.2 有參函數(shù)的定義 97
6.2.3 空函數(shù)的定義 98
6.3 函數(shù)的參數(shù)和函數(shù)的返回值 98
6.3.1 形式參數(shù)和實際參數(shù) 98
6.3.2 函數(shù)的返回值 100
6.4 函數(shù)的調(diào)用 102
6.4.1 函數(shù)調(diào)用的一般形式 102
6.4.2 函數(shù)調(diào)用的方式 103
6.4.3 函數(shù)的聲明 104
6.5 函數(shù)的嵌套調(diào)用 106
6.6 函數(shù)的遞歸調(diào)用 108
6.7 數(shù)組作為函數(shù)的參數(shù) 112
6.8 函數(shù)中變量的作用域 115
6.8.1 局部變量 115
6.8.2 全局變量 116
本章小結(jié) 118
習題六 118
第7章 指針 121
7.1 變量的地址和指針 121
7.2 指針變量的定義和指針變量的基類型 122
7.3 為指針變量賦值 124
7.3.1 為指針變量賦地址值 124
7.3.2 為指針變量賦其他值 126
7.4 對指針變量的操作 127
7.4.1 指針的賦值運算 127
7.4.2 指針的算術(shù)運算 129
7.4.3 指針的關(guān)系運算 129
7.5 函數(shù)之間地址值的傳遞 131
7.5.1 指針作為函數(shù)參數(shù) 131
7.5.2 函數(shù)返回地址值 132
本章小結(jié) 134
習題七 134
第8章 結(jié)構(gòu)體 138
8.1 結(jié)構(gòu)體類型的定義 138
8.2 結(jié)構(gòu)體變量 140
8.2.1 結(jié)構(gòu)體變量的定義 140
8.2.2 結(jié)構(gòu)體變量的引用 142
8.2.3 結(jié)構(gòu)體變量的初始化 143
8.3 結(jié)構(gòu)體數(shù)組 143
8.3.1 定義結(jié)構(gòu)體數(shù)組 143
8.3.2 結(jié)構(gòu)體數(shù)組初始化 144
8.3.2 結(jié)構(gòu)體數(shù)組應用舉例 145
本章小結(jié) 146
習題八 146
第9章 文件 149
9.1 文件的相關(guān)概念 149
9.1.1 文件的分類 149
9.1.2 文件指針 149
9.2 文件的打開與關(guān)閉 150
9.2.1 文件打開函數(shù) 150
9.2.2 文件的關(guān)閉 150
9.3 文件的順序讀寫 151
9.3.1 fputc函數(shù)和fgetc函數(shù) 151
9.3.2 fputs函數(shù)和fgets函數(shù) 153
9.3.3 fprintf函數(shù)和fscanf函數(shù) 153
9.4 文件的隨機讀寫 155
9.5 文件操作的出錯檢測 156
本章小結(jié) 157
習題九 157
*第10章 位運算 159
10.1 位運算符和位運算 159
10.1.1 按位與運算符(&) 159
10.1.2 按位或運算符(|) 160
10.1.3 異或運算符(^) 161
10.1.4 取反運算符(~) 162
10.1.5 左移運算符(<<) 163
10.1.6 右移運算符(>>) 163
10.1.7 位運算符與賦值運算符組合 164
10.1.8 不同長度的數(shù)據(jù)進行位運算 164
10.2 位運算程序舉例 164
10.3 位段 165
本章小結(jié) 168
習題十 168
實訓一 順序結(jié)構(gòu)程序設(shè)計 170
實訓二 選擇結(jié)構(gòu)程序設(shè)計 171
實訓三 循環(huán)結(jié)構(gòu)程序設(shè)計 172
實訓四 數(shù)組的應用 176
實訓五 函數(shù)的應用 181
實訓六 學生成績管理系統(tǒng) 184
附錄A ASCII碼表 199
附錄B 運算符與結(jié)合性 200
參考文獻 202