《C語言程序設計教程(第2版)》以“學生信息管理系統(tǒng)”案例貫穿全書,并以此為主線將C語言各章節(jié)的主要知識點有機結(jié)合,概念清晰、通俗易懂。全書共10章,內(nèi)容包括:C語言概述、數(shù)據(jù)類型、分支結(jié)構(gòu)程序設計、循環(huán)結(jié)構(gòu)程序設計、數(shù)組、函數(shù)、指針、文件、編譯預處理和用戶定制數(shù)據(jù)類型。 《C語言程序設計教程(第2版)》采取案例驅(qū)動、設問解答、舉例分析的組織方式,從實際應用系統(tǒng)開發(fā)的角度出發(fā),由淺入深、循序漸進地培養(yǎng)讀者在案例設計中的初步編程能力,幫助讀者掌握C語言的語法知識,引導讀者掌握大規(guī)模應用程序的編寫方法。并配有多媒體課件、例題和習題源代碼,并配有輔助教材。 《C語言程序設計教程(第2版)》適合作為高等學校各專業(yè)的C語言程序設計課程教材,也可作為從事計算機相關(guān)工作的科技人員、計算機愛好者及各類自學人員參考。
C語言是目前最為流行的高級程序設計語言之一,是許多計算機專業(yè)人員和計算機愛好者學習程序設計語言的首選,因此,面向初學者,編寫一本兼具可讀性和實用性的C語言程序設計教材非常重要。本書具有以下特點:
。1)以"學生信息管理系統(tǒng)"案例為主線來組織教材內(nèi)容,將C語言各章節(jié)的主要知識點有機地結(jié)合起來,形成一個整體,讓讀者充分理解各章節(jié)知識點之間的聯(lián)系,做到學有所用、融會貫通。在案例的求解過程中,講授程序設計的基本方法,側(cè)重對模塊化程序設計思想的介紹,并將軟件工程相關(guān)的思想滲透其中,以提高讀者編程解決實際問題的能力。
。2)選用的案例與學生聯(lián)系緊密、易于理解,內(nèi)容的講解由問題驅(qū)動,讓讀者以當事人身份,從實際應用系統(tǒng)開發(fā)的角度來分析問題,由淺入深、循序漸進地引導讀者掌握大規(guī)模應用程序的編寫方法,讓讀者在饒有興趣的案例設計中逐步培養(yǎng)編程能力、掌握C語言的語法知識。
(3)除了"學生信息管理系統(tǒng)"案例外,本書還精選了一些知識性、趣味性強的例子,如雞兔同籠問題、百錢買百雞問題、漢諾塔問題等,力圖通過這些經(jīng)典的實例來開拓讀者思路、引導讀者深入理解程序設計的基本思想、培養(yǎng)讀者的計算思維能力。
。4)本書在寫作上遵循學生的認知規(guī)律,力圖避免以往教材的一些問題。以往教材通常是以語言知識為主線來組織教學內(nèi)容、注重知識模塊的完整性,這些教材的優(yōu)點是內(nèi)容系統(tǒng)、語法詳盡,但忽略了對程序設計思想的訓練,對語法的講授,不是為應用而講語法,而是為語法而講語法,使學生普遍感覺C語言語法規(guī)則多、枯燥難懂,全部內(nèi)容學完后,很多學生只能看懂小型程序,不能充分理解各章節(jié)知識點之間的聯(lián)系,不能綜合運用所學知識進行一個實際項目的開發(fā)。
。5)本書配有多媒體課件、例題和習題源代碼,并配有輔助教材《C語言程序設計習題集(第2版)》,可供讀者同步練習。習題集的每一章分兩節(jié),第一節(jié)為課后習題解答,第二節(jié)為等考模擬試題,每道題都附有答案,對稍難一點的試題還進行了解析和說明。試題的安排由易到難,課后習題部分相對簡單,是學生需要熟練掌握的內(nèi)容,等考模擬試題部分相對較難,能夠滿足"全國計算機等級考試二級C語言"的需要。
本書由龔本燦任主編并統(tǒng)稿,周治鈺任副主編,參編人員有周治鈺、吳西燕、任小燕、付云俠、宋建萍、王少蓉。參與本書討論和校對工作的有趙昕、郭德明、楊華甫、楊景華、高蓉、馮家林、袁偉、豐京丹,葉華、石勇濤。在本書的編寫過程中,董方敏教授和周學君副教授對書中內(nèi)容提出了許多寶貴的意見和建議。在此對他們的支持和幫助表示衷心的感謝。
龔本燦,三峽大學計算機與信息學院教授,碩士生導師。1970年出生,博士,畢業(yè)于武漢理工大學計算機學院計算機應用技術(shù)專業(yè)。長期從事“C語言程序設計”、“計算機網(wǎng)絡”等課程的教學工作,獲校優(yōu)秀教學獎和優(yōu)秀教學成果獎4項。參與國家自然科學基金項目2項、湖北省研究項目2項、?茖W基金項目2項,公開發(fā)表學術(shù)論文40余篇,其中SCI、EI檢索10余篇。目前主要從事無線網(wǎng)絡路由協(xié)議、網(wǎng)絡安全和智能算法方面的研究。
第1章 C語言概述
1.1 計算機程序設計語言的發(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 學生信息管理系統(tǒng)案例簡介
本章小結(jié)
習題
第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é)
習題
第3章 分支結(jié)構(gòu)程序設計
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é)
習題
第4章 循環(huán)結(jié)構(gòu)程序設計
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é)
習題
第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 字符數(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 學生結(jié)構(gòu)體數(shù)組的定義和引用
5.5.3 案例中部分功能模塊的實現(xiàn)
本章小結(jié)
習題
第6章 函數(shù)
6.1 函數(shù)的定義、調(diào)用和聲明
6.1.1 函數(shù)的定義
6.1.2 函數(shù)的調(diào)用
6.1.3 函數(shù)的聲明
6.2 函數(shù)的應用舉例
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é)
習題
第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 指針變量的應用舉例
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 學生信息鏈表中結(jié)點的定義
7.10.3 學生信息鏈表的操作
本章小結(jié)
習題
第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é)
習題
第9章 編譯預處理
9.1 宏定義
9.1.1 無參數(shù)的宏定義
9.1.2 有參數(shù)的宏定義
9.2 文件包含與案例分析
9.2.1 文件包含
9.2.2 案例分析
9.3 條件編譯
本章小結(jié)
習題
第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é)
習題
附錄A ASCII碼表
附錄B C運算符的優(yōu)先級與結(jié)合性
附錄C C語言常用庫函數(shù)
附錄D 學生信息管理系統(tǒng)源代碼
參考文獻