定 價:39 元
叢書名:高等學校計算機專業(yè)規(guī)劃教材
- 作者:凌云 謝滿德 陳志賢 吳海燕
- 出版時間:2017/2/1
- ISBN:9787111558491
- 出 版 社:機械工業(yè)出版社
- 中圖法分類:TP312C
- 頁碼:284
- 紙張:膠版紙
- 版次:2
- 開本:16開
本書從C語言的基本語法、不同規(guī)模的項目實訓、程序設計大賽及編程風格以及調試等方面介紹C程序設計的相關知識。C語言是計算機相關專業(yè)的專業(yè)基礎課和信息類工科專業(yè)公共基礎課,因不同學校在此課程上安排的學時數有所不同,故本書力求在結構上具有較好的伸縮性。本書從結構上分成三大部分:*部分為C語言的基礎語法介紹,包括第1~11章;第二部分為項目實訓和常用算法指導,包括第12章和第13章,以項目實訓的形式引導和幫助學生解決實際問題,并對程序設計競賽中的常見算法及其算法應用進行了介紹;第三部分為編程風格與程序調試介紹,旨在幫助學生形成良好的程序設計風格,提高他們的實際動手調試能力。
前 言C語言程序設計是一門理論與工程實踐密切相關的專業(yè)基礎課程,在計算機學科教學中具有十分重要的地位。大力加強該課程的建設,提高該課程的教學質量,有利于教學改革和教育創(chuàng)新,有利于創(chuàng)新人才的培養(yǎng)。通過本課程的學習,學生應培養(yǎng)良好的編程風格,掌握常見的算法思路,真正提高運用C語言編寫程序解決實際問題的綜合能力,為后續(xù)課程的實踐環(huán)節(jié)打好基礎。
目前國內關于C語言的教材較多,有些教材語法知識介紹細致,較適合作為非專業(yè)的等級考試類教學用書;有些教材起點較高,內容深奧,不適于初學者。為了幫助廣大學生更好地掌握C語言編程技術,我們組織C語言程序設計課程組的教師進行了深入的討論和研究,并針對學生學科競賽和課時壓縮的背景,將該課程的建設與其他信息類專業(yè)的課程體系改革相結合,發(fā)揮我們在計算機和電子商務、信息管理等專業(yè)上的辦學優(yōu)勢,編寫了《C語言程序設計與實踐》一書。本書以程序設計為主線,采用了漸進式的體系結構,在詳細闡述程序設計基本概念、原理和方法的基礎上,結合實踐教學和學科競賽的實際情況,通過大量經典實例講解和實訓,幫助學生掌握利用C語言進行結構化程序設計的技術和方法,提高他們的實踐動手能力和培養(yǎng)創(chuàng)新協(xié)作精神。
相對第1版而言,第2版主要做了以下修改:
1)根據這幾年用書單位的反饋,對一些章節(jié)的安排和組織進行了調整。
2)根據課程組近幾年實施開放視頻課程的經驗,引入了以一個實例貫穿整個課程的授課策略。實例由簡單到復雜到優(yōu)化,循序漸進地演化,通過實際應用場景的不斷變化和實例功能的不斷擴展,依次引入C語言的各個語法元素,從工程的角度闡述各個C語言概念。每個語法的引入,都通過實例的實際環(huán)境無縫連接,并采用對比等教學手段,加強學生對知識點的理解和運用,特別是加深學生對各個知識點使用場合的理解。課程學完后,一個完整的程序也完成了。這種有一定代碼量的實例,能規(guī)避通常教學中由小例子導致的只見樹木不見森林一葉障目不見泰山的缺陷,有利于培養(yǎng)學生的工程實踐能力。
3)更新了許多教學示例,重寫了第12章和第13章。在第13章中,引入了一些有趣的游戲實例和加解密、權限管理等工程概念,以培養(yǎng)學生的工程實踐能力。
本書分為兩部分。第一部分(第1~11章)主要介紹C語言的基礎語法知識,這部分內容按C語言的知識點循序漸進地介紹,同時針對C語言中的重點和難點,例如指針部分,精心設計了豐富的實例,用了大量的篇幅從不同方面對其進行講解,旨在幫助讀者理解并掌握這些重點和難點。第二部分(第12~13章)為項目實訓和常用算法指導,通過項目開發(fā)全過程的全方位指導,從需求分析、算法設計到程序編寫和過程調試,以項目實訓的形式引導和幫助學生解決實際問題,提高學生解決具體問題的能力,并對程序設計競賽中常見的一些算法及其應用進行了介紹。在教學過程中,教師應注重融入良好編程風格和程序調試相關知識的介紹,本書網站及華章網站上將提供相應的教學素材,供教師參考。
C語言程序設計是一門強調實踐練習的課程,因此教師對本書的教學組織可依據兩條主脈絡進行:一條是從字、詞、數據、表達式、語句到函數、數組、指針,這也是語法范疇構成的基本脈絡;另一條則以程序功能(即以組織數據和組織程序)為基本脈絡。安排課程內容時應注意以下幾點:①介紹程序設計語言語法時要突出重點。C語言語法比較龐雜,有些語句可以相互替代,有些語法不常使用。課程中要重點介紹基本的、常用的語法,不要面面俱到。②注重程序設計語言的共性。計算機的發(fā)展日新月異,大學期間不可能介紹所有的計算機語言,所以在本課程的學習過程中,教師應該介紹計算機程序設計語言共性的東西,使學生具有自學其他程序設計語言的能力。③由于課時的限制,課程不能安排太多的時間專門講授程序設計理論。在教學過程中,教師應以程序設計為主線,結合教材中的實例分析,將程序設計的一般方法和技術傳授給學生。
本書由淺入深地介紹了程序設計的技術與技巧,內容全面、自成一體,對啟發(fā)、提高讀者的程序設計能力很有裨益,適合不同層次的讀者學習。本書可作為計算機類專業(yè)的本科或?平滩模部梢宰鳛樾畔㈩惢蚱渌嚓P專業(yè)的選修教材,還可以作為其他一些課程的輔助讀物,如數據結構、編譯器設計、操作系統(tǒng)、計算機圖形學、嵌入式系統(tǒng)及其他要用C語言進行項目設計的課程。
本書的作者均為浙江工商大學承擔程序設計、數據結構等課程的骨干教師。凌云負責全書的策劃、組織和指導,謝滿德負責編寫第1、2、12、13章,并負責對全書進行統(tǒng)稿和校對,陳志賢負責編寫第6、7、8、9、10、11章,吳海燕負責編寫第3、4、5章。
本書及其配套實驗用書《C語言程序設計與實踐實驗指導》已經入選十二五普通高等教育本科國家級規(guī)劃教材,也是浙江省精品課程高級語言程序設計的教學用書。除本書外,我們還提供了多媒體電子教案、習題與實驗指導,以及教學網站和教學資源庫等開放資源。讀者可以上網共享我們的網絡資源,網址為:e-lesson.zjgsu.edu.cn。
在本書的編寫過程中,我們參考了部分圖書資料和網站資料,在此向文獻的原作者表示衷心的感謝。由于作者水平有限,書中恐有不足之處,懇請業(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ā)展歷史、現狀與特點 6
1.4.1 C語言的發(fā)展歷史和現狀 6
1.4.2 C語言的特點 7
習題 7
第2章 示例驅動的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 數組 15
2.7 函數 15
2.8 算法 17
2.8.1 算法概念 17
2.8.2 流程圖與算法描述 18
習題 19
第3章 基本數據類型和表達式 20
3.1 基本語法單位 20
3.1.1 基本符號 20
3.1.2 關鍵字 20
3.1.3 標識符 20
3.2 數據類型 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)先級和結合性 39
3.5 各類數值型數據間的混合運算 41
習題 41
第4章 輸入/輸出語句 43
4.1 putchar函數 43
4.2 printf函數 44
4.2.1 printf函數的形式 44
4.2.2 格式說明字符 45
4.3 getchar函數 51
4.4 scanf函數 51
4.4.1 一般形式 51
4.4.2 格式說明 52
4.4.3 執(zhí)行scanf函數過程中應注意的問題 53
4.5 程序示例 55
習題 56
第5章 C語言程序結構 58
5.1 C語句 58
5.2 程序設計基礎 59
5.3 結構化程序設計的三種基本結構 60
5.3.1 順序結構 60
5.3.2 選擇結構 60
5.3.3 循環(huán)結構 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章 數組 88
6.1 一維數組 88
6.1.1 一維數組的定義 88
6.1.2 一維數組元素的引用 89
6.1.3 一維數組元素的初始化 89
6.2 二維數組 96
6.2.1 雙下標變量 97
6.2.2 二維數組及其定義 97
6.2.3 二維數組的初始化 98
6.2.4 二維數組應用示例 99
6.3 綜合應用示例 100
6.4 字符數組 103
6.4.1 字符串和字符串結束標志 105
6.4.2 字符數組的輸入/輸出 105
6.4.3 字符串函數 106
6.4.4 二維的字符數組 110
6.4.5 字符數組應用示例 111
習題 116
第7章 函數 118
7.1 函數的定義 119
7.2 函數的一般調用 121
7.2.1 函數調用的形式 121
7.2.2 形式參數和實際參數 121
7.2.3 函數的返回值 124
7.2.4 函數調用的方式 125
7.2.5 主調函數和被調函數的相對位置關系 126
7.2.6 函數調用時值的單向傳遞性 128
7.2.7 函數調用示例 128
7.3 函數的嵌套調用 130
7.4 遞歸調用 133
7.4.1 函數的遞歸調用 133
7.4.2 遞歸調用應用示例 134
7.5 用數組作為函數參數 137
7.5.1 用數組元素作為函數實參 137
7.5.2 用數組名作為函數參數 138
7.5.3 用多維數組作為函數參數 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 內部函數和外部函數 153
7.8.1 內部函數 153
7.8.2 外部函數 153
習題 154
第8章 編譯預處理 159
8.1 宏定義 159
8.1.1 不帶參數的宏定義 159
8.1.2 帶參數的宏定義 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 指針和數組 177
9.3.1 通過指針存取數組元素 177
9.3.2 字符串和指針 179
9.4 指針和函數 180
9.4.1 用指針作為函數的參數 180
9.4.2 用指針作為函數的返回值 182
9.4.3 指向函數的指針 184
9.5 多級指針 187
9.5.1 多級指針的概念和使用 187
9.5.2 多級指針和多級數組 188
9.5.3 命令行參數 190
9.6 指針和動態(tài)存儲管理 191
9.6.1 概述 191
9.6.2 malloc函數和free函數 192
9.6.3 動態(tài)存儲管理的應用 192
9.7 指針