《普通高等教育“十二五”規(guī)劃教材·河南省省級精品課程教材:C語言程序設計》是河南省省級精品課程教材。全書分為程序設計基礎篇和程序設計進階篇兩大部分:基礎篇介紹基于Visual C++ 6.0的C語言開發(fā)環(huán)境、基本數(shù)據(jù)類型與表達式、基本輸入/輸出語句、順序結構程序設計、選擇結構程序設計、循環(huán)結構程序設計、數(shù)組、函數(shù)與預處理命令、典型算法與綜合程序設計;進階篇主要介紹指針、結構體與共用體、位運算、文件和模塊化程序設計方法。
《普通高等教育“十二五”規(guī)劃教材·河南省省級精品課程教材:C語言程序設計》知識體系完整、結構清晰、敘述簡潔、例題典型豐富,注重讀者進行程序設計方法的基礎訓練,培養(yǎng)良好的程序設計風格。本書配有網(wǎng)絡版的教學平臺及考試系統(tǒng),并提供相關的教學資源。
C語言是目前世界上應用最廣泛的一種結構化的程序設計語言。它既有高級語言的功能,又有低級語言的功能,它提供類型豐富、使用靈活的基本運算和數(shù)據(jù)類型,而且可移植性非常好,許多大型應用軟件都是用C語言編寫的,深受編程者的喜愛。
本書分為程序設計基礎篇和程序設計進階篇兩大部分,基礎篇介紹基于VisualC++6.0的C語言開發(fā)環(huán)境、基本數(shù)據(jù)類型與表達式、基本輸入/輸出語句、順序結構程序設計、選擇結構程序設計、循環(huán)結構程序設計、數(shù)組、函數(shù)與預處理命令、典型算法與綜合程序設計,進階篇主要介紹指針、結構體與共用體、位運算、文件和模塊化程序設計方法。
本書知識體系完整、結構清晰、敘述簡潔、例題典型豐富,注重讀者進行程序設計方法的基礎訓練,培養(yǎng)良好的程序設計風格。
本書的主要特點如下。
1.知識點精練,實用性強
C語言程序設計課程的知識點繁多,為了讓讀者在學習C語言程序設計過程中快速入門,本書對各個章節(jié)中的知識點進行了提煉,把一些不常用的知識點進行了刪減,增加了典型算法與綜合程序設計的內容,使初學者能夠快速掌握C語言程序設計的方法。
2.案例新穎、趣味性強
教材中的每個案例都經過精心設計,趣味性及實用性較強,通過這些案例,不僅可以提高讀者學習C語言的興趣,而且也可以對所學知識點達到舉一反三的效果,從而使讀者更深刻地理解所學習的知識點。
3.注重程序代碼的規(guī)范化
本書中的所有程序代碼嚴格按照流行的C語言的書寫規(guī)范進行編寫,使讀者在C語言學習中逐步養(yǎng)成良好的代碼書寫習慣,提高讀者對程序設計嚴謹性、縝密性、規(guī)范性的認識,為培養(yǎng)優(yōu)秀的程序員打下良好的基礎。
4.通過實際案例學習知識點,提高分析問題和獨立編寫程序的能力
本書通過實際項目中的綜合應用程序將C語言的知識點融為一體,使讀者能夠有目的性地學習C語言的各知識點。在每個綜合應用程序中,通過需求分析、程序編寫、調試運行等標準化程序設計的步驟,使讀者較快地提高獨立編寫程序的能力,掌握標準化的程序設計方法。
本書配有網(wǎng)絡版的教學平臺及考試系統(tǒng),并提供相關的教學資源(電子課件、例題源代碼等)。需要的教師,可自華信教育資源網(wǎng)免費注冊下載,也可與本書的編輯聯(lián)系獲取。
本書由長期從事一線教學的教師和具有多年C語言實際項目編程經驗的工程技術人員編寫,全書由普杰信教授負責主審,劉欣亮、李敏擔任主編,韓同躍、王愛珍、王平、韓豐擔任副主編。韓同躍編寫了第1、2章;王愛珍編寫了第3、4章;李敏編寫了第5、6章;王平編寫了第7、8章;劉欣亮編寫了第10、12章;韓豐編寫了第9、11章。此外,張兵利、薛冰冰、趙紅英、韓愛意參加了部分程序的調試工作。在本書的編寫過程中,參閱并引用了國內外諸多同行的著作,在此向他們致意。
由于作者學術水平有限,書中錯誤和不妥之處在所難免,敬請讀者批評指正。
2012年12月
第1章 C語言概述
1.1 程序設計語言的發(fā)展過程
1.1.1 機器語言(第一代語言)
1.1.2 匯編語言(第二代語言)
1.1.3 高級語言
1.2 C語言簡介
1.2.1 C語言的發(fā)展
1.2.2 C語言的特點
1.2.3 C和C++
1.3 C程序的結構
1.3.1 簡單的C程序
1.3.2 C程序的結構
1.4 C語言程序的運行步驟和集成開發(fā)環(huán)境
1.4.1 C語言程序的運行步驟
1.4.2 C語言的集成開發(fā)環(huán)境
小結
習題1
第2章 數(shù)據(jù)類型、 運算符與表達式
2.1 C語言數(shù)據(jù)類型概述
2.2 常量
2.2.1 常量的概念
2.2.2 符號常量
2.2.3 整型常量
2.2.4 實型常量
2.2.5 字符常量
2.2.6 字符串常量
2.3 變量
2.3.1 變量的概念及其應用
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.6 逗號運算符和逗號表達式
2.7 數(shù)據(jù)類型轉換
2.7.1 數(shù)據(jù)類型的自動轉換
2.7.2 數(shù)據(jù)類型的強制轉換
小結
習題2
第3章 順序結構程序設計
3.1 結構化程序設計方法
3.1.1 自頂向下、逐步求精、模塊化的結構化程序設計方法
3.1.2 程序的結構
3.2 C語句概述
3.2.1 表達式語句
3.2.2 函數(shù)調用語句
3.2.3 控制語句
3.2.4 復合語句
3.2.5 空語句
3.3 程序的注釋
3.4 數(shù)據(jù)的輸入與輸出
3.4.1 輸入和輸出的基本概念
3.4.2 輸入和輸出的實現(xiàn)
3.5 字符數(shù)據(jù)輸入/輸出函數(shù)
3.5.1 字符輸出函數(shù)putchar
3.5.2 字符輸入函數(shù)getchar
3.6 格式輸入/輸出函數(shù)
3.6.1 格式輸出函數(shù)printf
3.6.2 格式輸入函數(shù)scanf
3.7 順序結構程序設計舉例
小結
習題3
第4章 選擇結構程序設計
4.1 關系表達式和邏輯表達式
4.1.1 關系運算符和關系表達式
4.1.2 邏輯運算符和邏輯表達式
4.2 條件運算符和條件表達式
4.2.1 條件運算符
4.2.2 條件表達式和求值規(guī)則
4.3 if語句
4.3.1 if語句的格式和功能
4.3.2 if語句的嵌套
4.4 switch語句
4.5 if語句應用程序設計
4.6 switch語句與多分支if語句的比較
小結
習題4
第5章 循環(huán)結構程序設計
5.1 循環(huán)結構的引入
5.2 三種實現(xiàn)循環(huán)結構的語句
5.2.1 while語句
5.2.2 do while語句
5.2.3 for語句
5.3 break語句和continue語句
5.3.1 break語句
5.3.2 continue語句
5.4 循環(huán)嵌套
5.4.1 循環(huán)嵌套的概念
5.4.2 常見的形式
5.4.3 循環(huán)嵌套的執(zhí)行過程
5.4.4 使用注意事項
5.5 綜合程序設計
5.5.1 窮舉法
5.5.2 遞推法
5.5.3 迭代法
小結
習題5
第6章 數(shù)組
6.1 數(shù)組的引入
6.1.1 問題的提出
6.1.2 數(shù)組的基本概念
6.1.3 數(shù)組的分類
6.2 一維數(shù)組
6.2.1 一維數(shù)組的定義
6.2.2 一維數(shù)組的引用
6.2.3 一維數(shù)組的存儲
6.2.4 一維數(shù)組的初始化
6.2.5 一維數(shù)組的應用舉例
6.3 多維數(shù)組
6.3.1 二維數(shù)組的定義
6.3.2 二維數(shù)組的引用
6.3.3 二維數(shù)組的存儲
6.3.4 二維數(shù)組的初始化
6.3.5 二維數(shù)組應用舉例
6.4 字符數(shù)組
6.4.1 字符數(shù)組的定義與初始化
6.4.2 字符數(shù)組的輸入和輸出
6.4.3 常用的字符串處理函數(shù)
6.4.4 字符數(shù)組的應用舉例
小結
習題6
第7章 函數(shù)與預處理命令
7.1 概述
7.1.1 使用函數(shù)的重要性
7.1.2 用戶自定義函數(shù)的三個基本元素
7.2 函數(shù)的調用
7.2.1 函數(shù)的簡單調用
7.2.2 函數(shù)的嵌套調用
7.2.3 函數(shù)的遞歸調用
7.3 數(shù)組作為函數(shù)參數(shù)
7.3.1 數(shù)組元素作為函數(shù)參數(shù)
7.3.2 數(shù)組名作為函數(shù)參數(shù)
7.4 變量的分類
7.4.1 按作用域分類
7.4.2 按存儲類別分類
7.5 多文件程序
7.6 編譯預處理
7.6.1 宏定義
7.6.2 文件包含
小結
習題7
第8章 典型算法與綜合程序設計
8.1 數(shù)值計算方法
8.1.1 大數(shù)階乘計算
8.1.2 一元n次方程根的數(shù)值計算
8.1.3 定積分的計算
8.2 實用工具的設計
8.2.1 計算器
8.2.2 萬年歷
8.3 游戲類的設計
8.3.1 猜拳
8.3.2 漢諾塔
小結
第9章 指針
9.1 指針的概念
9.2 變量的指針和指向變量的指針變量
9.2.1 指針變量的定義
9.2.2 指針變量的引用
9.2.3 指針變量作為函數(shù)參數(shù)
9.3 數(shù)組的指針和指向數(shù)組的指針變量
9.3.1 指向數(shù)組元素的指針
9.3.2 數(shù)組元素的引用
9.3.3 用數(shù)組名作為函數(shù)參數(shù)
9.3.4 多維數(shù)組的指針和指向多維數(shù)組的指針變量
9.4 字符串的指針和指向字符串的指針變量
9.4.1 字符串的訪問
9.4.2 字符串指針變量與字符數(shù)組的區(qū)別
9.5 函數(shù)的指針變量
9.6 指針型函數(shù)
9.7 指針數(shù)組和指向指針的指針
9.7.1 指針數(shù)組的概念
9.7.2 指向指針的指針
小結
習題9
第10章 結構體與共用體
10.1 結構體引入
10.2 結構體變量的使用
10.2.1 結構體變量的定義
10.2.2 結構體變量的引用
10.2.3 結構體變量的初始化
10.2.4 結構體變量的使用
10.3 結構體數(shù)組
10.4 結構體變量作為函數(shù)的參數(shù)和返回值
10.5 結構體和指針
10.5.1 指向結構體變量的指針
10.5.2 指向結構體數(shù)組的指針
10.5.3 指向結構體變量的指針作為函數(shù)參數(shù)
10.5.4 函數(shù)返回值為指向結構體變量的指針
10.6 動態(tài)內存分配與鏈表
10.6.1 動態(tài)內存函數(shù)
10.6.2 用指針處理鏈表
10.6.3 鏈表的定義
10.6.4 鏈表的基本操作
10.7 共用體類型
10.7.1 共用體類型的定義
10.7.2 共用體變量的定義
10.7.3 共用體變量的使用
10.7.4 共用體實例
10.8 枚舉類型
10.8.1 枚舉類型的定義
10.8.2 枚舉變量的定義
10.8.3 枚舉變量的賦值和使用
10.9 自定義類型
小結
習題10
第11章 位運算
11.1 位運算符概述
11.1.1 與運算
11.1.2 或運算
11.1.3 異或運算
11.1.4 求反運算
11.1.5 移位運算
11.2 位運算賦值運算符
11.3 位域(位段)
11.3.1 位域的定義和位域變量的說明
11.3.2 位域的使用
小結
習題11
第12章 文件
12.1 文件概述
12.2 文件指針的定義
12.3 文件的基本操作
12.3.1 文件打開函數(shù)
12.3.2 文件關閉函數(shù)
12.3.3 文件檢測函數(shù)
12.3.4 文件定位函數(shù)
12.3.5 字符讀寫函數(shù)
12.3.6 字符串讀寫函數(shù)
12.3.7 格式化讀寫函數(shù)
12.3.8 數(shù)據(jù)塊讀寫函數(shù)
12.4 綜合程序設計
小結
習題12
附錄A 常用字符與ASCII碼對照表
附錄B 擴展ASCII碼對照表
附錄C C關鍵字
附錄D C語言的9種控制語句
附錄E C運算符的優(yōu)先級與結合性
附錄F 常用的ANSI C標準庫函數(shù)
參考文獻