本書從高職高專學生的實際特點出發(fā),以“實用、夠用”為原則,采用通俗易懂的語言,通過具體的實例,深入淺出地介紹了C語言程序設計的基本概念和設計方法。全書共11章,介紹了C語言的數(shù)據(jù)類型、常量和變量、運算符和表達式,數(shù)據(jù)的輸入/輸出,順序結(jié)構(gòu)程序設計,選擇結(jié)構(gòu)程序設計,循環(huán)結(jié)構(gòu)程序設計,數(shù)組的定義和使用方法,指針的定義和使用方法,C語言中函數(shù)的定義、調(diào)用、參數(shù)傳遞以及變量的作用域和存儲類型,C語言的編譯預處理指令,C語言的結(jié)構(gòu)體與共用體,C語言文件的概念及操作等內(nèi)容。本書中的全部例題和上機實訓內(nèi)容均在Visual C++6.0環(huán)境下調(diào)試通過,便于讀者直接上機驗證。
本書既可作為高職高專院校學生“C語言程序設計”課程的教材,也可作為全國計算機等級考試二級C語言的培訓或自學教材。
C語言作為一種長盛不衰的程序設計語言,從產(chǎn)生到現(xiàn)在始終深受廣大編程愛好者的喜愛。學習、掌握C語言是每一個計算機技術人員的基本功之一,大多數(shù)高職高專院校都將C語言作為典型的計算機教學語言。
C語言規(guī)則較多,對一般初學者來說不易掌握,學習起來會有一定的困難。根據(jù)作者多年從事C語言教學的經(jīng)驗來看,要讓學生真正領會和掌握C語言,除了教師必須具備豐富的教學經(jīng)驗和利用C語言開發(fā)項目的能力以外,選擇一本好的C語言教材是非常重要的。鑒于此,我們編寫了本書。本書的作者都是長期在高校從事計算機專業(yè)教學的一線教師,有著豐富的C語言程序設計教學經(jīng)驗和一定的科研開發(fā)能力。
本書在體系結(jié)構(gòu)上盡可能將概念、知識點與具體實例結(jié)合起來,幫助學生準確理解相關教學內(nèi)容。另外,每章后面都有與所講內(nèi)容以及計算機二級等級考試相匹配的上機實訓,以幫助學生加深對教學內(nèi)容的理解和掌握,并提高學生C語言編程的實際動手能力。
此次修訂,我們校正了第一版中的錯誤與不足之處,但由于水平有限,書中難免存在不足和疏漏的地方,敬請廣大讀者不吝賜教。
編 者
2023年4月
第1章 C語言概論 1
1.1 C語言程序介紹 1
1.1.1 C語言的發(fā)展 1
1.1.2 C語言的特點 1
1.2 C語言程序的組成 2
1.3 C語言程序的實現(xiàn) 4
1.3.1 C語言程序的運行過程 4
1.3.2 開發(fā)環(huán)境介紹 5
本章小結(jié) 9
實訓 9
第2章 基本的數(shù)據(jù)類型與運算 10
2.1 一個簡單的C程序設計實例 10
2.2 基本數(shù)據(jù)類型 11
2.2.1 整型 11
2.2.2 實型 12
2.2.3 字符型 12
2.3 常量和變量 12
2.3.1 常量 12
2.3.2 變量 14
2.4 運算符和表達式 15
2.4.1 算術運算符與算術表達式 15
2.4.2 賦值運算符與賦值表達式 16
2.4.3 數(shù)據(jù)類型轉(zhuǎn)換 17
2.4.4 幾個特殊的運算符 18
本章小結(jié) 19
實訓 20
第3章 順序結(jié)構(gòu)程序設計 22
3.1 一個順序結(jié)構(gòu)程序?qū)嵗?22
3.2 數(shù)據(jù)的輸入/輸出 23
3.2.1 輸出函數(shù)printf( ) 23
3.2.2 輸入函數(shù)scanf( ) 26
3.2.3 字符輸入/輸出函數(shù)getchar( )和
putchar( ) 27
3.3 應用舉例 29
本章小結(jié) 30
實訓 30
第4章 選擇結(jié)構(gòu)程序設計 32
4.1 一個選擇結(jié)構(gòu)程序?qū)嵗?32
4.2 關系運算與邏輯運算 33
4.2.1 關系運算符與關系表達式 33
4.2.2 邏輯運算符與邏輯表達式 34
4.3 由if語句構(gòu)成的選擇結(jié)構(gòu) 35
4.3.1 if語句 35
4.3.2 if-else語句 37
4.3.3 if-else-if形式 38
4.3.4 if的嵌套 39
4.3.5 條件表達式 40
4.4 switch語句和break語句 41
4.5 應用舉例 43
本章小結(jié) 45
實訓 46
第5章 循環(huán)結(jié)構(gòu)程序設計 49
5.1 一個循環(huán)結(jié)構(gòu)程序?qū)嵗?49
5.2 while語句 50
5.3 do-while語句 52
5.4 for語句 54
5.5 多重循環(huán) 57
5.6 break語句和continue語句 60
5.6.1 break語句 60
5.6.2 continue語句 60
5.7 應用舉例 61
本章小結(jié) 64
實訓 64
第6章 數(shù)組 67
6.1 數(shù)組的一般定義形式 67
6.2 數(shù)組的表示方法 68
6.3 一維數(shù)組 69
6.3.1 一維數(shù)組的定義 69
6.3.2 一維數(shù)組的初始化 70
6.3.3 一維數(shù)組的引用 70
6.3.4 應用舉例 71
6.4 二維數(shù)組 73
6.4.1 二維數(shù)組的定義 73
6.4.2 二維數(shù)組的初始化 74
6.4.3 二維數(shù)組的引用 74
6.4.4 應用舉例 75
6.5 字符串 79
6.5.1 字符數(shù)組的一般操作方法 80
6.5.2 字符串處理函數(shù) 82
本章小結(jié) 85
實訓 85
第7章 指針 88
7.1 指針的類型說明 88
7.2 指針變量的賦值 88
7.3 數(shù)組指針 92
7.3.1 數(shù)組指針的定義 92
7.3.2 數(shù)組指針的運算 92
7.3.3 二維數(shù)組的指針 96
7.4 指針數(shù)組 98
7.5 字符串指針 99
7.6 動態(tài)存儲分配 99
7.7 應用舉例 101
本章小結(jié) 102
實訓 103
第8章 函數(shù) 105
8.1 函數(shù)的分類 105
8.2 函數(shù)的定義和調(diào)用 106
8.2.1 函數(shù)的定義 106
8.2.2 函數(shù)的調(diào)用和函數(shù)的返回 107
8.2.3 參數(shù)傳遞 108
8.2.4 函數(shù)的嵌套調(diào)用 114
8.3 變量的作用域 115
8.3.1 局部變量 115
8.3.2 全局變量 119
8.3.3 變量存儲類型與模塊化
程序設計 120
本章小結(jié) 121
實訓 122
第9章 預處理指令 126
9.1 宏定義 126
9.1.1 字符串宏 126
9.1.2 帶參數(shù)宏 127
9.1.3 函數(shù)與宏的比較 128
9.2 文件包含 128
9.3 條件編譯 128
本章小結(jié) 133
實訓 134
第10章 結(jié)構(gòu)體與共用體 135
10.1 一個結(jié)構(gòu)體的實例 135
10.2 結(jié)構(gòu)體的定義與引用 136
10.2.1 結(jié)構(gòu)體類型的定義 136
10.2.2 結(jié)構(gòu)體變量的定義及初始化 137
10.2.3 結(jié)構(gòu)體變量的使用 139
10.3 結(jié)構(gòu)體數(shù)組與結(jié)構(gòu)體指針 140
10.3.1 結(jié)構(gòu)體數(shù)組 140
10.3.2 結(jié)構(gòu)體指針 142
10.4 鏈表 143
10.4.1 鏈表概述 144
10.4.2 鏈表的基本操作 146
10.5 共用體 156
10.5.1 共用體類型和共用體變量的
定義 157
10.5.2 共用體成員變量的引用 157
10.6 枚舉 158
10.7 typedef聲明 159
本章小結(jié) 160
實訓 161
第11章 文件 163
11.1 文件概述 163
11.1.1 文件的概念和類型 163
11.1.2 文件指針 164
11.2 文件的基本操作 164
11.2.1 文件的打開和關閉 164
11.2.2 文件的讀/寫 165
11.3 應用舉例 167
本章小結(jié) 174
實訓 175
附錄 模擬試題 176
模擬試題一 176
模擬試題二 180
模擬試題三 184
參考文獻 188