C語(yǔ)言程序設(shè)計(jì)與實(shí)踐 第2版
定 價(jià):39 元
叢書(shū)名:高等學(xué)校計(jì)算機(jī)專(zhuān)業(yè)規(guī)劃教材
- 作者:凌云 謝滿德 陳志賢 吳海燕
- 出版時(shí)間:2017/2/1
- ISBN:9787111558491
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類(lèi):TP312C
- 頁(yè)碼:284
- 紙張:膠版紙
- 版次:2
- 開(kāi)本:16開(kāi)
本書(shū)從C語(yǔ)言的基本語(yǔ)法、不同規(guī)模的項(xiàng)目實(shí)訓(xùn)、程序設(shè)計(jì)大賽及編程風(fēng)格以及調(diào)試等方面介紹C程序設(shè)計(jì)的相關(guān)知識(shí)。C語(yǔ)言是計(jì)算機(jī)相關(guān)專(zhuān)業(yè)的專(zhuān)業(yè)基礎(chǔ)課和信息類(lèi)工科專(zhuān)業(yè)公共基礎(chǔ)課,因不同學(xué)校在此課程上安排的學(xué)時(shí)數(shù)有所不同,故本書(shū)力求在結(jié)構(gòu)上具有較好的伸縮性。本書(shū)從結(jié)構(gòu)上分成三大部分:*部分為C語(yǔ)言的基礎(chǔ)語(yǔ)法介紹,包括第1~11章;第二部分為項(xiàng)目實(shí)訓(xùn)和常用算法指導(dǎo),包括第12章和第13章,以項(xiàng)目實(shí)訓(xùn)的形式引導(dǎo)和幫助學(xué)生解決實(shí)際問(wèn)題,并對(duì)程序設(shè)計(jì)競(jìng)賽中的常見(jiàn)算法及其算法應(yīng)用進(jìn)行了介紹;第三部分為編程風(fēng)格與程序調(diào)試介紹,旨在幫助學(xué)生形成良好的程序設(shè)計(jì)風(fēng)格,提高他們的實(shí)際動(dòng)手調(diào)試能力。
前 言C語(yǔ)言程序設(shè)計(jì)是一門(mén)理論與工程實(shí)踐密切相關(guān)的專(zhuān)業(yè)基礎(chǔ)課程,在計(jì)算機(jī)學(xué)科教學(xué)中具有十分重要的地位。大力加強(qiáng)該課程的建設(shè),提高該課程的教學(xué)質(zhì)量,有利于教學(xué)改革和教育創(chuàng)新,有利于創(chuàng)新人才的培養(yǎng)。通過(guò)本課程的學(xué)習(xí),學(xué)生應(yīng)培養(yǎng)良好的編程風(fēng)格,掌握常見(jiàn)的算法思路,真正提高運(yùn)用C語(yǔ)言編寫(xiě)程序解決實(shí)際問(wèn)題的綜合能力,為后續(xù)課程的實(shí)踐環(huán)節(jié)打好基礎(chǔ)。
目前國(guó)內(nèi)關(guān)于C語(yǔ)言的教材較多,有些教材語(yǔ)法知識(shí)介紹細(xì)致,較適合作為非專(zhuān)業(yè)的等級(jí)考試類(lèi)教學(xué)用書(shū);有些教材起點(diǎn)較高,內(nèi)容深?yuàn)W,不適于初學(xué)者。為了幫助廣大學(xué)生更好地掌握C語(yǔ)言編程技術(shù),我們組織C語(yǔ)言程序設(shè)計(jì)課程組的教師進(jìn)行了深入的討論和研究,并針對(duì)學(xué)生學(xué)科競(jìng)賽和課時(shí)壓縮的背景,將該課程的建設(shè)與其他信息類(lèi)專(zhuān)業(yè)的課程體系改革相結(jié)合,發(fā)揮我們?cè)谟?jì)算機(jī)和電子商務(wù)、信息管理等專(zhuān)業(yè)上的辦學(xué)優(yōu)勢(shì),編寫(xiě)了《C語(yǔ)言程序設(shè)計(jì)與實(shí)踐》一書(shū)。本書(shū)以程序設(shè)計(jì)為主線,采用了漸進(jìn)式的體系結(jié)構(gòu),在詳細(xì)闡述程序設(shè)計(jì)基本概念、原理和方法的基礎(chǔ)上,結(jié)合實(shí)踐教學(xué)和學(xué)科競(jìng)賽的實(shí)際情況,通過(guò)大量經(jīng)典實(shí)例講解和實(shí)訓(xùn),幫助學(xué)生掌握利用C語(yǔ)言進(jìn)行結(jié)構(gòu)化程序設(shè)計(jì)的技術(shù)和方法,提高他們的實(shí)踐動(dòng)手能力和培養(yǎng)創(chuàng)新協(xié)作精神。
相對(duì)第1版而言,第2版主要做了以下修改:
1)根據(jù)這幾年用書(shū)單位的反饋,對(duì)一些章節(jié)的安排和組織進(jìn)行了調(diào)整。
2)根據(jù)課程組近幾年實(shí)施開(kāi)放視頻課程的經(jīng)驗(yàn),引入了以一個(gè)實(shí)例貫穿整個(gè)課程的授課策略。實(shí)例由簡(jiǎn)單到復(fù)雜到優(yōu)化,循序漸進(jìn)地演化,通過(guò)實(shí)際應(yīng)用場(chǎng)景的不斷變化和實(shí)例功能的不斷擴(kuò)展,依次引入C語(yǔ)言的各個(gè)語(yǔ)法元素,從工程的角度闡述各個(gè)C語(yǔ)言概念。每個(gè)語(yǔ)法的引入,都通過(guò)實(shí)例的實(shí)際環(huán)境無(wú)縫連接,并采用對(duì)比等教學(xué)手段,加強(qiáng)學(xué)生對(duì)知識(shí)點(diǎn)的理解和運(yùn)用,特別是加深學(xué)生對(duì)各個(gè)知識(shí)點(diǎn)使用場(chǎng)合的理解。課程學(xué)完后,一個(gè)完整的程序也完成了。這種有一定代碼量的實(shí)例,能規(guī)避通常教學(xué)中由小例子導(dǎo)致的只見(jiàn)樹(shù)木不見(jiàn)森林一葉障目不見(jiàn)泰山的缺陷,有利于培養(yǎng)學(xué)生的工程實(shí)踐能力。
3)更新了許多教學(xué)示例,重寫(xiě)了第12章和第13章。在第13章中,引入了一些有趣的游戲?qū)嵗图咏饷、?quán)限管理等工程概念,以培養(yǎng)學(xué)生的工程實(shí)踐能力。
本書(shū)分為兩部分。第一部分(第1~11章)主要介紹C語(yǔ)言的基礎(chǔ)語(yǔ)法知識(shí),這部分內(nèi)容按C語(yǔ)言的知識(shí)點(diǎn)循序漸進(jìn)地介紹,同時(shí)針對(duì)C語(yǔ)言中的重點(diǎn)和難點(diǎn),例如指針部分,精心設(shè)計(jì)了豐富的實(shí)例,用了大量的篇幅從不同方面對(duì)其進(jìn)行講解,旨在幫助讀者理解并掌握這些重點(diǎn)和難點(diǎn)。第二部分(第12~13章)為項(xiàng)目實(shí)訓(xùn)和常用算法指導(dǎo),通過(guò)項(xiàng)目開(kāi)發(fā)全過(guò)程的全方位指導(dǎo),從需求分析、算法設(shè)計(jì)到程序編寫(xiě)和過(guò)程調(diào)試,以項(xiàng)目實(shí)訓(xùn)的形式引導(dǎo)和幫助學(xué)生解決實(shí)際問(wèn)題,提高學(xué)生解決具體問(wèn)題的能力,并對(duì)程序設(shè)計(jì)競(jìng)賽中常見(jiàn)的一些算法及其應(yīng)用進(jìn)行了介紹。在教學(xué)過(guò)程中,教師應(yīng)注重融入良好編程風(fēng)格和程序調(diào)試相關(guān)知識(shí)的介紹,本書(shū)網(wǎng)站及華章網(wǎng)站上將提供相應(yīng)的教學(xué)素材,供教師參考。
C語(yǔ)言程序設(shè)計(jì)是一門(mén)強(qiáng)調(diào)實(shí)踐練習(xí)的課程,因此教師對(duì)本書(shū)的教學(xué)組織可依據(jù)兩條主脈絡(luò)進(jìn)行:一條是從字、詞、數(shù)據(jù)、表達(dá)式、語(yǔ)句到函數(shù)、數(shù)組、指針,這也是語(yǔ)法范疇構(gòu)成的基本脈絡(luò);另一條則以程序功能(即以組織數(shù)據(jù)和組織程序)為基本脈絡(luò)。安排課程內(nèi)容時(shí)應(yīng)注意以下幾點(diǎn):①介紹程序設(shè)計(jì)語(yǔ)言語(yǔ)法時(shí)要突出重點(diǎn)。C語(yǔ)言語(yǔ)法比較龐雜,有些語(yǔ)句可以相互替代,有些語(yǔ)法不常使用。課程中要重點(diǎn)介紹基本的、常用的語(yǔ)法,不要面面俱到。②注重程序設(shè)計(jì)語(yǔ)言的共性。計(jì)算機(jī)的發(fā)展日新月異,大學(xué)期間不可能介紹所有的計(jì)算機(jī)語(yǔ)言,所以在本課程的學(xué)習(xí)過(guò)程中,教師應(yīng)該介紹計(jì)算機(jī)程序設(shè)計(jì)語(yǔ)言共性的東西,使學(xué)生具有自學(xué)其他程序設(shè)計(jì)語(yǔ)言的能力。③由于課時(shí)的限制,課程不能安排太多的時(shí)間專(zhuān)門(mén)講授程序設(shè)計(jì)理論。在教學(xué)過(guò)程中,教師應(yīng)以程序設(shè)計(jì)為主線,結(jié)合教材中的實(shí)例分析,將程序設(shè)計(jì)的一般方法和技術(shù)傳授給學(xué)生。
本書(shū)由淺入深地介紹了程序設(shè)計(jì)的技術(shù)與技巧,內(nèi)容全面、自成一體,對(duì)啟發(fā)、提高讀者的程序設(shè)計(jì)能力很有裨益,適合不同層次的讀者學(xué)習(xí)。本書(shū)可作為計(jì)算機(jī)類(lèi)專(zhuān)業(yè)的本科或?qū)?平滩,也可以作為信息?lèi)或其他相關(guān)專(zhuān)業(yè)的選修教材,還可以作為其他一些課程的輔助讀物,如數(shù)據(jù)結(jié)構(gòu)、編譯器設(shè)計(jì)、操作系統(tǒng)、計(jì)算機(jī)圖形學(xué)、嵌入式系統(tǒng)及其他要用C語(yǔ)言進(jìn)行項(xiàng)目設(shè)計(jì)的課程。
本書(shū)的作者均為浙江工商大學(xué)承擔(dān)程序設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)等課程的骨干教師。凌云負(fù)責(zé)全書(shū)的策劃、組織和指導(dǎo),謝滿德負(fù)責(zé)編寫(xiě)第1、2、12、13章,并負(fù)責(zé)對(duì)全書(shū)進(jìn)行統(tǒng)稿和校對(duì),陳志賢負(fù)責(zé)編寫(xiě)第6、7、8、9、10、11章,吳海燕負(fù)責(zé)編寫(xiě)第3、4、5章。
本書(shū)及其配套實(shí)驗(yàn)用書(shū)《C語(yǔ)言程序設(shè)計(jì)與實(shí)踐實(shí)驗(yàn)指導(dǎo)》已經(jīng)入選十二五普通高等教育本科國(guó)家級(jí)規(guī)劃教材,也是浙江省精品課程高級(jí)語(yǔ)言程序設(shè)計(jì)的教學(xué)用書(shū)。除本書(shū)外,我們還提供了多媒體電子教案、習(xí)題與實(shí)驗(yàn)指導(dǎo),以及教學(xué)網(wǎng)站和教學(xué)資源庫(kù)等開(kāi)放資源。讀者可以上網(wǎng)共享我們的網(wǎng)絡(luò)資源,網(wǎng)址為:e-lesson.zjgsu.edu.cn。
在本書(shū)的編寫(xiě)過(guò)程中,我們參考了部分圖書(shū)資料和網(wǎng)站資料,在此向文獻(xiàn)的原作者表示衷心的感謝。由于作者水平有限,書(shū)中恐有不足之處,懇請(qǐng)業(yè)界同仁及讀者朋友提出寶貴意見(jiàn)和真誠(chéng)的批評(píng)。
作者2016年11月
1983年畢業(yè)于浙江大學(xué)計(jì)算機(jī)系并任教于浙江工商大學(xué),1997年擔(dān)任計(jì)算機(jī)與信息工程學(xué)院副院長(zhǎng),2004年擔(dān)任計(jì)算機(jī)與信息工程學(xué)院院長(zhǎng);2007年獲浙江省教學(xué)名師。
浙江省計(jì)算機(jī)學(xué)會(huì)常務(wù)理事
浙江省高校計(jì)算機(jī)教學(xué)指導(dǎo)委員會(huì)副主任
浙江省計(jì)算機(jī)教育研究會(huì)副理事長(zhǎng)
目 錄
前言
教學(xué)建議
第1章 C語(yǔ)言與程序設(shè)計(jì)概述 1
1.1 初見(jiàn)C語(yǔ)言程序 1
1.2 計(jì)算機(jī)與程序設(shè)計(jì) 2
1.2.1 指令與程序 2
1.2.2 程序與程序設(shè)計(jì) 3
1.2.3 程序設(shè)計(jì)和程序設(shè)計(jì)語(yǔ)言 3
1.2.4 程序設(shè)計(jì)過(guò)程 4
1.3 C語(yǔ)言學(xué)習(xí)與自然語(yǔ)言學(xué)習(xí)的關(guān)系 5
1.4 C語(yǔ)言的發(fā)展歷史、現(xiàn)狀與特點(diǎn) 6
1.4.1 C語(yǔ)言的發(fā)展歷史和現(xiàn)狀 6
1.4.2 C語(yǔ)言的特點(diǎn) 7
習(xí)題 7
第2章 示例驅(qū)動(dòng)的C語(yǔ)言語(yǔ)法元素 8
2.1 變量與表達(dá)式 8
2.2 分支語(yǔ)句 9
2.2.1 if語(yǔ)句 9
2.2.2 switch語(yǔ)句 11
2.3 循環(huán)語(yǔ)句 12
2.3.1 while循環(huán)語(yǔ)句 12
2.3.2 for循環(huán)語(yǔ)句 12
2.4 符號(hào)常量 13
2.5 輸入/輸出 14
2.6 數(shù)組 15
2.7 函數(shù) 15
2.8 算法 17
2.8.1 算法概念 17
2.8.2 流程圖與算法描述 18
習(xí)題 19
第3章 基本數(shù)據(jù)類(lèi)型和表達(dá)式 20
3.1 基本語(yǔ)法單位 20
3.1.1 基本符號(hào) 20
3.1.2 關(guān)鍵字 20
3.1.3 標(biāo)識(shí)符 20
3.2 數(shù)據(jù)類(lèi)型 21
3.3 常量與變量 22
3.3.1 常量 22
3.3.2 變量 25
3.3.3 變量的初始化 27
3.4 表達(dá)式和運(yùn)算符 28
3.4.1 算術(shù)運(yùn)算符 28
3.4.2 賦值運(yùn)算符 30
3.4.3 關(guān)系運(yùn)算符 31
3.4.4 邏輯運(yùn)算符 33
3.4.5 位運(yùn)算符 35
3.4.6 逗號(hào)運(yùn)算符 38
3.4.7 條件運(yùn)算符 39
3.4.8 運(yùn)算符的優(yōu)先級(jí)和結(jié)合性 39
3.5 各類(lèi)數(shù)值型數(shù)據(jù)間的混合運(yùn)算 41
習(xí)題 41
第4章 輸入/輸出語(yǔ)句 43
4.1 putchar函數(shù) 43
4.2 printf函數(shù) 44
4.2.1 printf函數(shù)的形式 44
4.2.2 格式說(shuō)明字符 45
4.3 getchar函數(shù) 51
4.4 scanf函數(shù) 51
4.4.1 一般形式 51
4.4.2 格式說(shuō)明 52
4.4.3 執(zhí)行scanf函數(shù)過(guò)程中應(yīng)注意的問(wèn)題 53
4.5 程序示例 55
習(xí)題 56
第5章 C語(yǔ)言程序結(jié)構(gòu) 58
5.1 C語(yǔ)句 58
5.2 程序設(shè)計(jì)基礎(chǔ) 59
5.3 結(jié)構(gòu)化程序設(shè)計(jì)的三種基本結(jié)構(gòu) 60
5.3.1 順序結(jié)構(gòu) 60
5.3.2 選擇結(jié)構(gòu) 60
5.3.3 循環(huán)結(jié)構(gòu) 61
5.4 if分支語(yǔ)句 62
5.4.1 第一種if語(yǔ)句形式 62
5.4.2 第二種if語(yǔ)句形式 62
5.4.3 第三種if語(yǔ)句形式 63
5.4.4 if語(yǔ)句的嵌套 65
5.4.5 程序示例 67
5.5 switch分支語(yǔ)句 68
5.6 while循環(huán)語(yǔ)句 71
5.7 do…while循環(huán)語(yǔ)句 73
5.8 for循環(huán)語(yǔ)句 75
5.9 break語(yǔ)句和continue語(yǔ)句 79
5.9.1 break語(yǔ)句 80
5.9.2 continue語(yǔ)句 80
5.10 多重循環(huán)的嵌套 81
5.11 程序示例 83
習(xí)題 85
第6章 數(shù)組 88
6.1 一維數(shù)組 88
6.1.1 一維數(shù)組的定義 88
6.1.2 一維數(shù)組元素的引用 89
6.1.3 一維數(shù)組元素的初始化 89
6.2 二維數(shù)組 96
6.2.1 雙下標(biāo)變量 97
6.2.2 二維數(shù)組及其定義 97
6.2.3 二維數(shù)組的初始化 98
6.2.4 二維數(shù)組應(yīng)用示例 99
6.3 綜合應(yīng)用示例 100
6.4 字符數(shù)組 103
6.4.1 字符串和字符串結(jié)束標(biāo)志 105
6.4.2 字符數(shù)組的輸入/輸出 105
6.4.3 字符串函數(shù) 106
6.4.4 二維的字符數(shù)組 110
6.4.5 字符數(shù)組應(yīng)用示例 111
習(xí)題 116
第7章 函數(shù) 118
7.1 函數(shù)的定義 119
7.2 函數(shù)的一般調(diào)用 121
7.2.1 函數(shù)調(diào)用的形式 121
7.2.2 形式參數(shù)和實(shí)際參數(shù) 121
7.2.3 函數(shù)的返回值 124
7.2.4 函數(shù)調(diào)用的方式 125
7.2.5 主調(diào)函數(shù)和被調(diào)函數(shù)的相對(duì)位置關(guān)系 126
7.2.6 函數(shù)調(diào)用時(shí)值的單向傳遞性 128
7.2.7 函數(shù)調(diào)用示例 128
7.3 函數(shù)的嵌套調(diào)用 130
7.4 遞歸調(diào)用 133
7.4.1 函數(shù)的遞歸調(diào)用 133
7.4.2 遞歸調(diào)用應(yīng)用示例 134
7.5 用數(shù)組作為函數(shù)參數(shù) 137
7.5.1 用數(shù)組元素作為函數(shù)實(shí)參 137
7.5.2 用數(shù)組名作為函數(shù)參數(shù) 138
7.5.3 用多維數(shù)組作為函數(shù)參數(shù) 139
7.6 變量的作用域局部變量和全局變量 140
7.6.1 局部變量 140
7.6.2 全局變量 142
7.7 變量的存儲(chǔ)類(lèi)別和生存期 144
7.7.1 變量的存儲(chǔ)類(lèi)別 144
7.7.2 動(dòng)態(tài)變量 144
7.7.3 靜態(tài)變量 148
7.7.4 外部變量 149
7.8 內(nèi)部函數(shù)和外部函數(shù) 153
7.8.1 內(nèi)部函數(shù) 153
7.8.2 外部函數(shù) 153
習(xí)題 154
第8章 編譯預(yù)處理 159
8.1 宏定義 159
8.1.1 不帶參數(shù)的宏定義 159
8.1.2 帶參數(shù)的宏定義 161
8.2 文件包含 165
8.3 條件編譯 167
8.3.1 條件編譯語(yǔ)句1 167
8.3.2 條件編譯語(yǔ)句2 168
8.3.3 條件編譯語(yǔ)句3 169
習(xí)題 170
第9章 指針 175
9.1 地址和指針的概念 175
9.2 指針變量和地址運(yùn)算符 175
9.2.1 指針變量的定義 175
9.2.2 指針變量的使用 176
9.3 指針和數(shù)組 177
9.3.1 通過(guò)指針存取數(shù)組元素 177
9.3.2 字符串和指針 179
9.4 指針和函數(shù) 180
9.4.1 用指針作為函數(shù)的參數(shù) 180
9.4.2 用指針作為函數(shù)的返回值 182
9.4.3 指向函數(shù)的指針 184
9.5 多級(jí)指針 187
9.5.1 多級(jí)指針的概念和使用 187
9.5.2 多級(jí)指針和多級(jí)數(shù)組 188
9.5.3 命令行參數(shù) 190
9.6 指針和動(dòng)態(tài)存儲(chǔ)管理 191
9.6.1 概述 191
9.6.2 malloc函數(shù)和free函數(shù) 192
9.6.3 動(dòng)態(tài)存儲(chǔ)管理的應(yīng)用 192
9.7 指針