C語言作為一門通用的程序設(shè)計語言,學習并掌握C語言是每一位計算機相關(guān)專業(yè)學生必須掌握的一個專業(yè)技能,也幾乎是每一個理工科或者其他專業(yè)的學生必須具備的基本功之一。
《C/C++程序設(shè)計》以程序設(shè)計思想為主導,詳細介紹了程序設(shè)計的基本知識、C語言基本知識、結(jié)構(gòu)化程序設(shè)計方法、數(shù)組、指針、函數(shù)、結(jié)構(gòu)體、編譯預處理、文件操作和C語言程序調(diào)試技能,同時對于面向?qū)ο蟪绦蛟O(shè)計的基本概念也進行了介紹。本書內(nèi)容翔實、知識體系合理,知識引入深入淺出,并提供大量實用例題以及豐富多樣的習題,方便讀者使用。
《C/C++程序設(shè)計》可作為高等本科院校計算機科學和電子與信息工程等相關(guān)專業(yè)的程序設(shè)計基礎(chǔ)課程的教材,也可作為計算機與電子信息相關(guān)專業(yè)的程序設(shè)計基礎(chǔ)學習參考教材。由于本書深入淺出知識引入方法,故本書也特別適合自學者使用。
C語言從產(chǎn)生到現(xiàn)在,已經(jīng)成為重要和流行的編程語言之一。在各種流行編程語言中,都能看到C語言的影子,如Java、C#的語法與C語言基本相同。學習、掌握C語言是每一個計算機技術(shù)人員的基本功之一。同時,C語言作為一門通用的語言,幾乎是每一個理工科或者其他專業(yè)的學生都要學習的語言。
《C/C++程序設(shè)計》在編寫過程中,注重了知識內(nèi)容的體系結(jié)構(gòu),力求做到內(nèi)容翔實且突出重難點,如將指針放在函數(shù)之前,確保在函數(shù)的應(yīng)用中可以全方位引入指針,如按地址傳遞參數(shù)的不同實現(xiàn)形式、函數(shù)返回地址等。特別地,將C語言集成環(huán)境以及C程序的各種連編和程序調(diào)試方法單獨列為一章,增加了模塊化的、由多個源文件組成的C程序的編譯調(diào)試方法,這部分內(nèi)容在目前已出版的C語言教材中比較少見。
《C/C++程序設(shè)計》在C語言基礎(chǔ)上增加了面向?qū)ο蟮膬?nèi)容,考慮到許多院校專門開設(shè)有面向?qū)ο蟮某绦蛟O(shè)計課程如Java等,在這些課程中會對面向?qū)ο蟮闹R進行詳細介紹,故本書對于面向?qū)ο笾唤榻B了基本概念和基本思想,重點介紹了面向?qū)ο蟮某橄蠛头庋b這兩個基本特征。讀者不僅可以初步了解面向過程的程序設(shè)計方法與面向?qū)ο蟮某绦蛟O(shè)計方法的不同之處,同時通過類中 對成員函數(shù)的設(shè)計也可以進一步加深對函數(shù)的理解和應(yīng)用。
《C/C++程序設(shè)計》共分11章,第1章介紹了程序設(shè)計基礎(chǔ)、C語言的發(fā)展及特點;第2章介紹了C語言的數(shù)據(jù)類型、基本運算符及表達式、各種不同類型數(shù)據(jù)的輸入與輸出;第3章介紹了結(jié)構(gòu)化程序設(shè)計的3種基本結(jié)構(gòu);第4章介紹了數(shù)組及其應(yīng)用;第5章介紹了指針及其應(yīng)用;第6章介紹了函數(shù)及其應(yīng)用;第7章介紹了編譯預處理和位運算;第8章介紹了結(jié)構(gòu)體類型、共用體類型和枚舉類型;第9章介紹了數(shù)據(jù)文件的應(yīng)用;第10章介紹了面向?qū)ο蟮某绦蛟O(shè)計基礎(chǔ)知識;第11章介紹了C語言的集成環(huán)境與各種程序調(diào)試方法。
書中的每一章都提供了豐富且實用的例題,提供了較細致的算法分析圖表,幫助讀者理解并掌握基本算法及算法設(shè)計技巧。每一章后也配備了豐富的不同類型的習題。
《C/C++程序設(shè)計》中的程序代碼均在Visual C++ 6.0環(huán)境中調(diào)試通過。
《C/C++程序設(shè)計》由西安理工大學信息裝備與控制工程學院范翠香、劉輝編著。范翠香老師編寫了第1、2、3、5、7、8、9、11章和附錄,劉輝老師編寫了第4、6、10章。全書由范翠香、劉輝老師統(tǒng)稿,胡忭利老師主審。
由于作者水平有限,書中難免存在不妥和疏漏之處,懇請讀者批評指正,謝謝!
前言
第1章程序設(shè)計基礎(chǔ)及C語言概述
1.1程序與程序設(shè)計語言
1.1.1程序和程序設(shè)計
1.1.2計算機語言
1.1.3算法
1.2 C語言概述
1.2.1 C語言的發(fā)展
1.2.2 C語言的特色
習題1
第2章數(shù)據(jù)類型、運算符及表達式
2.1數(shù)據(jù)類型
2.1.1 C語言的數(shù)據(jù)類型
2.1.2常量與變量
2.1.3整型數(shù)據(jù)
2.1.4實型數(shù)據(jù)
2.1.5字符型數(shù)據(jù)
2.1.6變量的初始化
2.2數(shù)據(jù)的輸入與輸出
2.2.1 C語言的輸入與輸出概述
2.2.2數(shù)據(jù)的格式輸出函數(shù)
2.2.3數(shù)據(jù)的格式輸入函數(shù)
2.2.4 printf()和scanf()函數(shù)的常用格式小結(jié)
2.2.5單個字符型數(shù)據(jù)的非格式輸入與輸出
2.3 C語言的運算符及表達式
2.3.1基本概念
2.3.2算術(shù)運算符和算術(shù)表達式
2.3.3賦值運算符和賦值表達式
2.3.4逗號運算符和逗號表達式
2.4數(shù)據(jù)類型轉(zhuǎn)換和常用數(shù)學函數(shù)
2.4.1數(shù)據(jù)類型轉(zhuǎn)換
2.4.2數(shù)學函數(shù)及C語言的合法表達式
習題2
第3章結(jié)構(gòu)化程序設(shè)計
3.1順序結(jié)構(gòu)程序設(shè)計
3.1.1 C程序中的語句分類
3.1.2順序結(jié)構(gòu)
3.2選擇結(jié)構(gòu)程序設(shè)計
3.2.1條件和條件表達式
3.2.2if語句
3.2.3switch語句
3.3循環(huán)結(jié)構(gòu)程序設(shè)計
3.3.1循環(huán)結(jié)構(gòu)概述
3.3.2 while 語句
3.3.3 for語句
3.3.4 break語句和continue語句
3.3.5循環(huán)的嵌套
3.3.6循環(huán)結(jié)構(gòu)應(yīng)用舉例
習題3
第4章數(shù)組
4.1數(shù)組的引入
4.2一維數(shù)組及其應(yīng)用
4.2.1數(shù)組的概念
4.2.2一維數(shù)組的定義
4.2.3一維數(shù)組的初始化
4.2.4一維數(shù)組元素的引用
4.2.5一維數(shù)組應(yīng)用舉例
4.3二維數(shù)組及其應(yīng)用
4.3.1二維數(shù)組的定義
4.3.2二維數(shù)組的初始化
4.3.3二維數(shù)組元素的引用
4.3.4二維數(shù)組應(yīng)用舉例
4.4字符數(shù)組
4.4.1字符串與字符數(shù)組
4.4.2一維字符數(shù)組的定義與初始化
4.4.3二維字符數(shù)組的定義與初始化
4.4.4字符串輸入/輸出函數(shù)
4.4.5常用字符處理函數(shù)
4.4.6常用字符串處理函數(shù)
4.4.7字符串應(yīng)用舉例
4.5數(shù)組應(yīng)用舉例
習題4
第5章指針及其應(yīng)用
5.1指針的基本概念
5.1.1地址與指針
5.1.2指針變量及其操作
5.2指針與一維數(shù)組
5.2.1一維數(shù)組的首地址和數(shù)組元素的地址
5.2.2訪問一維數(shù)組的幾種方法
5.2.3指針與字符串
5.3指針與二維數(shù)組
5.3.1二維數(shù)組的地址
5.3.2通過同類型指針變量訪問二維數(shù)組
5.4多級指針
5.4.1多級指針的概念
5.4.2通過二級指針變量引用二維數(shù)組及字符串
習題5
第6章函數(shù)
6.1函數(shù)的引入
6.1.1模塊化程序設(shè)計
6.1.2C程序結(jié)構(gòu)
6.1.3函數(shù)及其分類
6.2函數(shù)的定義和調(diào)用
6.2.1函數(shù)的定義和調(diào)用的格式
6.2.2函數(shù)之間的位置關(guān)系及函數(shù)的原型聲明
6.2.3函數(shù)的參數(shù)傳遞
6.2.4函數(shù)應(yīng)用舉例
6.3函數(shù)與指針
6.3.1指針作為函數(shù)的參數(shù)
6.3.2指向函數(shù)的指針
6.3.3返回指針的函數(shù)
6.4函數(shù)的嵌套調(diào)用和遞歸調(diào)用
6.4.1函數(shù)的嵌套調(diào)用
6.4.2函數(shù)的遞歸調(diào)用
6.4.3函數(shù)遞歸調(diào)用應(yīng)用舉例
6.5變量的作用域和存儲類型
6.5.1變量的作用域
6.5.2變量的存儲類型
習題6
第7章編譯預處理和位運算
7.1編譯預處理
7.1.1宏定義
7.1.2文件包含
7.1.3條件編譯
7.2位運算
7.2.1位運算的概念和位運算符
7.2.2不同位運算的運算規(guī)則
7.2.3位運算應(yīng)用舉例
習題7
第8章結(jié)構(gòu)體和共用體
8.1結(jié)構(gòu)體類型
8.1.1結(jié)構(gòu)體類型及結(jié)構(gòu)體變量
8.1.2結(jié)構(gòu)體數(shù)組
8.1.3結(jié)構(gòu)體指針變量及應(yīng)用
8.2共用體類型和枚舉類型
8.2.1共用體類型
8.2.2枚舉類型
8.3使用typedef命名已有類型
8.4單鏈表
8.4.1單鏈表概述及動態(tài)內(nèi)存分配
8.4.2單鏈表的主要操作
習題8
第9章文件操作
9.1文件概述
9.1.1文件的概念與分類
9.1.2文件的操作方式
9.2文件的讀寫操作
9.2.1字符讀/寫函數(shù)
9.2.2字符串讀/寫函數(shù)
9.2.3數(shù)據(jù)塊讀/寫函數(shù)
9.2.4格式讀/寫函數(shù)
9.3文件操作的其他函數(shù)
習題9
第10章面向?qū)ο蟪绦蛟O(shè)計基礎(chǔ)
10.1面向?qū)ο蟪绦蛟O(shè)計概述
10.1.1面向過程的程序設(shè)計
10.1.2面向?qū)ο蟪绦蛟O(shè)計
10.1.3面向?qū)ο蟪绦蛟O(shè)計的基本特點
10.2從C到C++
10.2.1 C++對C的一般擴充
10.2.2C++中的函數(shù)
10.3類與對象
10.3.1類
10.3.2類的成員函數(shù)
10.3.3對象的定義及引用
10.4構(gòu)造函數(shù)和析構(gòu)函數(shù)
10.4.1構(gòu)造函數(shù)
10.4.2析構(gòu)函數(shù)
10.5靜態(tài)成員
10.5.1靜態(tài)數(shù)據(jù)成員
10.5.2靜態(tài)成員函數(shù)
10.6繼承與派生
10.6.1類的繼承與派生
10.6.2派生類的構(gòu)造函數(shù)和析構(gòu)函數(shù)
10.6.3多重繼承
10.7多態(tài)性
10.7.1多態(tài)性概述
10.7.2函數(shù)重載
10.7.3虛函數(shù)
10.7.4純虛函數(shù)與抽象類
習題10
第11章C程序運行環(huán)境與調(diào)試
11.1認識C程序運行環(huán)境
11.1.1 C語言編譯系統(tǒng)介紹
11.1.2Visual C++6.0環(huán)境介紹
11.2C語言源程序的調(diào)試過程
11.2.1創(chuàng)建并調(diào)試一個簡單的程序
11.2.2創(chuàng)建并調(diào)試一個擁有多個源文件的項目
11.3程序常用調(diào)試手段
11.4程序常見錯誤及查找
11.4.1程序常見錯誤類型
11.4.2程序查錯的幾個階段
11.5初學者常見錯誤分析與改正
11.5.1常見語法類錯誤及修改
11.5.2常見輸入、輸出格式錯誤及修改
11.5.3常見其他類型錯誤及修改
11.5.4數(shù)組和函數(shù)、指針部分常見錯誤及修改
附錄
附錄A C語言常用關(guān)鍵字
附錄B常用字符與ASCII碼對照表
附錄C C運算符的優(yōu)先級和結(jié)合性