C語言程序設計
-
【作 者】甘勇
【I S B N 】978-7-5084-8295-8
【責任編輯】楊元泓
【適用讀者群】本科
【出版時間】2011-02-21
【開 本】16開
【裝幀信息】平裝(光膜)
【版 次】第1版第1次印刷
【頁 數】
【千字數】540
【印 張】21
【定 價】¥35
【叢 書】普通高等教育“十一五”規劃教材
【備注信息】
簡介
本書特色
前言
章節列表
精彩閱讀
下載資源
相關圖書
C語言處理功能豐富,表達能力強,使用靈活方便,執行程序效率高,可移植性強;具有豐富的數據類型和運算符,語句非常簡單,源程序簡潔清晰;可以直接處理硬件系統和對外圍設備接口進行控制。C語言是一種結構化的程序設計語言,支持自頂向下、逐步求精的結構化程序設計技術。本教材以指針為主線貫穿始終,詳細介紹了C語言程序設計的基本原理和方法。全書共分12章,主要介紹C語言基礎知識,程序的控制結構,C語言中的構造數據類型,指針數據類型,程序中的文件及C語言的特點等內容。
本教材適合用作高等院校計算機專業和非計算機專業的程序設計基礎課程教材,也可供自學的讀者使用。
緊扣教學大綱,兼顧ACM大學生程序設計競賽
從認識、了解、掌握、應用等幾個層次精心組織內容,由淺入深,循序漸進
將指針貫穿每個章節,使指針這一難點分散到各個章節,以減輕讀者的學習壓力,增強讀者學習積極性
精心挑選和精心設計案例,具有新穎性、代表性、典型性
C語言從誕生之日起就一直保持著旺盛的生命力,不斷地發展壯大、日臻完善,已經成為目前使用最廣泛的編程語言之一。與其他高級語言相比,C語言處理功能豐富,表達能力強,使用靈活方便,執行程序效率高,可移植性強;具有豐富的數據類型和運算符,語句非常簡單,源程序簡潔清晰;可以直接處理硬件系統和對外圍設備接口進行控制。C語言是一種結構化的程序設計語言,支持自頂向下、逐步求精的結構化程序設計技術。另外,C語言程序的函數結構也為實現程序的模塊化設計提供了強有力的保障。因此縱然有C++、Java這樣的后繼者,但到目前為止,它們依然沒有取代C的跡象。尤其C99標準發布以后,C語言的旺盛生命力再次得到了保持和延續。
本教材的編寫者全部是一直戰斗在各高等學校教學一線,承擔“C語言程序設計”課程的教學任務的大學教師,有豐富的教學經驗,并長期從事C語言編程工作,有著將自己積累的“C語言程序設計”經驗介紹給大家的強烈愿望。在教學實踐中,作者感受最深的就是,學習者普遍反映C語言難學難懂,而事實上,學習者感覺難的部分往往并不是C語言的核心內容。學習的過程就是一個學習者與教師,學習者與教材交互的過程,只要遵照一定的學習規律,這個交互過程并不難達成。學習者應該明白選擇一本交互性好的教材是至關重要的。不可否認,一些經典的C語言教材在教學中所起的巨大作用。但是,傳統教材過細的內容組織也讓學習者迷失了方向。本教材以指針為主線,貫穿始終。并對各章常見的錯誤進行了解析。另外,本教材也特別強調實踐能力的培養,學習者首先應該學會用適當的編程工具編制、調試程序。學習者在編程實踐中不斷遇到問題,不斷解決問題,自然就會明白許多細節。本教材主張在介紹核心語法的基礎上,以培養動手編程能力為首要目標,把那些煩瑣、煩心的內容留待以后慢慢研究。
本教材共分12章,將C語言的特色內容“指針”貫穿始終,將這一難點分散到相關章節,避免了難度集中造成學習者喪失學習的興趣。
第1章“程序設計技術概述”介紹了程序設計的基本知識,詳細闡述了軟件的編制方法,使學習者對軟件的編制有一個概念上的認識和理解,并能將這些方法應用于后續章節的學習中。
第2章“C程序設計基礎”介紹了C語言的基本知識,重點闡述了變量的聲明方法,使學習者掌握變量、地址、存儲數據之間的關系。
第3章“C程序基本結構”介紹了C語言標準庫函數和順序結構程序設計的基本方法,使學習者能夠使用庫函數編寫簡單的順序結構程序。
第4章“選擇結構”介紹了選擇結構的相關語法,使學習者能夠解決選擇結構所涉及的問題。
第5章“循環控制結構”介紹了循環結構的相關語法,使學習者能夠解決循環結構所涉及的問題。
第6章“函數”介紹了函數的相關知識,重點介紹了基本使用方法、函數參數的傳值調用和傳址調用,使學習者能夠綜合使用函數參數的傳值調用和傳址調用來解決實際問題。
第7章“數組”介紹了C語言中數值型一維數組和二維數組的相關知識,使學習者能夠熟練使用函數來解決數組的相關問題。
第8章“字符數組與字符串”介紹了字符串與字符數組的相關知識,使學習者能夠處理與字符串和字符數組相關的問題。
第9章“結構和聯合”介紹了結構和聯合的基本概念,使學生能夠綜合使用數組、指針以及結構和聯合來解決一些實際問題。
第10章“指針”介紹了指針的高級使用,使學習者能夠處理涉及指針數組、函數指針和指針函數的相關問題。
第11章“位運算”介紹了位運算的相關知識,使學生對位運算有一個較為系統的認識,并能夠使用所學的位運算知識解決相關問題。
第12章“文件”介紹了文件的概念以及處理文件問題所涉及的函數,使學生在掌握常用文件函數的基礎上來解決一些實際問題。
在本教材的編寫過程中作者參考了許多同行的著作,有的不方便列在參考目錄中,在此一并表達感謝之情。本書各章內容可以獨立教學,自成體系,教師可根據情況適當取舍。感謝鄭州輕工業學院、華北水利水電學院、河南工業大學、河南科技學院和中國水利水電出版社的大力支持,正是由于各位領導的大力支持及相關基金的支撐才使本教材得以成書付印。
本書由甘勇擔任主編,尚展壘、肖樂、海燕、吳文紅、張寶劍擔任副主編,王鵬遠、沈高峰、范乃梅、李萍、劉海燕參編。其中第9章由海燕和吳文紅編寫,第11章由肖樂和張寶劍編寫,其他章節由甘勇、尚展壘、王鵬遠、沈高峰、范乃梅、李萍、劉海燕編寫。
如果您能夠愉快地讀完本教材,并告之身邊的朋友,原來C語言并不難學,那就是作者最大的欣慰。盡管作者盡了最大努力,也有良好而負責任的態度,但是由于學識所限,難免存在缺點和錯誤,懇請各位讀者批評指正,以在再版時修訂。
作 者
2011年1月
第1章 程序設計技術概述 1
1.1 程序設計語言概述 1
1.2 算法 4
1.3 軟件的編制步驟 10
1.4 C程序設計語言的產生與特點 12
1.5 C語言程序的運行環境(Visual C++ 6.0
編譯環境) 13
1.5.1 C語言程序上機步驟 13
1.5.2 Visual C++ 6.0開發環境 14
1.5.3 如何在 Visual C++ 6.0環境下編輯、
運行C程序 15
1.6 錯誤解析 22
本章小結 22
習題一 23
第2章 C程序設計基礎 25
2.1 C程序概述 25
2.1.1 一個簡單的C程序 25
2.1.2 C語言的字符集 27
2.2 主要數據類型 28
2.2.1 常量與變量 30
2.2.2 整型數據 32
2.2.3 實型數據 35
2.2.4 字符型數據 37
2.2.5 變量賦值 41
2.2.6 指針變量 41
2.3 運算符與表達式 42
2.3.1 C語言運算符簡介 42
2.3.2 算術運算符和算術表達式 43
2.3.3 關系運算符與關系表達式 45
2.3.4 邏輯運算符與邏輯表達式 45
2.3.5 賦值運算符和賦值表達式 46
2.3.6 逗號運算符和逗號表達式 49
2.3.7 自增、自減運算符 50
2.3.8 條件運算符和條件表達式 51
2.4 不同類型數據之間的轉換 52
2.5 錯誤解析 53
本章小結 54
習題二 55
第3章 C程序基本結構 58
3.1 簡單程序設計 58
3.1.1 流程控制概述 58
3.1.2 簡單程序設計舉例 59
3.2 C語言標準庫函數 60
3.2.1 C標準庫函數的分類 61
3.2.2 常用數學庫函數 62
3.2.3 標準輸出函數 64
3.2.4 標準輸入函數 70
3.2.5 字符的輸出和輸入 74
3.2.6 隨機函數 75
3.3 錯誤解析 77
本章小結 78
習題三 78
第4章 選擇結構 80
4.1 if語句 80
4.1.1 if語句中的表達式 80
4.1.2 單分支if語句 81
4.1.3 雙分支if語句 82
4.1.4 多分支if語句 84
4.1.5 if語句的嵌套 86
4.1.6 條件運算符實現選擇結構 88
4.2 switch語句 89
4.3 應用程序舉例 92
4.4 錯誤解析 96
本章小結 98
習題四 98
第5章 循環控制結構 102
5.1 while語句 102
5.2 for語句 108
5.3 do…while語句 113
5.4 多重循環結構 117
5.5 break語句和continue語句 121
5.5.1 break語句 121
5.5.2 continue語句 122
5.6 應用程序舉例 124
5.7 錯誤解析 130
本章小結 133
習題五 135
第6章 函數 136
6.1 C程序與函數概述 136
6.1.1 模塊化程序設計 136
6.1.2 C程序的一般結構 137
6.2 函數的定義與調用 139
6.2.1 函數的定義 139
6.2.2 函數的調用 142
6.2.3 函數的參數傳遞 145
6.3 函數的地址引用 148
6.3.1 地址的存儲與使用 148
6.3.2 指針說明和指針對象的引用 149
6.4 局部變量與全局變量 153
6.4.1 局部變量 153
6.4.2 全局變量 154
6.5 變量的存儲類型 156
6.5.1 存儲類型區分符 156
6.5.2 自動變量 157
6.5.3 靜態變量 159
6.5.4 外部變量 161
6.5.5 寄存器變量 163
6.5.6 存儲類型小結 164
6.6 函數的嵌套與遞歸調用 165
6.6.1 函數的嵌套調用 165
6.6.2 函數的遞歸調用 167
6.7 內部函數與外部函數 171
6.7.1 內部函數 171
6.7.2 外部函數 171
6.8 編譯預處理 172
6.8.1 宏定義 172
6.8.2 文件包含 177
6.8.3 條件編譯 178
6.9 錯誤解析 179
本章小結 180
習題六 181
第7章 數組 183
7.1 一維數組的定義及使用 183
7.1.1 一維數組的定義 183
7.1.2 一維數組的引用 186
7.1.3 一維數組的初始化 187
7.1.4 程序舉例 190
7.2 一維數組與指針運算 196
7.2.1 一維數組的數組名 196
7.2.2 一維數組的下標與指針 197
7.2.3 作為函數參數的一維數組的數
組名 201
7.3 二維數組的定義及使用 206
7.3.1 二維數組的定義 206
7.3.2 二維數組元素的引用 207
7.3.3 二維數組的初始化 207
7.3.4 二維數組應用舉例 209
7.4 二維數組與指針運算 212
7.4.1 二維數組的數組名 212
7.4.2 二維數組的下標與指針 212
7.4.3 作為函數參數的二維數組的數
組名 215
7.5 使用內存動態分配實現動態數組 220
7.5.1 動態內存分配的步驟 220
7.5.2 動態內存分配函數 220
7.6 錯誤解析 222
本章小結 224
習題七 225
第8章 字符數組與字符串 227
8.1 字符數組 227
8.1.1 字符數組的定義與賦值 227
8.1.2 字符數組的初始化 229
8.1.3 字符數組的引用 230
8.2 字符串 231
8.2.1 字符串的定義及其輸入與輸出 231
8.2.2 字符串的處理與字符串處理函數 235
8.2.3 字符串與指針運算 239
8.3 應用程序舉例 243
8.4 錯誤解析 246
本章小結 248
習題八 248
第9章 結構和聯合 250
9.1 結構的說明與引用 250
9.2 結構數組的聲明、引用和初始化 255
9.3 聯合 257
9.4 應用程序舉例 262
9.5 錯誤解析 264
本章小結 264
習題九 265
第10章 指針 267
10.1 數組、地址與指針 267
10.1.1 數組、地址與指針的關系 267
10.1.2 一維數組中的地址與指針 268
10.1.3 二維數組中的地址與指針 270
10.2 指針數組與指向指針的指針 272
10.2.1 指針數組 272
10.2.2 指向指針的指針 276
10.3 指針數組作main函數的參數 278
10.4 指向函數的指針——函數指針 279
10.5 指針作為函數的返回值——指針函數 282
10.6 鏈表 284
10.7 應用程序舉例 287
10.8 錯誤解析 289
本章小結 291
習題十 292
第11章 位運算 295
11.1 位運算的概念 295
11.1.1 字節與位 295
11.1.2 補碼 296
11.2 二進制位運算 297
11.2.1 二進制位運算 297
11.2.2 位復合賦值運算符 304
11.3 應用程序舉例 304
11.4 錯誤解析 305
本章小結 305
習題十一 305
第12章 文件 307
12.1 文件概述 307
12.2 文件的使用 308
12.2.1 文件的聲明 308
12.2.2 文件的打開與關閉 309
12.2.3 文件的寫/讀 311
12.3 隨機文件的讀/寫 320
12.4 應用程序舉例 321
12.5 錯誤解析 325
本章小結 325
習題十二 326
參考文獻 327
- C程序設計實踐教程 [劉衛國]
- C程序設計(慕課版) [劉衛國]
- Web技術開發教程(基于.NET開源MVC框架) [王合闖 韓紅玲 王青正 陳海蕊]
- 程序設計基礎實踐教程(C/C++語言版) [張桂芬 葛麗娜]
- C++案例項目精講 [主編 楊國興]
- HCIA-Datacom認證題庫分類精講 [主 編 韓立剛]
- Ansys Workbench結構分析熱點解析 [牛海峰 ]
- C語言程序設計習題與實驗指導(第二版) [主編 甄增榮 張賓]
- C語言程序設計(第二版) [主編 甄增榮 田云霞]
- 計算機繪圖——AutoCAD+Autodesk Inventor(第二版) [主編 趙軍 劉瀟瀟]
- C語言程序設計實踐教程(活頁式) [主編 鄭茵 陳巍 滕泓虬]
- CLO 3D服裝虛擬仿真設計與應用基礎 [主編 王靜]
- JavaScript與jQuery項目化教程(活頁式) [主編 林灃 藍雪燕 宋家慧]
- C語言程序設計 [姜雪]
- WPS Office高級應用教程 [主編 牛莉 劉衛國]
- MS Office高級應用教程 [主編 牛莉 劉衛國]
- 電力工程CAD識圖與繪圖(活頁式) [主編 賈衛華 李曉華]
- C++程序設計實踐教程(第三版) [主編 劉衛國 曹岳輝]
- C++程序設計(第三版) [主編 曹岳輝 劉衛國]
- C語言程序設計項目化教程(活頁式) [主編 張利華 潘曉利]
- 信息技術基礎(Windows 7+Office 2016) [主編 王洪平 楊華]
- 基于.NET Core框架的分布式系統架構設計 [湯佳 著]
- 信息技術基礎實訓與習題指導(Windows7+Office2016) [主編 周金容 唐天國]
- 網站前端技術案例教程(HTML+CSS+JavaScript)(第二版) [黃華升]
- C語言同步案例習題精解 [主編 肖朝暉]
- Python辦公自動化—玩轉Excel [郝春吉 劉智楊 周永福 黃 詮]
- 計算機應用基礎與實踐(Windows 7平臺與Office 2016應用) [主編 呂波 何敏]
- 數據挖掘算法—基于C++及CUDA C [蒂莫西•馬斯特斯(Timothy]
- 電路設計與PCB制作實操教程 [主編 周永宏]
- Excel在會計工作中的應用(第三版) [主 編 趙艷莉 耿聰慧]