C語言程序設計(第二版)
-
【作 者】主 編 馬曉晨 衡軍山
【I S B N 】978-7-5170-0177-5
【責任編輯】李炎
【適用讀者群】高職高專
【出版時間】2012-09-26
【開 本】16開
【裝幀信息】平裝(光膜)
【版 次】第2版第1次印刷
【頁 數】232
【千字數】352
【印 張】14.5
【定 價】¥26
【叢 書】國家精品課程配套教材系列
【備注信息】
簡介
本書特色
前言
章節列表
精彩閱讀
下載資源
相關圖書
本書較全面地介紹了C語言的基礎知識、基本語法和編程方法,深入淺出地講述了C語言程序設計方法,以培養和提高學生對C語言的應用能力為主要目的,符合計算機等級考試大綱的要求。全書共12章,分為入門篇、基礎篇和提高篇三個部分,內容包括C語言概述;C語言基礎知識;簡單程序設計;if語句的嵌套及多分支程序設計;循環結構程序設計;數組;函數;指針;編譯預處理;位運算;結構體、共用體和用戶自定義類型;文件。為了提高學習效率,每一章都加入了導學。
本書配套有《C語言程序設計綜合實訓》(第二版),除了可作為高等院!癈語言程序設計”課程教材之外,還可以作為培訓教材和自學參考書。
本書是國家級精品課程“C語言程序設計”的配套教材,擁有非常豐富的網上教學資源,讀者可以通過地址http://121.26.225.8/jpkc/cyuyan/index.htm訪問相關資源。
本書配有免費電子教案,讀者可以到中國水利水電出版社和萬水書苑的網站上免費下載,網址為:http://www.waterpub.com.cn/softdown/和http://www.dgboyong.cn。
本書在第一版的基礎上除了對很多細節、例題進行修改外,還針對目前的高職高專教學現狀進行了結構上的改進,豐富了綜合應用實例。第二版分為入門篇、基礎篇和提高篇三個部分。
淡化語法,強調應用——從具體問題入手,努力把枯燥無味的語言講得生動、活潑。讓學生明白如何分析并解決實際問題,逐漸培養學生程序設計的正確思維模式。
通俗性、可接受性強——由例題引出一種語法規則,通過一些求解具體問題的程序來分析算法,介紹程序設計的基本方法和技巧,既注重系統性、科學性,又注重易讀性和啟發性。
“C語言程序設計”是大部分計算機類專業的必修課程,也是很多非計算機類專業開設的程序設計基礎課程。作為計算機類的專業基礎課,目的是使學生掌握程序設計的基本方法并逐步形成正確的程序設計思想,能夠熟練地使用C語言進行程序設計并具備調試程序的能力,為后續課程及其他程序設計課程的學習和應用打下基礎。對于非計算機專業來說,該課程有實際應用價值,為用計算機解決實際問題提供了方法,是后續理論和實踐教學的基礎和重要工具,同時也是計算機等級考試二級所要求的課程之一。
作為一門計算機語言,對于初學者來說在思維方式上需要跨越心理上和思維方式上的障礙,需要逐步理解程序設計思想。如果像其他課程按照常規方法進行教學,隨著課程的不斷深入,大量的規則、定義、要求和機械的格式出現后,很容易使學生產生枯燥無味的感覺。而從本質上來說,計算機語言就是一個利用計算機去解決問題的工具,這就像我們在學如何使用螺絲刀時需要掌握的是如何去用螺絲刀擰螺絲,而不是學習螺絲刀的制作方法、研究螺絲刀的形狀結構以及螺絲刀的制作材料等。我們培養學生的主要目的是使學生掌握C語言的使用方法,讓學生真正具有利用C語言解決實際問題的能力,而不是讓學生了解很多C語言的細節和原理,這一點對于高職高專學生尤其重要,培養學生自主學習和應用C語言解決實際問題比讓學生精通掌握C語言語法重要得多。
因此,在編寫本書時,“淡化語法,強調應用”是我們堅持的一個原則,但是考慮到本書的適用范圍,很多教師多年來的傳統教學思想和習慣不一定能夠很快適應新的教學方法,在編寫過程中充分分析了這一點,以盡量適合不同風格的教學方法。所以本書在保持傳統教材特點的基礎上,注入了新的教學思想和方法,力爭改變過去先給出定義和規則的講授辦法,從具體問題入手,努力把枯燥無味的語言講得生動、活潑。讓學生明白如何分析并解決實際問題,逐漸培養學生程序設計的正確思維模式。在每一章中都加入了“導學”, 其目的除了為教師提示教學思想和方法之外,更重要的是,在學習新知識之前,引導學生認識學習的目的、學習的重點,并通過實例讓他們對新知識的功能、方法和程序運行結果有一個感性認識(在閱讀導學時,其中的實例只需感受不需理解和掌握),使學習目標更明確,學習更有針對性,更高效地掌握知識,培養解決問題的能力!皩W”可以很好地指導學生進行課前自學。
由于大部分學生是第一次接受計算機語言,教材注重“通俗性、可接受性”的原則。沒有把重點放在語法規則的敘述上,而是放在程序設計方法上,通常由例題引出一種語法規則,通過一些求解具體問題的程序來分析算法,介紹程序設計的基本方法和技巧,既注重教材的系統性、科學性,又注重易讀性和啟發性。從最簡單的問題入手,一開始就介紹程序,通過編寫、運行程序來掌握語言的規定和程序設計的方法,然后再分析一些語法細節。在選擇例題時也是由簡到難逐步呈現給學生。
本書在第一版的基礎上除了對很多細節、例題進行修改外,還針對目前的高職高專教學現狀進行了結構上的改進,豐富了綜合應用實例。第二版分為入門篇、基礎篇和提高篇三個部分,“入門篇”可以使學生掌握最基本的程序設計方法,能夠編寫簡單的應用程序,為了讓學生編寫比較完整的程序,在入門篇中介紹了最基本的選擇結構的使用方法!盎A篇”的內容體現了一門高級語言的絕大部分知識,可以使學生了解和把握一門高級語言的大部分知識點,如果不使用C語言進行較深入的程序設計,單從高級語言知識和編寫一般的應用程序的角度來看內容已經基本夠用了!疤岣咂敝攸c講解有關C語言的高級應用,內容偏難,教師可根據需要對內容適度增減。由于不同學校、不同專業的教學目標不同,課程開設的學時數區別較大,教材結構上的改進,更加便于教師在教學過程中把握教學內容及分配課時。
本書是國家級精品課程“C語言程序設計”的配套教材,擁有非常豐富的網上教學資源(包括:教學大綱、授課/實驗計劃、課件(PPT及Flash課件)、授課教案、實踐(實驗/實訓/實習)指導、習題及參考答案、課程試卷及參考答案、教學錄像等),讀者可以通過地址http://121.26.225.8/jpkc/cyuyan/index.htm訪問相關資源,也可以登錄www.cdpc.edu.cn進入精品課程專題或登錄國家精品課程資源網(http://www.jingpinke.com/)。
為了方便讀者,在以本書作為主教材的基礎上,還編寫了《C語言程序設計綜合實訓》(第二版)作為上機指導和能力提升的輔助教材,書中精心編寫了大量的習題。
本書由馬曉晨、衡軍山任主編,鄭陽平、蘇建華任副主編。在本書的編寫工作中,馬曉晨對全書進行了編寫、設計、修改和統稿,衡軍山參與了第7、8、9、10、11、12章的編寫,鄭陽平參與了第1、2、3、4章的編寫,蘇建華參與了第5、6章的編寫,王賀艷和高麗參與了書中部分綜合應用實例的編寫。
另外,王學軍、宋漢珍、王永紅、景妮、馬秋菊、于貴賓、董正發等也對本書的資源建設等做了大量工作,在此對他們表示感謝。
編 者
2012年7月
第一部分 入門篇
第1章 C語言概述 2
1.1 C語言的歷史 2
1.2 C語言的特點 3
1.3 程序和程序設計語言 4
1.3.1 程序和程序設計 4
1.3.2 程序設計語言 4
1.4 簡單的C程序介紹 5
1.4.1 認識C語言程序 5
1.4.2 分析C語言程序的結構特點 6
1.4.3 說明C程序書寫規則 7
1.4.4 理解C程序的編譯和運行 7
1.4.5 掌握開發程序的過程 8
1.5 Visual C++集成開發環境簡介 9
1.5.1 Microsoft Visual C++ 6.0 簡介 9
1.5.2 Microsoft Visual C++ 6.0集成開發
環境 10
1.6 常用調試手段簡介 15
本章小結 17
習題1 17
第2章 C語言基礎知識 18
2.1 C語言的詞法符號 19
2.1.1 關鍵字 19
2.1.2 標識符 19
2.1.3 分隔符 20
2.2 C語言的數據類型 20
2.2.1 整型 20
2.2.2 浮點型 21
2.2.3 字符型 22
2.3 常量與變量 22
2.3.1 常量 22
2.3.2 變量 24
2.4 算數運算與賦值 26
2.4.1 算術運算符和算術表達式 26
2.4.2 賦值運算符和賦值表達式 28
2.5 綜合應用實例 29
本章小結 30
習題2 30
第3章 簡單程序設計 32
3.1 C語句概述 34
3.2 數據輸出與輸入 35
3.2.1 printf函數 35
3.2.2 scanf函數 38
3.3 字符輸入輸出函數 39
3.4 關系表達式和邏輯表達式 40
3.4.1 關系運算符及其表達式 40
3.4.2 邏輯運算符及其表達式 40
3.5 流程圖簡介 42
3.6 簡單的if語句 43
3.6.1 單分支if語句 43
3.6.2 雙分支if…else語句 44
3.7 C語言中幾個特殊知識點 46
3.7.1 類型轉換 46
3.7.2 逗號運算符和逗號表達式 47
3.7.3 條件表達式 48
3.8 綜合應用實例 48
3.8.1 程序分析 48
3.8.2 應用實例 51
本章小結 55
習題3 55
第二部分 基礎篇
第4章 if語句的嵌套及多分支程序設計 58
4.1 if語句的嵌套 58
4.2 switch語句 62
4.3 綜合應用實例 64
4.3.1 程序分析 64
4.3.2 應用實例 66
本章小結 70
習題4 71
第5章 循環結構程序設計 72
5.1 for循環 73
5.2 while、do…while循環 76
5.2.1 while循環 76
5.2.2 do…while循環 78
5.2.3 while循環與do…while循環語句
的區別 79
5.3 三種循環語句的比較 80
5.3.1 三種循環語句的比較 80
5.3.2 循環的嵌套 80
5.4 循環控制語句 82
5.5 for循環語句的特殊格式 83
5.6 綜合應用實例 85
5.6.1 程序分析 85
5.6.2 應用實例 88
本章小結 90
習題5 91
第6章 數組 92
6.1 數組的定義和引用 93
6.1.1 數組的概念 93
6.1.2 一維數組 93
6.1.3 一維數組應用 95
6.2 二維數組 97
6.2.1 二維數組 97
6.2.2 二維數組應用 98
6.3 字符數組 99
6.3.1 字符數組 100
6.3.2 字符串 100
6.3.3 字符數組應用 103
6.4 綜合應用實例 104
6.4.1 程序分析 104
6.4.2 應用實例 106
本章小結 110
習題6 110
第7章 函數 111
7.1 函數概述 112
7.1.1 函數的概念 112
7.1.2 函數的分類 112
7.1.3 函數的定義 113
7.1.4 函數的調用 114
7.2 函數的參數、變量的存儲域和作用域 117
7.2.1 函數的參數 117
7.2.2 函數調用中的數據傳遞方法 120
7.2.3 變量的存儲域和作用域、局部
變量和全局變量 120
7.3 函數的嵌套調用和遞歸調用 125
7.3.1 函數的嵌套調用 125
7.3.2 函數的遞歸調用 126
7.4 綜合應用實例 129
本章小結 131
習題7 132
第三部分 提高篇
第8章 指針 134
8.1 指針和指針變量 135
8.1.1 什么是指針變量 135
8.1.2 指針變量的定義和初始化 136
8.1.3 指針變量的使用 136
8.2 指針與函數 138
8.2.1 指針變量用作函數參數 139
8.2.2 返回指針值的函數 140
8.2.3 函數的指針和指向函數的指針
變量 141
8.3 指針與數組 143
8.3.1 指向一維數組的指針變量 143
8.3.2 指向二維數組的指針變量 147
8.4 指向字符串的指針變量 151
8.5 指針數組和指向指針的指針變量 152
8.5.1 指針數組 152
8.5.2 指向指針的指針變量 153
8.5.3 main函數的參數 154
8.6 綜合應用實例 155
8.6.1 程序分析 155
8.6.2 應用實例 157
本章小結 160
習題8 161
第9章 編譯預處理 163
9.1 宏定義 164
9.1.1 不帶參數的宏定義 164
9.1.2 帶參數的宏定義 165
9.2 文件包含 166
9.3 條件編譯 167
9.4 綜合應用實例 168
本章小結 170
習題9 170
第10章 位運算 171
10.1 位運算符 171
10.2 位運算符的運算功能 172
10.2.1 基本位運算 172
10.2.2 擴展位運算 174
10.3 綜合應用實例 174
本章小結 176
習題10 176
第11章 結構體、共用體和用戶自定義類型 177
11.1 結構體類型的基本使用 178
11.1.1 結構體類型的說明 178
11.1.2 結構體變量定義及其初始化 179
11.1.3 結構體變量的內存分配 181
11.1.4 結構體變量的引用和操作 181
11.2 結構體與函數 183
11.3 鏈表 184
11.4 共用體 189
11.5 用戶自定義類型typedef 190
11.6 綜合應用實例 191
本章小結 193
習題11 194
第12章 文件 197
12.1 文件基本知識 197
12.1.1 文件的分類 197
12.1.2 C語言中文件I/O操作方法 198
12.2 文件指針 198
12.3 文件的打開及關閉 199
12.3.1 文件打開函數fopen() 199
12.3.2 文件關閉函數fclose() 200
12.4 文件的其他操作函數 200
12.4.1 文件順序寫函數 200
12.4.2 文件順序讀函數 201
12.4.3 文件隨機讀寫函數 202
12.4.4 文件檢測函數和文件定位函數 204
12.5 綜合應用實例 205
本章小結 207
習題12 207
附錄A ASCII碼表 209
附錄B C語言運算符的優先級及其結合性 211
附錄C 庫函數 212
附錄D 編譯錯誤信息 216
參考文獻 222
- C程序設計實踐教程 [劉衛國]
- C程序設計(慕課版) [劉衛國]
- 程序設計基礎實踐教程(C/C++語言版) [張桂芬 葛麗娜]
- C++案例項目精講 [主編 楊國興]
- SwiftUI完全開發 [李智威 著]
- MySQL數據庫項目式教程 [陳亞峰]
- C語言程序設計習題與實驗指導(第二版) [主編 甄增榮 張賓]
- C語言程序設計(第二版) [主編 甄增榮 田云霞]
- Unity3D虛擬現實應用開發實踐 [主 編 劉龍]
- Python程序設計 [主編 姜春磊 陳虹潔]
- C語言程序設計實踐教程(活頁式) [主編 鄭茵 陳巍 滕泓虬]
- 面向對象程序設計 [主編 張勇 張平華 趙小龍]
- Python程序設計基礎及實戰 [主編 劉健]
- C語言程序設計 [姜雪]
- Python程序設計實踐教程 [王鶴琴 蔡正保]
- C++程序設計實踐教程(第三版) [主編 劉衛國 曹岳輝]
- C++程序設計(第三版) [主編 曹岳輝 劉衛國]
- C語言程序設計項目化教程(活頁式) [主編 張利華 潘曉利]
- 機器人流程自動化(RPA)實戰——基于UiPath [主編 金鑫]
- Python 語言程序設計實踐指導 [主編 張雙獅]
- Python程序設計案例教程 [主編 毛錦庚 鐘肖英 周賢來 ]
- 基于.NET Core框架的分布式系統架構設計 [湯佳 著]
- Python語言程序設計教程 [郭其標 房宜汕]
- C語言同步案例習題精解 [主編 肖朝暉]
- Python程序設計 [李國燕 王新強 劉佳 等編著]
- Python程序設計項目化教程(活頁式) [主編 盧鳳偉]
- Java編程基礎案例式教程 [主編 陳艷華 唐春蘭]
- Python語言同步案例習題精解 [主編 肖朝暉]
- Unity應用開發與實戰(微課版) [主 編 程永恒]
- PHP程序設計項目化教程 [主 編 杜海穎]