本教程以先進(jìn)性、應(yīng)用性、普及性為出發(fā)點(diǎn), 在全面、系統(tǒng)介紹C語(yǔ)言基礎(chǔ)知識(shí)和經(jīng)典實(shí)例的同時(shí), 在每一章節(jié)都引入了多個(gè)電類(lèi)專(zhuān)業(yè)C語(yǔ)言編程實(shí)例, 通過(guò)實(shí)例精講幫助學(xué)生快速實(shí)現(xiàn)從知識(shí)到能力的轉(zhuǎn)化。全書(shū)分10章, 包括C語(yǔ)言概述、算法、數(shù)據(jù)類(lèi)型、運(yùn)算符、表達(dá)式、程序結(jié)構(gòu)、數(shù)組、函數(shù)、指針、結(jié)構(gòu)體共用體、位運(yùn)算和文件等。
自1972年誕生以來(lái),由于數(shù)據(jù)類(lèi)型豐富、運(yùn)算方便、表達(dá)方式靈活、兼具高級(jí)語(yǔ)言和低級(jí)語(yǔ)言的優(yōu)點(diǎn)且能夠直接對(duì)計(jì)算機(jī)硬件進(jìn)行操作,C語(yǔ)言迅速成為一種在全世界范圍內(nèi)被廣泛使用的程序設(shè)計(jì)語(yǔ)言。
在實(shí)際應(yīng)用中,從網(wǎng)絡(luò)后臺(tái)程序到計(jì)算機(jī)操作系統(tǒng),各種各樣的應(yīng)用程序和游戲均可使用C語(yǔ)言進(jìn)行開(kāi)發(fā)設(shè)計(jì),用其編寫(xiě)的程序普遍具有執(zhí)行效率高、代碼緊湊、可移植性好等優(yōu)點(diǎn)。
鑒于C語(yǔ)言在工業(yè)領(lǐng)域中的重要性,很多高職院校和普通高等院校都將其作為電類(lèi)專(zhuān)業(yè)學(xué)生的程序設(shè)計(jì)基礎(chǔ)語(yǔ)言課程,其目的是使學(xué)生在了解并掌握程序設(shè)計(jì)思想和方法的基礎(chǔ)上,培養(yǎng)計(jì)算機(jī)程序設(shè)計(jì)的實(shí)踐能力。
C語(yǔ)言的優(yōu)秀教材很多,但能夠?qū)語(yǔ)言與電類(lèi)專(zhuān)業(yè)應(yīng)用聯(lián)系在一起,并讓零基礎(chǔ)初學(xué)者欣然接受的卻并不多。因此,本書(shū)針對(duì)初學(xué)者的學(xué)習(xí)特點(diǎn),通過(guò)內(nèi)容整合、示例精講、實(shí)例分析等方式,重新整理安排了電類(lèi)專(zhuān)業(yè)C語(yǔ)言教學(xué)內(nèi)容,力圖使其更加簡(jiǎn)潔明確、通俗易懂,更具專(zhuān)業(yè)針對(duì)性。
本書(shū)以ANSIC為標(biāo)準(zhǔn)(美國(guó)國(guó)家標(biāo)準(zhǔn)協(xié)會(huì)推出的C語(yǔ)言標(biāo)準(zhǔn)),以VisualC++6.0為集成開(kāi)發(fā)環(huán)境,全面系統(tǒng)地介紹了C語(yǔ)言及其程序設(shè)計(jì)思想和方法,主要特點(diǎn)如下:
。1)教學(xué)內(nèi)容由淺入深、循序漸進(jìn),符合初學(xué)者零基礎(chǔ)的特點(diǎn)。前4章作為基礎(chǔ)部分,各章節(jié)知識(shí)點(diǎn)講解簡(jiǎn)單明了,示例豐富,能夠幫助讀者盡快掌握C語(yǔ)言基礎(chǔ)。第5-10章作為進(jìn)階部分,在介紹知識(shí)點(diǎn)的同時(shí)更注重知識(shí)點(diǎn)的綜合運(yùn)用。第11章作為高級(jí)部分,通過(guò)專(zhuān)業(yè)編程實(shí)例向讀者展示了電類(lèi)專(zhuān)業(yè)C語(yǔ)言編程常用知識(shí)點(diǎn)的實(shí)際使用情況。
(2)章節(jié)安排合理。在循序漸進(jìn)安排教學(xué)內(nèi)容的同時(shí),本書(shū)對(duì)部分章節(jié)的知識(shí)點(diǎn)講解順序進(jìn)行了調(diào)整,使整個(gè)教學(xué)內(nèi)容更富條理,更符合初學(xué)者的學(xué)習(xí)節(jié)奏,學(xué)習(xí)效率更高。
。3)避免知識(shí)點(diǎn)的簡(jiǎn)單羅列,避免細(xì)枝末節(jié)的語(yǔ)法干擾。因?yàn)镃語(yǔ)言的知識(shí)點(diǎn)多且散,初學(xué)者很難全部掌握,所以本書(shū)根據(jù)C語(yǔ)言在電類(lèi)專(zhuān)業(yè)的實(shí)際應(yīng)用情況,對(duì)知識(shí)點(diǎn)進(jìn)行了必要的區(qū)分。常用知識(shí)點(diǎn)均輔以經(jīng)典實(shí)例詳細(xì)講解,使讀者對(duì)知識(shí)點(diǎn)的掌握更深入透徹。偏僻知識(shí)點(diǎn)的講解則力求簡(jiǎn)潔,以免過(guò)多的語(yǔ)法細(xì)節(jié)干擾讀者的學(xué)習(xí)進(jìn)度。
。4)示例經(jīng)典,注釋詳細(xì)。書(shū)中的重點(diǎn)教學(xué)內(nèi)容均附有典型示例,對(duì)相關(guān)知識(shí)點(diǎn)的注釋講解極為詳細(xì),方便讀者直觀了解和分析知識(shí)點(diǎn)的應(yīng)用情況。
。5)結(jié)合科研競(jìng)賽內(nèi)容,理論聯(lián)系實(shí)際,注重實(shí)戰(zhàn)能力培養(yǎng)。在計(jì)算機(jī)、電氣、電子、通信等電類(lèi)專(zhuān)業(yè)實(shí)際應(yīng)用中,C語(yǔ)言的編程應(yīng)用極為廣泛。因此,借助作者所在單位——石家莊學(xué)院物電學(xué)院近年來(lái)在全國(guó)電子設(shè)計(jì)大賽、全國(guó)智能車(chē)競(jìng)賽、河北省挑戰(zhàn)杯等科研競(jìng)賽中的經(jīng)驗(yàn)積累,本書(shū)專(zhuān)門(mén)整理搜集了多個(gè)基于C語(yǔ)言的科研競(jìng)賽實(shí)例。通過(guò)實(shí)例分析讓讀者更好地感受和實(shí)踐C語(yǔ)言編程的樂(lè)趣。
本書(shū)由石家莊學(xué)院郭鵬、康元元、孫宏強(qiáng)、孫建起編寫(xiě),其中,第1~3章、第5~7章和第9章由郭鵬編寫(xiě),第8章、第10章及附錄由康元元編寫(xiě),第11章由孫宏強(qiáng)編寫(xiě),第4章由孫建起編寫(xiě)。全書(shū)由郭鵬主編并統(tǒng)稿。此外,石家莊學(xué)院張玉豐和張勇杰同學(xué)也參與了本書(shū)的部分實(shí)例整理工作。
本書(shū)在編寫(xiě)過(guò)程中參閱了大量的參考文獻(xiàn),在此對(duì)它們的作者表示衷心的感謝。由于編者水平有限,書(shū)中難免有錯(cuò)誤和疏漏之處,懇請(qǐng)廣大讀者批評(píng)指正。
第1章 C語(yǔ)言概述
1.1 基礎(chǔ)知識(shí)
1.2 為什么要學(xué)C語(yǔ)言
1.3 C程序結(jié)構(gòu)分析
1.4 C程序上機(jī)步驟
第2章 算法
2.1 算法的概念
2.2 常見(jiàn)的算法描述方法
2.2.1 用自然語(yǔ)言表示算法
2.2.2 用傳統(tǒng)流程圖表示算法
2.2.3 用結(jié)構(gòu)化流程圖表示算法
2.2.4 用偽代碼表示算法
2.2.5 用計(jì)算機(jī)語(yǔ)言表示算法
2.3 結(jié)構(gòu)化程序設(shè)計(jì)方法
第3章 數(shù)據(jù)類(lèi)型、運(yùn)算符和表達(dá)式
3.1 數(shù)據(jù)類(lèi)型
3.2 常量與變量
3.2.1 標(biāo)識(shí)符
3.2.2 常量和符號(hào)常量
3.2.3 變量
3.3 C語(yǔ)言的常用數(shù)據(jù)類(lèi)型
3.3.1 整型數(shù)據(jù)
3.3.2 實(shí)型數(shù)據(jù)
3.3.3 字符型數(shù)據(jù)
3.3.4 為變量賦初值
3.4 不同數(shù)據(jù)類(lèi)型間的轉(zhuǎn)換
3.4.1 混合運(yùn)算中的數(shù)據(jù)類(lèi)型轉(zhuǎn)換
3.4.2 賦值運(yùn)算中的數(shù)據(jù)類(lèi)型轉(zhuǎn)換
3.4.3 強(qiáng)制轉(zhuǎn)換
3.5 運(yùn)算符和表達(dá)式
3.5.1 算術(shù)運(yùn)算符和算術(shù)表達(dá)式
3.5.2 賦值運(yùn)算符和賦值表達(dá)式
3.5.3 逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式
第4章 程序結(jié)構(gòu)
4.1 順序結(jié)構(gòu)程序設(shè)計(jì)
4.1.1 C語(yǔ)句
4.1.2 賦值語(yǔ)句
4.1.3 數(shù)據(jù)的輸入與輸出實(shí)現(xiàn)
4.1.4 字符數(shù)據(jù)的輸入與輸出
4.1.5 格式輸入與格式輸出
4.1.6 順序結(jié)構(gòu)程序設(shè)計(jì)舉例
4.2 選擇結(jié)構(gòu)程序設(shè)計(jì)
4.2.1 關(guān)系運(yùn)算符和邏輯運(yùn)算符
4.2.2 if語(yǔ)句
4.2.3 if語(yǔ)句的嵌套
4.2.4 switch語(yǔ)句
4.2.5 選擇結(jié)構(gòu)程序舉例
4.3 循環(huán)結(jié)構(gòu)程序設(shè)計(jì)
4.3.1 goto語(yǔ)句
4.3.2 while語(yǔ)句
4.3.3 do…while語(yǔ)句
4.3.4 for語(yǔ)句
4.3.5 循環(huán)的嵌套
4.3.6 break語(yǔ)句和continue語(yǔ)句
4.3.7 循環(huán)語(yǔ)句小結(jié)
4.3.8 循環(huán)結(jié)構(gòu)程序舉例
第5章 數(shù)組
5.1 一維數(shù)組
5.1.1 一維數(shù)組的定義
5.1.2 一維數(shù)組的初始化
5.1.3 一維數(shù)組的引用
5.1.4 一維數(shù)組程序舉例
5.2 二維數(shù)組
5.2.1 二維數(shù)組的定義
5.2.2 二維數(shù)組的初始化
5.2.3 二維數(shù)組的引用
5.2.4 二維數(shù)組程序舉例
5.3 字符數(shù)組
5.3.1 字符數(shù)組的定義、初始化和引用
5.3.2 字符串
5.3.3 字符串的輸入與輸出
5.3.4 字符串處理函數(shù)
5.3.5 字符串程序舉例
第6章 函數(shù)
6.1 函數(shù)概述
6.2 函數(shù)的類(lèi)別
6.2.1 庫(kù)函數(shù)
6.2.2 用戶(hù)自定義函數(shù)
6.3 函數(shù)的定義
6.3.1 無(wú)參函數(shù)的定義
6.3.2 有參函數(shù)的定義
6.3.3 空函數(shù)
6.4 函數(shù)聲明
6.5 函數(shù)的參數(shù)與函數(shù)的返回值
6.5.1 函數(shù)的實(shí)際參數(shù)和形式參數(shù)
6.5.2 數(shù)組作為函數(shù)參數(shù)
6.5.3 函數(shù)的返回值
6.6 函數(shù)的調(diào)用
6.6.1 函數(shù)調(diào)用的一般形式
6.6.2 函數(shù)調(diào)用的過(guò)程
6.6.3 三種函數(shù)調(diào)用方式
6.6.4 函數(shù)的嵌套調(diào)用
6.6.5 函數(shù)的遞歸調(diào)用
6.7 變量的作用域和存儲(chǔ)類(lèi)型
6.7.1 局部變量和全局變量
6.7.2 變量的存儲(chǔ)類(lèi)型
6.7.3 變量定義和聲明的區(qū)別
6.8 內(nèi)部函數(shù)和外部函數(shù)
6.8.1 內(nèi)部函數(shù)
6.8.2 外部函數(shù)
6.9 編譯預(yù)處理
6.9.1 宏定義
6.9.2 文件包含
6.9.3 條件編譯
第7章 指針
7.1 指針概述
7.2 指針變量和簡(jiǎn)單變量
7.2.1 定義指針變量
7.2.2 指針變量的初始化
7.2.3 指針變量的引用
7.3 指針變量與一維數(shù)組
7.3.1 作為指針的數(shù)組名
7.3.2 使用指針變量引用數(shù)組元素
7.3.3 使用指針變量處理字符串
7.3.4 指針運(yùn)算
7.4 指針變量與函數(shù)
7.4.1 指針變量作為函數(shù)參數(shù)
7.4.2 數(shù)組名作為函數(shù)參數(shù)
7.5 指針的高級(jí)應(yīng)用
7.5.1 指針與多維數(shù)組
7.5.2 指向函數(shù)的指針變量
7.5.3 返回指針的函數(shù)
7.5.4 指針數(shù)組
7.5.5 指向指針的指針變量
第8章 結(jié)構(gòu)體與共用體
8.1 結(jié)構(gòu)體類(lèi)型
8.1.1 結(jié)構(gòu)體類(lèi)型的定義
8.1.2 結(jié)構(gòu)體變量的定義
8.1.3 結(jié)構(gòu)體變量的初始化和引用
8.2 結(jié)構(gòu)體數(shù)組
8.2.1 結(jié)構(gòu)體數(shù)組的定義
8.2.2 結(jié)構(gòu)體數(shù)組的初始化
8.2.3 結(jié)構(gòu)體數(shù)組的引用
8.3 共用體數(shù)據(jù)類(lèi)型
8.3.1 共用體變量的定義
8.3.2 共用體變量的引用
8.4 枚舉數(shù)據(jù)類(lèi)型
8.4.1 枚舉類(lèi)型及其變量的定義
8.4.2 枚舉變量的引用
8.5 自定義類(lèi)型
第9章 位運(yùn)算
9.1 位運(yùn)算符與位運(yùn)算
9.1.1 按位與運(yùn)算符“&”
9.1.2 按位或運(yùn)算符“|”
9.1.3 按位異或運(yùn)算符“^”
9.1.4 按位取反運(yùn)算符“~”
9.1.5 左移運(yùn)算符“”
9.1.6 右移運(yùn)算符“”
9.2 位段
第10章 文件
10.1 C文件的概念
10.1.1 文件名
10.1.2 文件的分類(lèi)
10.2 文件的打開(kāi)與關(guān)閉
10.2.1 文件類(lèi)型指針
10.2.2 文件的打開(kāi)(fopen函數(shù))
10.2.3 文件的關(guān)閉(fclose函數(shù))
10.3 文件的讀取和寫(xiě)入
10.3.1 fgetc函數(shù)和fputc函數(shù)
10.3.2 fgets函數(shù)和fputs函數(shù)
10.3.3 fprint函數(shù)和fscanf函數(shù)
10.3.4 fread函數(shù)和fwrite函數(shù)
10.4 文件的定位
10.4.1 rewind函數(shù)
10.4.2 fseek函數(shù)
10.4.3 ftell函數(shù)
10.4.4 實(shí)例解析
第11章 C語(yǔ)言在單片機(jī)編程中的實(shí)例解析
附錄A 常用字符與ASCII代碼對(duì)照表
附錄B 關(guān)鍵字及其用途
附錄C 運(yùn)算符和結(jié)合性
附錄D 常用的C語(yǔ)言庫(kù)函數(shù)