本書主要介紹了C語言的基本概念、主要特點、Turbo C集成環(huán)境的使用;C語言的數(shù)據(jù)類型、C程序結(jié)構(gòu)組成與設(shè)計方法;C函數(shù)的分類與調(diào)用、數(shù)組、文件與指針操作等。本書根據(jù)中等職業(yè)教育需求,重點突出其實用性、科學(xué)性和先進性。適合中職學(xué)生及社會培訓(xùn)人員初學(xué)者使用。
本書第2版是根據(jù)教育部頒發(fā)的《編程語言基礎(chǔ)》課程教學(xué)大綱于2002年初編寫發(fā)行的,適合中等職業(yè)學(xué)校計算機及應(yīng)用專業(yè)的學(xué)生使用。出版后被多個省、市的中等職業(yè)學(xué)校采用,除作為專業(yè)教材外,還被許多相近專業(yè)選作為選修課教材,并受到了C語言愛好者和初學(xué)者的普遍歡迎,使用效果良好,發(fā)行量較大。幾年來,出版社和作者通過多次與各地的一線教師交流經(jīng)驗,汲取了許多好的意見和建議,再加上IT行業(yè)形勢的不斷發(fā)展和教學(xué)環(huán)境的不斷改善,以及作者的教學(xué)實踐體會,本次再版做了不少改動和更新,使本書更加突出了實用性、科學(xué)性和先進性。但本書仍保留了原書的基本結(jié)構(gòu)和風(fēng)格,如:緊扣教學(xué)大綱,在教學(xué)內(nèi)容安排上采用模塊化、單元化的結(jié)構(gòu);在敘述方法上采用由淺入深、由易到難的原則(且盡量將難點分散);在實踐安排上增加上機單元,突出技能訓(xùn)練。在每一部分內(nèi)容中,都有基本概念介紹、知識運用舉例、編程及算法分析、思考練習(xí)題、上機指導(dǎo)與實訓(xùn)等。這樣安排,使學(xué)生更容易理解、消化、掌握各單元、各模塊的學(xué)習(xí)內(nèi)容。
本次修訂,突出了以下幾個方面:對第一版中的某些概念進行了重新歸類;有的章節(jié)在標題、組織結(jié)構(gòu)、以及行文等方面都做了較大的改動;對各章的例題、習(xí)題、上機實訓(xùn)內(nèi)容進行了修訂、更新和擴充。全書內(nèi)容和參考學(xué)時安排如下表所示:
分 類 序 號 課 程 內(nèi) 容 學(xué)
時 數(shù)
基礎(chǔ)
知識
模塊 1 C語言概述 2 (2)
2 基本數(shù)據(jù)類型和簡單程序設(shè)計 6
3 表達式與運算符 3 (2)
4 數(shù)據(jù)的輸入與輸出 5
5 控制結(jié)構(gòu)程序設(shè)計 16
6 數(shù)組 8 (2)
7 函數(shù) 10
8 文件 4 (2)
可選
模塊 9 編譯預(yù)處理 2
10 指針 8
機 動 8
合 計 27
本書大綱給出的參考教學(xué)時數(shù)為72學(xué)時,其中授課時間為44學(xué)時,上機實習(xí)20學(xué)時,機動為8學(xué)時。根據(jù)各章內(nèi)容的多寡,我們在各章中給出了課時安排建議供備課時參考。機動學(xué)時基本想法是加在上機實習(xí)上,有的講授內(nèi)容可以結(jié)合上機進行講解。
本書的編寫和出版工作由電子工業(yè)出版社組織實施,王森教授擔(dān)任主編和統(tǒng)稿,并編寫了第2、4、5、8章及附錄,成都職業(yè)技術(shù)學(xué)院向華老師編寫了第1、6、7章,山東信息職業(yè)技術(shù)學(xué)院季昌武、韓鳳文老師編寫了第3、9、10章。在本書編寫過程中,得到了出版社和同行老師們的支持與幫助,在此一并表示誠摯的感謝!由于作者水平有限,書中難免存有缺點和錯誤,殷切希望廣大讀者批評指正。
為了方便教師教學(xué),本書還配有教學(xué)指南、電子教案及習(xí)題答案(電子版)。請有此需要的教師登錄華信教育資源網(wǎng)(www.huaxin.edu.cn或www.hxedu.com.cn)免費注冊后再進行下載,有問題時請在網(wǎng)站留言板留言或與電子工業(yè)出版社聯(lián)系(E-mail:hxedu@phei.com.cn)。
編 者
2017年5月
作者王森,性別男,工作單位為解放軍軍械工程學(xué)院,學(xué)歷為本科,教授,所學(xué)專業(yè)為計算機應(yīng)用專業(yè)。我社老作者,編寫的C語言編程(第2版)銷量非常好。
第一篇 基礎(chǔ)知識模塊
第1章 C語言概述3
1.1 C語言簡史及特點3
1.1.1 C語言的發(fā)展3
1.1.2 C語言的特點4
1.2 C語言程序4
1.2.1 幾個典型的C程序4
1.2.2 C程序的基本結(jié)構(gòu)6
1.2.3 C語言的基本符號與詞匯6
1.3 C語言集成開發(fā)環(huán)境8
1.3.1 Turbo C集成開發(fā)環(huán)境介紹8
1.3.2 Turbo C集成開發(fā)環(huán)境的使用8
習(xí)題一11
上機實習(xí)指導(dǎo)12
上機實習(xí) Turbo C的基本操作13
第2章 數(shù)據(jù)類型和簡單程序設(shè)計16
2.1 基本知識16
2.1.1 C語言的數(shù)據(jù)類型16
2.1.2 常量與變量的使用16
2.1.3 C語句17
2.1.4 結(jié)構(gòu)化程序設(shè)計方法18
2.2 整型數(shù)據(jù)19
2.2.1 整型常量19
2.2.2 整型變量及分類19
2.2.3 整數(shù)運算的程序設(shè)計21
2.3 浮點型數(shù)據(jù)22
2.3.1 浮點常數(shù)22
2.3.2 浮點型變量與分類22
2.3.3 符點數(shù)運算的程序設(shè)計23
2.4 字符型數(shù)據(jù)24
2.4.1 字符常數(shù)24
2.4.2 字符變量及分類25
2.4.3 字符串26
2.4.4 最簡單的字符和字符串處理程序27
2.5 類型的混合運算28
2.5.1 類型的自動轉(zhuǎn)換28
2.5.2 類型的強制轉(zhuǎn)換29
習(xí)題二30
上機實習(xí)指導(dǎo)32
上機實習(xí) 基本數(shù)據(jù)類型的簡單程序設(shè)計33
第3章 表達式與運算符35
3.1 概述35
3.1.1 表達式35
3.1.2 運算符36
3.2 算術(shù)運算符與算術(shù)表達式36
3.2.1 算術(shù)運算符36
3.2.2 算術(shù)表達式37
3.3 其他運算符的應(yīng)用39
3.3.1 賦值運算符和賦值表達式39
3.3.2 自增和自減運算符40
3.3.3 條件運算符和條件表達式41
3.3.4 逗號運算符和逗號表達式43
3.3.5 sizeof運算符44
3.4 運算符的優(yōu)先級與結(jié)合性44
習(xí)題三45
上機實習(xí)指導(dǎo)46
上機實習(xí) 運算符及表達式應(yīng)用47
第4章 數(shù)據(jù)的輸入與輸出49
4.1 字符輸入/輸出函數(shù)49
4.1.1 字符輸入函數(shù)getchar()49
4.1.2 字符輸出函數(shù)putchar()50
4.1.3 字符的連續(xù)輸入/輸出51
4.2 按格式輸入/輸出函數(shù)52
4.2.1 按格式輸出函數(shù)printf()52
4.2.2 按格式輸入函數(shù)scanf()57
習(xí)題四62
上機實習(xí)指導(dǎo)64
上機實習(xí)一 字符的輸入/輸出65
上機實習(xí)二 格式輸入/輸出函數(shù)的使用67
第5章 控制結(jié)構(gòu)程序設(shè)計69
5.1 關(guān)系表達式與邏輯表達式69
5.1.1 關(guān)系運算符與關(guān)系表達式69
5.1.2 邏輯運算符與邏輯表達式70
5.2 條件選擇語句if71
5.2.1 if語句的三種形式71
5.2.2 條件分支程序設(shè)計舉例73
5.3 開關(guān)語句switch75
5.3.1 switch語句結(jié)構(gòu)形式75
5.3.2 多路選擇程序設(shè)計舉例77
5.4 循環(huán)語句79
5.4.1 for語句79
5.4.2 while語句83
5.4.3 do-while語句85
5.5 中止語句break和繼續(xù)語句continue87
5.5.1 break語句87
5.5.2 continue語句88
5.6 無條件轉(zhuǎn)移語句goto88
5.6.1 goto語句的格式88
5.6.2 goto語句應(yīng)用舉例89
習(xí)題五89
上機實習(xí)指導(dǎo)91
上機實習(xí)一 關(guān)系表達式和邏輯表達式91
上機實習(xí)二 if語句93
上機實習(xí)三 switch語句94
上機實習(xí)四 for語句96
上機實習(xí)五 while語句和do-while語句97
第6章 數(shù)組99
6.1 一維數(shù)組的定義和引用99
6.1.1 一維數(shù)組的定義99
6.1.2 一維數(shù)組的引用100
6.1.3 一維數(shù)組的初始化103
6.1.4 一維數(shù)組應(yīng)用舉例103
6.2 二維數(shù)組的定義和引用105
6.2.1 二維數(shù)組的定義105
6.2.2 二維數(shù)組的引用107
6.2.3 二維數(shù)組的初始化107
6.2.4 二維數(shù)組應(yīng)用舉例109
6.3 字符數(shù)組109
6.3.1 字符數(shù)組的定義和初始化110
6.3.2 字符數(shù)組的引用110
6.3.3 字符串與字符數(shù)組111
6.3.4 字符串的輸入、輸出和處理111
習(xí)題六116
上機實習(xí)指導(dǎo)117
上機實習(xí)一 數(shù)值型數(shù)組119
上機實習(xí)二 字符型數(shù)組121
第7章 函數(shù)124
7.1 函數(shù)概述124
7.1.1 為什么要使用函數(shù)124
7.1.2 庫函數(shù)和用戶自定義函數(shù)125
7.2 函數(shù)的定義125
7.2.1 函數(shù)定義的一般形式125
7.2.2 有關(guān)函數(shù)定義的幾點說明126
7.3 函數(shù)參數(shù)及返回值127
7.3.1 函數(shù)參數(shù)127
7.3.2 函數(shù)的返回值129
7.4 函數(shù)的調(diào)用130
7.4.1 函數(shù)的語句調(diào)用130
7.4.2 函數(shù)表達式調(diào)用131
7.4.3 函數(shù)的遞歸調(diào)用133
7.4.4 函數(shù)的嵌套調(diào)用135
7.5 數(shù)組作函數(shù)參數(shù)136
7.5.1 數(shù)組元素作函數(shù)參數(shù)136
7.5.2 數(shù)組名作函數(shù)參數(shù)136
7.6 變量的作用域和生存期138
7.6.1 變量的作用域138
7.6.2 變量的生存期141
7.7 函數(shù)的作用域143
7.7.1 內(nèi)部函數(shù)143
7.7.2 外部函數(shù)143
習(xí)題七144
上機實習(xí)指導(dǎo)147
上機實習(xí)一 函數(shù)的定義和調(diào)用148
上機實習(xí)二 局部變量和全局變量150
上機實習(xí)三 一個應(yīng)用程序的設(shè)計152
第8章 文件156
8.1 C語言文件概述156
8.1.1 C語言文件的存儲方式及分類156
8.1.2 文件指針157
8.2 文件的打開與關(guān)閉157
8.2.1 文件的打開(fopen()函數(shù))157
8.2.2 文件的關(guān)閉(fclose( )函數(shù))159
8.3 文件的讀寫159
8.3.1 字符的輸入和輸出159
8.3.2 字符串的輸入和輸出161
8.3.3 按格式輸入和輸出162
8.4 隨機文件的讀寫164
8.4.1 fseek( )函數(shù)164
8.4.2 fread( )與fwrite( )函數(shù)164
習(xí)題八166
上機實習(xí)指導(dǎo)167
上機實習(xí)一 文件的順序讀寫168
上機實習(xí)二 文件的隨機讀寫170
第二篇 選用模塊
第9章 編譯預(yù)處理175
9.1 宏定義175
9.1.1 不帶參數(shù)的宏定義175
9.1.2 帶參數(shù)的宏定義176
9.2 文件包含178
9.2.1 使用格式178
9.2.2 使用說明179
9.3 條件編譯179
9.3.1 形式1179
9.3.2 形式2180
9.3.3 形式3180
習(xí)題九181
第10章 指針184
10.1 指針概述184
10.1.1 變量的地址與指針變量184
10.1.2 指針變量的定義185
10.1.3 指針變量的操作186
10.2 指針與數(shù)組188
10.2.1 一維數(shù)組的指針188
10.2.2 二維數(shù)組的指針190
10.2.3 指向字符串的指針192
10.3 指針與函數(shù)193
10.3.1 指針作為函數(shù)的參數(shù)193
10.3.2 返回指針值的函數(shù)196
10.3.3 指向函數(shù)的指針197
習(xí)題十199
上機實習(xí)指導(dǎo)201
上機實習(xí) 指針的簡單應(yīng)用202
附錄A ASCII碼字符表204
附錄B Turbo C庫函數(shù)簡介205
附錄C Turbo C編譯錯誤信息213