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