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