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