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