進(jìn)入21世紀(jì),出現(xiàn)了一批高校向應(yīng)用型大學(xué)轉(zhuǎn)型的大趨勢(shì),根據(jù)這一特點(diǎn),我們?cè)诒緯?shū)第1版的基礎(chǔ)上進(jìn)行了修訂,結(jié)合應(yīng)用型高校學(xué)生的特點(diǎn)及學(xué)時(shí)設(shè)置努力使本書(shū)第2版達(dá)到兼顧專(zhuān)業(yè)、通俗、實(shí)用和與時(shí)俱進(jìn)的目標(biāo),使之成為應(yīng)用型高等院校計(jì)算機(jī)專(zhuān)業(yè)和非計(jì)算機(jī)專(zhuān)業(yè)的C語(yǔ)言程序設(shè)計(jì)課程的教材和參考手冊(cè)。
本書(shū)采用通俗而親和的描述風(fēng)格,比較適合C程序設(shè)計(jì)的初學(xué)者、大學(xué)一年級(jí)學(xué)生,也適合想更深入掌握C語(yǔ)言程序設(shè)計(jì)的讀者。本書(shū)中每個(gè)知識(shí)點(diǎn)的講解由淺入深、循序漸進(jìn),教學(xué)內(nèi)容以案例驅(qū)動(dòng)方法進(jìn)行,案例實(shí)用、有趣、易懂,貼近普通大學(xué)生的實(shí)際生活,讓學(xué)生備感親切。本書(shū)在潛移默化中幫助學(xué)生了解應(yīng)用程序設(shè)計(jì)方法和過(guò)程,掌握程序設(shè)計(jì)語(yǔ)言知識(shí)和實(shí)用技巧,培養(yǎng)他們的編程素養(yǎng)。
本書(shū)圍繞把問(wèn)題講清楚、講明白、講透徹這個(gè)中心目標(biāo),放棄一些陳舊的、以炫技為目的的傳統(tǒng)設(shè)計(jì)習(xí)慣,追求更直接、更簡(jiǎn)練的設(shè)計(jì)風(fēng)格,盡量把我們多年來(lái)在教學(xué)和實(shí)際應(yīng)用開(kāi)發(fā)實(shí)踐中積累的經(jīng)驗(yàn)貫穿于書(shū)中,同時(shí)也將程序設(shè)計(jì)領(lǐng)域最新、最有價(jià)值的思想和方法滲透到書(shū)中,使本書(shū)以煥然一新的面貌呈現(xiàn)在各位親愛(ài)的讀者面前。
本書(shū)仍然延續(xù)第1版所采用的CDIO的思想和模式,即每章節(jié)的基本模式如下:
(1)CDIO引例示范(教師的“CDIO”);
。2)相關(guān)知識(shí)點(diǎn)描述;
。3)在教師引導(dǎo)下,課堂實(shí)例演練CDIO(學(xué)生參與的CDIO);
。4)小結(jié)涵蓋本部分的知識(shí)點(diǎn)、容易混淆的概念及容易出錯(cuò)的問(wèn)題;
(5)實(shí)戰(zhàn)演練和習(xí)題要求學(xué)生通過(guò)練習(xí)實(shí)現(xiàn)自主的CDIO;
(6)從第2章開(kāi)始,每章均增加“綜合設(shè)計(jì)”一節(jié),作為本章所講述知識(shí)的綜合運(yùn)用模本,引導(dǎo)學(xué)生提升分析和設(shè)計(jì)能力。
本書(shū)第2版在第1版的基礎(chǔ)上進(jìn)行了很多修訂和大面積擴(kuò)編,增加了例題、習(xí)題,將第1版中的第10章刪去。全書(shū)共分10章,內(nèi)容包括C語(yǔ)言概述、C程序的運(yùn)算符和表達(dá)式、選擇結(jié)構(gòu)、循環(huán)結(jié)構(gòu)、數(shù)組、函數(shù)、自定義數(shù)據(jù)類(lèi)型、指針、文件以及VisualC++6.0開(kāi)發(fā)環(huán)境。
為了進(jìn)一步強(qiáng)化學(xué)生在應(yīng)用開(kāi)發(fā)中的實(shí)作能力,本書(shū)每章的練習(xí)中都增加了實(shí)驗(yàn)實(shí)訓(xùn)部分。學(xué)生可以模仿章節(jié)綜合設(shè)計(jì)的程序?qū)嵗瓿勺约旱脑O(shè)計(jì),還可以創(chuàng)造性地對(duì)問(wèn)題進(jìn)行擴(kuò)展設(shè)計(jì),形成具有個(gè)人風(fēng)格的獨(dú)立程序。本書(shū)習(xí)題有編程題,也有等級(jí)考試中常見(jiàn)的選擇題、填空題、讀程序?qū)懡Y(jié)果題,題型較多,并附有參考答案,對(duì)于備考二級(jí)考試的同學(xué)也有一定的幫助。
本書(shū)的第1、2章由布瑞琴修訂;第3、5、6、9章由鄭曉健修訂;第4章由周波修訂;第7、8章由高世健修訂;第10章由馮瑤修訂。鄭曉健負(fù)責(zé)全書(shū)的統(tǒng)稿。全書(shū)由李向陽(yáng)教授主審。在此,我們還必須由衷地感謝本書(shū)第1版的作者李向陽(yáng)教授、方嬌莉副教授、郭琳老師和王云澤老師,沒(méi)有他們之前所做的大量工作,我們的修訂工作不會(huì)如此順利。
建議本書(shū)授課時(shí)數(shù)為48學(xué)時(shí),基本上機(jī)練習(xí)24學(xué)時(shí),學(xué)生自主上機(jī)練習(xí)64學(xué)時(shí)左右,與本書(shū)配套的相關(guān)教學(xué)資料請(qǐng)到清華大學(xué)出版社網(wǎng)站(www.tup.com.cn)下載。由于編者水平和學(xué)識(shí)所限,書(shū)中難免存在疏漏與不足,敬請(qǐng)讀者指正。
編者
2017年3月
第1章C語(yǔ)言概述
1.1C語(yǔ)言的產(chǎn)生與發(fā)展
1.1.1程序設(shè)計(jì)語(yǔ)言簡(jiǎn)述
1.1.2C語(yǔ)言的歷史
1.2C語(yǔ)言的特點(diǎn)
1.3一個(gè)簡(jiǎn)單的C程序
1.4C語(yǔ)言程序的格式
1.5標(biāo)識(shí)符、變量與常量
1.5.1標(biāo)識(shí)符
1.5.2變量
1.5.3常量
1.6數(shù)據(jù)類(lèi)型
1.6.1整型、實(shí)型和字符型
1.6.2C程序語(yǔ)句
1.6.3格式輸出/輸入函數(shù)
1.6.4實(shí)戰(zhàn)演練
1.7小結(jié)
習(xí)題1
本章實(shí)驗(yàn)實(shí)訓(xùn)
第2章C程序的運(yùn)算符和表達(dá)式
2.1計(jì)算a/b和a%b的值
2.1.1分析與設(shè)計(jì)
2.1.2運(yùn)算符與表達(dá)式
2.2算術(shù)運(yùn)算符
2.2.1算術(shù)表達(dá)式
2.2.2數(shù)據(jù)類(lèi)型與運(yùn)算結(jié)果的關(guān)系
2.2.3實(shí)戰(zhàn)演練
2.3位運(yùn)算符
2.3.1按位與運(yùn)算
2.3.2按位或運(yùn)算
2.3.3按位異或運(yùn)算
2.3.4按位取反運(yùn)算
2.3.5左移運(yùn)算
2.3.6右移運(yùn)算
2.3.7實(shí)戰(zhàn)演練
2.4賦值運(yùn)算符及表達(dá)式
2.4.1賦值運(yùn)算符
2.4.2賦值表達(dá)式
2.4.3復(fù)合的賦值運(yùn)算符
2.5自增自減運(yùn)算符
2.5.1自增1運(yùn)算實(shí)例
2.5.2實(shí)戰(zhàn)演練
2.6其他運(yùn)算符
2.6.1逗號(hào)運(yùn)算符
2.6.2求字節(jié)數(shù)運(yùn)算符
2.7運(yùn)算符的優(yōu)先級(jí)和結(jié)合性
2.7.1C語(yǔ)言的運(yùn)算符分類(lèi)
2.7.2運(yùn)算符的優(yōu)先級(jí)
2.7.3結(jié)合方向
2.8不同類(lèi)型數(shù)據(jù)之間的轉(zhuǎn)換
2.8.1自動(dòng)類(lèi)型轉(zhuǎn)換
2.8.2強(qiáng)制類(lèi)型轉(zhuǎn)換
2.9綜合設(shè)計(jì)
2.10小結(jié)
習(xí)題2
本章實(shí)驗(yàn)實(shí)訓(xùn)
第3章選擇結(jié)構(gòu)
3.1工程師崗位面試(關(guān)系運(yùn)算符和邏輯運(yùn)算符)
3.1.1分析與設(shè)計(jì)
3.1.2關(guān)系運(yùn)算符和關(guān)系表達(dá)式
3.1.3邏輯運(yùn)算符和邏輯表達(dá)式
3.1.4條件運(yùn)算符和條件表達(dá)式
3.2判斷身材是否標(biāo)準(zhǔn)(if語(yǔ)句)
3.2.1分析與設(shè)計(jì)
3.2.2if語(yǔ)句
3.2.3if語(yǔ)句的嵌套
3.2.4實(shí)戰(zhàn)演練
3.3顧客點(diǎn)餐(switch語(yǔ)句)
3.3.1分析與設(shè)計(jì)
3.3.2switch語(yǔ)句
3.3.3使用switch語(yǔ)句的注意事項(xiàng)
3.3.4多路選擇結(jié)構(gòu)的比較
3.3.5實(shí)戰(zhàn)演練
3.3.6綜合設(shè)計(jì)(簡(jiǎn)單界面設(shè)計(jì))
3.4小結(jié)
習(xí)題3
本章實(shí)驗(yàn)實(shí)訓(xùn)
第4章循環(huán)結(jié)構(gòu)
4.1輸出100個(gè)數(shù)(for語(yǔ)句)
4.1.1分析與設(shè)計(jì)
4.1.2for循環(huán)語(yǔ)句
4.1.3for語(yǔ)句的幾點(diǎn)說(shuō)明
4.1.4實(shí)例分析與設(shè)計(jì)
4.1.5實(shí)戰(zhàn)演練
4.2統(tǒng)計(jì)英語(yǔ)成績(jī)(while語(yǔ)句)
4.2.1分析與設(shè)計(jì)
4.2.2while循環(huán)語(yǔ)句
4.2.3實(shí)例分析與設(shè)計(jì)
4.2.4實(shí)戰(zhàn)演練
4.3整數(shù)逆序輸出(dowhile語(yǔ)句)
4.3.1分析與設(shè)計(jì)
4.3.2dowhile循環(huán)語(yǔ)句
4.3.3實(shí)例分析與設(shè)計(jì)
4.3.4用while語(yǔ)句和用dowhile語(yǔ)句的比較
4.3.5實(shí)戰(zhàn)演練
4.4打印矩形(循環(huán)嵌套)
4.4.1分析與設(shè)計(jì)
4.4.2循環(huán)嵌套
4.4.3死循環(huán)
4.4.4實(shí)戰(zhàn)演練
4.5找*小數(shù)(break和continue語(yǔ)句)
4.5.1分析與設(shè)計(jì)
4.5.2break語(yǔ)句
4.5.3continue語(yǔ)句
4.5.4用for和while循環(huán)實(shí)現(xiàn)dowhile循環(huán)功能
4.5.5實(shí)戰(zhàn)演練
4.5.6綜合設(shè)計(jì)
4.6小結(jié)
習(xí)題4
本章實(shí)驗(yàn)實(shí)訓(xùn)
第5章數(shù)組
5.1廚師選魚(yú)(一維數(shù)組)
5.1.1分析與設(shè)計(jì)
5.1.2一維數(shù)組
5.1.3實(shí)戰(zhàn)演練
5.2果園里的競(jìng)賽(二維數(shù)組)
5.2.1分析與設(shè)計(jì)
5.2.2二維數(shù)組
5.2.3實(shí)戰(zhàn)演練
5.3古詩(shī)詞填空(字符數(shù)組)
5.3.1分析與設(shè)計(jì)
5.3.2字符數(shù)組
5.3.3字符串處理函數(shù)
5.3.4實(shí)戰(zhàn)演練
5.4綜合設(shè)計(jì)
5.4.1解決數(shù)據(jù)的存儲(chǔ)問(wèn)題
5.4.2找摘桃子*多的人
5.4.3計(jì)算選手的總成績(jī)
5.5小結(jié)
習(xí)題5
本章實(shí)驗(yàn)實(shí)訓(xùn)
第6章函數(shù)
6.1階乘之和(函數(shù)的定義、調(diào)用和聲明)
6.1.1分析與設(shè)計(jì)
6.1.2函數(shù)的定義和調(diào)用
6.1.3函數(shù)原型、函數(shù)聲明與函數(shù)調(diào)用
6.1.4實(shí)戰(zhàn)演練
6.2成績(jī)統(tǒng)計(jì)(函數(shù)的參數(shù)傳遞)
6.2.1分析與設(shè)計(jì)
6.2.2函數(shù)的參數(shù)傳遞
6.2.3實(shí)戰(zhàn)演練
6.3計(jì)算三角形面積(嵌套調(diào)用和遞歸調(diào)用)
6.3.1分析與設(shè)計(jì)
6.3.2嵌套調(diào)用
6.3.3遞歸調(diào)用
6.3.4實(shí)戰(zhàn)演練
6.4迎接第15億個(gè)嬰兒(變量的作用域)
6.4.1分析與設(shè)計(jì)
6.4.2局部變量和全局變量
6.4.3實(shí)戰(zhàn)演練
6.5構(gòu)造整數(shù)(變量的存儲(chǔ)類(lèi)型)
6.5.1分析與設(shè)計(jì)
6.5.2局部變量的存儲(chǔ)類(lèi)型
6.5.3全局變量的存儲(chǔ)類(lèi)型
6.5.4實(shí)戰(zhàn)演練
6.6快速計(jì)算(編譯預(yù)處理)
6.6.1分析與設(shè)計(jì)
6.6.2宏定義命令
6.6.3文件包含
6.6.4實(shí)戰(zhàn)演練
6.7綜合設(shè)計(jì)(詩(shī)詞十二宮格游戲)
6.7.1分析與設(shè)計(jì)
6.7.2完整的源程序代碼
6.8小結(jié)
習(xí)題6
本章實(shí)驗(yàn)實(shí)訓(xùn)
第7章自定義數(shù)據(jù)類(lèi)型
7.1今天是星期幾(枚舉類(lèi)型)
7.1.1分析與設(shè)計(jì)
7.1.2枚舉類(lèi)型的定義與引用
7.2模擬顯示數(shù)字時(shí)鐘(結(jié)構(gòu)體類(lèi)型)
7.2.1分析與設(shè)計(jì)
7.2.2結(jié)構(gòu)體類(lèi)型的定義與引用
7.2.3結(jié)構(gòu)體數(shù)組及其使用
7.2.4結(jié)構(gòu)體變量做參數(shù)
7.3學(xué)生成績(jī)表的制作(共用體類(lèi)型)
7.3.1分析與設(shè)計(jì)
7.3.2共用體類(lèi)型的定義與引用
7.4實(shí)戰(zhàn)演練
7.5綜合設(shè)計(jì)
7.5.1分析與設(shè)計(jì)
7.5.2完整的源程序代碼
7.6小結(jié)
習(xí)題7
本章實(shí)驗(yàn)實(shí)訓(xùn)
第8章指針
8.1用函數(shù)實(shí)現(xiàn)變量值的交換
8.1.1分析與設(shè)計(jì)
8.1.2指針的定義及運(yùn)算
8.2數(shù)組與指針
8.2.1指向一維數(shù)組的指針
8.2.2指針指向數(shù)組時(shí)的運(yùn)算
8.2.3指向二維數(shù)組的指針
8.3用指針操作字符串
8.3.1分析與設(shè)計(jì)
8.3.2使用字符數(shù)組與字符指針變量的區(qū)別
8.4指針與函數(shù)
8.4.1用指向函數(shù)的指針實(shí)現(xiàn)函數(shù)調(diào)用
8.4.2返回指針值的函數(shù)
8.5指針數(shù)組和指向指針的指針
8.5.1指針數(shù)組的概念
8.5.2指向指針的指針
8.5.3指針數(shù)組做main()函數(shù)的參數(shù)
8.6實(shí)戰(zhàn)演練——驗(yàn)證卡布列克運(yùn)算
8.7綜合設(shè)計(jì)——用指針實(shí)現(xiàn)數(shù)據(jù)的動(dòng)態(tài)管理
8.7.1分析與設(shè)計(jì)
8.7.2程序
8.7.3動(dòng)態(tài)數(shù)據(jù)管理在插入、刪除操作中的優(yōu)點(diǎn)
8.8小結(jié)
習(xí)題8
本章實(shí)驗(yàn)實(shí)訓(xùn)
第9章文件
9.1學(xué)生數(shù)據(jù)文件的創(chuàng)建與讀取
9.1.1分析與設(shè)計(jì)
9.1.2文件操作入門(mén)
9.2文件的概念
9.2.1文件的定義
9.2.2文件的分類(lèi)
9.2.3文件緩存區(qū)
9.2.4文件類(lèi)型與文件指針
9.2.5文件的操作過(guò)程
9.3文件的打開(kāi)和關(guān)閉
9.3.1文件的打開(kāi)
9.3.2文件的關(guān)閉
9.4文件的讀/寫(xiě)操作
9.4.1字符讀/寫(xiě)函數(shù)fgetc和fputc
9.4.2字符串讀/寫(xiě)函數(shù)fgets和fputs
9.4.3格式化讀/寫(xiě)函數(shù)fscanf和fprintf
9.4.4數(shù)據(jù)塊讀/寫(xiě)函數(shù)fread和fwrite
9.5文件的定位操作
9.6文件的出錯(cuò)檢測(cè)
9.7實(shí)戰(zhàn)演練
9.8綜合設(shè)計(jì)
9.8.1分析與設(shè)計(jì)
9.8.2完整的源程序代碼
9.9小結(jié)
習(xí)題9
本章實(shí)驗(yàn)實(shí)訓(xùn)
第10章Visual C++ 6.0開(kāi)發(fā)環(huán)境
10.1開(kāi)發(fā)環(huán)境概述
10.2菜單欄簡(jiǎn)介
10.3開(kāi)發(fā)環(huán)境的工具欄
10.4VC++ 6.0的主要窗口
10.5新建、編輯、編譯、連接、運(yùn)行一個(gè)C程序
10.6常見(jiàn)問(wèn)題處理
習(xí)題參考答案
附錄AASCII碼表
附錄BC語(yǔ)言中的關(guān)鍵字
附錄CC標(biāo)準(zhǔn)庫(kù)函數(shù)
參考文獻(xiàn)