本書主要介紹了C語言的數(shù)據(jù)類型、運算符和表達式、結(jié)構(gòu)化程序設(shè)計語句、數(shù)組、函數(shù)、指針、復合數(shù)據(jù)類型、文件等各種典型內(nèi)容。全書共9章,前8章分別介紹各種基礎(chǔ)知識,通過大量案例和練習讓讀者掌握所學知識,第9章介紹了兩個綜合項目,分別是不帶圖形界面的管理信息系統(tǒng)和帶圖形界面的迷宮探險游戲。每章課后配有類型豐富的練習題,都是國家二級考試題,并提供了習題參考答案。本書對C語言各知識的闡述通俗易懂,習題的選擇難易適當,題型豐富;對于在Turbo C 2.0和Visual C++6.0不同環(huán)境下運行結(jié)果不同的程序,給出兩種環(huán)境下的運行結(jié)果,方便讀者理解。書中所有程序均已調(diào)試運行通過,運行結(jié)果為截屏顯示。本書既可作為高職高專院校計算機專業(yè)程序設(shè)計學科的教材,也可作為成人教育、自學考試和從事計算機應(yīng)用的工程技術(shù)人員的參考書。本書配有視頻講解教程、配套教案、電子課件、源代碼、習題參考答案等配套資源,可掃描二維碼學習或登錄電子工業(yè)出版社的華信教育資源網(wǎng)(www.hxedu.com.cn)注冊后免費下載。
劉暢,副教授,畢業(yè)于沈陽理工大學,碩士。十多年來一直從事于計算機軟件方面開發(fā)與授課工作,F(xiàn)任計算機系軟件技術(shù)教研室主任,軟件專業(yè)骨干教師(在高等學校骨干教師資源信息庫備案)。
第1章 C語言概述 1
1.1 程序設(shè)計的基本概念 1
1.1.1 程序的概念 1
1.1.2 程序設(shè)計的一般過程 2
1.1.3 程序設(shè)計的方法 2
1.2 C語言簡介 2
1.2.1 C語言的發(fā)展 2
1.2.2 C語言的特點 2
1.2.3 C語言的書寫規(guī)則 3
1.2.4 C程序的幾種類型文件 3
1.3 C語言程序案例 4
1.3.1 第一個C語言程序 4
1.3.2 定義符號常量的C語言程序 5
1.3.3 有多個函數(shù)的C語言程序 6
1.4 算法 6
1.4.1 算法概述 6
1.4.2 算法的圖形表示 7
1.5 C語言編程環(huán)境 8
1.5.1 Turbo C 2.0編程環(huán)境 8
1.5.2 Visual C++ 6.0編程環(huán)境 10
1.5.3 “C/C++程序設(shè)計學習與實驗
系統(tǒng)”編程環(huán)境 12
本章小結(jié) 14
學生自我完善練習 15
習題一 15
第2章 程序中的數(shù)據(jù) 17
2.1 數(shù)據(jù)類型、變量與常量 17
2.1.1 數(shù)據(jù)類型概述 17
2.1.2 標識符 18
2.1.3 變量的定義、賦值和初始化 19
2.1.4 數(shù)的原碼、反碼和補碼 20
2.1.5 整型變量及整型常量 21
2.1.6 實型變量及實型常量 23
2.1.7 字符變量及字符常量、字符串
常量 24
2.1.8 符號常量 27
2.2 運算符與表達式 27
2.2.1 算術(shù)運算符與算術(shù)表達式 28
2.2.2 自增、自減運算符(++、--) 29
2.2.3 賦值運算符與賦值表達式 31
2.2.4 關(guān)系運算符與關(guān)系表達式 32
2.2.5 邏輯運算符與邏輯表達式 33
2.2.6 位運算符 34
2.2.7 其他運算符 36
2.3 數(shù)據(jù)類型轉(zhuǎn)換及數(shù)據(jù)的溢出誤差 38
2.3.1 類型轉(zhuǎn)換概述 38
2.3.2 自動類型轉(zhuǎn)換 39
2.3.3 賦值類型轉(zhuǎn)換 39
2.3.4 強制類型轉(zhuǎn)換 40
2.3.5 數(shù)據(jù)的溢出和誤差 40
2.4 數(shù)據(jù)的輸入/輸出 42
2.4.1 格式化輸出函數(shù)printf 42
2.4.2 格式化輸入函數(shù)scanf 45
2.4.3 字符的輸入與輸出 49
2.5 程序案例 50
2.5.1 典型案例—求直角三角形的
周長和面積 50
2.5.2 典型案例—英文大小寫字母
的轉(zhuǎn)換 51
本章小結(jié) 52
學生自我完善練習 52
習題二 54
第3章 程序設(shè)計語句 57
3.1 程序的語句與結(jié)構(gòu) 57
3.1.1 程序的語句 57
3.1.2 程序的結(jié)構(gòu) 59
3.1.3 如何設(shè)計C語言程序 60
3.1.4 順序結(jié)構(gòu) 60
3.2 選擇結(jié)構(gòu) 61
3.2.1 條件語句——if語句 62
3.2.2 開關(guān)語句——switch語句 67
3.3 循環(huán)結(jié)構(gòu) 69
3.3.1 程序的設(shè)計過程 69
3.3.2 當型循環(huán)—while循環(huán) 70
3.3.3 直到型循環(huán)—do-while循環(huán) 71
3.3.4 格式化的當型循環(huán)—for循環(huán) 73
3.3.5 循環(huán)的嵌套 74
3.4 break、continue和goto語句 76
3.4.1 break語句 77
3.4.2 continue語句 78
3.4.3 goto語句 78
3.5 程序案例 79
3.5.1 典型案例—求四項表達式
的值 79
3.5.2 典型案例—求1+(1+2)+
(1+2+3)+(1+2+3+4)+…+(1+2+
…+n)數(shù)列的和 80
3.5.3 典型案例—猜數(shù)字游戲 81
本章小結(jié) 82
學生自我完善練習 83
習題三 84
第4章 數(shù)組 90
4.1 數(shù)組概念的引入 90
4.2 一維數(shù)組 91
4.2.1 一維數(shù)組的定義 91
4.2.2 一維數(shù)據(jù)的元素引用 91
4.2.3 一維數(shù)組的賦值方法 91
4.3 二維數(shù)組 93
4.3.1 二維數(shù)組的定義 93
4.3.2 二維數(shù)組的元素引用 94
4.3.3 二維數(shù)組的存儲 94
4.3.4 二維數(shù)據(jù)的賦值方法 95
4.4 字符數(shù)組與字符串 96
4.4.1 字符數(shù)組的定義、初始化和
引用 96
4.4.2 字符串的輸入和輸出函數(shù) 97
4.4.3 字符串函數(shù) 100
4.5 程序案例 103
4.5.1 典型案例—冒泡法排序 103
4.5.2 典型案例—矩陣的轉(zhuǎn)置 105
4.5.3 典型案例—打印楊輝三角形 106
本章小結(jié) 107
學生自我完善練習 107
習題四 110
第5章 函數(shù)和編譯預處理 114
5.1 模塊化的設(shè)計思想 114
5.2 函數(shù)的定義、調(diào)用和函數(shù)聲明 115
5.2.1 函數(shù)的定義 115
5.2.2 函數(shù)的調(diào)用 116
5.2.3 函數(shù)的聲明 117
5.3 函數(shù)的參數(shù)傳遞 119
5.4 函數(shù)的嵌套調(diào)用 121
5.5 函數(shù)的遞歸調(diào)用 123
5.6 變量的作用域和存儲類型 125
5.6.1 變量的作用域 125
5.6.2 變量的生存期 125
5.6.3 變量的存儲類型 126
5.7 編譯預處理 130
5.7.1 宏定義 130
5.7.2 文件包含 133
5.7.3 條件編譯 133
5.8 程序案例 135
5.8.1 典型案例—編寫函數(shù)求xn 135
5.8.2 典型案例—設(shè)計遞歸函數(shù)
gcd(x,y) 136
5.8.3 典型案例—設(shè)計函數(shù)驗證
任意偶數(shù)為兩個素數(shù)之和 137
5.8.4 典型案例—編寫函數(shù)實現(xiàn)
任意進制數(shù)的轉(zhuǎn)換 139
本章小結(jié) 140
學生自我完善練習 141
習題五 144
第6章 指針 152
6.1 地址和指針的關(guān)系 152
6.2 指針變量的定義和賦值 153
6.2.1 指針變量的定義及初始化 153
6.2.2 指針變量的賦值 153
6.3 指針變量的運算 154
*6.3.1 運算符和&運算符 154
6.3.2 指針的算術(shù)運算和關(guān)系運算 154
6.4 指針和數(shù)組的關(guān)系 156
6.4.1 指針與一維數(shù)組 156
6.4.2 指針與字符數(shù)組 158
6.4.3 指針與二維數(shù)組 160
6.4.4 指針數(shù)組 162
6.4.5 指向指針的指針—二級指針 163
6.5 指針在函數(shù)中的應(yīng)用 165
6.5.1 函數(shù)的參數(shù)是指針 165
6.5.2 函數(shù)的返回值是指針 166
6.5.3 指向函數(shù)的指針 167
6.5.4 帶參數(shù)的main函數(shù) 169
6.6 程序案例 170
6.6.1 典型案例—用指針統(tǒng)計字符
串中各字符個數(shù) 170
6.6.2 典型案例—找出多個字符串中
最長字符串 171
6.6.3 典型案例—將矩陣元素右移 172
本章小結(jié) 174
學生自我完善練習 174
習題六 176
第7章 復合的數(shù)據(jù)類型 181
7.1 結(jié)構(gòu)概念的引入 181
7.2 結(jié)構(gòu)體的描述與存儲 182
7.2.1 結(jié)構(gòu)體類型定義 182
7.2.2 結(jié)構(gòu)體變量定義 183
7.2.3 結(jié)構(gòu)體變量初始化 184
7.2.4 結(jié)構(gòu)體變量和成員的引用及
賦值 184
7.2.5 結(jié)構(gòu)體變量的空間分配及查看
方法 185
7.2.6 結(jié)構(gòu)體類型的嵌套定義 186
7.3 結(jié)構(gòu)體數(shù)組和結(jié)構(gòu)體指針的使用 188
7.3.1 結(jié)構(gòu)體數(shù)組 188
7.3.2 結(jié)構(gòu)體指針 189
7.4 結(jié)構(gòu)體與函數(shù)的關(guān)系 191
7.4.1 結(jié)構(gòu)體變量、指針和數(shù)組作為
函數(shù)參數(shù) 191
7.4.2 結(jié)構(gòu)體變量和指針作為函數(shù)的
返回值 193
7.5 共用體、枚舉和typedef類型定義 196
7.5.1 共用體 196
7.5.2 枚舉 200
7.5.3 typedef重命名類型 202
*7.6 鏈表 203
7.6.1 鏈表基礎(chǔ)知識及動態(tài)分配函數(shù) 203
7.6.2 鏈表的操作 205
7.7 程序案例 210
7.7.1 典型案例—用“結(jié)構(gòu)”統(tǒng)計
學生成績并排序 210
7.7.2 典型案例—枚舉示例,輸出
52張撲克牌 212
本章小結(jié) 213
學生自我完善練習 213
習題七 215
第8章 文件 221
8.1 文件的概念和基本操作 221
8.1.1 文件的概念 221
8.1.2 文件的打開和關(guān)閉 223
8.2 文件的讀和寫 225
8.2.1 字符的讀、寫函數(shù) 225
8.2.2 字符串的讀、寫函數(shù) 226
8.2.3 數(shù)據(jù)塊的讀、寫函數(shù) 228
8.2.4 格式化輸入/輸出文件函數(shù) 230
8.3 文件的定位和檢測 233
8.3.1 文件的定位 233
8.3.2 文件的檢測 236
8.4 程序案例 237
8.4.1 典型案例——文件的字符串
讀寫程序?qū)崿F(xiàn)人員登錄功能 237
8.4.2 典型案例—文件中的字數(shù)
統(tǒng)計程序 238
本章小結(jié) 240
學生自我完善練習 241
習題八 242
第9章 綜合訓練項目 245
9.1 不帶圖形界面的綜合項目—管理
信息系統(tǒng) 245
9.1.1 項目功能介紹與系統(tǒng)結(jié)構(gòu)
分析 245
9.1.2 各功能模塊功能簡介 245
9.1.3 源程序及運行結(jié)果 247
*9.2 圖形界面綜合項目—迷宮探險
游戲 255
9.2.1 項目功能介紹與系統(tǒng)結(jié)構(gòu)分析 255
9.2.2 各功能模塊功能簡介 255
9.2.3 源程序及運行結(jié)果 256
附錄A 常用字符與ASCII碼對照表 266
參考文獻 268