內容簡介
本書是以C程式設計零起點學習者作為主要對象的程式設計教程,2007年6月出版了第2版,該書是普通高等教育“十一五”國家級規劃教材,榮獲“2008年北京高等教育精品教材”稱號和“第八屆全國高等學校出版社優秀暢銷書二等獎”,本次再版則進一步強化了套用能力,強調“教師方便教,學生容易學”.
全書用例題組織所有的教學內容,並用兩套實例貫穿整個教學過程,整體內容編排獨特,組織形式新穎。全書共分10章,分別是C語言基礎知識、順序結構程式設計、分支結構程式設計、循環結構程式設計、數組、指針、函式、結構體和其他構造類型、位運算以及檔案。
本書配備了輔助教材《C程式設計輔導與實訓(第2版)》、《C程式設計試題精選(第2版)》和《C程式設計課程教案及題解(第2版)》以及內容生動的電子教案。本書將所有程式的運行環境選用為Visual C++6.0.
本書是高等院校C語言程式設計課程的教材,也可作為C語言自學者的參考書。
圖書前言
本書是作者在圍繞“教師方便教,學生容易學”為主題,開展一系列的探索與實踐活動後,以C程式設計零起點讀者作為主要對象編寫的程式設計教程,本書於2007年6月出版了第2版,本書的內容編排獨特,組織形式新穎,能使讀者在較短的時間內掌握C程式設計的精華。本書是高等院校C程式設計課程的教材,也可作為自學者的參考書。
本書特點:
1. 每章內容分成基礎部分和提高部分。考慮到C語言的語法現象眾多,初學者往往難以接受,書中將每章的內容分成了基礎和提高兩個部分。將常識性的、基礎類的、必須掌握的內容放在基礎部分中;將具有擴展性的、提高性的內容安排在提高部分中。通過基礎部分的學習,能夠掌握最基本的語法,初步建立程式設計的思維方式和編寫一般程式的能力,同時可培養學生的學習興趣。即使因學時不足跳過提高部分,也不至於影響後續內容的學習。
2. 所有教學內容用例題組織。在基本遵循C語言教學體系的情況下,將所有教學內容用例題組織。即根據要介紹的內容精心編寫相應的例題,將大量的、正確的、規範的程式介紹給學生,在講解例題的過程中,使學生學習語法、了解概念、掌握算法。做到在解決實際問題中講授語法,而不是為了教語法而舉例。為了便於查找,在各章開頭針對每道例題添加了知識要點。
3. 涉及算法的例題均設有編程點撥。針對學生“讀程式容易,編程式難”的情況,書中凡涉及算法的例題,在給出其完整的程式之前,都增設了編程點撥,有些算法還提供了多種解法。
4. 強調實踐能力,注重個性化教育。在各章之後添加了上機訓練內容,每個訓練題均分為題目、目標、步驟、提示和擴展。為了培養學生調試程式、排除錯誤的能力,教材中分階段通過具體例題介紹了調試程式的方法,程式的運行環境是Visual C++6.0.
5. 講授指針和函式時不涉及新算法。指針和函式是C語言中的重點和難點,為了使學生能夠順利接受新概念,將有關算法內容儘量安排在這兩章之前,避免學生在接受指針和函式概念的同時,又要理解新算法。這樣做不僅容易突破難點,而且有利於鞏固已學過的知識。
6. 用兩套實例貫穿整個教學過程。為了使學生儘早接觸應用程式的編寫過程,提供了貫穿整個教學過程的兩套實例,並隨著講授內容的增多,逐步補充和完善其程式的功能。其中貫穿實例A(較小實例)在基礎部分中給出,供教師課堂教學;貫穿實例B(較大實例)在提高部分中給出,供學生課後閱讀。
7. 習題、討論題和思考題齊全,提供單號習題答案。與教材內容相對應,各章習題也分為基礎和提高兩部分。書中單號習題提供參考答案,以方便學生自測和教師布置作業。為了促使互動教學,適當添加討論題和思考題。
C程式設計教程(第3版)前言8. 在附錄中添加一個含關鍵字、運算符、庫函式的索引。
9. 配套出版了輔助教材,並配備含有電子教案等內容的課件。
(1) 配套出版了《C程式設計輔導與實訓(第2版)》.
① 該輔助教材密切配合本書,其輔導部分的各章也分為基礎和提高兩部分,內容順序與本書一一對應;實訓部分按本書中的內容順序分階段介紹,實例解析的例題選用本書中提供的貫穿實例B.
② 該輔助教材過渡自然,例題與習題的內容新穎,生動有趣,而且更貼近實際。輔導部分以小題目的形式組織,起到從C語言程式設計課程到實訓的過渡作用,其中提供的模擬考試及答案可使學生自測與提高;實訓部分以較大題目的形式提供了實例解析、設計嚮導和實訓題目,其中的設計嚮導起到引導學生從理解題目要求到獨立設計的過渡作用。
③ 該輔助教材中實訓題目豐富,目標明確。題目有難有易,有獨立的和貫穿的,有一人完成的也有多人完成的,有分階段完成的也有綜合性的,故可根據學生的學習程度、實訓的學時、開展實訓的時間等因素隨意選擇內容。其中提供的多人協作完成實訓的方法,幫助學生順利聯調程式。學生根據所提供的實訓報告要求,可以提前了解實訓的內容和順序,故從一開始就可明確實訓目標。
(2) 配套出版了《C程式設計試題精選(第2版)》.
該輔助教材提供了800道題,包括選擇題、填空題和上機題。選擇題按等級考試“四選一”的標準形式;每道填空題則根據等級考試要求最多含有3個需要填寫的空;上機題有改錯題、補充完整題和編程題3種類型。
(3) 配套出版了《C程式設計課程教案及題解(第2版)》.
該輔助教材協助教師進行課前準備、課堂教學、上機實驗以及課後考題等,減輕教師負擔,尤其針對本課程零起點教師,使其輕鬆上手。該輔助教材又明確給出每章、每次課的教學目標、重點、難點和每個例題的必講內容,因此能夠規範同步進行的多個班級教學管理。該輔助教材提供本書全部思考題、雙號題和上機訓練題的答案。此外,還提供具有競賽難度的綜合編程題及題解。
(4) 配備了含有電子教案等內容的課件。
該課件包括電子教案、本書所有例題和實例的源程式。為了減輕教師備課的負擔,製作成生動的電子教案,通過演示可使讀者儘早了解本課程的基本目標。
使用建議:
(1) 必學基礎部分。基礎部分是學生必須掌握的知識,但在教學過程中教師可將部分例題留給學生自學。
(2) 選學提高部分。書中的提高部分是為了幫助讀者更上一層樓,教師可以根據實際情況,選擇其中部分內容進行介紹(標有*的例題有一定難度).
(3) 兼顧學時和學生編程能力的提高需求,建議課堂上介紹貫穿實例A,安排學生課外閱讀貫穿實例B,兩套貫穿實例將對學生學習有很大幫助。
(4) 單、雙號習題成對做。單號習題提供參考答案,雙號習題則在類型上與前一單號習題相同,側重點也接近。基礎部分中提供的習題都是最基本的,題量也不多,建議讀者全部做完,提高部分中的習題可根據情況選做(標有*的習題有一定難度).
(5) 選做上機訓練題中的擴展題。在完成訓練題的基礎上可根據不同層次的學生情況,選做擴展題。
全書由崔武子主編並統稿,李青、李紅豫、鞠慧敏和齊華山參加部分內容的修訂和編寫。本書得到北京聯合大學規劃教材建設項目資助。在使用本書前一版書時,教學團隊的教師提出了許多寶貴意見,在此表示真摯的感謝。
限於作者水平,書中難免有錯誤和疏漏之處,懇請讀者批評和指正。
作 者2012年5月
圖書目錄
第1章 C語言基礎知識1
1.1 C語言概述2
1.1.1 C語言與程式設計2
1.1.2 C程式形式和程式執行過程3
1.2 簡單C程式及其上機步驟4
1.2.1 簡單C程式和編程風格4
1.2.2 上機步驟6
1.3 數據類型9
1.4 常量與變數10
1.4.1 常量與變數的概念10
1.4.2 整型常量與變數12
1.4.3 實型常量與變數14
1.4.4 字元型常量與變數15
1.5 運算符和表達式17
1.5.1 算術運算符和表達式17
1.5.2 賦值運算符和表達式19
1.5.3 逗號運算符和表達式20
1.6 提高部分21
1.6.1 賦值運算符的進一步討論21
1.6.2 數據類型的進一步討論23
1.7 上機訓練24
思考題125
習題126
基礎部分26
提高部分27第2章 順序結構程式設計28
2.1 結構化程式設計的基本結構29
2.1.1 語句的概念292.1.2 三種基本結構29
2.2 賦值語句31
2.3 輸入輸出語句32
2.3.1 格式輸入輸出函式32
2.3.2 字元輸入輸出函式36
2.4 貫穿實例A--成績管理程式(1) 37
2.5 提高部分38
2.5.1 輸入輸出函式的進一步討論38
2.5.2 貫穿實例B--電子通訊錄管理系統(1) 42
2.6 上機訓練43
思考題244
習題244
基礎部分44
提高部分45C程式設計教程(第3版)目錄第3章 分支結構程式設計46
3.1 關係運算符和關係表達式47
3.1.1 關係運算符47
3.1.2 關係表達式47
3.2 邏輯運算符和邏輯表達式48
3.2.1 邏輯運算符48
3.2.2 邏輯表達式49
3.3 if語句50
3.3.1 if語句的一般形式51
3.3.2 if語句的嵌套57
3.4 switch語句59
3.5 貫穿實例A--成績管理程式(2) 62
3.6 提高部分63
3.6.1 if語句和switch語句的進一步討論63
3.6.2 條件運算符和表達式69
3.6.3 貫穿實例B--電子通訊錄管理系統(2) 70
3.7 上機訓練71
思考題374
習題374
基礎部分74
提高部分75第4章 循環結構程式設計77
4.1 for語句78
4.2 while語句87
4.3 do-while語句89
4.4 break語句和continue語句92
4.4.1 循環體中使用break語句92
4.4.2 循環體中使用continue語句94
4.5 循環語句的嵌套95
4.6 貫穿實例A--成績管理程式(3) 98
4.7 提高部分101
4.7.1 for語句的套用101
4.7.2 三種循環的對比104
4.7.3 goto語句以及用goto語句構成的循環108
4.7.4 貫穿實例B--電子通訊錄管理系統(3) 110
4.8 上機訓練111
思考題4114
習題4115
基礎部分115
提高部分117第5章 數組120
5.1 一維數組121
5.1.1 一維數組的定義和引用121
5.1.2 一維數組的初始化123
5.2 字元串127
5.2.1 字元串的概念和字元串的輸入輸出127
5.2.2 字元串處理函式129
5.3 二維數組131
5.4 貫穿實例A--成績管理程式(4) 134
5.5 提高部分139
5.5.1 數組程式舉例139
5.5.2 貫穿實例B--電子通訊錄管理系統(4) 146
5.6 上機訓練156
思考題5160
習題5160
基礎部分160
提高部分161第6章 指針163
6.1 變數的地址和指針變數的概念164
6.2 指針變數的定義和引用164
6.3 指針和一維數組167
6.3.1 使指針變數指向一維數組167
6.3.2 對指針的算術運算168
6.4 指針和字元串171
6.4.1 通過字元數組名引用字元串171
6.4.2 通過指針變數引用字元串172
6.5 提高部分174
6.5.1 指針的進一步討論174
6.5.2 指針和二維數組176
6.6 上機訓練179
思考題6183
習題6183
基礎部分183
提高部分184第7章 函式185
7.1 函式的引例186
7.2 函式的定義與調用188
7.2.1 函式的定義188
7.2.2 函式的調用189
7.2.3 函式的調用過程195
7.2.4 函式的返回值197
7.2.5 被調函式的原型說明199
7.3 函式的嵌套調用200
7.4 數組做實參201
7.4.1 一維數組名做實參201
7.4.2 二維數組名做實參204
7.5 變數的存儲類別205
7.5.1 內部變數和外部變數205
7.5.2 動態存儲變數和靜態存儲變數206
7.6 貫穿實例A--成績管理程式(5) 208
7.7 提高部分211
7.7.1 函式的遞歸調用211
7.7.2 帶參數的main函式213
7.7.3 指向函式的指針218
7.7.4 多檔案組成的程式運行方法219
7.7.5 預處理命令220
7.7.6 貫穿實例B--電子通訊錄管理系統(5) 223
7.8 上機訓練226
思考題7229
習題7229
基礎部分229
提高部分232第8章 結構體和其他構造類型233
8.1 結構體類型變數的定義和使用234
8.1.1 結構體類型的概念和聲明234
8.1.2 結構體類型變數的使用235
8.2 結構體和函式調用241
8.3 貫穿實例A--成績管理程式(6) 244
8.4 提高部分248
8.4.1 結構體的進一步討論248
8.4.2 鍊表252
8.4.3 共用體259
8.4.4 貫穿實例B--電子通訊錄管理系統(6)262
8.5 上機訓練265
思考題8267
習題8267
基礎部分267
提高部分268第9章 位運算270
9.1 移位運算符270
9.2 按位與、或、異或運算符272
9.3 按位取反運算符274
9.4 提高部分274
9.4.1 位運算的複合賦值運算符274
9.4.2 負整型數據的位運算275
9.4.3 無符號整型數據的位運算276
9.4.4 不同類型數據之間的位運算276
9.4.5 位運算在單片機控制中的套用276
思考題9278
習題9279
基礎部分279
提高部分279第10章 檔案280
10.1 檔案的概述281
10.2 檔案的基本操作282
10.3 貫穿實例A--成績管理程式(7) 290
10.4 提高部分296
10.4.1 檔案讀寫操作的進一步討論296
10.4.2 檔案的定位操作301
10.4.3 貫穿實例B--電子通訊錄管理系統(7)303
10.5 上機訓練307
思考題10309
習題10310
基礎部分310
提高部分310
附錄A C語言關鍵字311
附錄B 常用字元與ASCII代碼對照表312
附錄C 運算符的優先權和結合方向314
附錄D 常用C庫函式315
附錄E 關鍵字、運算符、庫函式索引319
附錄F 單號習題參考答案322
參考文獻341