《C語言程序設(shè)計教程(第2版)》以“學(xué)生信息管理系統(tǒng)”案例貫穿全書,并以此為主線將C語言各章節(jié)的主要知識點有機結(jié)合,概念清晰、通俗易懂。全書共10章,內(nèi)容包括:C語言概述、數(shù)據(jù)類型、分支結(jié)構(gòu)程序設(shè)計、循環(huán)結(jié)構(gòu)程序設(shè)計、數(shù)組、函數(shù)、指針、文件、編譯預(yù)處理和用戶定制數(shù)據(jù)類型。 《C語言程序設(shè)計教程(第2版)》采取案例驅(qū)動、設(shè)問解答、舉例分析的組織方式,從實際應(yīng)用系統(tǒng)開發(fā)的角度出發(fā),由淺入深、循序漸進地培養(yǎng)讀者在案例設(shè)計中的初步編程能力,幫助讀者掌握C語言的語法知識,引導(dǎo)讀者掌握大規(guī)模應(yīng)用程序的編寫方法。并配有多媒體課件、例題和習(xí)題源代碼,并配有輔助教材。 《C語言程序設(shè)計教程(第2版)》適合作為高等學(xué)校各專業(yè)的C語言程序設(shè)計課程教材,也可作為從事計算機相關(guān)工作的科技人員、計算機愛好者及各類自學(xué)人員參考。
C語言是目前最為流行的高級程序設(shè)計語言之一,是許多計算機專業(yè)人員和計算機愛好者學(xué)習(xí)程序設(shè)計語言的首選,因此,面向初學(xué)者,編寫一本兼具可讀性和實用性的C語言程序設(shè)計教材非常重要。本書具有以下特點:
(1)以"學(xué)生信息管理系統(tǒng)"案例為主線來組織教材內(nèi)容,將C語言各章節(jié)的主要知識點有機地結(jié)合起來,形成一個整體,讓讀者充分理解各章節(jié)知識點之間的聯(lián)系,做到學(xué)有所用、融會貫通。在案例的求解過程中,講授程序設(shè)計的基本方法,側(cè)重對模塊化程序設(shè)計思想的介紹,并將軟件工程相關(guān)的思想滲透其中,以提高讀者編程解決實際問題的能力。
。2)選用的案例與學(xué)生聯(lián)系緊密、易于理解,內(nèi)容的講解由問題驅(qū)動,讓讀者以當(dāng)事人身份,從實際應(yīng)用系統(tǒng)開發(fā)的角度來分析問題,由淺入深、循序漸進地引導(dǎo)讀者掌握大規(guī)模應(yīng)用程序的編寫方法,讓讀者在饒有興趣的案例設(shè)計中逐步培養(yǎng)編程能力、掌握C語言的語法知識。
。3)除了"學(xué)生信息管理系統(tǒng)"案例外,本書還精選了一些知識性、趣味性強的例子,如雞兔同籠問題、百錢買百雞問題、漢諾塔問題等,力圖通過這些經(jīng)典的實例來開拓讀者思路、引導(dǎo)讀者深入理解程序設(shè)計的基本思想、培養(yǎng)讀者的計算思維能力。
(4)本書在寫作上遵循學(xué)生的認(rèn)知規(guī)律,力圖避免以往教材的一些問題。以往教材通常是以語言知識為主線來組織教學(xué)內(nèi)容、注重知識模塊的完整性,這些教材的優(yōu)點是內(nèi)容系統(tǒng)、語法詳盡,但忽略了對程序設(shè)計思想的訓(xùn)練,對語法的講授,不是為應(yīng)用而講語法,而是為語法而講語法,使學(xué)生普遍感覺C語言語法規(guī)則多、枯燥難懂,全部內(nèi)容學(xué)完后,很多學(xué)生只能看懂小型程序,不能充分理解各章節(jié)知識點之間的聯(lián)系,不能綜合運用所學(xué)知識進行一個實際項目的開發(fā)。
。5)本書配有多媒體課件、例題和習(xí)題源代碼,并配有輔助教材《C語言程序設(shè)計習(xí)題集(第2版)》,可供讀者同步練習(xí)。習(xí)題集的每一章分兩節(jié),第一節(jié)為課后習(xí)題解答,第二節(jié)為等考模擬試題,每道題都附有答案,對稍難一點的試題還進行了解析和說明。試題的安排由易到難,課后習(xí)題部分相對簡單,是學(xué)生需要熟練掌握的內(nèi)容,等考模擬試題部分相對較難,能夠滿足"全國計算機等級考試二級C語言"的需要。
本書由龔本燦任主編并統(tǒng)稿,周治鈺任副主編,參編人員有周治鈺、吳西燕、任小燕、付云俠、宋建萍、王少蓉。參與本書討論和校對工作的有趙昕、郭德明、楊華甫、楊景華、高蓉、馮家林、袁偉、豐京丹,葉華、石勇濤。在本書的編寫過程中,董方敏教授和周學(xué)君副教授對書中內(nèi)容提出了許多寶貴的意見和建議。在此對他們的支持和幫助表示衷心的感謝。
龔本燦,三峽大學(xué)計算機與信息學(xué)院教授,碩士生導(dǎo)師。1970年出生,博士,畢業(yè)于武漢理工大學(xué)計算機學(xué)院計算機應(yīng)用技術(shù)專業(yè)。長期從事“C語言程序設(shè)計”、“計算機網(wǎng)絡(luò)”等課程的教學(xué)工作,獲校優(yōu)秀教學(xué)獎和優(yōu)秀教學(xué)成果獎4項。參與國家自然科學(xué)基金項目2項、湖北省研究項目2項、?茖W(xué)基金項目2項,公開發(fā)表學(xué)術(shù)論文40余篇,其中SCI、EI檢索10余篇。目前主要從事無線網(wǎng)絡(luò)路由協(xié)議、網(wǎng)絡(luò)安全和智能算法方面的研究。
第1章 C語言概述
1.1 計算機程序設(shè)計語言的發(fā)展
1.2 C語言的發(fā)展及特點
1.2.1 C語言的發(fā)展
1.2.2 C語言的特點
1.3 簡單的C語言程序.
1.4 C語言程序的開發(fā)步驟及上機過程
1.4.1 C語言程序的開發(fā)步驟
1.4.2 C語言程序的上機過程
1.5 算法及其描述.
1.5.1 算法的概念
1.5.2 算法的描述
1.6 學(xué)生信息管理系統(tǒng)案例簡介
本章小結(jié)
習(xí)題
第2章 數(shù)據(jù)類型
2.1 數(shù)據(jù)類型的分類
2.2 整型數(shù)據(jù)
2.2.1 整型變量
2.2.2 整型常量
2.3 實型數(shù)據(jù)
2.3.1 實型變量
2.3.2 實型常量
2.4 字符型數(shù)據(jù)
2.4.1 字符型變量
2.4.2 字符型常量
2.5 數(shù)據(jù)類型轉(zhuǎn)換
2.6 格式化輸入/輸出函數(shù)
2.6.1 格式化輸入函數(shù)
2.6.2 格式化輸出函數(shù)
本章小結(jié)
習(xí)題
第3章 分支結(jié)構(gòu)程序設(shè)計
3.1 關(guān)系運算符及其表達式
3.2 邏輯運算符及其表達式
3.3 if語句
3.3.1 單分支條件語句
3.3.2 雙分支條件語句
3.3.3 多分支條件語句
3.3.4 if語句的嵌套
3.4 SWitch語句
3.5 運算符及其表達式
3.5.1 算術(shù)運算符及其表達式
3.5.2 賦值運算符及其表達式
3.5.3 條件運算符及其表達式
3.5.4 逗號運算符及其表達式
3.5.5 運算符的優(yōu)先級和結(jié)合方向
3.6 案例分析與實現(xiàn)
本章小結(jié)
習(xí)題
第4章 循環(huán)結(jié)構(gòu)程序設(shè)計
4.1 for語句
4.2 while語句
4.3 do-while語句
4.4 break語句和Continue語句
4.4.1 break語句
4.4.2 Continue語句
4.5 循環(huán)語句的嵌套
4.6 C語言程序的調(diào)試方法
4.7 案例分析與實現(xiàn)
本章小結(jié)
習(xí)題
第5章 數(shù)組
5.1 一維數(shù)組
5.1.1 一維數(shù)組的定義
5.1.2 一維數(shù)組的引用
5.1.3 一維數(shù)組的初始化
5.1.4 一維數(shù)組的應(yīng)用舉例
5.2 二維數(shù)組
5.2.1 二維數(shù)組的定義
5.2.2 二維數(shù)組的引用
5.2.3 二維數(shù)組的初始化
5.2.4 二維數(shù)組的應(yīng)用舉例
5.3 字符數(shù)組
5.3.1 字符數(shù)組的定義
5.3.2 字符數(shù)組的引用
5.3.3 字符數(shù)組的初始化
5.3.4 字符串輸入/輸出函數(shù)
5.3.5 字符串處理函數(shù)
5.4 排序算法
5.5 案例分析與實現(xiàn)
5.5.1 結(jié)構(gòu)體類型
5.5.2 學(xué)生結(jié)構(gòu)體數(shù)組的定義和引用
5.5.3 案例中部分功能模塊的實現(xiàn)
本章小結(jié)
習(xí)題
第6章 函數(shù)
6.1 函數(shù)的定義、調(diào)用和聲明
6.1.1 函數(shù)的定義
6.1.2 函數(shù)的調(diào)用
6.1.3 函數(shù)的聲明
6.2 函數(shù)的應(yīng)用舉例
6.3 函數(shù)的遞歸調(diào)用
6.4 數(shù)組作為函數(shù)參數(shù)
6.4.1 數(shù)組元素作為函數(shù)實參
6.4.2 數(shù)組名作為函數(shù)實參
6.5 變量的作用域
6.5.1 局部變量
6.5.2 全局變量
6.6 變量的生存期
6.7 外部函數(shù)與內(nèi)部函數(shù)
6.8 案例分析與實現(xiàn)
6.8.1 案例中的自定義函數(shù)簡介
6.8.2 案例中函數(shù)之間的調(diào)用關(guān)系
6.8.3 案例中部分功能模塊的實現(xiàn)
6.8.4 多文件的編譯與連接
本章小結(jié)
習(xí)題
第7章 指針
7.1 指針概述
7.1.1 指針的概念
7.1.2 指針變量的定義和引用
7.1.3 指針變量作為函數(shù)參數(shù)
7.2 指向一維數(shù)組的指針
7.2.1 指向一維數(shù)組的指針變量的定義
7.2.2 指針變量的算術(shù)運算
7.2.3 指針變量的應(yīng)用舉例
7.2.4 指向字符串的指針
7.3 指向結(jié)構(gòu)體的指針
7.3.1 指向結(jié)構(gòu)體變量的指針
7.3.2 指向結(jié)構(gòu)體數(shù)組的指針
7.4 返回指針的函數(shù)
7.5 動態(tài)內(nèi)存分配
7.6 指針數(shù)組
7.7 指向二維數(shù)組的指針
7.7.1 二維數(shù)組的地址
7.7.2 指向二維數(shù)組的指針
7.8 指向函數(shù)的指針
7.9 指向指針的指針
7.10 案例分析與實現(xiàn)
7.10.1 鏈表簡介
7.10.2 學(xué)生信息鏈表中結(jié)點的定義
7.10.3 學(xué)生信息鏈表的操作
本章小結(jié)
習(xí)題
第8章 文件
8.1 文件的基本知識
8.1.1 文件的概念
8.1.2 文件的分類
8.1.3 緩沖文件系統(tǒng)
8.2 文件的打開與關(guān)閉
8.2.1 文件的打開
8.2.2 文件的關(guān)閉
8.3 文件的讀寫操作
8.3.1 字符讀寫函數(shù)
8.3.2 字符串讀寫函數(shù)
8.3.3 格式化文件讀寫函數(shù)
8.3.4 數(shù)據(jù)塊讀寫函數(shù)
8.4 文件的隨機讀寫
8.5 案例分析與實現(xiàn)
本章小結(jié)
習(xí)題
第9章 編譯預(yù)處理
9.1 宏定義
9.1.1 無參數(shù)的宏定義
9.1.2 有參數(shù)的宏定義
9.2 文件包含與案例分析
9.2.1 文件包含
9.2.2 案例分析
9.3 條件編譯
本章小結(jié)
習(xí)題
第10章 用戶定制數(shù)據(jù)類型
10.1 共用體類型
10.1.1 共用體類型的定義
10.1.2 共用體變量的定義和引用
10.2 枚舉類型
10.2.1 枚舉類型的定義
10.2.2 枚舉變量的定義和引用
10.3 白定義類型名
10.4 位段與位運算
10.4.1 位段
10.4.2 位運算
本章小結(jié)
習(xí)題
附錄A ASCII碼表
附錄B C運算符的優(yōu)先級與結(jié)合性
附錄C C語言常用庫函數(shù)
附錄D 學(xué)生信息管理系統(tǒng)源代碼
參考文獻