C語言程序設計(第二版)
-
【作 者】主編 丁亞濤
【I S B N 】978-7-5084-8587-4
【責任編輯】李炎
【適用讀者群】高職高專
【出版時間】2011-07-01
【開 本】16開
【裝幀信息】平裝(光膜)
【版 次】第2版第1次印刷
【頁 數】280
【千字數】426
【印 張】17.5
【定 價】¥29.8
【叢 書】21世紀高職高專新概念規劃教材
【備注信息】
簡介
本書特色
前言
章節列表
精彩閱讀
下載資源
相關圖書
本書在延續第一版編寫風格的基礎上,根據計算機技術的發展,結合作者多年教學實踐與研發經驗,并考慮到讀者的反饋信息,對各個章節的內容、結構等進行了修訂、調整、完善和補充。全書分為12章,主要內容包括:C語言概述、數據類型、運算符和表達式、簡單程序設計、選擇結構程序設計、循環結構程序設計、數組、函數、指針、結構體、共用體與枚舉,位運算,文件,面向對象程序設計及C++簡介。本書采用“案例驅動”的編寫方式,以程序設計為中心,語法介紹精煉,內容敘述深入淺出、循序漸進,程序案例生動易懂,具有很好的啟發性。每章均配備教學課件和精心設計的習題。
本書既可以作為本專科院校C語言程序設計的教材,又可以作為自學者的參考用書,同時還可供各類考試人員復習參考。
案例驅動 將案例劃分為單獨的小節,以重點突出案例的層次,方便講解算法,同時給閱讀教材帶來方便。 精選例題 結合獨創的“變量跟蹤”等閱讀技巧,兼具趣味性和知識性,使學習更輕松。 新語言元素 作為教材的重要補充,第一次將C#、Java等納入擴展閱讀,并制作了計算機語言發展族譜圖,以突出C語言目前的地位和應用狀態,為高職院校同學今后快速走向應用指出方向。 強大的資源配套 包括配套的《C語言程序設計實訓、習題解答與考試指導(第二版)》、模擬的考試系統和大型題庫、成熟的無紙化的單機或網絡考試軟件、資料豐富的教學網站、精致的教學課件等。
前 言
高職修訂版的C語言程序設計教程終于完工,這是一本值得期待的教材,特色鮮明、內容充實、文敘簡練,案例豐富有趣,經典的語法,新語言元素的加入。
C語言是目前最流行的語言之一,也是很多其他流行語言如C#、C++、Java等的語法基礎。隨著計算機技術的發展,學好C語言越來越重要。為了適應不斷發展的教學和考試需求,C語言程序設計教程的編寫必須打破傳統模式,作一些符合潮流的改革。
本書分為12個章節,嚴格按照知識點層次劃分章節。針對高職院校的特點,作了如下針對性設計:
1.案例驅動
重點案例劃分為單獨的小節。這樣劃分的好處在于重點突出案例的層次,方便講解算法,同時給閱讀教材帶來方便。
2.精選例題
本書的例題包括了大部分經典的C語言案例,重點案例重點分析和講解。結合獨創的“變量跟蹤”等閱讀技巧,結合實際,趣味性和知識性相結合,使得學習起來更加輕松。
3.新語言元素
第一次將C#、Java等納入擴展閱讀,并制作了計算機語言發展族譜圖。這樣的設計是對目前相關教材的重要補充。C語言作為經典的語言,其目前的地位和應用狀態必須給出,為高職院校的同學今后快速走向應用指明方向。
4.強大的資源配套
經過多年的積累,本書配套資源非常豐富,包括配套的《C語言程序設計實訓、習題解答與考試指導(第二版)》、模擬的考試系統和大型題庫、成熟的無紙化的單機或網絡考試軟件、資料豐富的教學網站、精致的教學課件等。其中上機實訓教材還包括了目前主要的計算機考試的考試指南和樣卷分析等。
基于高職類院校的教學需求,本書在內容上做了以下針對性調整:
1.將鏈表內容移至實訓教材中,精編主教材。主教材重點講解基本語法,所有語法講解力求敘述簡練、深入淺出。
2.簡化指針內容。作為C語言重要的知識點——指針,本書精講了指針的基本概念和應用特色,力求讓讀者快速了解和掌握指針。本書設計了分級指針的閱讀和理解的技巧,經過多年的教學經驗驗證,效果非常好。
3.本書的所有案例均考慮了雙平臺Turbo C 2.0和Visual C++ 6.0。案例在雙平臺上的不同之處均作了認真細致的注解。這樣做的最大好處在于這兩個平臺仍然各具特色、各有千秋。單平臺的案例目前來看有很多缺點,特別是各種考試系統和應用軟件等需求不一樣。當然,本書也完全可以固定選擇某一個平臺。
4.關于printf、scanf等知識點,本書仍然給出較為詳細的講解,并配有針對性的演示程序。C語言的部分語法在C#、C++和Java等語言中被舍棄或者給出了更好的解決方案。這些知識點對于C雖然是必須的,但也正在被淡化,建議權衡把握。作為學習的引導,這部分內容本書也進行了簡化。
(5)本書特別增加了少量但很有價值的擴展閱讀資料,例如浮點數的存儲、數據轉換的舍入與溢出、字節對齊等,另外,附錄還增加了程序語言發展族譜圖等,方便讀者深入了解C語言,這部分內容主要面向需要深入學習的讀者。
讀者如果需要查找更多的資料,可以訪問教學網站(http://www.yataoo.com)或者與作者聯系(yataoo@126.com)。
本書主要面向高職類院校學生,也適合作其他大中專學生、各類工程技術人員自學教材或參加各類考試的參考書。
本書由丁亞濤主編,杞寧、杜力、金月恒任副主編,參加編寫的還有劉濤、林學華、謝楊梅、程一飛、朱薇、黃瑾娉、孫大勇、杜春敏、金力、歐鳳霞、劉維平、劉飛超、孫紅宇等。在全書的策劃和出版過程中,一直得到中國水利水電出版社萬水分社的策劃/編輯團隊特別是雷順加總編的大力支持,許多從事教學工作的同仁也給予了關心和幫助,他們對本書提出了很多寶貴的建議。在此一并表示感謝。
由于作者水平有限,難免會有一些錯誤,希望讀者不吝指教,以便我們再版時修正。如您有更好的意見,歡迎與我們聯系,聯系方式如下:
電子郵件:yataoo@126.com
2011年3月
1.1 程序設計和C語言 1
1.1.1 程序(program)的概念 1
1.1.2 程序設計(programming)的
一般過程 1
1.1.3 程序設計的方法 1
1.1.4 C語言的歷史和發展 2
1.2 案例:歷史上的第一個C語言程序 2
1.3 案例:計算圓柱體底面積和體積 3
1.4 C語言的特點 4
1.5 案例:計算1+2+3+…+100 5
1.6 算法 6
1.6.1 算法概述 6
1.6.2 算法的表示 7
1.7 C語言編程環境 8
1.7.1 Turbo C 2.0編程環境 8
1.7.2 Visual C++ 6.0編程環境 10
本章小結 14
習題一 14
第2章 數據類型、運算符和表達式 15
2.1 數據類型 15
2.1.1 數據類型概述 15
2.1.2 整型及整型常量 16
2.1.3 實型及實型常量 17
2.1.4 字符型及字符型常量 18
2.2 標識符、符號常量與變量 21
2.2.1 標識符 21
2.2.2 符號常量 21
2.2.3 變量 22
2.3 運算符與表達式 26
2.3.1 算術運算符與算術表達式 27
2.3.2 算術表達式的書寫 30
2.3.3 賦值運算符與賦值表達式 31
2.3.4 逗號運算符與逗號表達式 32
2.4 數據類型轉換 33
2.4.1 類型轉換概述 33
2.4.2 自動類型轉換 34
2.4.3 賦值類型轉換 35
2.4.4 強制類型轉換 35
2.5 數據的溢出與誤差 36
2.5.1 數據的溢出 36
2.5.2 實型數據的誤差 38
2.6 案例:一樣的'A',不一樣的輸出方式 38
2.7 案例:代數式和C語言表達式 39
2.8 案例:時間的換算 39
本章小結 40
習題二 41
第3章 簡單程序設計 43
3.1 C語言語句 43
3.2 程序結構 44
3.2.1 程序結構簡介 44
3.2.2 順序結構 45
3.3 賦值語句 46
3.3.1 基本賦值語句 46
3.3.2 復合賦值語句 47
3.4 數據的輸入與輸出 47
3.4.1 格式化輸出函數printf 48
3.4.2 格式化輸入函數scanf 50
3.4.3 字符數據的輸入與輸出 54
3.5 案例:簡單的數據交換算法 55
3.6 案例:大小寫字母的轉換 56
3.7 案例:計算三角形的面積 57
3.8 案例:求一元二次方程的根 57
3.9 案例:相同的++運算,不一樣的結果 58
本章小結 59
習題三 60
第4章 選擇結構程序設計 64
4.1 案例:紅綠燈 64
4.2 關系運算符與關系表達式 65
4.2.1 關系運算符 65
4.2.2 關系表達式 66
4.3 邏輯運算符與邏輯表達式 66
4.3.1 邏輯運算符 66
4.3.2 邏輯表達式 67
4.4 邏輯運算符的短路現象 67
4.5 if語句 68
4.5.1 單分支if語句 68
4.5.2 雙分支if語句 69
4.5.3 多分支選擇結構 71
4.6 案例:打車費用的計算 71
4.7 if語句的嵌套 72
4.8 案例:閏年的判斷 73
4.9 條件運算符和條件表達式 75
4.9.1 條件運算符 75
4.9.2 條件表達式 75
4.10 switch語句 76
4.11 案例:判斷輸入的整數是否含有數字6 79
4.12 案例:三個數的排序 80
4.13 案例:分數等級的劃分 81
本章小結 82
習題四 83
第5章 循環結構程序設計 88
5.1 案例:一次有趣的投幣游戲 88
5.1.1 游戲規則 88
5.1.2 問題的解決 88
5.2 while循環 89
5.3 do-while循環 92
5.4 for循環 94
5.5 案例:倒數的求和 95
5.6 循環的嵌套 97
5.7 break語句、continue語句和goto語句 99
5.7.1 break語句 99
5.7.2 continue語句 99
5.7.3 goto語句 100
5.8 案例:階乘的計算 100
5.9 案例:輸出星號組成的圖形 101
5.10 案例:計算100以內的素數之和 102
5.11 案例:計算Fibonacci數列
前20項的和 104
5.12 循環的閱讀和技巧 105
5.13 案例:日歷的打印 107
本章小結 108
習題五 109
第6章 數組 116
6.1 數組的基本概念 116
6.2 一維數組 116
6.3 案例:求10個數中的最大值、
最小值、平均值 117
6.4 二維數組和多維數組 119
6.5 案例:輸入學生成績,計算每門
課程的平均分 120
6.6 字符數組與字符串 121
6.7 案例:逆序輸出字符串 122
6.8 字符串函數 122
6.9 案例:查找最大字符串 124
6.10 案例:冒泡排序算法 124
6.11 案例:字符串的連接、插入和刪除 127
6.12 案例:轉置矩陣 130
6.13 案例:楊輝三角形 131
6.14 案例:日歷的打印 132
本章小結 133
習題六 134
第7章 函數 137
7.1 案例:計算(1) +(1+2)+(1+2+3)+
(1+2+3+4)+(1+2+3+4+5) 137
7.2 函數的定義和調用 138
7.2.1 函數定義 138
7.2.2 函數調用 139
7.3 參數傳遞 140
7.4 函數聲明 141
7.5 作用域 142
7.6 存儲類型 144
7.6.1 自動(auto)類型 145
7.6.2 寄存器(register)類型 145
7.6.3 靜態(static)類型 145
7.6.4 外部(extern)類型 146
7.7 案例:遞歸計算s=1+2+3+…+100 147
7.8 遞歸函數 147
7.9 案例:函數參數處理次序的案例 148
7.10 案例:9999符合“歌德巴赫猜想”嗎 149
7.11 案例:星號圖形的打印 150
7.12 案例:演示數組和函數的關系 151
7.13 案例:漢諾塔游戲 152
本章小結 154
習題七 155
第8章 指針基礎 158
8.1 借錢的故事 158
8.2 指針的概念 158
8.3 指針變量的定義和初始化 159
8.4 指針運算 160
8.4.1 *運算符和取地址運算符& 160
8.4.2 指針變量的引用 160
8.4.3 指針的算術運算和關系運算 162
8.5 指針與數組 163
8.5.1 指針與字符數組 163
8.5.2 指針與其他類型數組 164
8.5.3 指針與二維數組 164
8.6 指針與函數 167
8.6.1 指針作為函數的參數 167
8.6.2 函數指針 168
8.6.3 返回指針的函數 171
8.7 案例:字符的查找 171
8.8 案例:統計字符的個數 172
本章小結 176
習題八 176
第9章 結構體、共用體與枚舉 179
9.1 結構體 179
9.1.1 結構體類型的定義 180
9.1.2 結構體變量的定義和初始化 180
9.1.3 結構體變量的引用 182
9.1.4 結構體數組 185
9.1.5 結構體指針 188
9.1.6 結構體與函數 191
9.2 共用體 195
9.2.1 共用體類型的定義 195
9.2.2 共用體變量的說明和引用 196
9.3 枚舉類型 200
9.3.1 枚舉類型的定義 200
9.3.2 枚舉變量的定義和引用 201
9.4 用戶定義類型 202
9.5 案例:求兩個復數之和 203
9.6 案例:已知今天,明天為何 204
本章小結 205
習題九 206
第10章 位運算 212
10.1 位、字節與編碼 212
10.1.1 字節與位 212
10.1.2 原碼 212
10.1.3 反碼 213
10.1.4 補碼 213
10.2 位運算符和位運算 213
10.2.1 按位取反 214
10.2.2 按位與 214
10.2.3 按位或 214
10.2.4 按位異或 215
10.2.5 左位移 215
10.2.6 右位移 215
10.3 程序舉例 216
本章小結 218
習題十 218
第11章 文件 221
11.1 文件概述 221
11.1.1 文件的概念 221
11.1.2 文件的分類 221
11.2 文件操作 223
11.2.1 FILE文件類型指針 223
11.2.2 文件的打開操作 224
11.2.3 文件的關閉操作 225
11.2.4 文件的讀寫操作 226
11.3 文件的定位 233
11.3.1 置文件位置指針于文件
開頭位置的函數rewind 233
11.3.2 改變文件位置指針位置
的函數fseek 234
11.3.3 取得文件當前位置的函數ftell 235
11.3.4 文件的錯誤檢測 235
11.4 編譯預處理 235
11.4.1 宏定義 236
11.4.2 文件包含 238
11.4.3 條件編譯 238
11.5 文件中的字母轉換 240
11.6 文件的合并 241
11.7 帶參數宏的困惑 241
本章小結 242
習題十一 242
第12章 面向對象及C++、C#簡介 245
12.1 面向對象程序設計方法 245
12.1.1 概述 245
12.1.2 面向對象程序設計的基本概念 246
12.1.3 面向對象程序設計的特點 246
12.2 C++語言 247
12.2.1 概述 247
12.2.2 C++語言的特點 248
12.2.3 幾個簡單的C++程序 249
12.2.4 C++程序的基本組成 250
12.2.5 數據的輸入和輸出 251
12.3 C#語言 253
12.3.1 概述 253
12.3.2 C#如何與.NET Framework相關 256
本章小結 257
習題十二 257
附錄A 常用字符與ASCII碼對照表 259
附錄B Turbo C 2.0常用庫函數 260
附錄C Turbo C 2.0和Visual C++在編輯
C程序時的區別 267
附錄D 主要計算機語言發展族譜圖 268
參考文獻 269
- C程序設計實踐教程 [劉衛國]
- C程序設計(慕課版) [劉衛國]
- 程序設計基礎實踐教程(C/C++語言版) [張桂芬 葛麗娜]
- C++案例項目精講 [主編 楊國興]
- 工程數學 [主編 郭立娟 王海]
- SwiftUI完全開發 [李智威 著]
- 電工電子技術基礎 [主編 劉 軍 楊國龍 劉天成]
- MySQL數據庫項目式教程 [陳亞峰]
- C語言程序設計習題與實驗指導(第二版) [主編 甄增榮 張賓]
- C語言程序設計(第二版) [主編 甄增榮 田云霞]
- Unity3D虛擬現實應用開發實踐 [主 編 劉龍]
- 智能化技術基礎(第三版) [鄧文達 李禮]
- Python程序設計 [主編 姜春磊 陳虹潔]
- C語言程序設計實踐教程(活頁式) [主編 鄭茵 陳巍 滕泓虬]
- 面向對象程序設計 [主編 張勇 張平華 趙小龍]
- Python程序設計基礎及實戰 [主編 劉健]
- C語言程序設計 [姜雪]
- Python程序設計實踐教程 [王鶴琴 蔡正保]
- 電視節目策劃與制作(微課版) [主 編 黃滴滴]
- C++程序設計實踐教程(第三版) [主編 劉衛國 曹岳輝]
- C++程序設計(第三版) [主編 曹岳輝 劉衛國]
- C語言程序設計項目化教程(活頁式) [主編 張利華 潘曉利]
- 大學應用數學 [主編 郭立娟]
- 機器人流程自動化(RPA)實戰——基于UiPath [主編 金鑫]
- 軟件定義網絡技術與實踐 [主編 但唐仁]
- 工業機器人拆裝與調試 [主編 胡月霞 向艷芳 朱奇]
- 信息技術基礎 [主編 唐倩 邵銳]
- 混合式課堂教學改革與實踐—微動教學法 [石鐵峰 石家羽 著]
- Python 語言程序設計實踐指導 [主編 張雙獅]
- Photoshop 圖形圖像項目化教程 [主編 胡斌斌 黎婭 蘇大椿]