C語言程序設計

-
【作 者】胡宏智
【I S B N 】978-7-5084-6545-5
【責任編輯】楊元泓
【適用讀者群】本科
【出版時間】2010-02-01
【開 本】16開
【裝幀信息】平裝(光膜)
【版 次】第1版
【頁 數】
【千字數】
【印 張】
【定 價】¥29
【叢 書】普通高等教育“十一五”規劃教材
【備注信息】
簡介
本書特色
前言
章節列表
精彩閱讀
下載資源
相關圖書
本書以程序案例為導向,全面介紹C語言的基本概念、數據類型、語句及其特點,深入淺出地講解C語言程序設計的基本方法,注重讀者程序設計思想和程序設計能力的培養。
全書共分8章,第1~4章介紹了C語言基礎知識、基本的數據類型、運算符與基本的程序語句、C語言結構化程序的算法設計與程序的控制結構、函數及編譯預處理,通過前4章的學習,讀者可以掌握C語言簡單程序設計的方法、步驟,C語言結構化、模塊化程序設計的思想和方法。第5~8章的內容包括:數組、指針、構造數據類型和文件的概念與應用。讀者通過5~8章的學習,能夠利用C語言進行比較復雜的程序設計。
本書每章均設置適量的習題、常見問題的問和答,并附習題解答。全書語言通俗易懂,內容取舍合理、由淺入深,適合用于普通高等院校本、專科的教材,也可供工程技術人員參考。
本書配有電子教案及相關資料,包括Turbo C(V2.0)編譯錯誤信息、Turbo C(V2.0)使用指南以及習題參考答案,讀者可從中國水利水電出版社網站或萬水書苑免費下載,網址:http://www.waterpub.com.cn/softdown/或http://www.dgboyong.cn。
21世紀的信息時代,承擔培養信息技術人才任務的高校在眾多的程序設計語言中,選用“C語言程序設計”作為計算機類和多數理工類專業的重要基礎課程之一,不僅僅是因為C語言從誕生之日起到現在一直流行,未來也會常葆青春,而且也是由于C語言自身固有的、其他程序設計語言難于媲美的優點所決定的。任何事物都有兩面性,C語言也不例外。C語言介于高級語言與低級語言之間,具有晦澀難懂的指針概念及既嚴格又靈活的語法規定,對于初學者來說,確有其不易入門的缺點。為了幫助初學者盡快掌握C語言的基礎知識、基本概念,開拓程序設計的分析思路、建立模塊化程序設計思想,培養編程技能,我們綜合各位老師多年的教學經驗,編寫此教材。
本書通過188個示例,全面介紹了C語言語句的功能、用法,重點講解問題求解的算法思想、編程思路。全書共由8章和4個附錄組成。
第1章C語言概述。通過本章的學習,使讀者了解C語言的主要特點、C語言源程序的結構組成、開發工具和程序設計步驟。
第2章主要介紹基本的數據類型、運算符、表達式與標識符、常量、變量的概念,基本的輸入輸出函數調用。通過本章的學習,讀者可以進行簡單的順序程序設計。
第3章主要介紹算法的概念、程序的選擇和循環結構。通過本章的學習訓練,讀者可以進行較復雜問題的求解算法描述,并轉化為C語言描述的程序設計技能。
第4章全面介紹了函數的概念與編譯預處理。通過本章的學習與練習,逐步學會把復雜問題分解成若干個相對簡單、獨立的功能模塊,實施分而治之,形成模塊化程序設計思想。學會如何把分散的多個程序文件組合成一個完整的C程序。
第5章介紹了數組的概念與用法。通過本章的學習,讀者將學會對數據類型相同的多個變量的簡化定義、字符數組和字符串的引用的方法。
第6章著重介紹了指針的概念、指針與數組的關系、指針函數、函數指針、指針數組、數組指針、動態數組、圖形處理函數等。通過本章的學習,讀者可以學會高級、高效的程序設計。
第7章介紹了結構體、共用體、枚舉等構造數據類型及其變量的定義、引用方法。
第8章介紹了文件的概念、分類和文件的使用。
書中前面加*號的章節,可根據各自的具體情況,作為選學或因課時有限不作為講授內容。全書例題和習題中的程序一一經過上機驗證通過,確保程序的正確性。
本書特色在于:
(1)每一章的開篇都給出教學內容提要、教學目標、教師要求與對學生的要求。對教與學都具有一定的的建議或指導性參考價值。
(2)全書以實例為導引,避免空洞的抽象描述。結合問題的分析與程序設計講解概念、語句的應用和注意事項,做到理論聯系實際。
(3)本書具有配套的全部實例與習題答案的電子資料、教學課件。本書的讀者可以通過電子信箱hhz163@126.com與作者聯系。
本書的編寫工作主要由安徽工業大學的胡宏智、王小林、王廣正、安徽建筑工業學院的黃曉梅和安徽冶金科技學院的胡恩勇承擔。其中的第1、4章由胡宏智編寫,第2~3章由王小林編寫,第5章由黃曉梅編寫,第6章由胡恩勇、胡宏智編寫,第7、8章和附錄A、B、C、D由王廣正編寫。全書由胡宏智統編定稿。
本書在編寫過程中得到了安徽工業大學、安徽建筑工業學院有關領導的熱情關懷和王喜鳳、郭玉華、程改榮、朱艷萍、劉凱、王華、陳國欽等老師的真誠幫助,自始至終在中國水利水電出版社的雷順加、徐海洋關心下,順利完成書稿。在此作者對他們的無私支持與奉獻,深表謝意!
由于作者水平有限,書中難免有不妥或錯誤,敬請讀者批評指正。
第1章 C語言概述 1
1.1 程序設計語言的發展 1
1.2 C語言的發展過程 3
1.3 C語言的主要特點 4
1.4 C語言程序的結構 5
1.5 C語言程序的執行 8
1.5.1 源程序翻譯 9
1.5.2 鏈接目標程序 10
1.6 C語言程序的開發工具 11
1.7 本章小結 12
1.8 問與答 12
習題一 12
第2章 基本的數據類型、運算符與程序語句 13
2.1 數據在計算機內的存儲形式 13
2.1.1 字符型數據 13
2.1.2 整型數據 14
2.1.3 實型數據 14
2.2 標識符、變量和常量 15
2.2.1 標識符 15
2.2.2 變量 15
2.2.3 常量 16
2.3 基本數據類型 16
2.3.1 整型 17
2.3.2 實型數據 18
2.3.3 字符型 20
2.4 運算符和表達式 23
2.4.1 算術運算符和算術表達式 24
2.4.2 關系運算符和關系表達式 26
2.4.3 邏輯運算符和邏輯表達式 27
2.4.4 賦值運算符和賦值表達式 28
2.4.5 逗號運算符和逗號表達式 30
2.4.6 位運算符與位運算 31
2.4.7 sizeof運算符 35
2.4.8 數據類型的轉換 35
2.4.9 表達式的計算次序 37
2.4.10 C語句概述 37
2.5 標準的輸入/輸出函數 38
2.5.1 格式化輸出函數printf() 38
2.5.2 格式化輸入函數scanf() 42
2.5.3 字符輸出函數putchar()、putc()、
putch() 44
2.5.4 字符輸入函數getchar()、getc()、
getch() 46
2.6 程序范例 47
2.7 本章小結 49
2.8 問與答 51
習題二 52
第3章 算法設計與程序的控制結構 56
3.1 算法的概念與特點 56
3.1.1 什么是算法 56
3.1.2 算法的特點 57
3.1.3 引例 57
3.2 算法的描述方法 60
3.2.1 用自然語言表示算法 60
3.2.2 用流程圖表示算法 60
3.2.3 用偽代碼表示算法 65
3.2.4 用計算機語言表示算法 65
3.3 順序結構 66
3.3.1 順序結構 66
3.3.2 應用程序范例 67
3.4 選擇結構 68
3.4.1 分支語句if()~與if()~else~ 68
3.4.2 條件運算符和條件表達式 73
3.4.3 多分支語句switch 74
3.4.4 應用程序范例 76
3.5 循環結構 80
3.5.1 while語句、do~while語句和
for語句 80
3.5.2 單重循環應用程序范例 85
3.5.3 嵌套循環及其應用程序范例 86
3.6 程序流程的轉移控制 87
3.6.1 跳轉語句goto 87
3.6.2 break和continue語句 88
3.6.3 exit()函數 90
3.6.4 應用程序范例 91
3.7 結構化程序設計方法 94
3.8 本章小結 95
3.9 問與答 96
習題三 99
第4章 函數與編譯預處理 103
4.1 函數的概念及其分類 103
4.2 函數的定義 104
4.3 函數的聲明與調用 107
4.3.1 函數能被使用的條件 107
4.3.2 函數聲明的場合 107
4.3.3 函數聲明的格式 108
4.3.4 函數聲明的位置 108
4.3.5 函數的調用、參數與返回值 109
4.3.6 函數的傳值方式 110
4.4 變量的作用域和存儲類別 111
4.4.1 變量的作用域 111
4.4.2 變量的存儲類別 112
4.5 內部函數與外部函數 117
4.6 遞歸函數 118
4.7 編譯預處理 123
4.7.1 宏定義與宏替換 123
4.7.2 文件包含預處理命令#include 126
4.7.3 條件編譯命令 127
4.8 綜合范例 129
4.9 本章小結 130
4.10 問與答 131
習題四 132
第5章 數組 136
5.1 數組的應用場合 136
5.2 一維數組的定義、引用和初始化 137
5.2.1 一維數組的定義 137
5.2.2 一維數組的初始化 137
5.2.3 一維數組元素的引用與
應用程序范例 138
5.2.4 一維數組作為函數的參數與
應用程序范例 142
5.3 多維數組的定義、引用和初始化 147
5.3.1 二維數組的概念 147
5.3.2 二維數組的定義 147
5.3.3 二維數組及多維數組的初始化 148
5.3.4 二維數組元素的引用及其
應用程序范例 149
5.3.5 二維數組作為函數的參數與
應用程序范例 152
5.4 字符數組 156
5.4.1 字符數組與字符串的關系 156
5.4.2 字符數組的初始化 157
5.4.3 字符串的輸入 158
5.4.4 字符串的輸出 159
5.4.5 字符串處理函數 160
5.4.6 字符數組的應用程序范例 162
5.5 本章小結 165
5.6 問與答 166
習題五 166
第6章 指針 170
6.1 指針的概念 170
6.1.1 什么是指針 170
6.1.2 為什么要引入指針概念 171
6.1.3 指針變量的定義 171
6.1.4 指針變量的使用 173
6.2 指針的運算 176
6.2.1 指針的算術運算 176
6.2.2 指針的關系運算 177
6.3 指針與數組之間的關系 177
6.3.1 指向一維數組元素的指針及其
應用程序范例 177
6.3.2 指向二維數組的指針及其
應用程序范例 180
6.3.3 字符指針及其應用程序范例 181
6.3.4 指針數組及其應用程序范例 183
6.4 指針作為函數的參數及其
應用程序范例 185
6.5 指針作為函數的返回值及
其應用程序范例 187
6.6 指向函數的指針及其應用程序范例 189
6.7 帶參數的main函數及其應用程序范例 192
6.8 指向指針的指針及其應用程序范例 194
*6.9 動態數組的實現 195
6.9.1 C程序的內存映像 195
6.9.2 動態內存分配與釋放函數 196
6.9.3 一維動態數組的實現 199
6.9.4 二維動態數組的實現 199
*6.10 圖形處理函數的簡單應用 200
6.11 本章小結 204
習題六 205
第7章 構造數據類型 210
7.1 問題的提出 210
7.2 結構體數據類型 211
7.2.1 結構體數據類型的定義 211
7.2.2 關鍵字typedef的用法 212
7.2.3 結構體變量的定義 213
7.2.4 結構體變量的初始化 215
7.2.5 結構體變量成員的引用 216
7.2.6 結構體變量成員的輸入/輸出 218
7.3 結構體數組 219
7.3.1 結構體數組的定義與初始化 219
7.3.2 結構體數組的應用程序范例 219
7.4 結構體指針 220
7.4.1 結構體指針變量的定義與
應用程序范例 220
7.4.2 結構體數組與指針變量及
其應用程序范例 221
7.5 結構體變量與函數 222
7.5.1 結構體作為函數的形式參數
與實際參數 222
7.5.2 函數的返回值類型為結構體 223
7.6 共用體(聯合體)數據類型 224
7.6.1 共用體(聯合體)
數據類型的定義 225
7.6.2 共用體(聯合體)
類型變量的定義與引用 225
7.7 枚舉數據類型 228
7.7.1 枚舉數據類型的定義 228
7.7.2 枚舉類型變量的定義與引用 228
*7.8 單向鏈表的概念 230
7.8.1 問題的提出 230
7.8.2 單向鏈表的建立 231
7.8.3 單向鏈表的節點的插入 231
7.8.4 單向鏈表節點的刪除 232
7.8.5 單向鏈表的銷毀 233
*7.9 位段 235
7.10 本章小結 236
7.11 問與答 236
習題七 237
第8章 文件 242
8.1 問題的提出 242
8.2 文件的概念 242
8.3 文件操作的常用函數 243
8.3.1 文件的打開與關閉 244
8.3.2 文件的錯誤檢測與處理 245
8.3.3 文件的順序讀寫及其范例 246
8.3.4 文件的隨機讀寫及其范例 251
8.4 本章小結 252
8.5 問與答 253
習題八 253
附錄A C語言的保留字與關鍵字 256
附錄B C語言運算符優先級結合性表 257
附錄C ASCII字符表 258
附錄D C語言常用庫函數 260
參考文獻 265
- C程序設計實踐教程 [劉衛國]
- C程序設計(慕課版) [劉衛國]
- Web技術開發教程(基于.NET開源MVC框架) [王合闖 韓紅玲 王青正 陳海蕊]
- 程序設計基礎實踐教程(C/C++語言版) [張桂芬 葛麗娜]
- C++案例項目精講 [主編 楊國興]
- HCIA-Datacom認證題庫分類精講 [主 編 韓立剛]
- SwiftUI完全開發 [李智威 著]
- MySQL數據庫項目式教程 [陳亞峰]
- Ansys Workbench結構分析熱點解析 [牛海峰 ]
- C語言程序設計習題與實驗指導(第二版) [主編 甄增榮 張賓]
- C語言程序設計(第二版) [主編 甄增榮 田云霞]
- 計算機繪圖——AutoCAD+Autodesk Inventor(第二版) [主編 趙軍 劉瀟瀟]
- Unity3D虛擬現實應用開發實踐 [主 編 劉龍]
- Python程序設計 [主編 姜春磊 陳虹潔]
- C語言程序設計實踐教程(活頁式) [主編 鄭茵 陳巍 滕泓虬]
- 面向對象程序設計 [主編 張勇 張平華 趙小龍]
- Python程序設計基礎及實戰 [主編 劉健]
- CLO 3D服裝虛擬仿真設計與應用基礎 [主編 王靜]
- JavaScript與jQuery項目化教程(活頁式) [主編 林灃 藍雪燕 宋家慧]
- C語言程序設計 [姜雪]
- Python程序設計實踐教程 [王鶴琴 蔡正保]
- WPS Office高級應用教程 [主編 牛莉 劉衛國]
- MS Office高級應用教程 [主編 牛莉 劉衛國]
- 電力工程CAD識圖與繪圖(活頁式) [主編 賈衛華 李曉華]
- C++程序設計實踐教程(第三版) [主編 劉衛國 曹岳輝]
- C++程序設計(第三版) [主編 曹岳輝 劉衛國]
- C語言程序設計項目化教程(活頁式) [主編 張利華 潘曉利]
- 機器人流程自動化(RPA)實戰——基于UiPath [主編 金鑫]
- Python 語言程序設計實踐指導 [主編 張雙獅]
- 信息技術基礎(Windows 7+Office 2016) [主編 王洪平 楊華]