《高等學校計算機規劃教材:C語言程序設計》系統地介紹了C語言的基本概念、語法和語義,包括數據類型、常量、變量、運算符和表達式、語句、數組、函數、結構體、指針、文件等。將C語言的介紹和結構化程序設計方法有機地結合在一起,通過大量實例的分析、編程,幫助讀者盡快掌握C語言和用C語言編寫程序,通過基本算法思想介紹和應用實例掌握用C語言描述算法和基本算法在程序設計中的應用。教材提供了大量精心設計的習題和實驗,通過完成習題和實驗學習C語言和使用C語言編寫程序。
《高等學校計算機規劃教材:C語言程序設計》可作為高等院校學生學習《C語言程序設計》課程的教材,也可作為廣大計算機程序設計人員和計算機程序設計愛好者的參考書,同時可供參加相關考試的讀者參考。
近年來,學習計算機程序設計的人幾乎都選擇C語言作為首選語言。《C語言程序設計》不僅是計算機類專業的一門專業基礎課,也是大多數理工類專業的必修課。
為什么要學習C語言?大致有以下幾個理由:
C語言可以作為學習計算機程序設計語言的入門語言。
C語言是編寫操作系統的首選語言,與計算機硬件打交道時靈巧且高效。
C語言具有現代高級程序設計語言的基本語法特征。
常用的面向對象程序設計語言如C++和Java,其基本語法來源于C語言。
許多用C語言編寫的系統需要維護。
用于要求程序高速運行領域的編程,如嵌入式系統、通信程序。
游戲設計者和黑客少不了C語言。
C語言使用者和愛好者眾多。
學習C語言,需要理解和掌握C語言中諸如關鍵字、標識符、數據類型、常量、變量、運算符和表達式等基本概念,也需要掌握語句、數組、函數、指針、結構體、文件的使用。同時需要了解和掌握計算機的解題過程、算法的設計和表示、結構化程序設計方法等內容。
本書全面、系統地介紹了C語言的語法、語義和程序設計技術,內容豐富,結構完整,力求精練實用。對抽象概念的敘述通俗易懂,內容安排突出重點、分散難點,實例充實全書。全書共分10章。第1章介紹了C語言的簡史、特點,計算機解題過程和算法的概念。第2章介紹了C語言的基本數據類型、常量、變量、運算符和表達式。第3章介紹了結構化程序設計的三種基本結構及其控制語句。第4章介紹了數組的使用及其程序設計方法。第5章介紹了指針的使用及其程序設計方法。第6章介紹了用戶自定義函數的定義、調用和聲明方法,以及變量的作用域規則。第7章介紹了C語言的復雜數據類型結構體和動態數據結構。第8章介紹了文件的基本概念和操作方法。第9章介紹了宏、文件包含、條件編譯等預處理命令的使用。第10章是上機指導。每章均給出了覆蓋幾乎所有知識點的習題供學生練習。最后提供了非常實用的附錄,如常用庫函數介紹、編譯連接常見錯誤信息表等。
本書作為教材使用時,建議講授學時不少于40課時,實驗學時不少于16課時。
本書配有電子課件、源代碼等教學資源,可登錄電子工業出版社華信教育資源網(www.hxedu.com.cn),免費注冊、下載。
參加本書編寫的人員都是長期工作在教學第一線的教師,從事計算機專業課程教學多年,有豐富的教學經驗。本書由呼克佑老師主編并編寫第4、8、9章,第1、2章由林福平老師編寫,第3章由鄧紅霞老師編寫,第5、10章由段利國老師編寫,第6章由曹棣老師編寫,第7章由閻志中老師編寫,全書由呼克佑老師統稿,由馮秀芳老師主審。
在本書的編寫過程中得到了太原理工大學相關領導的大力支持和幫助,在此表示衷心的感謝。由于作者水平有限,書中疏漏在所難免,殷切盼望讀者批評指正。
編者
第1章 C語言與程序設計
1.1 C語言發展簡史
1.2 C語言的特點
1.3 計算機解題過程
1.4 算法及其表示
1.4.1 算法的概念
1.4.2 算法的表示
1.5 常用算法介紹
1.5.1 枚舉法
1.5.2 遞推法
1.5.3 遞歸法
1.6 結構化程序設計方法
1.6.1 結構化程序設計基本思想
1.6.2 三種基本程序結構
本章小結
習題一
第2章 C語言基本概念
2.1 簡單的C語言程序
2.2 關鍵字和標識符
2.2.1 字符集
2.2.2 關鍵字
2.2.3 標識符
2.3 數據類型
2.3.1 C語言的數據類型
2.3.2 整數類型
2.3.3 浮點類型
2.3.4 字符類型
2.4 常量和變量
2.4.1 常量
2.4.2 變量
2.5 運算符和表達式
2.5.1 算術運算符
2.5.2 賦值運算符
2.5.3 其他運算符
2.5.4 運算符的優先級和結合性
2.6 數據類型轉換
本章小結
習題二
第3章 程序控制結構
3.1 C語言語句
3.2 順序結構
3.2.1 賦值語句
3.2.2 數據輸出
3.2.3 數據輸入
3.2.4 程序舉例
3.3 選擇結構
3.3.1 關系運算符與關系表達式
3.3.2 邏輯運算符與邏輯表達式
3.3.3 if語句
3.3.4 switch語句
3.3.5 程序舉例
3.4 循環結構
3.4.1 while循環語句
3.4.2 do-while循環語句
3.4.3 for循環語句
3.4.4 循環的嵌套
3.4.5 goto、break和continue語句
3.4.6 程序舉例
本章小結
習題三
第4章 數組和字符串
4.1 一維數組
4.1.1 一維數組的定義
4.1.2 一維數組的初始化
4.1.3 一維數組元素的引用
4.1.4 一維數組應用舉例
4.2 二維數組及多維數組
4.2.1 二維數組的定義
4.2.2 二維數組的初始化
4.2.3 二維數組元素的引用
4.2.4 二維數組應用舉例
4.2.5 多維數組
4.3 字符數組和字符串
4.3.1 用字符數組存放字符序列
4.3.2 用字符數組存放字符串
4.3.3 字符串處理函數
4.3.4 字符數組應用舉例
本章小結
習題四
第5章 指針
5.1 指針的概念及運算
5.1.1 指針的概念
5.1.2 指針變量的定義和初始化
5.1.3 與指針有關的運算
5.2 指針與數組
5.2.1 指針與一維數組
5.2.2 指針與二維數組
5.3 指針與字符串
5.4 指針數組和指針的指針
5.4.1 指針數組
5.4.2 指向指針的指針
5.5 程序舉例
習題五
第6章 函數
6.1 模塊化的程序設計方法
6.2 函數的定義、調用和聲明
6.2.1 函數定義
6.2.2 函數調用
6.2.3 函數聲明
6.3 函數參數及其傳遞方式
6.3.1 函數的參數
6.3.2 函數參數的傳遞方式
6.4 函數的嵌套調用和遞歸調用
6.4.1 函數的嵌套調用
6.4.2 函數的遞歸調用
6.5 函數指針和指向函數的指針變量
6.5.1 指向函數的指針變量
6.5.2 指向函數的指針作函數的參數
6.6 main( )函數的參數
6.7 變量的作用域規則與存儲類別
6.7.1 局部變量和全局變量
6.7.2 變量的存儲類別
6.7.3 內部函數和外部函數
6.8 程序舉例
本章小結
習題六
第7章 結構體、共用體和枚舉
7.1 結構體
7.1.1 結構體類型
7.1.2 結構體變量
7.1.3 結構體應用舉例
7.1.4 結構體指針與函數
7.1.5 位域
7.2 動態存儲分配
7.2.1 內存的分配與釋放
7.2.2 內存動態分配應用舉例
7.3 共用體
7.3.1 共用體類型
7.3.2 共用體變量
7.4 枚舉類型
7.4.1 枚舉類型的定義
7.4.2 枚舉類型數據的使用
7.5 自定義數據類型
本章小結
習題七
第8章 文件
8.1 文件概述
8.1.1 文件的基本概念
8.1.2 文件類型和常用函數
8.1.3 文件類型指針
8.2 文件的打開與關閉
8.2.1 文件的打開
8.2.2 文件的關閉
8.3 文件的讀/寫
8.3.1 順序文件的讀/寫
8.3.2 隨機文件的讀/寫
8.4 程序舉例
本章小結
習題八
第9章 編譯預處理
9.1 宏定義
9.1.1 不帶參數的宏定義
9.1.2 帶參數的宏定義
9.2 文件包含
9.3 條件編譯
習題九
第10章 實驗指導
實驗一 C語言的運行環境和運行過程
實驗二 C語言運算符和表達式
實驗三 復合結構程序設計
實驗四 數組程序設計
實驗五 指針程序設計
實驗六 函數程序設計
實驗七 結構體程序設計
實驗八 文件程序設計
附錄A ASCII碼字符表
附錄B C語言運算符
附錄C 位運算
附錄D 常用的C庫函數
參考文獻