C語言程序設(shè)計(jì)與實(shí)踐 第2版
定 價(jià):39 元
叢書名:高等學(xué)校計(jì)算機(jī)專業(yè)規(guī)劃教材
- 作者:凌云 謝滿德 陳志賢 吳海燕
- 出版時(shí)間:2017/2/1
- ISBN:9787111558491
- 出 版 社:機(jī)械工業(yè)出版社
- 中圖法分類:TP312C
- 頁碼:284
- 紙張:膠版紙
- 版次:2
- 開本:16開
本書從C語言的基本語法、不同規(guī)模的項(xiàng)目實(shí)訓(xùn)、程序設(shè)計(jì)大賽及編程風(fēng)格以及調(diào)試等方面介紹C程序設(shè)計(jì)的相關(guān)知識(shí)。C語言是計(jì)算機(jī)相關(guān)專業(yè)的專業(yè)基礎(chǔ)課和信息類工科專業(yè)公共基礎(chǔ)課,因不同學(xué)校在此課程上安排的學(xué)時(shí)數(shù)有所不同,故本書力求在結(jié)構(gòu)上具有較好的伸縮性。本書從結(jié)構(gòu)上分成三大部分:*部分為C語言的基礎(chǔ)語法介紹,包括第1~11章;第二部分為項(xiàng)目實(shí)訓(xùn)和常用算法指導(dǎo),包括第12章和第13章,以項(xiàng)目實(shí)訓(xùn)的形式引導(dǎo)和幫助學(xué)生解決實(shí)際問題,并對(duì)程序設(shè)計(jì)競賽中的常見算法及其算法應(yīng)用進(jìn)行了介紹;第三部分為編程風(fēng)格與程序調(diào)試介紹,旨在幫助學(xué)生形成良好的程序設(shè)計(jì)風(fēng)格,提高他們的實(shí)際動(dòng)手調(diào)試能力。
前 言C語言程序設(shè)計(jì)是一門理論與工程實(shí)踐密切相關(guān)的專業(yè)基礎(chǔ)課程,在計(jì)算機(jī)學(xué)科教學(xué)中具有十分重要的地位。大力加強(qiáng)該課程的建設(shè),提高該課程的教學(xué)質(zhì)量,有利于教學(xué)改革和教育創(chuàng)新,有利于創(chuàng)新人才的培養(yǎng)。通過本課程的學(xué)習(xí),學(xué)生應(yīng)培養(yǎng)良好的編程風(fēng)格,掌握常見的算法思路,真正提高運(yùn)用C語言編寫程序解決實(shí)際問題的綜合能力,為后續(xù)課程的實(shí)踐環(huán)節(jié)打好基礎(chǔ)。
目前國內(nèi)關(guān)于C語言的教材較多,有些教材語法知識(shí)介紹細(xì)致,較適合作為非專業(yè)的等級(jí)考試類教學(xué)用書;有些教材起點(diǎn)較高,內(nèi)容深?yuàn)W,不適于初學(xué)者。為了幫助廣大學(xué)生更好地掌握C語言編程技術(shù),我們組織C語言程序設(shè)計(jì)課程組的教師進(jìn)行了深入的討論和研究,并針對(duì)學(xué)生學(xué)科競賽和課時(shí)壓縮的背景,將該課程的建設(shè)與其他信息類專業(yè)的課程體系改革相結(jié)合,發(fā)揮我們?cè)谟?jì)算機(jī)和電子商務(wù)、信息管理等專業(yè)上的辦學(xué)優(yōu)勢(shì),編寫了《C語言程序設(shè)計(jì)與實(shí)踐》一書。本書以程序設(shè)計(jì)為主線,采用了漸進(jìn)式的體系結(jié)構(gòu),在詳細(xì)闡述程序設(shè)計(jì)基本概念、原理和方法的基礎(chǔ)上,結(jié)合實(shí)踐教學(xué)和學(xué)科競賽的實(shí)際情況,通過大量經(jīng)典實(shí)例講解和實(shí)訓(xùn),幫助學(xué)生掌握利用C語言進(jìn)行結(jié)構(gòu)化程序設(shè)計(jì)的技術(shù)和方法,提高他們的實(shí)踐動(dòng)手能力和培養(yǎng)創(chuàng)新協(xié)作精神。
相對(duì)第1版而言,第2版主要做了以下修改:
1)根據(jù)這幾年用書單位的反饋,對(duì)一些章節(jié)的安排和組織進(jìn)行了調(diào)整。
2)根據(jù)課程組近幾年實(shí)施開放視頻課程的經(jīng)驗(yàn),引入了以一個(gè)實(shí)例貫穿整個(gè)課程的授課策略。實(shí)例由簡單到復(fù)雜到優(yōu)化,循序漸進(jìn)地演化,通過實(shí)際應(yīng)用場景的不斷變化和實(shí)例功能的不斷擴(kuò)展,依次引入C語言的各個(gè)語法元素,從工程的角度闡述各個(gè)C語言概念。每個(gè)語法的引入,都通過實(shí)例的實(shí)際環(huán)境無縫連接,并采用對(duì)比等教學(xué)手段,加強(qiáng)學(xué)生對(duì)知識(shí)點(diǎn)的理解和運(yùn)用,特別是加深學(xué)生對(duì)各個(gè)知識(shí)點(diǎn)使用場合的理解。課程學(xué)完后,一個(gè)完整的程序也完成了。這種有一定代碼量的實(shí)例,能規(guī)避通常教學(xué)中由小例子導(dǎo)致的只見樹木不見森林一葉障目不見泰山的缺陷,有利于培養(yǎng)學(xué)生的工程實(shí)踐能力。
3)更新了許多教學(xué)示例,重寫了第12章和第13章。在第13章中,引入了一些有趣的游戲?qū)嵗图咏饷、?quán)限管理等工程概念,以培養(yǎng)學(xué)生的工程實(shí)踐能力。
本書分為兩部分。第一部分(第1~11章)主要介紹C語言的基礎(chǔ)語法知識(shí),這部分內(nèi)容按C語言的知識(shí)點(diǎn)循序漸進(jìn)地介紹,同時(shí)針對(duì)C語言中的重點(diǎn)和難點(diǎn),例如指針部分,精心設(shè)計(jì)了豐富的實(shí)例,用了大量的篇幅從不同方面對(duì)其進(jìn)行講解,旨在幫助讀者理解并掌握這些重點(diǎn)和難點(diǎn)。第二部分(第12~13章)為項(xiàng)目實(shí)訓(xùn)和常用算法指導(dǎo),通過項(xiàng)目開發(fā)全過程的全方位指導(dǎo),從需求分析、算法設(shè)計(jì)到程序編寫和過程調(diào)試,以項(xiàng)目實(shí)訓(xùn)的形式引導(dǎo)和幫助學(xué)生解決實(shí)際問題,提高學(xué)生解決具體問題的能力,并對(duì)程序設(shè)計(jì)競賽中常見的一些算法及其應(yīng)用進(jìn)行了介紹。在教學(xué)過程中,教師應(yīng)注重融入良好編程風(fēng)格和程序調(diào)試相關(guān)知識(shí)的介紹,本書網(wǎng)站及華章網(wǎng)站上將提供相應(yīng)的教學(xué)素材,供教師參考。
C語言程序設(shè)計(jì)是一門強(qiáng)調(diào)實(shí)踐練習(xí)的課程,因此教師對(duì)本書的教學(xué)組織可依據(jù)兩條主脈絡(luò)進(jìn)行:一條是從字、詞、數(shù)據(jù)、表達(dá)式、語句到函數(shù)、數(shù)組、指針,這也是語法范疇構(gòu)成的基本脈絡(luò);另一條則以程序功能(即以組織數(shù)據(jù)和組織程序)為基本脈絡(luò)。安排課程內(nèi)容時(shí)應(yīng)注意以下幾點(diǎn):①介紹程序設(shè)計(jì)語言語法時(shí)要突出重點(diǎn)。C語言語法比較龐雜,有些語句可以相互替代,有些語法不常使用。課程中要重點(diǎn)介紹基本的、常用的語法,不要面面俱到。②注重程序設(shè)計(jì)語言的共性。計(jì)算機(jī)的發(fā)展日新月異,大學(xué)期間不可能介紹所有的計(jì)算機(jī)語言,所以在本課程的學(xué)習(xí)過程中,教師應(yīng)該介紹計(jì)算機(jī)程序設(shè)計(jì)語言共性的東西,使學(xué)生具有自學(xué)其他程序設(shè)計(jì)語言的能力。③由于課時(shí)的限制,課程不能安排太多的時(shí)間專門講授程序設(shè)計(jì)理論。在教學(xué)過程中,教師應(yīng)以程序設(shè)計(jì)為主線,結(jié)合教材中的實(shí)例分析,將程序設(shè)計(jì)的一般方法和技術(shù)傳授給學(xué)生。
本書由淺入深地介紹了程序設(shè)計(jì)的技術(shù)與技巧,內(nèi)容全面、自成一體,對(duì)啟發(fā)、提高讀者的程序設(shè)計(jì)能力很有裨益,適合不同層次的讀者學(xué)習(xí)。本書可作為計(jì)算機(jī)類專業(yè)的本科或?qū)?平滩,也可以作為信息類或其他相關(guān)專業(yè)的選修教材,還可以作為其他一些課程的輔助讀物,如數(shù)據(jù)結(jié)構(gòu)、編譯器設(shè)計(jì)、操作系統(tǒng)、計(jì)算機(jī)圖形學(xué)、嵌入式系統(tǒng)及其他要用C語言進(jìn)行項(xiàng)目設(shè)計(jì)的課程。
本書的作者均為浙江工商大學(xué)承擔(dān)程序設(shè)計(jì)、數(shù)據(jù)結(jié)構(gòu)等課程的骨干教師。凌云負(fù)責(zé)全書的策劃、組織和指導(dǎo),謝滿德負(fù)責(zé)編寫第1、2、12、13章,并負(fù)責(zé)對(duì)全書進(jìn)行統(tǒng)稿和校對(duì),陳志賢負(fù)責(zé)編寫第6、7、8、9、10、11章,吳海燕負(fù)責(zé)編寫第3、4、5章。
本書及其配套實(shí)驗(yàn)用書《C語言程序設(shè)計(jì)與實(shí)踐實(shí)驗(yàn)指導(dǎo)》已經(jīng)入選十二五普通高等教育本科國家級(jí)規(guī)劃教材,也是浙江省精品課程高級(jí)語言程序設(shè)計(jì)的教學(xué)用書。除本書外,我們還提供了多媒體電子教案、習(xí)題與實(shí)驗(yàn)指導(dǎo),以及教學(xué)網(wǎng)站和教學(xué)資源庫等開放資源。讀者可以上網(wǎng)共享我們的網(wǎng)絡(luò)資源,網(wǎng)址為:e-lesson.zjgsu.edu.cn。
在本書的編寫過程中,我們參考了部分圖書資料和網(wǎng)站資料,在此向文獻(xiàn)的原作者表示衷心的感謝。由于作者水平有限,書中恐有不足之處,懇請(qǐng)業(yè)界同仁及讀者朋友提出寶貴意見和真誠的批評(píng)。
作者2016年11月
1983年畢業(yè)于浙江大學(xué)計(jì)算機(jī)系并任教于浙江工商大學(xué),1997年擔(dān)任計(jì)算機(jī)與信息工程學(xué)院副院長,2004年擔(dān)任計(jì)算機(jī)與信息工程學(xué)院院長;2007年獲浙江省教學(xué)名師。
浙江省計(jì)算機(jī)學(xué)會(huì)常務(wù)理事
浙江省高校計(jì)算機(jī)教學(xué)指導(dǎo)委員會(huì)副主任
浙江省計(jì)算機(jī)教育研究會(huì)副理事長
目 錄
前言
教學(xué)建議
第1章 C語言與程序設(shè)計(jì)概述 1
1.1 初見C語言程序 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ì)語言 3
1.2.4 程序設(shè)計(jì)過程 4
1.3 C語言學(xué)習(xí)與自然語言學(xué)習(xí)的關(guān)系 5
1.4 C語言的發(fā)展歷史、現(xiàn)狀與特點(diǎn) 6
1.4.1 C語言的發(fā)展歷史和現(xiàn)狀 6
1.4.2 C語言的特點(diǎn) 7
習(xí)題 7
第2章 示例驅(qū)動(dòng)的C語言語法元素 8
2.1 變量與表達(dá)式 8
2.2 分支語句 9
2.2.1 if語句 9
2.2.2 switch語句 11
2.3 循環(huán)語句 12
2.3.1 while循環(huán)語句 12
2.3.2 for循環(huán)語句 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ù)類型和表達(dá)式 20
3.1 基本語法單位 20
3.1.1 基本符號(hào) 20
3.1.2 關(guān)鍵字 20
3.1.3 標(biāo)識(shí)符 20
3.2 數(shù)據(jù)類型 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 各類數(shù)值型數(shù)據(jù)間的混合運(yùn)算 41
習(xí)題 41
第4章 輸入/輸出語句 43
4.1 putchar函數(shù) 43
4.2 printf函數(shù) 44
4.2.1 printf函數(shù)的形式 44
4.2.2 格式說明字符 45
4.3 getchar函數(shù) 51
4.4 scanf函數(shù) 51
4.4.1 一般形式 51
4.4.2 格式說明 52
4.4.3 執(zhí)行scanf函數(shù)過程中應(yīng)注意的問題 53
4.5 程序示例 55
習(xí)題 56
第5章 C語言程序結(jié)構(gòu) 58
5.1 C語句 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分支語句 62
5.4.1 第一種if語句形式 62
5.4.2 第二種if語句形式 62
5.4.3 第三種if語句形式 63
5.4.4 if語句的嵌套 65
5.4.5 程序示例 67
5.5 switch分支語句 68
5.6 while循環(huán)語句 71
5.7 do…while循環(huán)語句 73
5.8 for循環(huán)語句 75
5.9 break語句和continue語句 79
5.9.1 break語句 80
5.9.2 continue語句 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ǔ)類別和生存期 144
7.7.1 變量的存儲(chǔ)類別 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 條件編譯語句1 167
8.3.2 條件編譯語句2 168
8.3.3 條件編譯語句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 通過指針存取數(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 指針