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