《C/C++程序設計教程》系列教材分為面向過程和面向對象兩個分冊。面向過程分冊系統(tǒng)闡述了C++語言中過程化程序設計的思想、語法、方法。主要內(nèi)容包括C++程序設計的基礎知識,基本數(shù)據(jù)類型和表達式,C++的程序控制語句,數(shù)組與函數(shù),指針和引用,用戶定義數(shù)據(jù)類型、文件等內(nèi)容。書中內(nèi)容講解清晰,實例豐富,力避代碼復雜冗長,注重算法設計和程序設計思想。簡短的實例特別有助于初學者更好地理解、把握解決問題的精髓,幫助讀者快速掌握程序設計的基本方法。 本教材的特點是實例豐富,重點突出,敘述深入淺出,分析問題透徹,既有完整的語法,又有大量的實例,突出程序設計的算法、方法,將C語言程序設計和C++語言程序設計進行有機統(tǒng)一。特別適合作為計算機學科各應用型本科、專科的C語言程序設計和C++語言程序設計教材,也可作為其他理工科各專業(yè)的教材及相關技術人員的自學參考書。 本教材配有免費課件資源,有需要的讀者可到華信教育資源網(wǎng)(www.hxedu.com.cn)下載使用。
中原工學院院長、教授、碩士生導師。教育部高等學校計算機科學與技術專業(yè)教學指導分委員會專家工作組成員,中國計算機學會教育專委委員,河南計算機學會常務理事,河南省計算機安全保密學會常務理事,河南省高等學校計算機教育研究會理事。
目 錄
第1章 C/C++概述 1
1.1 計算機程序設計語言的發(fā)展 3
1.1.1 機器語言階段 3
1.1.2 匯編語言階段 3
1.1.3 高級語言階段 4
1.1.4 從C到C++ 5
1.2 過程化程序設計 5
1.3 面向對象的程序設計 6
1.3.1 基本概念 7
1.3.2 面向對象程序設計的特點 7
1.4 簡單的C/C++程序介紹 8
1.5 程序開發(fā)的過程 11
1.6 C/C++上機實踐 12
1.6.1 Visual Studio 2013集成
開發(fā)環(huán)境 12
1.6.2 開發(fā)C/C++的程序過程 15
1.7 使用Dev C++創(chuàng)建項目 17
1.7.1 創(chuàng)建項目 18
1.7.2 程序的運行和調(diào)試 19
實驗一 設計第一個C/C++應用程序 20
習題1 22
第2章 數(shù)據(jù)類型、運算符和表達式 23
2.1 保留字和標識符 25
2.1.1 保留字 25
2.1.2 標識符 25
2.2 數(shù)據(jù)類型 25
2.3 常量與變量 27
2.3.1 常量 27
2.3.2 變量 29
2.4 基本運算符和表達式 30
2.4.1 基本運算符和表達式簡介 30
2.4.2 算術運算符和算術表達式 31
2.4.3 賦值運算符和賦值表達式 32
2.4.4 關系運算符和關系表達式 33
2.4.5 邏輯運算符和邏輯表達式 34
2.4.6 位運算符和位運算表達式 35
2.4.7 條件運算符和條件表達式 37
2.4.8 逗號運算符和逗號表達式 37
2.4.9 sizeof運算符和sizeof
表達式 37
2.5 數(shù)據(jù)類型轉換 37
2.5.1 隱式轉換 38
2.5.2 顯式轉換 38
2.6 簡單的輸入/輸出實現(xiàn)方法 38
2.6.1 格式化輸入/輸出——scanf()
和printf() 38
2.6.2 I/O流 41
2.6.3 cin 42
2.6.4 cout 42
2.6.5 輸出控制符 43
2.7 認識上機過程中的錯誤 45
實驗二 C/C++語言基礎練習 46
習題2 48
第3章 C/C++流程控制 51
3.1 算法與流程圖 53
3.1.1 算法的概念 53
3.1.2 算法的描述 53
3.2 語句和程序的三種基本結構 54
3.2.1 語句 54
3.2.2 程序的三種基本結構 55
3.2.3 結構化算法 55
3.3 順序結構程序 56
3.4 選擇結構程序 57
3.4.1 if語句 57
3.4.2 嵌套if語句 59
3.4.3 switch語句 61
3.5 循環(huán)結構程序設計 63
3.5.1 while語句 63
3.5.2 do-while語句 66
3.5.3 for語句 68
3.5.4 循環(huán)的嵌套 70
3.5.5 跳轉語句 73
3.5.6 三種循環(huán)的比較 75
3.6 常用算法及應用實例 75
3.6.1 累加與累乘 75
3.6.2 求最大數(shù)、最小數(shù) 76
3.6.3 求素數(shù) 77
3.6.4 窮舉法 79
3.6.5 遞推與迭代 80
3.7 應用實例 83
3.8 程序的調(diào)試 85
3.8.1 進入調(diào)試 86
3.8.2 單步調(diào)試 86
3.8.3 查看變量、表達式的值 87
3.8.4 停止調(diào)試 87
實驗三 程序控制結構 88
習題3 91
第4章 函數(shù) 95
4.1 函數(shù)的定義 97
4.1.1 函數(shù)定義 97
4.1.2 函數(shù)的返回值 98
4.2 函數(shù)的調(diào)用 99
4.2.1 函數(shù)調(diào)用的形式及過程 99
4.2.2 函數(shù)的聲明 100
4.2.3 函數(shù)調(diào)用的參數(shù)傳遞方式 102
4.3 函數(shù)的嵌套調(diào)用和遞歸調(diào)用 104
4.3.1 函數(shù)的嵌套調(diào)用 104
4.3.2 函數(shù)的遞歸調(diào)用 105
4.4 內(nèi)聯(lián)函數(shù)和函數(shù)重載 110
4.4.1 內(nèi)聯(lián)函數(shù) 110
4.4.2 函數(shù)重載 111
4.5 函數(shù)的參數(shù) 115
4.5.1 函數(shù)參數(shù)的求值順序 115
4.5.2 具有默認參數(shù)值的函數(shù) 116
4.6 應用實例 117
4.7 函數(shù)的調(diào)試 122
實驗四 函數(shù)的基本操作與應用 124
習題4 127
第5章 作用域和存儲類型 131
5.1 作用域 133
5.1.1 作用域分類 133
5.1.2 局部變量與全局變量 135
5.1.3 動態(tài)存儲方式與靜態(tài)存儲
方式 139
5.2 變量的存儲類型 140
5.2.1 自動類型 140
5.2.2 寄存器類型 141
5.2.3 靜態(tài)類型 142
5.2.4 外部類型 145
5.3 編譯預處理 146
5.3.1 宏定義命令 146
5.3.2 文件包含命令 149
5.3.3 條件編譯命令 149
5.4 程序的多文件組織 151
5.4.1 頭文件 151
5.4.2 多文件結構 151
5.4.3 多文件結構程序示例 152
5.5 多文件程序的創(chuàng)建與調(diào)試 154
實驗五 作用域和存儲類型應用 156
習題5 159
第6章 數(shù)組 161
6.1 數(shù)組的概念 163
6.1.1 數(shù)組與數(shù)組元素 163
6.1.2 數(shù)組的維數(shù) 163
6.2 一維數(shù)組的定義及應用 163
6.2.1 一維數(shù)組的定義和初始化 163
6.2.2 一維數(shù)組的操作 165
6.2.3 數(shù)組的越界問題 166
6.2.4 一維數(shù)組的應用 166
6.2.5 基于范圍的for循環(huán) 170
6.3 字符數(shù)組的定義及應用 171
6.3.1 字符數(shù)組和字符串 171
6.3.2 字符串處理函數(shù) 173
6.3.3 字符數(shù)組應用舉例 175
6.4 二維數(shù)組 177
6.4.1 二維數(shù)組的定義 177
6.4.2 二維數(shù)組的初始化 178
6.4.3 二維字符數(shù)組 180
6.4.4 二維數(shù)組應用 181
6.5 數(shù)組作為函數(shù)參數(shù) 185
6.5.1 向函數(shù)傳遞一維數(shù)組 185
6.5.2 向函數(shù)傳遞二維數(shù)組或多維
數(shù)組 188
6.6 數(shù)組應用實例 189
6.7 斷點調(diào)試方法 191
實驗六 數(shù)組 199
習題6 202
第7章 結構體、共用體和枚舉類型 209
7.1 結構體的定義及使用 211
7.1.1 結構體的定義 211
7.1.2 結構體變量的定義 212
7.1.3 結構體變量的使用 214
7.1.4 結構體變量的初始化 215
7.1.5 結構體數(shù)組 215
7.1.6 結構體和函數(shù) 220
7.2 共用體的定義與使用 221
7.2.1 共用體的概念 221
7.2.2 共用體變量的定義 222
7.2.3 共用體變量的使用 222
7.3 枚舉類型 224
7.4 typedef定義類型 226
7.5 應用實例 227
7.6 程序調(diào)試 231
7.6.1 結構體變量各成員變量的
內(nèi)存分配情況 232
7.6.2 共用體變量各數(shù)據(jù)成員的
內(nèi)存分配情況 233
實驗七 結構體、共用體和枚舉類型 234
習題7 236
第8章 指針和引用 239
8.1 指針與指針變量 241
8.1.1 地址與指針的概念 241
8.1.2 指針變量 242
8.1.3 指針變量的運算 246
8.1.4 void指針 248
8.1.5 C++11的擴展 249
8.2 指針與數(shù)組 249
8.2.1 一維數(shù)組與指針 249
8.2.2 二維數(shù)組與指針 251
8.2.3 指向數(shù)組的指針 253
8.2.4 指針數(shù)組 254
8.2.5 指向指針的指針 255
8.3 字符指針與字符串 256
8.3.1 字符數(shù)組與字符指針 256
8.3.2 字符指針數(shù)組 258
8.4 動態(tài)內(nèi)存分配和釋放 258
8.4.1 C++中堆的使用 259
8.4.2 C語言中動態(tài)分配空間的
函數(shù) 261
8.5 指針與函數(shù) 262
8.5.1 指針變量與數(shù)組名作函數(shù)
參數(shù) 262
8.5.2 返回值為指針類型的函數(shù) 267
8.5.3 函數(shù)指針 268
8.6 const指針 271
8.6.1 指向常量的指針變量的定義
與使用 271
8.6.2 指針常量 272
8.6.3 指向常量的指針常量 273
8.7 結構體指針 273
8.7.1 結構體指針的概念 273
8.7.2 指向結構體數(shù)組元素的
指針 274
8.7.3 結構體指針作為函數(shù)參數(shù) 275
8.8 鏈表 277
8.8.1 鏈表概述 277
8.8.2 鏈表的基本操作 278
8.9 引用 285
8.9.1 引用及聲明方法 285
8.9.2 用引用作為函數(shù)的參數(shù) 287
8.9.3 如何使一個被調(diào)函數(shù)同時
返回多個值 288
8.9.4 用const限定引用 289
8.9.5 用引用作為函數(shù)返回值 290
8.9.6 引用總結 291
8.10 綜合應用實例 291
8.11 上機調(diào)試 296
8.11.1 指針變量值的調(diào)試查看 296
8.11.2 函數(shù)地址的調(diào)試查看 297
8.11.3 引用的調(diào)試查看 298
8.12 小結 299
實驗八 指針和引用 299
習題8 302
第9章 文件 307
9.1 C語言文件概述 309
9.2 文件結構體與文件指針 310
9.3 文件的打開與關閉 311
9.3.1 文件的打開(fopen
函數(shù)) 311
9.3.2 文件的關閉(fclose
函數(shù)) 312
9.4 文件的讀寫 313
9.4.1 按字符讀寫文件(fgetc和
fputc函數(shù)) 313
9.4.2 字符串的讀寫(fgets和fputs
函數(shù)) 317
9.4.3 格式化的讀寫(fscanf和
fprintf函數(shù)) 319
9.4.4 數(shù)據(jù)塊的讀寫(fread和
fwrite函數(shù)) 322
9.5 文件的定位 324
9.5.1 位置指針復位(rewind
函數(shù)) 325
9.5.2 位置指針隨機定位(fseek
函數(shù)) 326
9.5.3 檢測當前位置指針的位置(ftell
函數(shù)) 329
9.6 文件的檢測 329
9.6.1 文件讀寫錯誤檢測(ferror
函數(shù)) 329
9.6.2 清除文件錯誤標志(clearerr
函數(shù)) 330
9.6.3 文件結束檢測(feof
函數(shù)) 330
9.7 常用文件操作函數(shù)小結 330
9.8 程序設計舉例 331
9.9 上機調(diào)試 337
實驗九 文件 342
習題9 344
附錄A ASCII碼表 347
附錄B C++的庫函數(shù) 349
參考文獻 352