普通高等教育“十一五”國(guó)家級(jí)規(guī)劃教材:C語(yǔ)言及程序設(shè)計(jì)基礎(chǔ)
定 價(jià):38 元
- 作者:譚成予 著
- 出版時(shí)間:2010/2/1
- ISBN:9787307075634
- 出 版 社:武漢大學(xué)出版社
- 中圖法分類:TP312C
- 頁(yè)碼:384
- 紙張:膠版紙
- 版次:1
- 開(kāi)本:16開(kāi)
程序設(shè)計(jì)概述,數(shù)據(jù)、類型和運(yùn)算,簡(jiǎn)單程序設(shè)計(jì),控制流,函數(shù).程序設(shè)計(jì)方法概述、數(shù)組,結(jié)構(gòu)和聯(lián)合類型,文件,問(wèn)題求解策略和算法設(shè)計(jì)。相對(duì)于以往的版本,《C語(yǔ)言及程序設(shè)計(jì)基礎(chǔ)》增加了對(duì)模塊化的程序設(shè)計(jì)方法、C語(yǔ)言實(shí)現(xiàn)的軟件開(kāi)發(fā)技術(shù),以及窮舉法、局部搜索、回溯法、分治法和人工智能問(wèn)題求解三個(gè)方面的內(nèi)容。新加入的內(nèi)容,通過(guò)實(shí)例的代碼來(lái)講解理論概念的方法,是《C語(yǔ)言及程序設(shè)計(jì)基礎(chǔ)》的-大特色,有利于促進(jìn)學(xué)生參與到程序設(shè)計(jì)中來(lái)。
《C語(yǔ)言及程序設(shè)計(jì)基礎(chǔ)》合作為高等院校計(jì)算機(jī)科學(xué)與技術(shù)、信息安全及相關(guān)專業(yè)學(xué)習(xí)高級(jí)語(yǔ)言程序設(shè)計(jì)的教科書(shū),也可作為廣大軟件開(kāi)發(fā)人員和自學(xué)人員的參考書(shū)。
作者在武漢大學(xué)為一年級(jí)本科生教授程序設(shè)計(jì)時(shí),發(fā)現(xiàn)很多初學(xué)者熱衷于學(xué)習(xí)各種語(yǔ)言工具以及語(yǔ)法細(xì)節(jié),但是卻常常陷入對(duì)語(yǔ)言工具極為熟悉而無(wú)法寫(xiě)出高質(zhì)量程序的困境,因而萌發(fā)了編寫(xiě)本書(shū)的想法。
怎樣才能通過(guò)學(xué)習(xí)成為一個(gè)優(yōu)秀的程序員?對(duì)這個(gè)問(wèn)題,初學(xué)者常常存在一些認(rèn)識(shí)上的誤區(qū),即只要花費(fèi)大量的時(shí)間學(xué)習(xí)語(yǔ)言工具就能成為一個(gè)程序設(shè)計(jì)的高手。這個(gè)觀點(diǎn)有些荒謬,識(shí)字很多的人一定是最好的作家嗎?能演奏最多音符的人一定是最好的音樂(lè)家嗎?顯然不是。編程工作不僅僅只是編寫(xiě)代碼,它應(yīng)當(dāng)是恰當(dāng)?shù)膯?wèn)題解決策略和正確的語(yǔ)言細(xì)節(jié)的完美結(jié)合,其中最困難的部分并不是學(xué)習(xí)語(yǔ)言細(xì)節(jié),而是理解問(wèn)題的解決之道。
本書(shū)從一開(kāi)始就注重程序設(shè)計(jì)方法,從準(zhǔn)備完整且準(zhǔn)確的程序說(shuō)明開(kāi)始,并強(qiáng)調(diào)測(cè)試計(jì)劃和程序驗(yàn)證的重要性。本書(shū)以C語(yǔ)言為樣例,著重講解高級(jí)語(yǔ)言程序設(shè)計(jì)的基本理論,結(jié)合程序設(shè)計(jì)的基本思想、問(wèn)題表達(dá)、設(shè)計(jì)方法以及解決問(wèn)題能力為主線條,配合C語(yǔ)言的文法及描述方法,組織全書(shū)的內(nèi)容。
本書(shū)在介紹程序設(shè)計(jì)的基本概念的基礎(chǔ)上,強(qiáng)調(diào)算法的重要性及其在程序設(shè)計(jì)中的作用;強(qiáng)調(diào)“以算法帶動(dòng)文法”、“學(xué)思想用細(xì)節(jié)”的思想。并通過(guò)大量的數(shù)學(xué)、工程和算法方面的完整樣例程序,為讀者展示如何通過(guò)編程技巧闡述問(wèn)題的解決策略。
本書(shū)為水平各不相同的所有程序設(shè)計(jì)人員編寫(xiě)。無(wú)論是程序設(shè)計(jì)的初學(xué)者、教師還是成熟的專業(yè)人士,我們相信本書(shū)及其輔導(dǎo)教材將提供一種內(nèi)容豐富而具有挑戰(zhàn)性的學(xué)習(xí)經(jīng)歷
作者在每學(xué)年授課時(shí),常被學(xué)生問(wèn)到一個(gè)問(wèn)題:為什么選擇C語(yǔ)言作為第一門(mén)編程課程?筆者認(rèn)為,C語(yǔ)言比C++或者Java等更適合作為編程的入門(mén)語(yǔ)言。實(shí)際上,由于好奇的天性,人們更容易注意到那些新的事物,而忽視了用以構(gòu)筑未來(lái)的堅(jiān)實(shí)基礎(chǔ)。C語(yǔ)言正是這樣的基礎(chǔ),很多的程序代碼是用C語(yǔ)言運(yùn)行的,C++正是在此基礎(chǔ)上建立的,C語(yǔ)言的語(yǔ)法構(gòu)成了Java的基礎(chǔ)。但是,C語(yǔ)言不僅僅只是其他語(yǔ)言的起點(diǎn),它到今天仍然至關(guān)重要,仍然具有其他計(jì)算機(jī)語(yǔ)言無(wú)法比擬的魅力。除此之外,從C語(yǔ)言開(kāi)始學(xué)起,可以有助于為隨后學(xué)習(xí)的C++或者Java奠定理論基礎(chǔ),這樣更容易理解抽象的數(shù)據(jù)類型。
為了系統(tǒng)地介紹結(jié)構(gòu)化程序設(shè)計(jì)方法和c語(yǔ)言,全書(shū)共分11章,下面簡(jiǎn)單介紹這些章節(jié)的內(nèi)容:
第一部分:程序設(shè)計(jì)概述
第1章介紹了計(jì)算機(jī)的基本組成和原理、程序和計(jì)算機(jī)語(yǔ)言、高級(jí)語(yǔ)言源程序的組成、C語(yǔ)言的發(fā)展史、C程序的基本組成、程序規(guī)范、測(cè)試計(jì)劃和編程的基本步驟。初學(xué)者通過(guò)第1章的學(xué)習(xí),為深入了解C語(yǔ)言的技術(shù)細(xì)節(jié)打下堅(jiān)實(shí)的基礎(chǔ),有經(jīng)驗(yàn)者可快速瀏覽本章。
第1章 程序設(shè)計(jì)概述
1.1 什么是計(jì)算機(jī)
1.1.1 物理計(jì)算機(jī)
1.1.2 系統(tǒng)軟件和應(yīng)用軟件
1.1.3 網(wǎng)絡(luò)和計(jì)算模式
1.2 程序和程序設(shè)計(jì)概述
1.2.1 什么是程序
1.2.2 計(jì)算機(jī)語(yǔ)言
1.2.3 C語(yǔ)言的發(fā)展歷史和特點(diǎn)
1.2.4 程序設(shè)計(jì)
1.3 程序的組成
1.3.1 程序的語(yǔ)法對(duì)象
1.3.2 程序的基本結(jié)構(gòu)
1.3.3 程序的基本語(yǔ)法單位
1.4 程序設(shè)計(jì)的步驟
1.4.1 問(wèn)題說(shuō)明
1.4.2 設(shè)計(jì)測(cè)試計(jì)劃
1.4.3 設(shè)計(jì)方案
1.4.4 開(kāi)發(fā)環(huán)境
1.4.5 構(gòu)造程序
1.4.6 執(zhí)行和測(cè)試程序
1.5 本章小結(jié)
習(xí)題1
第2章 數(shù)據(jù)、類型和運(yùn)算
2.1 計(jì)算機(jī)中的數(shù)與數(shù)制
2.1.1 計(jì)算機(jī)中的整數(shù)
2.1.2 計(jì)算機(jī)中的實(shí)數(shù)
2.1.3 計(jì)算機(jī)中的文字
2.2 C的數(shù)據(jù)類型和基本數(shù)據(jù)類型
2.2.1 C的數(shù)據(jù)類型
2.2.2 C的基本數(shù)據(jù)類型
2.3 變量
2.3.1 數(shù)學(xué)中的變量和計(jì)算機(jī)中的變量
2.3.2 變量的定義形式
2.3.3 變量的定義位置
2.3.4 變量的初始化
2.3.5 類型限定詞
2.3.6 變量的左值和右值
2.4 常量
2.4.1 整型常量
2.4.2 浮點(diǎn)數(shù)常量
2.4.3 字符型常量
2.4.4 字符串常量
2.4.5 符號(hào)常量(不帶參數(shù)的宏)
2.5 數(shù)值問(wèn)題的計(jì)算誤差
2.5.1 整數(shù)上溢
2.5.2 浮點(diǎn)數(shù)的可表示誤差
2.5.3 浮點(diǎn)數(shù)上溢
2.5.4 浮點(diǎn)數(shù)下溢
2.5.5 數(shù)據(jù)類型的選擇
2.6 表達(dá)式的基本概念
2.6.1 運(yùn)算符和算元
2.6.2 優(yōu)先級(jí)別、括號(hào)和結(jié)合性
2.6.3 C語(yǔ)言中的運(yùn)算符概述
2.7 C語(yǔ)言中的運(yùn)算符
2.7.1 算術(shù)運(yùn)算、增量和減量運(yùn)算符
2.7.2 賦值運(yùn)算符
2.7.3 關(guān)系運(yùn)算符和邏輯運(yùn)算符
2.7.4 條件運(yùn)算符和逗號(hào)運(yùn)算符
2.7.5 位運(yùn)算符
2.7.6 其他運(yùn)算符
2.8 表達(dá)式中的自動(dòng)類型轉(zhuǎn)換和強(qiáng)制類型轉(zhuǎn)換
2.8.1 自動(dòng)類型轉(zhuǎn)換
2.8.2 強(qiáng)制類型轉(zhuǎn)換
2.9 本章小結(jié)
2.9.1 主要知識(shí)點(diǎn)
2.9.2 難點(diǎn)和常見(jiàn)錯(cuò)誤
習(xí)題2
第3章 簡(jiǎn)單程序設(shè)計(jì)
3.1 結(jié)構(gòu)化的三種基本結(jié)構(gòu)
3.1.1 結(jié)構(gòu)化程序設(shè)計(jì)的基本思想
3.1.2 三種基本結(jié)構(gòu)
3.2 語(yǔ)句
3.2.1 表達(dá)式語(yǔ)句
3.2.2 塊語(yǔ)句
3.2.3 跳轉(zhuǎn)語(yǔ)句
3.2.4 其他控制語(yǔ)句
3.3 控制臺(tái)I/O
3.3.1 讀寫(xiě)字符
3.3.2 格式化控制臺(tái)輸出
3.3.3 格式化控制臺(tái)輸入
3.4 程序原型
3.4.1 程序原型
3.4.2 程序書(shū)寫(xiě)風(fēng)格
3.4.3 程序布局與規(guī)范
3.5 編寫(xiě)簡(jiǎn)單的C程序
3.6 本章小結(jié)
3.6.1 主要知識(shí)點(diǎn)
3.6.2 難點(diǎn)和常見(jiàn)錯(cuò)誤
習(xí)題3
第4章 流程控制
4.1 if條件語(yǔ)句
4.1.1 雙分支if語(yǔ)句
4.1.2 單分支if語(yǔ)句
4.1.3 嵌套if語(yǔ)句
4.1.4 if-else-if梯次
4.1.5 代替if語(yǔ)句的條件運(yùn)算符
4.2 switch多重選擇語(yǔ)句
4.2.1 switch語(yǔ)句基本語(yǔ)法
4.2.2 使用switch語(yǔ)句的三個(gè)要點(diǎn)
4.3 循環(huán)語(yǔ)句
4.3.1 for語(yǔ)句
4.3.2 while語(yǔ)句
4.3.3 do-while語(yǔ)句
4.3.4 goto語(yǔ)句構(gòu)建循環(huán)結(jié)構(gòu)
4.4 循環(huán)結(jié)構(gòu)中的break和continue語(yǔ)句
4.4.1 break語(yǔ)句
4.4.2 continue語(yǔ)句
4.5 應(yīng)用實(shí)例
4.5.1 哨兵循環(huán)
4.5.2 查詢循環(huán)
4.5.3 計(jì)數(shù)循環(huán)
4.6 本章小結(jié)
4.6.1 主要知識(shí)點(diǎn)
4.6.2 難點(diǎn)和常見(jiàn)錯(cuò)誤
習(xí)題4
第5章 函數(shù)
5.1 模塊化的程序設(shè)計(jì)
5.1.1 從構(gòu)造計(jì)算機(jī)說(shuō)起
5.1.2 C語(yǔ)言中的程序模塊
5.1.3 程序“模塊化”的目的
5.2 創(chuàng)建函數(shù)
5.2.1 C語(yǔ)言中函數(shù)分類
5.2.2 函數(shù)定義的一般形式
5.2.3 定義無(wú)參函數(shù)
5.2.4 定義有參函數(shù)
5.2.5 理解函數(shù)的作用域規(guī)則
5.3 函數(shù)調(diào)用
5.3.1 函數(shù)調(diào)用的一般形式
5.3.2 函數(shù)原型
5.4 函數(shù)之間的數(shù)據(jù)通信
5.4.1 模塊間的數(shù)據(jù)通信方式
5.4.2 C函數(shù)中形參和實(shí)參間的值傳遞
5.4.3 C函數(shù)的返回值
5.5 函數(shù)的遞歸調(diào)用
5.5.1 運(yùn)行棧
5.5.2 直接遞歸和間接遞歸
5.5.3 遞歸與迭代
5.5.4 較復(fù)雜的遞歸范例:Hanoi問(wèn)題
5.6 數(shù)據(jù)的模塊化
5.6.1 什么是數(shù)據(jù)模塊化
5.6.2 標(biāo)識(shí)符的作用域和可視性
5.6.3 變量的存儲(chǔ)類別
5.6.4 由多個(gè)源文件組成的程序的編譯問(wèn)題
5.7 編譯預(yù)處理
5.7.1 宏
5.7.2 文件嵌入
5.7.3 條件編譯
5.7.4 其他編譯預(yù)處理命令
……
第6章 程序設(shè)計(jì)方法概述
第7章 數(shù)組
第8章 指針
第9章 結(jié)構(gòu)、聯(lián)合、枚舉和typedef
第10章 流與文件
第11章 問(wèn)題求解策略和算法設(shè)計(jì)
附錄A ASII碼表
附錄B C要unsuan符的優(yōu)先級(jí)和結(jié)核性
附錄C C關(guān)鍵字
附錄D 常用C庫(kù)函數(shù)
附錄E C/C++互聯(lián)網(wǎng)資源
參考文獻(xiàn)
第2章 數(shù)據(jù)、類型和運(yùn)算
計(jì)算是計(jì)算機(jī)編程的核心。本章主要介紹如何為一個(gè)程序定義命名對(duì)象,例如變量、常量等,以及如何在計(jì)算中使用這些對(duì)象。
表達(dá)式是計(jì)算機(jī)程序中計(jì)算的最基本形式,表達(dá)式由計(jì)算機(jī)語(yǔ)言的基本元素——數(shù)據(jù)和運(yùn)算符構(gòu)成。數(shù)據(jù)可由變量、常量或函數(shù)返回的值來(lái)表達(dá)。運(yùn)算符通常由圖形化符號(hào)表示,代表對(duì)數(shù)據(jù)執(zhí)行的操作種類。這里將討論如何對(duì)變量、常量運(yùn)用C語(yǔ)言的各種運(yùn)算操作,C的表達(dá)式比多數(shù)計(jì)算機(jī)語(yǔ)言的表達(dá)式更豐富、更強(qiáng)、更靈活。
本章介紹的主要內(nèi)容包括:
·計(jì)算機(jī)中的數(shù)和數(shù)制。
·C的數(shù)據(jù)類型和基本數(shù)據(jù)類型。
·變量的定義、初始化等基本概念。
·常量的表達(dá)。
·計(jì)算誤差的基本概念,數(shù)據(jù)的上溢、下溢以及可表示誤差等。
·表達(dá)式的基本概念,C語(yǔ)言中的算術(shù)運(yùn)算、賦值運(yùn)算、關(guān)系和邏輯運(yùn)算、條件運(yùn)算符、逗號(hào)運(yùn)算符、位運(yùn)算以及其他運(yùn)算符。
·自動(dòng)類型轉(zhuǎn)換和強(qiáng)制類型轉(zhuǎn)換。
2.1 計(jì)算機(jī)中的數(shù)與數(shù)制
一般來(lái)說(shuō),用計(jì)算機(jī)解決一個(gè)具體問(wèn)題時(shí),基本步驟之一就是正確地描述現(xiàn)實(shí)問(wèn)題中的數(shù)據(jù)。為了編寫(xiě)一個(gè)“好”的程序,必須首先了解計(jì)算機(jī)中的數(shù)據(jù)表達(dá)和數(shù)學(xué)意義上的數(shù)據(jù)表達(dá)有哪些異同。
從數(shù)學(xué)意義來(lái)看,數(shù)據(jù)是對(duì)現(xiàn)實(shí)世界中的人物、事件、其他對(duì)象或概念的描述。它是對(duì)客觀事物的符號(hào)表示,如圖形符號(hào)、數(shù)字、字母等。例如統(tǒng)計(jì)武漢大學(xué)在校學(xué)生的平均年齡,需要處理的對(duì)象包括每個(gè)學(xué)生的年齡以及學(xué)生人數(shù),分別用實(shí)數(shù)和整數(shù)來(lái)表示。
從數(shù)學(xué)意義來(lái)看,數(shù)據(jù)的表示范圍和計(jì)算精度僅受到待處理問(wèn)題計(jì)算要求的限制,F(xiàn)實(shí)世界中數(shù)據(jù)含義極為廣泛,除了我們所熟知的整數(shù)以及實(shí)數(shù)等數(shù)值數(shù)據(jù)(常用十進(jìn)制數(shù)制來(lái)表示)外,還包括圖像、視頻、聲音等各種表示形式。
用計(jì)算機(jī)程序解決實(shí)際問(wèn)題時(shí),首先需要將現(xiàn)實(shí)問(wèn)題抽象成一個(gè)適當(dāng)?shù)臄?shù)學(xué)模型,然后為此數(shù)學(xué)模型設(shè)計(jì)一個(gè)相應(yīng)的算法,以便將數(shù)據(jù)和相應(yīng)的操作轉(zhuǎn)換成計(jì)算機(jī)可“識(shí)別”的表示形式。從這個(gè)意義來(lái)看,計(jì)算機(jī)中的數(shù)據(jù)不僅是客觀事物的符號(hào)表達(dá),同時(shí)也是所有能輸入到計(jì)算機(jī)并被計(jì)算機(jī)程序處理的符號(hào)介質(zhì)的總稱。計(jì)算機(jī)中的數(shù)據(jù)不僅受到待處理問(wèn)題的計(jì)算要求的限制,同時(shí)受到計(jì)算機(jī)物理部件的限制。