C語言作為一門通用的程序設(shè)計(jì)語言,學(xué)習(xí)并掌握C語言是每一位計(jì)算機(jī)相關(guān)專業(yè)學(xué)生必須掌握的一個專業(yè)技能,也幾乎是每一個理工科或者其他專業(yè)的學(xué)生必須具備的基本功之一。
《C/C++程序設(shè)計(jì)》以程序設(shè)計(jì)思想為主導(dǎo),詳細(xì)介紹了程序設(shè)計(jì)的基本知識、C語言基本知識、結(jié)構(gòu)化程序設(shè)計(jì)方法、數(shù)組、指針、函數(shù)、結(jié)構(gòu)體、編譯預(yù)處理、文件操作和C語言程序調(diào)試技能,同時對于面向?qū)ο蟪绦蛟O(shè)計(jì)的基本概念也進(jìn)行了介紹。本書內(nèi)容翔實(shí)、知識體系合理,知識引入深入淺出,并提供大量實(shí)用例題以及豐富多樣的習(xí)題,方便讀者使用。
《C/C++程序設(shè)計(jì)》可作為高等本科院校計(jì)算機(jī)科學(xué)和電子與信息工程等相關(guān)專業(yè)的程序設(shè)計(jì)基礎(chǔ)課程的教材,也可作為計(jì)算機(jī)與電子信息相關(guān)專業(yè)的程序設(shè)計(jì)基礎(chǔ)學(xué)習(xí)參考教材。由于本書深入淺出知識引入方法,故本書也特別適合自學(xué)者使用。
C語言從產(chǎn)生到現(xiàn)在,已經(jīng)成為重要和流行的編程語言之一。在各種流行編程語言中,都能看到C語言的影子,如Java、C#的語法與C語言基本相同。學(xué)習(xí)、掌握C語言是每一個計(jì)算機(jī)技術(shù)人員的基本功之一。同時,C語言作為一門通用的語言,幾乎是每一個理工科或者其他專業(yè)的學(xué)生都要學(xué)習(xí)的語言。
《C/C++程序設(shè)計(jì)》在編寫過程中,注重了知識內(nèi)容的體系結(jié)構(gòu),力求做到內(nèi)容翔實(shí)且突出重難點(diǎn),如將指針放在函數(shù)之前,確保在函數(shù)的應(yīng)用中可以全方位引入指針,如按地址傳遞參數(shù)的不同實(shí)現(xiàn)形式、函數(shù)返回地址等。特別地,將C語言集成環(huán)境以及C程序的各種連編和程序調(diào)試方法單獨(dú)列為一章,增加了模塊化的、由多個源文件組成的C程序的編譯調(diào)試方法,這部分內(nèi)容在目前已出版的C語言教材中比較少見。
《C/C++程序設(shè)計(jì)》在C語言基礎(chǔ)上增加了面向?qū)ο蟮膬?nèi)容,考慮到許多院校專門開設(shè)有面向?qū)ο蟮某绦蛟O(shè)計(jì)課程如Java等,在這些課程中會對面向?qū)ο蟮闹R進(jìn)行詳細(xì)介紹,故本書對于面向?qū)ο笾唤榻B了基本概念和基本思想,重點(diǎn)介紹了面向?qū)ο蟮某橄蠛头庋b這兩個基本特征。讀者不僅可以初步了解面向過程的程序設(shè)計(jì)方法與面向?qū)ο蟮某绦蛟O(shè)計(jì)方法的不同之處,同時通過類中 對成員函數(shù)的設(shè)計(jì)也可以進(jìn)一步加深對函數(shù)的理解和應(yīng)用。
《C/C++程序設(shè)計(jì)》共分11章,第1章介紹了程序設(shè)計(jì)基礎(chǔ)、C語言的發(fā)展及特點(diǎn);第2章介紹了C語言的數(shù)據(jù)類型、基本運(yùn)算符及表達(dá)式、各種不同類型數(shù)據(jù)的輸入與輸出;第3章介紹了結(jié)構(gòu)化程序設(shè)計(jì)的3種基本結(jié)構(gòu);第4章介紹了數(shù)組及其應(yīng)用;第5章介紹了指針及其應(yīng)用;第6章介紹了函數(shù)及其應(yīng)用;第7章介紹了編譯預(yù)處理和位運(yùn)算;第8章介紹了結(jié)構(gòu)體類型、共用體類型和枚舉類型;第9章介紹了數(shù)據(jù)文件的應(yīng)用;第10章介紹了面向?qū)ο蟮某绦蛟O(shè)計(jì)基礎(chǔ)知識;第11章介紹了C語言的集成環(huán)境與各種程序調(diào)試方法。
書中的每一章都提供了豐富且實(shí)用的例題,提供了較細(xì)致的算法分析圖表,幫助讀者理解并掌握基本算法及算法設(shè)計(jì)技巧。每一章后也配備了豐富的不同類型的習(xí)題。
《C/C++程序設(shè)計(jì)》中的程序代碼均在Visual C++ 6.0環(huán)境中調(diào)試通過。
《C/C++程序設(shè)計(jì)》由西安理工大學(xué)信息裝備與控制工程學(xué)院范翠香、劉輝編著。范翠香老師編寫了第1、2、3、5、7、8、9、11章和附錄,劉輝老師編寫了第4、6、10章。全書由范翠香、劉輝老師統(tǒng)稿,胡忭利老師主審。
由于作者水平有限,書中難免存在不妥和疏漏之處,懇請讀者批評指正,謝謝!
前言
第1章程序設(shè)計(jì)基礎(chǔ)及C語言概述
1.1程序與程序設(shè)計(jì)語言
1.1.1程序和程序設(shè)計(jì)
1.1.2計(jì)算機(jī)語言
1.1.3算法
1.2 C語言概述
1.2.1 C語言的發(fā)展
1.2.2 C語言的特色
習(xí)題1
第2章數(shù)據(jù)類型、運(yùn)算符及表達(dá)式
2.1數(shù)據(jù)類型
2.1.1 C語言的數(shù)據(jù)類型
2.1.2常量與變量
2.1.3整型數(shù)據(jù)
2.1.4實(shí)型數(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語言的運(yùn)算符及表達(dá)式
2.3.1基本概念
2.3.2算術(shù)運(yùn)算符和算術(shù)表達(dá)式
2.3.3賦值運(yùn)算符和賦值表達(dá)式
2.3.4逗號運(yùn)算符和逗號表達(dá)式
2.4數(shù)據(jù)類型轉(zhuǎn)換和常用數(shù)學(xué)函數(shù)
2.4.1數(shù)據(jù)類型轉(zhuǎn)換
2.4.2數(shù)學(xué)函數(shù)及C語言的合法表達(dá)式
習(xí)題2
第3章結(jié)構(gòu)化程序設(shè)計(jì)
3.1順序結(jié)構(gòu)程序設(shè)計(jì)
3.1.1 C程序中的語句分類
3.1.2順序結(jié)構(gòu)
3.2選擇結(jié)構(gòu)程序設(shè)計(jì)
3.2.1條件和條件表達(dá)式
3.2.2if語句
3.2.3switch語句
3.3循環(huán)結(jié)構(gòu)程序設(shè)計(jì)
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)用舉例
習(xí)題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)用舉例
習(xí)題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ù)組及字符串
習(xí)題5
第6章函數(shù)
6.1函數(shù)的引入
6.1.1模塊化程序設(shè)計(jì)
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變量的存儲類型
習(xí)題6
第7章編譯預(yù)處理和位運(yùn)算
7.1編譯預(yù)處理
7.1.1宏定義
7.1.2文件包含
7.1.3條件編譯
7.2位運(yùn)算
7.2.1位運(yùn)算的概念和位運(yùn)算符
7.2.2不同位運(yùn)算的運(yùn)算規(guī)則
7.2.3位運(yùn)算應(yīng)用舉例
習(xí)題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單鏈表的主要操作
習(xí)題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ù)
習(xí)題9
第10章面向?qū)ο蟪绦蛟O(shè)計(jì)基礎(chǔ)
10.1面向?qū)ο蟪绦蛟O(shè)計(jì)概述
10.1.1面向過程的程序設(shè)計(jì)
10.1.2面向?qū)ο蟪绦蛟O(shè)計(jì)
10.1.3面向?qū)ο蟪绦蛟O(shè)計(jì)的基本特點(diǎn)
10.2從C到C++
10.2.1 C++對C的一般擴(kuò)充
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ù)與抽象類
習(xí)題10
第11章C程序運(yùn)行環(huán)境與調(diào)試
11.1認(rèn)識C程序運(yùn)行環(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)試一個擁有多個源文件的項(xiàng)目
11.3程序常用調(diào)試手段
11.4程序常見錯誤及查找
11.4.1程序常見錯誤類型
11.4.2程序查錯的幾個階段
11.5初學(xué)者常見錯誤分析與改正
11.5.1常見語法類錯誤及修改
11.5.2常見輸入、輸出格式錯誤及修改
11.5.3常見其他類型錯誤及修改
11.5.4數(shù)組和函數(shù)、指針部分常見錯誤及修改
附錄
附錄A C語言常用關(guān)鍵字
附錄B常用字符與ASCII碼對照表
附錄C C運(yùn)算符的優(yōu)先級和結(jié)合性