本書主要介紹了C語言的基本概念、主要特點(diǎn)、Turbo C集成環(huán)境的使用;C語言的數(shù)據(jù)類型、C程序結(jié)構(gòu)組成與設(shè)計(jì)方法;C函數(shù)的分類與調(diào)用、數(shù)組、文件與指針操作等。本書根據(jù)中等職業(yè)教育需求,重點(diǎn)突出其實(shí)用性、科學(xué)性和先進(jìn)性。適合中職學(xué)生及社會(huì)培訓(xùn)人員初學(xué)者使用。
本書第2版是根據(jù)教育部頒發(fā)的《編程語言基礎(chǔ)》課程教學(xué)大綱于2002年初編寫發(fā)行的,適合中等職業(yè)學(xué)校計(jì)算機(jī)及應(yīng)用專業(yè)的學(xué)生使用。出版后被多個(gè)省、市的中等職業(yè)學(xué)校采用,除作為專業(yè)教材外,還被許多相近專業(yè)選作為選修課教材,并受到了C語言愛好者和初學(xué)者的普遍歡迎,使用效果良好,發(fā)行量較大。幾年來,出版社和作者通過多次與各地的一線教師交流經(jīng)驗(yàn),汲取了許多好的意見和建議,再加上IT行業(yè)形勢(shì)的不斷發(fā)展和教學(xué)環(huán)境的不斷改善,以及作者的教學(xué)實(shí)踐體會(huì),本次再版做了不少改動(dòng)和更新,使本書更加突出了實(shí)用性、科學(xué)性和先進(jìn)性。但本書仍保留了原書的基本結(jié)構(gòu)和風(fēng)格,如:緊扣教學(xué)大綱,在教學(xué)內(nèi)容安排上采用模塊化、單元化的結(jié)構(gòu);在敘述方法上采用由淺入深、由易到難的原則(且盡量將難點(diǎn)分散);在實(shí)踐安排上增加上機(jī)單元,突出技能訓(xùn)練。在每一部分內(nèi)容中,都有基本概念介紹、知識(shí)運(yùn)用舉例、編程及算法分析、思考練習(xí)題、上機(jī)指導(dǎo)與實(shí)訓(xùn)等。這樣安排,使學(xué)生更容易理解、消化、掌握各單元、各模塊的學(xué)習(xí)內(nèi)容。
本次修訂,突出了以下幾個(gè)方面:對(duì)第一版中的某些概念進(jìn)行了重新歸類;有的章節(jié)在標(biāo)題、組織結(jié)構(gòu)、以及行文等方面都做了較大的改動(dòng);對(duì)各章的例題、習(xí)題、上機(jī)實(shí)訓(xùn)內(nèi)容進(jìn)行了修訂、更新和擴(kuò)充。全書內(nèi)容和參考學(xué)時(shí)安排如下表所示:
分 類 序 號(hào) 課 程 內(nèi) 容 學(xué)
時(shí) 數(shù)
基礎(chǔ)
知識(shí)
模塊 1 C語言概述 2 (2)
2 基本數(shù)據(jù)類型和簡單程序設(shè)計(jì) 6
3 表達(dá)式與運(yùn)算符 3 (2)
4 數(shù)據(jù)的輸入與輸出 5
5 控制結(jié)構(gòu)程序設(shè)計(jì) 16
6 數(shù)組 8 (2)
7 函數(shù) 10
8 文件 4 (2)
可選
模塊 9 編譯預(yù)處理 2
10 指針 8
機(jī) 動(dòng) 8
合 計(jì) 27
本書大綱給出的參考教學(xué)時(shí)數(shù)為72學(xué)時(shí),其中授課時(shí)間為44學(xué)時(shí),上機(jī)實(shí)習(xí)20學(xué)時(shí),機(jī)動(dòng)為8學(xué)時(shí)。根據(jù)各章內(nèi)容的多寡,我們?cè)诟髡轮薪o出了課時(shí)安排建議供備課時(shí)參考。機(jī)動(dòng)學(xué)時(shí)基本想法是加在上機(jī)實(shí)習(xí)上,有的講授內(nèi)容可以結(jié)合上機(jī)進(jìn)行講解。
本書的編寫和出版工作由電子工業(yè)出版社組織實(shí)施,王森教授擔(dān)任主編和統(tǒng)稿,并編寫了第2、4、5、8章及附錄,成都職業(yè)技術(shù)學(xué)院向華老師編寫了第1、6、7章,山東信息職業(yè)技術(shù)學(xué)院季昌武、韓鳳文老師編寫了第3、9、10章。在本書編寫過程中,得到了出版社和同行老師們的支持與幫助,在此一并表示誠摯的感謝!由于作者水平有限,書中難免存有缺點(diǎn)和錯(cuò)誤,殷切希望廣大讀者批評(píng)指正。
為了方便教師教學(xué),本書還配有教學(xué)指南、電子教案及習(xí)題答案(電子版)。請(qǐng)有此需要的教師登錄華信教育資源網(wǎng)(www.huaxin.edu.cn或www.hxedu.com.cn)免費(fèi)注冊(cè)后再進(jìn)行下載,有問題時(shí)請(qǐng)?jiān)诰W(wǎng)站留言板留言或與電子工業(yè)出版社聯(lián)系(E-mail:hxedu@phei.com.cn)。
編 者
2017年5月
作者王森,性別男,工作單位為解放軍軍械工程學(xué)院,學(xué)歷為本科,教授,所學(xué)專業(yè)為計(jì)算機(jī)應(yīng)用專業(yè)。我社老作者,編寫的C語言編程(第2版)銷量非常好。
第一篇 基礎(chǔ)知識(shí)模塊
第1章 C語言概述3
1.1 C語言簡史及特點(diǎn)3
1.1.1 C語言的發(fā)展3
1.1.2 C語言的特點(diǎn)4
1.2 C語言程序4
1.2.1 幾個(gè)典型的C程序4
1.2.2 C程序的基本結(jié)構(gòu)6
1.2.3 C語言的基本符號(hào)與詞匯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
上機(jī)實(shí)習(xí)指導(dǎo)12
上機(jī)實(shí)習(xí) Turbo C的基本操作13
第2章 數(shù)據(jù)類型和簡單程序設(shè)計(jì)16
2.1 基本知識(shí)16
2.1.1 C語言的數(shù)據(jù)類型16
2.1.2 常量與變量的使用16
2.1.3 C語句17
2.1.4 結(jié)構(gòu)化程序設(shè)計(jì)方法18
2.2 整型數(shù)據(jù)19
2.2.1 整型常量19
2.2.2 整型變量及分類19
2.2.3 整數(shù)運(yùn)算的程序設(shè)計(jì)21
2.3 浮點(diǎn)型數(shù)據(jù)22
2.3.1 浮點(diǎn)常數(shù)22
2.3.2 浮點(diǎn)型變量與分類22
2.3.3 符點(diǎn)數(shù)運(yùn)算的程序設(shè)計(jì)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 類型的混合運(yùn)算28
2.5.1 類型的自動(dòng)轉(zhuǎn)換28
2.5.2 類型的強(qiáng)制轉(zhuǎn)換29
習(xí)題二30
上機(jī)實(shí)習(xí)指導(dǎo)32
上機(jī)實(shí)習(xí) 基本數(shù)據(jù)類型的簡單程序設(shè)計(jì)33
第3章 表達(dá)式與運(yùn)算符35
3.1 概述35
3.1.1 表達(dá)式35
3.1.2 運(yùn)算符36
3.2 算術(shù)運(yùn)算符與算術(shù)表達(dá)式36
3.2.1 算術(shù)運(yùn)算符36
3.2.2 算術(shù)表達(dá)式37
3.3 其他運(yùn)算符的應(yīng)用39
3.3.1 賦值運(yùn)算符和賦值表達(dá)式39
3.3.2 自增和自減運(yùn)算符40
3.3.3 條件運(yùn)算符和條件表達(dá)式41
3.3.4 逗號(hào)運(yùn)算符和逗號(hào)表達(dá)式43
3.3.5 sizeof運(yùn)算符44
3.4 運(yùn)算符的優(yōu)先級(jí)與結(jié)合性44
習(xí)題三45
上機(jī)實(shí)習(xí)指導(dǎo)46
上機(jī)實(shí)習(xí) 運(yùn)算符及表達(dá)式應(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
上機(jī)實(shí)習(xí)指導(dǎo)64
上機(jī)實(shí)習(xí)一 字符的輸入/輸出65
上機(jī)實(shí)習(xí)二 格式輸入/輸出函數(shù)的使用67
第5章 控制結(jié)構(gòu)程序設(shè)計(jì)69
5.1 關(guān)系表達(dá)式與邏輯表達(dá)式69
5.1.1 關(guān)系運(yùn)算符與關(guān)系表達(dá)式69
5.1.2 邏輯運(yùn)算符與邏輯表達(dá)式70
5.2 條件選擇語句if71
5.2.1 if語句的三種形式71
5.2.2 條件分支程序設(shè)計(jì)舉例73
5.3 開關(guān)語句switch75
5.3.1 switch語句結(jié)構(gòu)形式75
5.3.2 多路選擇程序設(shè)計(jì)舉例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
上機(jī)實(shí)習(xí)指導(dǎo)91
上機(jī)實(shí)習(xí)一 關(guān)系表達(dá)式和邏輯表達(dá)式91
上機(jī)實(shí)習(xí)二 if語句93
上機(jī)實(shí)習(xí)三 switch語句94
上機(jī)實(shí)習(xí)四 for語句96
上機(jī)實(shí)習(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
上機(jī)實(shí)習(xí)指導(dǎo)117
上機(jī)實(shí)習(xí)一 數(shù)值型數(shù)組119
上機(jī)實(shí)習(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ù)定義的幾點(diǎn)說明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ù)表達(dá)式調(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
上機(jī)實(shí)習(xí)指導(dǎo)147
上機(jī)實(shí)習(xí)一 函數(shù)的定義和調(diào)用148
上機(jī)實(shí)習(xí)二 局部變量和全局變量150
上機(jī)實(shí)習(xí)三 一個(gè)應(yīng)用程序的設(shè)計(jì)152
第8章 文件156
8.1 C語言文件概述156
8.1.1 C語言文件的存儲(chǔ)方式及分類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 隨機(jī)文件的讀寫164
8.4.1 fseek( )函數(shù)164
8.4.2 fread( )與fwrite( )函數(shù)164
習(xí)題八166
上機(jī)實(shí)習(xí)指導(dǎo)167
上機(jī)實(shí)習(xí)一 文件的順序讀寫168
上機(jī)實(shí)習(xí)二 文件的隨機(jī)讀寫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
上機(jī)實(shí)習(xí)指導(dǎo)201
上機(jī)實(shí)習(xí) 指針的簡單應(yīng)用202
附錄A ASCII碼字符表204
附錄B Turbo C庫函數(shù)簡介205
附錄C Turbo C編譯錯(cuò)誤信息213