21世紀(jì)高等學(xué)校規(guī)劃教材·計算機(jī)科學(xué)與技術(shù):C程序設(shè)計快速進(jìn)階大學(xué)教程
定 價:31 元
- 作者:蔣光遠(yuǎn) ,田琳琳 編
- 出版時間:2010/9/1
- ISBN:9787302231196
- 出 版 社:清華大學(xué)出版社
- 中圖法分類:TP312C
- 頁碼:307
- 紙張:膠版紙
- 版次:1
- 開本:16開
《C程序設(shè)計快速進(jìn)階大學(xué)教程》按照快速了解、詳細(xì)解讀、深入研討的順序展開,目的是使讀者盡快領(lǐng)略C語言的全貌,進(jìn)而產(chǎn)生強(qiáng)烈的興趣和深人探討的愿望。依據(jù)此思想《C程序設(shè)計快速進(jìn)階大學(xué)教程》分為三篇:第一篇感知篇,通過一個簡單任務(wù)驅(qū)動,讓讀者在很短的時問內(nèi)了解C語言的主要知識點及C程序所能完成的任務(wù);第二篇詳解篇,逐步展開對每個知識點的詳細(xì)研究,按照理解概念、語法規(guī)則、使用方式進(jìn)行深入探討,以掌握計算機(jī)語言的基本要素;第三篇進(jìn)階篇,分析、設(shè)計、實現(xiàn)一些有一定難度的案例,深層次運用各個知識點,進(jìn)而培養(yǎng)讀者結(jié)構(gòu)化程序設(shè)計的能力!禖程序設(shè)計快速進(jìn)階大學(xué)教程》組織方式完全符合人類對語言的學(xué)習(xí)過程,即模仿、理解、應(yīng)用,也符合軟件工程迭代式開發(fā)過程的思想,對讀者從事軟件研發(fā)大有裨益。
從模仿到理解,從感性到理性,遵循人類自然語言的學(xué)習(xí)過程。 案例貫穿,以任務(wù)需求驅(qū)動展開,講解各知識點怎樣應(yīng)用到任務(wù)中去。 深入淺出,把復(fù)雜的問題簡單化,有助于讀者理解。
從事了多年的C語言教學(xué)工作,怎樣提高教學(xué)水平一直是縈繞筆者腦海的問題。總結(jié)學(xué)生學(xué)習(xí)中的問題,大致有以下三點: 第一,學(xué)習(xí)過程的初期對計算機(jī)語言沒有整體的認(rèn)識,不了解C程序所能完成的功能,以及各知識點所扮演的角色,學(xué)習(xí)時沒有明確的目的性; 第二,C語言本身知識點繁多、晦澀難懂,對于初次接觸計算機(jī)語言的讀者來說難于掌握,久而久之,產(chǎn)生畏難情緒,因而喪失了學(xué)習(xí)的興趣; 第三,只能初步了解各知識點語法規(guī)則,不能夠融會貫通,并綜合運用,更談不上程序設(shè)計。
C語言具備一般語言的特點,筆者認(rèn)為計算機(jī)語言的學(xué)習(xí)能不能借鑒人類自然語言的學(xué)習(xí)方式?人類對自然語言的學(xué)習(xí)過程,總是從模仿開始,這個階段只知道這么說,并不理解其語法規(guī)則; 然后在生活、學(xué)習(xí)當(dāng)中逐步懂得語言的結(jié)構(gòu)及語法; 最后,通過閱讀、分析文章和撰寫文件才能夠熟練地應(yīng)用語言。
C語言的學(xué)習(xí)是為了軟件的研發(fā),回顧多年的軟件研發(fā)經(jīng)驗,其中最困難的當(dāng)然是了解用戶的需求。如果不熟悉問題領(lǐng)域的需求,學(xué)習(xí)起來很困難。如何解決呢?我們通常采用迭代式的軟件開發(fā)方法,因為開始很難詳知開發(fā)問題領(lǐng)域的所有問題,可以選一條主線完成一個基本結(jié)構(gòu),然后經(jīng)過多次迭代,每次軟件有一定增量,使得每次的迭代產(chǎn)品都越來越接近目標(biāo)系統(tǒng)。
于是,筆者萌生這樣一個想法,C語言對于初學(xué)來說,知識點繁多且難于理解,想一次完全掌握對于大多數(shù)讀者來說相當(dāng)困難。C語言的學(xué)習(xí)與人類學(xué)習(xí)自然語言以及軟件開發(fā)過程中理解問題域的知識非常相似,就可以把人類對自然語言的學(xué)習(xí)過程和軟件開發(fā)過程的迭代方法應(yīng)用到C語言學(xué)習(xí)當(dāng)中來,我們稱之為“三次迭代法”。
三次迭代法采用三個周期,每個周期有一定的增量,遞增地學(xué)習(xí)各個知識點。具體方法如下: 感知部分(第一次迭代)讓讀者在很短的時間內(nèi)親身感受到C語言的全貌,建立起對C語言的興趣,分析典型樣例,并給出相似的模仿習(xí)題; 詳解部分(第二次迭代)
對C語言逐步展開介紹,對每個知識點按照理解、語法規(guī)則、使用方式的次序做深入探討; 進(jìn)階部分(第三次迭代)綜合運用各個知識點分析、設(shè)計、實現(xiàn)一些有一定難度的案例,不但再次深層次運用各個知識點,而且培養(yǎng)了程序設(shè)計能力。這就完全符合了人類學(xué)習(xí)自然語言的過程,同時,三次迭代過程每次迭代都是對前一次的深化。
三次迭代法的教材組織與教學(xué)方法對傳統(tǒng)模式的變革,類似于軟件開發(fā)過程由“瀑布式開發(fā)”到“迭代式開發(fā)”演變,這種思路對讀者從事軟件研發(fā)也會大有裨益。
有了以上想法,筆者異常興奮,廢寢忘食,奮筆疾書,望早日呈書于讀者面前,希望為C語言的學(xué)習(xí)者提供些許幫助。
鑒于筆者水平有限,書中難免有紕漏,歡迎廣大讀者多提寶貴意見。
編者2010年6月
第0章 概述
0.1 計算機(jī)的由來及組成
0.2 計算機(jī)程序
0.3 C語言發(fā)展史-
0.4 C程序基本結(jié)構(gòu)
0.5 C程序開發(fā)步驟
0.6 集成開發(fā)環(huán)境
習(xí)題
第1篇 感知篇
第1章 數(shù)據(jù)的基本操作
1.1 數(shù)據(jù)的存儲與輸出
1.2 數(shù)據(jù)的輸入與運算
1.3 數(shù)據(jù)的比較與判斷
第2章 結(jié)構(gòu)化程序設(shè)計初探
2.1 重復(fù)與循環(huán)語句
2.2 基本結(jié)構(gòu)的組合
2.3 模塊化編程
第3章 數(shù)據(jù)結(jié)構(gòu)
3.1 數(shù)組
3.2 結(jié)構(gòu)體
3.3 動態(tài)數(shù)組
3.4 文件
第4章 算法描述和編碼規(guī)范
4.1 程序設(shè)計與算法描述
4.1.1 程序設(shè)計與算法
4.1.2 FC流程圖
4.1.3 NS盒圖
4.2 C語言編碼規(guī)范
習(xí)題
第2篇 詳解篇
第5章 數(shù)據(jù)類型與輸入輸出
5.1 C語言要素
5.1.1 字符集
5.1.2 標(biāo)識符與關(guān)鍵字
5.1.3 可執(zhí)行語句
5.2 數(shù)據(jù)類型
5.2.1 理解數(shù)據(jù)類型
5.2.2 變量
5.2.3 常量
5.2.4 整型數(shù)據(jù)
5.2.5 浮點型數(shù)據(jù)
5.2.6 字符型數(shù)據(jù)
5.3 輸入與輸出操作
5.3.1 輸入與輸出的概念
5.3.2 格式化輸出函數(shù)
5.3.3 格式化輸入函數(shù)
5.3.4 字符的輸入與輸出
5.4 編程錯誤
5.4.1 語法錯誤和警告
5.4.2 運行錯誤
5.4.3 邏輯錯誤
習(xí)題
第6章 運算符與表達(dá)式
6.1 概述
6.2 算術(shù)運算
6.3 賦值運算
6.4 表達(dá)式中的類型轉(zhuǎn)換
6.4.1 隱式類型轉(zhuǎn)換
6.4.2 顯式類型轉(zhuǎn)換
6.5 自增與自減運算
6.6 關(guān)系與邏輯表運算
6.7 其他運算符
6.8 運算符的優(yōu)先級與結(jié)合性
6.9 案例分析
習(xí)題
第7章 選擇結(jié)構(gòu)
7.1 理解選擇結(jié)構(gòu)
7.2 簡單分支語句
7.2.1 單分支if語句
7.2.2 雙分支if-else語句
7.3 多分支語句
7.3.1 嵌套if語句
7.3.2 多分支else if語句
7.3.3 switch語句
7.4 案例分析
習(xí)題
第8章 循環(huán)結(jié)構(gòu)
8.1 理解循環(huán)結(jié)構(gòu)
8.2 循環(huán)語句
8.2.1 while語句
8.2.2 do語句
8.2.3 for語句
8.2.4 幾種循環(huán)語句的比較
8.3 循環(huán)條件
8.3.1 計數(shù)器控制循環(huán)
8.3.2 標(biāo)記控制循環(huán)
8.4 循環(huán)嵌套
8.4.1 循環(huán)嵌套結(jié)構(gòu)
8.4.2 循環(huán)中的選擇結(jié)構(gòu)
8.5 循環(huán)中的跳轉(zhuǎn)
8.5.1 break語句
8.5.2 continue語句
8.5.3 go to語句
8.6 案例分析
習(xí)題
第9章 數(shù)組
9.1 理解數(shù)組
9.2 一維數(shù)組
9.2.1 一維數(shù)組定義
9.2.2 一維數(shù)組引用
9.2.3 一維數(shù)組初始化
9.2.4 一維數(shù)組案例分析
9.3 二維數(shù)組
9.3.1 二維數(shù)組定義
9.3.2 二維數(shù)組引用
9.3.3 二維數(shù)組初始化
9.3.4 二維數(shù)組案例分析
習(xí)題
第10章 函數(shù)
10.1 理解函數(shù)
10.2 函數(shù)定義和分類
10.2.1 函數(shù)定義
10.2.2 函數(shù)分類
10.3 函數(shù)調(diào)用和聲明
10.3.1 函數(shù)調(diào)用
10.3.2 函數(shù)聲明
10.4 函數(shù)參數(shù)和函數(shù)值
10.4.1 形式參數(shù)與實際參數(shù)
10.4.2 函數(shù)返回值
10.4.3 數(shù)組作函數(shù)參數(shù)
10.5 函數(shù)遞歸調(diào)用
10.6 變量作用域與生存期
10.6.1 變量作用域
10.6.2 變量存儲類別與生存期
10.7 內(nèi)部函數(shù)和外部函數(shù)
習(xí)題
第11章 指針.
11.1 理解指針
11.2 指向變量的指針
11.2.1 指針變量定義
11.2.2 指針變量引用
11.3 數(shù)組與指針
11.3.1 一維數(shù)組與指針
11.3.2 二維數(shù)組與指針
11.3.3 指針數(shù)組
11.3.4 指向指針的指針
11.4 函數(shù)與指針
11.4.1 指針作函數(shù)參數(shù)
……
第3篇 進(jìn)階篇
附錄A ASCII表
計算機(jī)每做的一次動作,一個步驟,都是按照已經(jīng)用計算機(jī)語言編好的程序來執(zhí)行的,程序是計算機(jī)要執(zhí)行的指令的集合,而程序全部都是用人們所掌握的語言來編寫的。所以人們要控制計算機(jī)一定要通過計算機(jī)語言向計算機(jī)發(fā)出命令。
計算機(jī)所能識別的語言只有機(jī)器語言,即由0和1構(gòu)成的代碼。但通常人們編程時,不采用機(jī)器語言,因為它非常難于記憶和識別。
目前通用的編程語言有兩種形式:匯編語言和高級語言。
匯編語言的實質(zhì)和機(jī)器語言是相同的,都是直接對硬件操作,只不過指令采用了英文縮寫的標(biāo)識符,更容易識別和記憶。它同樣需要編程者將每一步具體的操作用命令的形式寫出來。
高級語言是目前絕大多數(shù)編程者的選擇。和匯編語言相比,它不但將許多相關(guān)的機(jī)器指令合成為單條指令,并且去掉了與具體操作有關(guān)但與完成工作無關(guān)的細(xì)節(jié),例如使用堆棧、寄存器等,這樣就大大簡化了程序中的指令。同時,由于省略了很多細(xì)節(jié),編程者也就不需要有太多的專業(yè)知識。