定 價:26 元
叢書名:高等職業(yè)教育“十三五”規(guī)劃教材
- 作者:沈涵飛
- 出版時間:2018/8/1
- ISBN:9787111602309
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP312C
- 頁碼:
- 紙張:膠版紙
- 版次:
- 開本:16開
本書圖文并茂,示例豐富,對C語言的基礎(chǔ)知識進行了徹底剖析,內(nèi)容涉及輸入輸出、流程控制、數(shù)組、函數(shù)、指針、文件操作等。對難以理解的概念,均精心繪制示意圖,進行清晰、通俗地講解。本書首次將在線評測系統(tǒng)引入C語言教學,建立了適合初學者的階梯式題庫(http://oj.csoeasy.com/),讓學生在評測過程中取得成就感,培養(yǎng)程序設(shè)計的興趣。本書配有豐富的數(shù)字資源,包括課程網(wǎng)站(http://www.csoeasy.com/)、PPT、網(wǎng)易云課堂的視頻課程等。其中視頻課程上線后,目前選課人數(shù)已超過2萬人。本書可作為應(yīng)用型、技能型人才培養(yǎng)的計算機專業(yè)及相關(guān)專業(yè)的教學用書,也可作為C語言程序設(shè)計初學者的入門教材、C語言程序設(shè)計人員的培訓教材或參考用書。
前言
程序設(shè)計是高職院校信息工程、計算機和電子類等專業(yè)的專業(yè)基礎(chǔ)課程,介紹程序設(shè)計的思想和方法。通過該課程的學習,學生不僅要掌握程序設(shè)計語言的知識,更重要的是在實踐中逐步掌握程序設(shè)計的思想和方法,培養(yǎng)問題求解和編程能力。因此,這是一門突出實踐能力的特色鮮明的課程。
C 語言誕生于上世紀70年代初,是最早得到廣泛使用的程序設(shè)計語言。它既具備高級語言的特性,又具有直接操縱計算機硬件的能力,并以其豐富靈活的控制和數(shù)據(jù)結(jié)構(gòu)、簡潔而高效的語句表達、清晰的程序結(jié)構(gòu)和良好的可移植性而擁有大量的使用者。目前,C 語言被許多高校列為程序設(shè)計課程的首選語言。
不僅如此,后續(xù)的許多程序設(shè)計語言如JAVA、PHP、C#、Python、Swift在設(shè)計上就深受C語言的影響,而C++、Objective-C本身就包含了C語言。掌握好了C語言,通過羅塞塔石碑學習法,很快就能掌握其他程序設(shè)計語言中結(jié)構(gòu)化程序設(shè)計的對應(yīng)內(nèi)容。
本書具有如下特點:
1. 以程序設(shè)計為主線,以問題求解為驅(qū)動,逐步引入語言知識,在不斷實踐中來培養(yǎng)編程能力。為了讓本書的讀者更好的掌握程序設(shè)計語言,我搭建了C/C++/JAVA/Python程序自動評測系統(tǒng),網(wǎng)址為http://oj.csoeasy.com/。系統(tǒng)提供了大量適合初學者的練習,循序漸進,逐步提高。
2. 提供了豐富的學習資源。早在2014年5月,《新思維:C語言程序設(shè)計》課程就在網(wǎng)易云課堂上線,網(wǎng)址為:http://study.163.com/course/introduction/752005.htm。上線之初,就以新穎的教學理念,獲得了網(wǎng)易云課堂首頁連續(xù)一個月的推薦,至今選課人數(shù)已經(jīng)超過2萬人。除此之外,本書還創(chuàng)建了課程網(wǎng)站 http://www.csoeasy.com/。 另外,獲得江蘇省教師現(xiàn)代教育技術(shù)應(yīng)用作品大賽多媒體課件組一等獎的《C語言程序設(shè)計自助練習》(http://do.feikuaixue.com/)也從校內(nèi)推廣到互聯(lián)網(wǎng)。這些學習資源在實踐應(yīng)用中獲得了高度評價。
3. 圖文并茂。全書共有插圖近60個,其中超過一半是精心繪制的示意圖,對C語言語法以及一些難以理解的概念進行通俗地講解。
4. 以C語言為起點學習程序設(shè)計,但又不僅限于C語言,還介紹了如何依托C語言基礎(chǔ)去學習JAVA、PHP、Python等流行語言,能大大提高學習效率。
本書是在蘇州工業(yè)園區(qū)服務(wù)外包職業(yè)學院信息工程學院劉正院長的鼓勵和大力支持下編寫的,在編寫過程中,又得到了計算機應(yīng)用與技術(shù)系王春華老師的幫助和支持。本書也是校企合作的成果,蘇州大宇宙信息創(chuàng)造有限公司張明亮總經(jīng)理給本書提了很多建議和指導。沒有他們的幫助就不會有本書的面世,在此表示衷心的感謝。
寫一本書不容易,寫一本好書更不容易,雖然我把寫一本好書作為目標,但限于作者水平有限,書中難免有不足之處,懇請讀者批評和指正,我的電子郵箱為 shenhf@siso.edu.cn。
目錄
前言1
第1章 初識C語言2
1.1 計算機和程序設(shè)計語言2
1.1.1 計算機的發(fā)展和程序設(shè)計語言的產(chǎn)生2
1.1.2 機器語言、匯編語言和高級語言3
1.1.3 程序設(shè)計的開發(fā)效率和運行效率3
1.1.4 最常見的程序設(shè)計語言及其用途4
1.1.5 學習程序設(shè)計從C語言開始5
1.2 C語言的發(fā)展和特點6
1.2.1 C語言的發(fā)展6
1.2.2 C語言的特點7
1.3 C語言程序的初步探索8
1.3.1 第1個程序:Hello, World!8
1.3.2 C/C++集成開發(fā)環(huán)境C-Free的安裝9
1.4 算術(shù)表達式的計算11
1.5 如何學好程序設(shè)計:模仿、理解和運用12
習題13
第2章 數(shù)據(jù)類型、運算和輸入輸出14
2.1 標識符和關(guān)鍵字14
2.2 常量和變量14
2.2.1 普通常量和符號常量14
2.2.2 變量的定義和初始化15
2.2.3 賦值類運算符15
2.3 常用的基本數(shù)據(jù)類型的及其特點16
2.3.1 常用的數(shù)據(jù)類型17
2.3.2 整數(shù)類型能精確表示限定范圍內(nèi)的所有整數(shù)18
2.3.3 浮點數(shù)類型只能近似的表示數(shù)據(jù)19
2.4 C程序基本結(jié)構(gòu):DICO 和 A+B問題19
2.5 程序設(shè)計在線評測系統(tǒng)20
2.6 基本算術(shù)運算(取整和取余)21
2.7 格式化輸入:三位數(shù)反轉(zhuǎn)22
2.8 浮點數(shù):計算圓的周長和面積22
2.9 字符類型24
2.10 強大、經(jīng)典的 scanf 和 printf25
2.11 在命令行編譯和運行程序28
2.12 文件、I/O重定向和管道*29
2.12.1 一切都是文件29
2.12.2 管道機制30
習題31
第3章 分支結(jié)構(gòu)32
3.1 if-else 語句的三種基本形式32
3.1.1 基本結(jié)構(gòu)1:單分支結(jié)構(gòu)32
3.1.2 基本結(jié)構(gòu)2:雙分支結(jié)構(gòu)33
3.1.3 雙分支結(jié)構(gòu)和三元運算符34
3.1.4 基本結(jié)構(gòu)3:多分支結(jié)構(gòu)34
3.2 語法錯誤和邏輯錯誤36
3.3 運算符、表達式和優(yōu)先級37
3.3.1 關(guān)系運算符與關(guān)系表達式37
3.3.2 邏輯運算符和邏輯表達式38
3.3.3 自增自減運算符40
3.4 邏輯運算符的短路特性40
3.5 多路分支語句switch-case-break42
3.5.1 switch-case-break的基本用法42
3.5.2 多個case語句相同情況的處理44
3.6 代碼格式化:讓代碼清晰易讀46
3.7 C語言的if~else匹配問題 *47
習題47
第4章 循環(huán)結(jié)構(gòu)49
4.1 最簡單的循環(huán):簡單重復(fù)49
4.1.1 代碼的優(yōu)化50
4.1.2 左閉右開50
4.2 循環(huán)表示序列:計算1~100的和51
4.2.1 累積運算:求1~100的和51
4.2.2 計算1~100的PHP、JAVA、Swift和Python版本53
4.2.3 羅塞塔石碑語言學習法54
4.3 從特定的數(shù)擴展到序列:水仙花數(shù)54
4.4 三種基本循環(huán)結(jié)構(gòu)及運行流程56
4.5 流程圖和while循環(huán):3n+1 問題58
4.6 do-while循環(huán):迭代法求平方根59
4.7 二重循環(huán):九九乘法表60
4.8 多重循環(huán):水仙花數(shù)61
4.9 改變循環(huán)執(zhí)行流程:break 和 continue62
4.10 while典型結(jié)構(gòu):讀取比較二合一 *63
習題65
第5章 算法和程序設(shè)計66
5.1 程序=算法+數(shù)據(jù)結(jié)構(gòu)66
5.2 算法的五大特點67
5.3 算法的表示67
5.3.1 流程圖68
5.3.2 N-S流程圖68
5.4 程序設(shè)計方法69
5.4.1 程序設(shè)計的一般步驟69
5.4.2 結(jié)構(gòu)化程序設(shè)計方法70
5.5 C++中的標準模板庫(STL)*70
習題72
第6章 批量數(shù)據(jù)的處理——數(shù)組73
6.1 初識數(shù)組:從一組數(shù)中找出最大值73
6.2 數(shù)組進階:選擇排序法75
6.3 動態(tài)申請數(shù)組 *77
6.4 二維數(shù)組:計算方陣對角線元素之和78
6.5 模擬:奇數(shù)階魔方(從偽代碼到C語言)*80
6.6 數(shù)組應(yīng)用舉例:統(tǒng)計各類字符的個數(shù)82
習題83
第7章 函數(shù)84
7.1 函數(shù)的基本知識84
7.2 函數(shù)的調(diào)用過程86
7.3 編寫自定義函數(shù)——分段函數(shù)87
7.4 函數(shù)的四種類型89
7.5 數(shù)組作為函數(shù)參數(shù):尋找數(shù)組中的最大值89
7.6 遞歸函數(shù):計算階乘和斐波那契數(shù)列90
7.7 計算程序運行時間:遞歸和遞推的效率比較*92
7.8 經(jīng)典遞歸問題:漢諾塔*93
7.9 編譯流程:預(yù)處理、編譯、匯編、鏈接95
7.10 全局變量、靜態(tài)變量:優(yōu)化斐波那契數(shù)列的遞歸版本97
習題99
第8章 特殊的字符數(shù)組——字符串100
8.1 字符串的聲明、輸入和輸出100
8.2 字符串的簡單應(yīng)用:判斷回文101
8.3 字符數(shù)組的空間和字符串的長度103
8.4 常用字符串處理函數(shù)103
8.5 字符串不是一等公民105
8.6 使用memset函數(shù)初始化數(shù)組*108
習題109
第9章 指針——地址的別名110
9.1 初識指針110
9.2 數(shù)組和指針112
9.3 函數(shù)的傳值調(diào)用和傳地址調(diào)用115
9.3.1 傳值調(diào)用115
9.3.2 傳地址調(diào)用116
9.4 字符串指針和字符數(shù)組:只讀和可寫118
9.5 指針數(shù)組和命令行參數(shù)*119
9.6 指向函數(shù)的指針:快速排序函數(shù)的應(yīng)用*121
習題122
第10章 結(jié)構(gòu)體124
10.1 初識結(jié)構(gòu)體:重寫兩點之間的距離124
10.2 結(jié)構(gòu)體的初始化和三種訪問方式126
10.3 數(shù)據(jù)類型的空間分配127
10.4 初識鏈表(自引用結(jié)構(gòu))128
習題130
第11章 文件處理132
11.1 文件與流132
11.1.1 文件基礎(chǔ)知識132
11.1.2 文件和流132
11.1.3 文本文件和二進制文件133
11.1.4 文件緩沖系統(tǒng)134
11.2 文件的打開和關(guān)閉方法134
11.3 文件的讀寫136
11.3.1 字符的讀寫:顯示文件的內(nèi)容和復(fù)制文件136
11.3.2 數(shù)據(jù)塊的讀寫:復(fù)制文件137
11.3.3 逐行處理:搜索模式串138
11.3.4 文件的格式化輸入:處理CSV文件*140
11.4 文件的定位與隨機讀寫141
習題143
附錄A 常用字符與