本書以初學者為主要對象,全面介紹了C語言程序設計的相關(guān)技術(shù)。在內(nèi)容排列上由淺入深,讓讀者循序漸進地掌握C語言編程;在內(nèi)容講解上結(jié)合豐富的圖解和形象的比喻,幫助讀者理解“晦澀難懂”的技術(shù);在內(nèi)容形式上附有大量的注意、說明等欄目,夯實讀者理論技術(shù),豐富管理與開發(fā)經(jīng)驗。
本書共分16章,其中前12章為基礎部分,主要包括為什么要學C語言,最簡單的C語言程序,什么是程序,C語言基礎——數(shù)據(jù)類型、常量及變量,選擇結(jié)構(gòu)程序設計,循環(huán)結(jié)構(gòu)程序設計,同一類型多個元素的集合——數(shù)組,寫程序就是寫函數(shù),C語言的特產(chǎn)——指針,編譯預處理,結(jié)構(gòu)體和文件等內(nèi)容;后4章為提高篇,核心是“以考促學”,主要包括全國計算機等級考試(NCRE)簡介、考試流程、通過真題了解評分標準及注意事項和公共基礎知識等內(nèi)容。本書中的例題和課后習題包含了許多全國計算機等級考試二級真題,并且按照二級考試大綱要求,開發(fā)環(huán)境使用Visual C++ 2010 Express。
本書可作為高等學校各專業(yè)C語言程序設計課程教材。對計算機愛好者、中學生、職高中專學生及各類自學人員也有參考價值。
1. 適合最新等考大綱。
2. 滿足最新等考環(huán)境,使用Visual C++ 2010 Express。
3. 配套資源豐富。
4. 提供在線教學系統(tǒng),讓老師更好教,學生更好學。
劉琨,河北師范大學軟件學院php教研室教師,渡手科技實訓中心教學總監(jiān),擁有五年軟件開發(fā)和管理工作經(jīng)驗(其中包括兩年海外工作經(jīng)驗),四年IT教學工作經(jīng)驗。資深技術(shù)講師,實戰(zhàn)經(jīng)驗豐富,授課耐心細致,通俗易懂,勇于實踐,勤于創(chuàng)新,授課風格貼近生活,授課語言生動風趣,多年來培訓的學員已成功在用友、搜狐、淘寶、中軟等知名企業(yè)就職。
第1章 為什么要學C語言 1
1.1 這門語言值得一學嗎 1
1.2 C 語言教給我們的事 2
1.3 C 語言程序“編輯”體驗 4
1.4 開發(fā)工具 4
1.4.1 Dev-C++ 5
1.4.2 Visual C++ 5
1.4.3 Visual C++2010 Express 7
1.5 C 語言程序的開發(fā)流程 7
1.5.1 編譯C 語言源代碼 8
1.5.2 連接目標文件 9
1.5.3 編譯連接過程示例 9
1.5.4 運行程序 9
1.6 習題 10
第2章 最簡單的C 語言程序 11
2.1 C 語言程序的構(gòu)成 11
2.2 C 語言程序的注釋 12
2.3 C 語言程序必須有main 函數(shù) 13
2.4 調(diào)用函數(shù)在屏幕上顯示文字 14
2.5 #include 預處理器指示符 14
2.5.1 函數(shù)聲明及其作用 14
2.5.2 試驗尋找#include 的作用 15
2.5.3 #include 的作用 15
2.6 習題 16
第3章 什么是程序 18
3.1 程序簡介 18
3.2 輸入—處理—輸出:這就是程序 19
3.2.1 用printf 函數(shù)輸出數(shù)據(jù) 19
3.2.2 用scanf 函數(shù)輸入數(shù)據(jù) 20
3.3 結(jié)構(gòu)化程序設計 21
3.4 順序結(jié)構(gòu)與流程圖 22
3.5 選擇結(jié)構(gòu) 24
3.6 循環(huán)結(jié)構(gòu) 25
3.7 擴充內(nèi)容:printf 函數(shù)的格式字符 27
3.8 擴充內(nèi)容:scanf 函數(shù)的格式字符 31
3.9 擴充內(nèi)容:字符輸入輸出函數(shù) 33
3.10 習題 37
3.10.1 輸入輸出函數(shù) 37
3.10.2 結(jié)構(gòu)化程序設計 38
第4章 C 語言基礎——數(shù)據(jù)類型、常量及變量 39
4.1 計算機是如何表示數(shù)據(jù)的 39
4.1.1 二進制、八進制和十六進制 39
4.1.2 表示數(shù)據(jù)的字節(jié)和位 40
4.2 數(shù)據(jù)類型 41
4.2.1 整型數(shù)據(jù) 42
4.2.2 字符型數(shù)據(jù) 45
4.2.3 實數(shù)類型 47
4.2.4 數(shù)據(jù)類型轉(zhuǎn)換 48
4.3 常量 52
4.4 變量 54
4.4.1變量概述 54
4.4.2 為變量賦初值 57
4.4.3 變量使用時常見的錯誤 58
4.4.4 幾個與變量相關(guān)的經(jīng)典算法 59
4.5 擴充內(nèi)容:標識符 61
4.6 習題 62
4.6.1 進制轉(zhuǎn)換 62
4.6.2 數(shù)據(jù)類型 62
4.6.3 常量與變量 62
4.6.4 標識符 63
第5章 選擇結(jié)構(gòu)程序設計 64
5.1 用if 語句實現(xiàn)選擇結(jié)構(gòu) 65
5.2 switch 語句 69
5.3 擴充內(nèi)容:關(guān)系運算符和關(guān)系表達式 73
5.4 擴充內(nèi)容:條件運算符和條件表達式 74
5.5 擴充內(nèi)容:邏輯運算符和邏輯表達式 75
5.6 習題 77
5.6.1 關(guān)系、條件及邏輯運算符 77
5.6.2 條件語句 77
第6章 循環(huán)結(jié)構(gòu)程序設計 80
6.1 while 語句 80
6.2 do-while 語句 81
6.3 for 語句 82
6.4 循環(huán)嵌套 83
6.5 跳轉(zhuǎn)語句 87
6.5.1 break 語句 87
6.5.2 continue 語句 88
6.6 擴充內(nèi)容:算術(shù)運算符 89
6.7 擴充內(nèi)容:賦值運算符 90
6.8 擴充內(nèi)容:逗號運算符 90
6.9 習題 91
6.9.1 基本循環(huán)語句 91
6.9.2 嵌套循環(huán) 92
6.9.3 跳轉(zhuǎn)語句 92
6.9.4 循環(huán)應用 93
第7章 同一類型多個元素的 集合——數(shù)組 95
7.1 一維數(shù)組 95
7.1.1 一維數(shù)組的聲明和初始化 95
7.1.2 一維數(shù)組的引用 96
7.1.3 一維數(shù)組的實例 97
7.2 二維數(shù)組 101
7.2.1 二維數(shù)組的定義 101
7.2.2 二維數(shù)組的初始化 102
7.2.3 二維數(shù)組元素的引用 103
7.2.4 二維數(shù)組應用舉例 103
7.3 字符數(shù)組 104
7.3.1 字符數(shù)組的定義 104
7.3.2 字符數(shù)組的初始化 105
7.3.3 字符數(shù)組的引用 105
7.4 字符數(shù)組與字符串 105
7.4.1 字符串的初始化 106
7.4.2 字符串的輸入輸出 107
7.4.3 字符串應用舉例 108
7.4.4 使用字符串處理函數(shù) 110
7.5 習題 112
7.5.1 一維數(shù)組的定義和引用 112
7.5.2 二維數(shù)組的定義和引用 113
7.5.3 字符數(shù)組 114
第8章 寫程序就是寫函數(shù) 117
8.1 什么是函數(shù) 117
8.1.1 函數(shù)的由來 117
8.1.2 分而治之與信息隱藏 118
8.2 函數(shù)的分類和定義 120
8.2.1 函數(shù)的分類 120
8.2.2函數(shù)的定義 120
8.3 形式參數(shù)和實際參數(shù)分配內(nèi)存的區(qū)別 122
8.4 函數(shù)的返回值 124
8.5 函數(shù)調(diào)用 126
8.5.1 函數(shù)調(diào)用的一般形式 126
8.5.2 函數(shù)調(diào)用的執(zhí)行過程 128
8.6 函數(shù)的聲明 129
8.7 函數(shù)的嵌套調(diào)用 131
8.8 函數(shù)的遞歸調(diào)用 133
8.9 數(shù)組作為函數(shù)參數(shù)——值傳遞與地址傳遞 137
8.9.1 數(shù)組元素作為函數(shù)實參——值傳遞 137
8.9.2 一維數(shù)組名作為函數(shù)參數(shù)——地址傳遞 138
8.10 變量的作用域 141
8.11 變量的存儲類型 143
8.11.1 uto 變量 143
8.11.2 register 變量 143
8.11.3 extern 變量 144
8.11.4 static 變量 146
8.11.5 存儲類型小結(jié) 148
8.12 習題 149
8.12.1 函數(shù)的調(diào)用與聲明 149
8.12.2 函數(shù)的嵌套調(diào)用和遞歸調(diào)用 152
8.12.3 數(shù)組作為函數(shù)參數(shù)——值傳遞與地址傳遞 154
8.12.4 全局變量和局部變量 155
8.12.5 變量的存儲類型 155
第9 章 C 語言特產(chǎn)——指針 157
9.1 指針簡介 157
9.2 指針變量的定義 158
9.3 指針變量的初始化 159
9.4 指針變量的引用 160
9.4.1 與指針有關(guān)的兩種運算符 160
9.4.2 指針變量的引用 161
9.5 指針與一維數(shù)組 161
9.6 指針與字符串 163
9.7 指針數(shù)組 165
9.8 二級指針 166
9.9 指針與二維數(shù)組 168
9.9.1 二維數(shù)組的行地址和列地址 168
9.9.2 通過二維數(shù)組的行指針和列指針來引用二維數(shù)組 170
9.10 指針與函數(shù) 171
9.10.1 函數(shù)名與指針的關(guān)系 171
9.10.2 返回指針變量的函數(shù) 172
9.11 指針總結(jié) 173
9.11.1 明確分辨各種指針類型 174
9.11.2 正確理解指針 174
9.12 擴充內(nèi)容:使用指針引用數(shù)組元素的優(yōu)點 175
9.13 擴充內(nèi)容:函數(shù)指針與函數(shù)名 176
9.13.1 函數(shù)指針與函數(shù)名的區(qū)別 176
9.13.2 函數(shù)指針的作用 178
9.14 習題 178
9.14.1 指針概述與定義 178
9.14.2 指針變量的初始化 179
9.14.3 指針變量的引用 179
9.14.4 數(shù)組與指針 180
9.14.5 指針與字符串 181
9.14.6 指針數(shù)組 182
9.14.7 二維數(shù)組與指針 182
9.14.8 指向函數(shù)的指針 183
第10 章編譯預處理 184
10.1 不帶參數(shù)的宏定義 184
10.2 帶參數(shù)的宏定義 186
10.3 #include 命令 187
10.4 習題 188
10.4.1 宏定義和調(diào)用 188
10.4.2 預處理 189
第11 章結(jié)構(gòu)體 191
11.1 結(jié)構(gòu)體類型與結(jié)構(gòu)體變量 191
11.1.1 結(jié)構(gòu)體類型的定義 191
11.1.2 結(jié)構(gòu)體變量的定義 192
11.1.3 結(jié)構(gòu)體變量的初始化和引用 195
11.2 結(jié)構(gòu)體數(shù)組 196
11.2.1 結(jié)構(gòu)體數(shù)組的定義 196
11.2.2 結(jié)構(gòu)體數(shù)組的初始化和引用 197
11.3 結(jié)構(gòu)體指針 198
11.3.1 結(jié)構(gòu)體指針變量的定義與引用 198
11.3.2 結(jié)構(gòu)體指針作為函數(shù)參數(shù) 200
11.4 用typedef 定義類型 201
11.5 鏈表 202
11.5.1 什么是鏈表 202
11.5.2 建立簡單的鏈表 204
11.6 習題 205
11.6.1 結(jié)構(gòu)體類型和結(jié)構(gòu)體變量 205
11.6.2 結(jié)構(gòu)體數(shù)組與指針 205
11.6.3 用typedef 說明一個新類型 207
11.6.4 鏈表 .207
第12章文件 208
12.1 C 語言文件的概念 208
12.1.1 文件的概念及分類 208
12.1.2 文件的處理方式 209
12.2 文件類型指針 209
12.3 文件的打開與關(guān)閉 211
12.3.1 文件打開 211
12.3.2 文件關(guān)閉 212
12.4 文件的讀寫 213
12.4.1 文件讀寫的含義 213
12.4.2 文件讀寫函數(shù) 214
12.5 文件的定位 219
12.6
習題 221
12.6.1 文件的概念及文件類型指針 221
12.6.2 文件的打開與關(guān)閉 221
12.6.3 文件的讀寫 222
12.6.4 文件的定位 223
第13 章全國計算機等級考試 (NCRE)簡介 224
13.1 考試大綱基本要求 224
13.2 考試內(nèi)容 224
13.3 考試方式 225
第14 章考試流程 226
14.1 登錄 226
14.1.1 啟動考試系統(tǒng) 226
14.1.2 準考證號驗證 226
14.1.3 登錄成功 227
14.2 答題 227
14.2.1 試題內(nèi)容查閱窗口 227
14.2.2 考試狀態(tài)信息條 228
14.2.3 啟動考試環(huán)境 228
14.2.4 考生文件夾 228
14.3 交卷 229
第15 章通過真題了解評分標準 及注意事項 230
15.1 選擇題 230
15.1.1 公共基礎知識(共10 分) 230
15.1.2 C 語言基礎知識(共30 分) 230
15.2 程序操作題 231
15.2.1 程序填空題(共18 分) 231
15.2.2 程序修改題(共18 分) 232
15.2.3 程序設計題(共24 分) 233
第16 章公共基礎知識 234
16.1 數(shù)據(jù)結(jié)構(gòu) 234
16.1.1 算法 234
16.1.2 數(shù)據(jù)結(jié)構(gòu)的基本概念 234
16.1.3 線性表及其順序存儲結(jié)構(gòu) 234
16.1.4 棧和隊列 235
16.1.5 線性鏈表 235
16.1.6 樹與二叉樹 235
16.1.7 查找與排序 236
16.2 程序設計基礎 236
16.2.1 程序設計方法與風格 236
16.2.2 結(jié)構(gòu)化程序設計 236
16.2.3 面向?qū)ο蟪绦蛟O計 237
16.3 軟件工程基礎 237
16.3.1 軟件工程的基本概念 237
16.3.2 需求分析及其方法 238
16.3.3 軟件設計及其方法 238
16.3.4 軟件測試 239
16.4 數(shù)據(jù)庫設計基礎 239
16.4.1 數(shù)據(jù)庫系統(tǒng)的基本概念 239
16.4.2 E-R 模型 240
16.4.3 關(guān)系代數(shù) 240
16.4.4 數(shù)據(jù)庫設計 241
附錄A 字符與標準ASCII 代碼 對照表 242
附錄B 運算符和結(jié)合性 243
附錄C Visual C++ 2010 Express 基本操作 246
C.1 常見配置 246
C.1.1 添加行號 246
C.1.2 添加生成工具欄 246
C.1.3 添加開始執(zhí)行(不調(diào)試)按鈕 247
C.2 創(chuàng)建工程 248
C.3 添加源程序 250
C.4 編寫hello.c 編譯并執(zhí)行 251