普通高等教育“十一五”國家級(jí)規(guī)劃教材:C語言及程序設(shè)計(jì)基礎(chǔ)
定 價(jià):38 元
- 作者:譚成予 著
- 出版時(shí)間:2010/2/1
- ISBN:9787307075634
- 出 版 社:武漢大學(xué)出版社
- 中圖法分類:TP312C
- 頁碼:384
- 紙張:膠版紙
- 版次:1
- 開本:16開
程序設(shè)計(jì)概述,數(shù)據(jù)、類型和運(yùn)算,簡單程序設(shè)計(jì),控制流,函數(shù).程序設(shè)計(jì)方法概述、數(shù)組,結(jié)構(gòu)和聯(lián)合類型,文件,問題求解策略和算法設(shè)計(jì)。相對(duì)于以往的版本,《C語言及程序設(shè)計(jì)基礎(chǔ)》增加了對(duì)模塊化的程序設(shè)計(jì)方法、C語言實(shí)現(xiàn)的軟件開發(fā)技術(shù),以及窮舉法、局部搜索、回溯法、分治法和人工智能問題求解三個(gè)方面的內(nèi)容。新加入的內(nèi)容,通過實(shí)例的代碼來講解理論概念的方法,是《C語言及程序設(shè)計(jì)基礎(chǔ)》的-大特色,有利于促進(jìn)學(xué)生參與到程序設(shè)計(jì)中來。
《C語言及程序設(shè)計(jì)基礎(chǔ)》合作為高等院校計(jì)算機(jī)科學(xué)與技術(shù)、信息安全及相關(guān)專業(yè)學(xué)習(xí)高級(jí)語言程序設(shè)計(jì)的教科書,也可作為廣大軟件開發(fā)人員和自學(xué)人員的參考書。
作者在武漢大學(xué)為一年級(jí)本科生教授程序設(shè)計(jì)時(shí),發(fā)現(xiàn)很多初學(xué)者熱衷于學(xué)習(xí)各種語言工具以及語法細(xì)節(jié),但是卻常常陷入對(duì)語言工具極為熟悉而無法寫出高質(zhì)量程序的困境,因而萌發(fā)了編寫本書的想法。
怎樣才能通過學(xué)習(xí)成為一個(gè)優(yōu)秀的程序員?對(duì)這個(gè)問題,初學(xué)者常常存在一些認(rèn)識(shí)上的誤區(qū),即只要花費(fèi)大量的時(shí)間學(xué)習(xí)語言工具就能成為一個(gè)程序設(shè)計(jì)的高手。這個(gè)觀點(diǎn)有些荒謬,識(shí)字很多的人一定是最好的作家嗎?能演奏最多音符的人一定是最好的音樂家嗎?顯然不是。編程工作不僅僅只是編寫代碼,它應(yīng)當(dāng)是恰當(dāng)?shù)膯栴}解決策略和正確的語言細(xì)節(jié)的完美結(jié)合,其中最困難的部分并不是學(xué)習(xí)語言細(xì)節(jié),而是理解問題的解決之道。
本書從一開始就注重程序設(shè)計(jì)方法,從準(zhǔn)備完整且準(zhǔn)確的程序說明開始,并強(qiáng)調(diào)測試計(jì)劃和程序驗(yàn)證的重要性。本書以C語言為樣例,著重講解高級(jí)語言程序設(shè)計(jì)的基本理論,結(jié)合程序設(shè)計(jì)的基本思想、問題表達(dá)、設(shè)計(jì)方法以及解決問題能力為主線條,配合C語言的文法及描述方法,組織全書的內(nèi)容。
本書在介紹程序設(shè)計(jì)的基本概念的基礎(chǔ)上,強(qiáng)調(diào)算法的重要性及其在程序設(shè)計(jì)中的作用;強(qiáng)調(diào)“以算法帶動(dòng)文法”、“學(xué)思想用細(xì)節(jié)”的思想。并通過大量的數(shù)學(xué)、工程和算法方面的完整樣例程序,為讀者展示如何通過編程技巧闡述問題的解決策略。
本書為水平各不相同的所有程序設(shè)計(jì)人員編寫。無論是程序設(shè)計(jì)的初學(xué)者、教師還是成熟的專業(yè)人士,我們相信本書及其輔導(dǎo)教材將提供一種內(nèi)容豐富而具有挑戰(zhàn)性的學(xué)習(xí)經(jīng)歷
作者在每學(xué)年授課時(shí),常被學(xué)生問到一個(gè)問題:為什么選擇C語言作為第一門編程課程?筆者認(rèn)為,C語言比C++或者Java等更適合作為編程的入門語言。實(shí)際上,由于好奇的天性,人們更容易注意到那些新的事物,而忽視了用以構(gòu)筑未來的堅(jiān)實(shí)基礎(chǔ)。C語言正是這樣的基礎(chǔ),很多的程序代碼是用C語言運(yùn)行的,C++正是在此基礎(chǔ)上建立的,C語言的語法構(gòu)成了Java的基礎(chǔ)。但是,C語言不僅僅只是其他語言的起點(diǎn),它到今天仍然至關(guān)重要,仍然具有其他計(jì)算機(jī)語言無法比擬的魅力。除此之外,從C語言開始學(xué)起,可以有助于為隨后學(xué)習(xí)的C++或者Java奠定理論基礎(chǔ),這樣更容易理解抽象的數(shù)據(jù)類型。
為了系統(tǒng)地介紹結(jié)構(gòu)化程序設(shè)計(jì)方法和c語言,全書共分11章,下面簡單介紹這些章節(jié)的內(nèi)容:
第一部分:程序設(shè)計(jì)概述
第1章介紹了計(jì)算機(jī)的基本組成和原理、程序和計(jì)算機(jī)語言、高級(jí)語言源程序的組成、C語言的發(fā)展史、C程序的基本組成、程序規(guī)范、測試計(jì)劃和編程的基本步驟。初學(xué)者通過第1章的學(xué)習(xí),為深入了解C語言的技術(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ī)語言
1.2.3 C語言的發(fā)展歷史和特點(diǎn)
1.2.4 程序設(shè)計(jì)
1.3 程序的組成
1.3.1 程序的語法對(duì)象
1.3.2 程序的基本結(jié)構(gòu)
1.3.3 程序的基本語法單位
1.4 程序設(shè)計(jì)的步驟
1.4.1 問題說明
1.4.2 設(shè)計(jì)測試計(jì)劃
1.4.3 設(shè)計(jì)方案
1.4.4 開發(fā)環(huán)境
1.4.5 構(gòu)造程序
1.4.6 執(zhí)行和測試程序
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ù)值問題的計(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ùn)算符概述
2.7 C語言中的運(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)和常見錯(cuò)誤
習(xí)題2
第3章 簡單程序設(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 語句
3.2.1 表達(dá)式語句
3.2.2 塊語句
3.2.3 跳轉(zhuǎn)語句
3.2.4 其他控制語句
3.3 控制臺(tái)I/O
3.3.1 讀寫字符
3.3.2 格式化控制臺(tái)輸出
3.3.3 格式化控制臺(tái)輸入
3.4 程序原型
3.4.1 程序原型
3.4.2 程序書寫風(fēng)格
3.4.3 程序布局與規(guī)范
3.5 編寫簡單的C程序
3.6 本章小結(jié)
3.6.1 主要知識(shí)點(diǎn)
3.6.2 難點(diǎn)和常見錯(cuò)誤
習(xí)題3
第4章 流程控制
4.1 if條件語句
4.1.1 雙分支if語句
4.1.2 單分支if語句
4.1.3 嵌套if語句
4.1.4 if-else-if梯次
4.1.5 代替if語句的條件運(yùn)算符
4.2 switch多重選擇語句
4.2.1 switch語句基本語法
4.2.2 使用switch語句的三個(gè)要點(diǎn)
4.3 循環(huán)語句
4.3.1 for語句
4.3.2 while語句
4.3.3 do-while語句
4.3.4 goto語句構(gòu)建循環(huán)結(jié)構(gòu)
4.4 循環(huán)結(jié)構(gòu)中的break和continue語句
4.4.1 break語句
4.4.2 continue語句
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)和常見錯(cuò)誤
習(xí)題4
第5章 函數(shù)
5.1 模塊化的程序設(shè)計(jì)
5.1.1 從構(gòu)造計(jì)算機(jī)說起
5.1.2 C語言中的程序模塊
5.1.3 程序“模塊化”的目的
5.2 創(chuàng)建函數(shù)
5.2.1 C語言中函數(shù)分類
5.2.2 函數(shù)定義的一般形式
5.2.3 定義無參函數(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問題
5.6 數(shù)據(jù)的模塊化
5.6.1 什么是數(shù)據(jù)模塊化
5.6.2 標(biāo)識(shí)符的作用域和可視性
5.6.3 變量的存儲(chǔ)類別
5.6.4 由多個(gè)源文件組成的程序的編譯問題
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章 問題求解策略和算法設(shè)計(jì)
附錄A ASII碼表
附錄B C要unsuan符的優(yōu)先級(jí)和結(jié)核性
附錄C C關(guān)鍵字
附錄D 常用C庫函數(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ī)語言的基本元素——數(shù)據(jù)和運(yùn)算符構(gòu)成。數(shù)據(jù)可由變量、常量或函數(shù)返回的值來表達(dá)。運(yùn)算符通常由圖形化符號(hào)表示,代表對(duì)數(shù)據(jù)執(zhí)行的操作種類。這里將討論如何對(duì)變量、常量運(yùn)用C語言的各種運(yùn)算操作,C的表達(dá)式比多數(shù)計(jì)算機(jī)語言的表達(dá)式更豐富、更強(qiáng)、更靈活。
本章介紹的主要內(nèi)容包括:
·計(jì)算機(jī)中的數(shù)和數(shù)制。
·C的數(shù)據(jù)類型和基本數(shù)據(jù)類型。
·變量的定義、初始化等基本概念。
·常量的表達(dá)。
·計(jì)算誤差的基本概念,數(shù)據(jù)的上溢、下溢以及可表示誤差等。
·表達(dá)式的基本概念,C語言中的算術(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ù)制
一般來說,用計(jì)算機(jī)解決一個(gè)具體問題時(shí),基本步驟之一就是正確地描述現(xiàn)實(shí)問題中的數(shù)據(jù)。為了編寫一個(gè)“好”的程序,必須首先了解計(jì)算機(jī)中的數(shù)據(jù)表達(dá)和數(shù)學(xué)意義上的數(shù)據(jù)表達(dá)有哪些異同。
從數(shù)學(xué)意義來看,數(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ù)來表示。
從數(shù)學(xué)意義來看,數(shù)據(jù)的表示范圍和計(jì)算精度僅受到待處理問題計(jì)算要求的限制。現(xiàn)實(shí)世界中數(shù)據(jù)含義極為廣泛,除了我們所熟知的整數(shù)以及實(shí)數(shù)等數(shù)值數(shù)據(jù)(常用十進(jìn)制數(shù)制來表示)外,還包括圖像、視頻、聲音等各種表示形式。
用計(jì)算機(jī)程序解決實(shí)際問題時(shí),首先需要將現(xiàn)實(shí)問題抽象成一個(gè)適當(dāng)?shù)臄?shù)學(xué)模型,然后為此數(shù)學(xué)模型設(shè)計(jì)一個(gè)相應(yīng)的算法,以便將數(shù)據(jù)和相應(yīng)的操作轉(zhuǎn)換成計(jì)算機(jī)可“識(shí)別”的表示形式。從這個(gè)意義來看,計(jì)算機(jī)中的數(shù)據(jù)不僅是客觀事物的符號(hào)表達(dá),同時(shí)也是所有能輸入到計(jì)算機(jī)并被計(jì)算機(jī)程序處理的符號(hào)介質(zhì)的總稱。計(jì)算機(jī)中的數(shù)據(jù)不僅受到待處理問題的計(jì)算要求的限制,同時(shí)受到計(jì)算機(jī)物理部件的限制。