本書以程序設(shè)計(jì)為主線,以編程需要帶動(dòng)知識(shí)的學(xué)習(xí)。全書共9章,系統(tǒng)介紹了C語言的相關(guān)知識(shí)及其程序設(shè)計(jì)技術(shù),包括簡單的C程序設(shè)計(jì)、基本數(shù)據(jù)類型、數(shù)據(jù)運(yùn)算、結(jié)構(gòu)化程序設(shè)計(jì)、數(shù)組和字符串、指針、函數(shù)、復(fù)合數(shù)據(jù)類型、文件與預(yù)處理;通過豐富的C程序設(shè)計(jì)實(shí)例,詳盡介紹了相應(yīng)的知識(shí)和算法;各章編排了一定量的練習(xí)題,以幫助讀者在初步掌握語言的基礎(chǔ)上,著重培養(yǎng)程序設(shè)計(jì)的能力。 本書內(nèi)容充實(shí)、體系合理、概念清晰、講解詳盡、例題豐富,是學(xué)習(xí)C程序設(shè)計(jì)的理想教材,可作為高等學(xué)校本科以上教學(xué)用書。為了方便學(xué)習(xí),建議與本書配套的《大學(xué)C語言實(shí)用教程實(shí)驗(yàn)指導(dǎo)與習(xí)題》(第2版)(ISBN 978-7-302-58564-0 )一起使用。
程序設(shè)計(jì)發(fā)展到今天,已經(jīng)由技藝推進(jìn)到科學(xué),有了自己的一套基本原理和方法。進(jìn)行程序設(shè)計(jì),需要很強(qiáng)的邏輯思維能力,是一種極富創(chuàng)造性的智力勞動(dòng)。對(duì)初學(xué)者而言,使他們望而生畏的,往往也正是這一點(diǎn)?梢赃@樣認(rèn)為,語言是一種技能,程序設(shè)計(jì)是一門科學(xué)。因此,任何計(jì)算機(jī)語言及其程序設(shè)計(jì)的基本特點(diǎn)就是理論性和實(shí)踐性并重,教學(xué)上應(yīng)強(qiáng)調(diào)科學(xué)訓(xùn)練與技能培養(yǎng)并存。基于這一認(rèn)識(shí),本書以應(yīng)用為目的,以提高程序設(shè)計(jì)能力為目標(biāo),以程序設(shè)計(jì)方法學(xué)為依據(jù),系統(tǒng)介紹了C語言及其程序設(shè)計(jì)技術(shù),把程序設(shè)計(jì)作為科學(xué)來講授,把語言作為技能來培養(yǎng),讓讀者在大量的程序設(shè)計(jì)實(shí)踐中自然而然地熟悉和掌握。
C語言是廣泛應(yīng)用的計(jì)算機(jī)語言,學(xué)會(huì)使用C語言進(jìn)行程序設(shè)計(jì)是計(jì)算機(jī)工作者的一項(xiàng)基本功。當(dāng)今流行的面向?qū)ο笳Z言C 、Visual C 、C#以及Java語言就源于C語言。
在計(jì)算機(jī)日益普及、計(jì)算機(jī)技術(shù)日新月異、新型計(jì)算機(jī)軟件層出不窮的今天,程序設(shè)計(jì)仍然是每一位當(dāng)代大學(xué)生的基本功,是計(jì)算機(jī)素質(zhì)教育的重要環(huán)節(jié)之一。尤其是那些希望用計(jì)算機(jī)解決本專業(yè)領(lǐng)域?qū)嶋H問題的有識(shí)之士,更需要加強(qiáng)程序設(shè)計(jì)的學(xué)習(xí)與訓(xùn)練。
學(xué)習(xí)計(jì)算機(jī)語言的目的是應(yīng)用,而應(yīng)用要通過程序設(shè)計(jì)來體現(xiàn)。程序設(shè)計(jì)發(fā)展到今天,已經(jīng)由技藝推進(jìn)到科學(xué),有了自己的一套基本原理和方法。進(jìn)行程序設(shè)計(jì),需要很強(qiáng)的邏輯思維能力,是一種極富創(chuàng)造性的智力勞動(dòng)。對(duì)初學(xué)者而言,使他們望而生畏的,往往正是這一點(diǎn)?梢赃@樣認(rèn)為,語言是一種技能,程序設(shè)計(jì)是一門科學(xué)。因此,任何計(jì)算機(jī)語言及其程序設(shè)計(jì)的基本特點(diǎn)就是理論性和實(shí)踐性并重,教學(xué)上應(yīng)強(qiáng)調(diào)科學(xué)訓(xùn)練與技能培養(yǎng)并存;谶@一認(rèn)識(shí),本書以應(yīng)用為目的,以提高程序設(shè)計(jì)能力為目標(biāo),以程序設(shè)計(jì)方法學(xué)為依據(jù),系統(tǒng)介紹了C語言及其程序設(shè)計(jì)技術(shù),把程序設(shè)計(jì)作為科學(xué)來講授,把語言作為技能來培養(yǎng),讓讀者在大量的程序設(shè)計(jì)實(shí)踐中自然而然地熟悉和掌握。
根據(jù)C語言自身的特點(diǎn),本書從內(nèi)容上做了如下安排: 第1章是簡單的C程序設(shè)計(jì),盡管簡單,但它是學(xué)習(xí)C語言的綱;第2、5、8章從易到難介紹了C語言的各種數(shù)據(jù)結(jié)構(gòu)(基本數(shù)據(jù)類型、數(shù)組和字符串、復(fù)合數(shù)據(jù)類型);第3章專門介紹C語言的數(shù)據(jù)運(yùn)算;第4章集中介紹C語言的控制結(jié)構(gòu)和程序設(shè)計(jì)的基本思維方法,體現(xiàn)結(jié)構(gòu)化程序設(shè)計(jì)的特點(diǎn);第6章介紹指針,這是C語言的精髓和特色,也是學(xué)習(xí)的難點(diǎn);第7、9章介紹函數(shù)和文件,這是模塊化程序設(shè)計(jì)的需要;第10章介紹C語言環(huán)境中特殊而較為深入的問題(如編譯預(yù)處理、分割編譯等),這些問題基本不影響本書對(duì)初學(xué)者的要求,但對(duì)較高層次的讀者來說又是必要的資料,可以作為自學(xué)之用;附錄部分給出了Visual C 6.0 操作指導(dǎo)、C語言運(yùn)算符集、ASCII代碼表、常用庫函數(shù)、習(xí)題解答以及綜合應(yīng)用示例,便于讀者查閱。書中所有例題源程序均通過Visual C 6.0編譯系統(tǒng)調(diào)試,為方便讀者上機(jī)實(shí)踐以及課后練習(xí)與檢測(cè),本書配有輔助教材《大學(xué)C語言實(shí)用教程實(shí)驗(yàn)指導(dǎo)與習(xí)題(第2版)》。
潘旭華教授制定了本書的寫作大綱,王桂榮編寫第1~3章和附錄A~D及附錄E的部分內(nèi)容;潘旭華編寫第4~7章、附錄E部分內(nèi)容;姜書浩編寫第8章及附錄E部分內(nèi)容;趙玉剛編寫第9章、第10章及附錄E部分內(nèi)容。全書由潘旭華教授擔(dān)任主編并統(tǒng)稿,高福成教授精心審閱了全部書稿。本書在編寫和出版過程中,得到作者所在學(xué)校的大力支持,清華大學(xué)出版社的編校人員為此書的出版付出了大量辛勤的勞動(dòng),在此一并表示感謝。
本書配套的電子教學(xué)資源(教學(xué)大綱、實(shí)驗(yàn)大綱、授課計(jì)劃、電子教案、電子圖書等),讀者可在清華大學(xué)出版社網(wǎng)站(http://www.tup.com.cn)本書相應(yīng)的頁面中下載。
由于作者學(xué)識(shí)水平所限,書中難免存在疏漏和錯(cuò)誤,懇請(qǐng)讀者不吝指正。
編者2021年8月
潘旭華 天津市教學(xué)名師,天津市五一勞動(dòng)獎(jiǎng)?wù)芦@得者。主要從事電子商務(wù)、智能計(jì)算與數(shù)量經(jīng)濟(jì)學(xué)研究。是電子商務(wù)一流本科專業(yè)建設(shè)點(diǎn)負(fù)責(zé)人、市級(jí)電子商務(wù)專業(yè)教學(xué)團(tuán)隊(duì)負(fù)責(zé)人、市級(jí)信息技術(shù)實(shí)驗(yàn)教學(xué)示范中心負(fù)責(zé)人;主持項(xiàng)目獲得高等教育天津市級(jí)教學(xué)成果二等獎(jiǎng)、全國商業(yè)科技進(jìn)步一等獎(jiǎng)和二等獎(jiǎng)等;主持或參與多項(xiàng)和省部級(jí)教學(xué)和科研項(xiàng)目;出版普通高等教育十一五規(guī)劃教材《大學(xué)C語言實(shí)用教程》等十余部。
第1章簡單的C程序設(shè)計(jì)1
1.1C語言的產(chǎn)生和發(fā)展1
1.2開發(fā)環(huán)境2
1.3編譯環(huán)境3
1.4結(jié)構(gòu)特點(diǎn)和書寫風(fēng)格6
1.4.1一個(gè)簡單的C程序6
1.4.2C程序的結(jié)構(gòu)特點(diǎn)7
1.4.3C程序書寫風(fēng)格8
1.5輸入與輸出8
1.5.1賦值語句8
1.5.2格式輸入輸出函數(shù)9
1.5.3庫函數(shù)和標(biāo)題文件10
1.6運(yùn)行程序10
習(xí)題112
第2章基本數(shù)據(jù)類型、常量和變量14
2.1基本數(shù)據(jù)類型及關(guān)鍵字14
2.2常量16
2.3變量18
2.4符號(hào)常數(shù)19
2.5輸入和輸出22
2.5.1格式化輸出函數(shù)22
2.5.2格式化輸入函數(shù)26
2.5.3單字符輸出函數(shù)29
2.5.4單字符輸入函數(shù)30
習(xí)題231
第3章數(shù)據(jù)運(yùn)算35
3.1算術(shù)運(yùn)算35
3.1.1算術(shù)運(yùn)算符35
3.1.2算術(shù)表達(dá)式36
3.2賦值運(yùn)算40
3.3逗號(hào)運(yùn)算(順序運(yùn)算)42
3.4關(guān)系運(yùn)算和邏輯運(yùn)算44
3.5位運(yùn)算48
3.6常用數(shù)學(xué)函數(shù)52
習(xí)題354
第4章結(jié)構(gòu)化程序設(shè)計(jì)57
4.1基本結(jié)構(gòu)57
4.2選擇結(jié)構(gòu)58
4.2.1if…else語句與二分支結(jié)構(gòu)58
4.2.2if…else語句與多分支結(jié)構(gòu)63
4.2.3條件表達(dá)式65
4.2.4switch語句67
4.2.5switch與break語句69
4.3循環(huán)結(jié)構(gòu)70
4.3.1for循環(huán)70
4.3.2while循環(huán)74
4.3.3do…while循環(huán)76
4.3.4循環(huán)的嵌套78
4.4轉(zhuǎn)移控制語句80
4.4.1break語句81
4.4.2continue語句82
4.4.3goto語句和標(biāo)號(hào)83
習(xí)題484
第5章數(shù)組和字符串90
5.1數(shù)組的概念90
5.2數(shù)組的定義和初始化91
5.2.1數(shù)組的定義91
5.2.2數(shù)組的存儲(chǔ)92
5.2.3數(shù)組的初始化93
5.2.4初始化定義數(shù)組95
5.3數(shù)組的基本操作96
5.4數(shù)組的應(yīng)用101
5.4.1數(shù)值數(shù)組的應(yīng)用101
5.4.2字符串處理函數(shù)109
習(xí)題5117
第6章指針120
6.1地址、指針和指針變量120
6.1.1地址和地址的運(yùn)算120
6.1.2指針和指針變量123
6.2指針的運(yùn)算126
6.3指針與一維數(shù)組128
6.4指針與二維數(shù)組130
6.5指針與字符串136
6.6二級(jí)指針和多級(jí)指針140
習(xí)題6142
第7章函數(shù)147
7.1模塊化程序設(shè)計(jì)147
7.2C函數(shù)的定義和調(diào)用149
7.3數(shù)據(jù)傳遞153
7.3.1參數(shù)傳遞方式153
7.3.2函數(shù)返回值方式163
7.3.3全局變量方式165
7.3.4函數(shù)指針166
7.4存儲(chǔ)類型與函數(shù)調(diào)用169
7.4.1變量的存儲(chǔ)類型169
7.4.2函數(shù)的存儲(chǔ)類型與函數(shù)調(diào)用174
7.5函數(shù)的遞歸調(diào)用175
7.6main()函數(shù)的參數(shù)與返回值178
習(xí)題7181
第8章復(fù)合數(shù)據(jù)類型188
8.1結(jié)構(gòu)類型188
8.1.1結(jié)構(gòu)類型的定義188
8.1.2結(jié)構(gòu)類型的初始化190
8.1.3訪問結(jié)構(gòu)變量和結(jié)構(gòu)數(shù)組192
8.1.4結(jié)構(gòu)類型的賦值與輸入輸出194
8.2結(jié)構(gòu)數(shù)據(jù)在函數(shù)間的傳遞196
8.3遞歸結(jié)構(gòu)與鏈表203
8.3.1遞歸結(jié)構(gòu)與鏈表的概念203
8.3.2內(nèi)存的動(dòng)態(tài)分配204
8.3.3動(dòng)態(tài)鏈表的基本操作206
8.4枚舉類型213
8.5類型定義215
習(xí)題8217
第9章文件與預(yù)處理223
9.1文件概述223
9.2文件的打開與關(guān)閉225
9.3文件的讀寫操作227
9.3.1文本文件讀寫227
9.3.2二進(jìn)制文件讀寫233
9.4文件檢測(cè)函數(shù)235
9.5順序存取與隨機(jī)存取文件237
9.6編譯預(yù)處理247
9.6.1宏定義247
9.6.2文件包含251
9.6.3條件編譯253
習(xí)題9256 附錄AC語言運(yùn)算符集263
附錄BASCII代碼表264 附錄CC常用庫函數(shù)及其標(biāo)題文件265 附錄D習(xí)題參考答案270 附錄EC程序應(yīng)用開發(fā)案例276