出版時間:1970-1 出版社:武漢大學(xué)出版社 作者:譚成予 編 頁數(shù):384
前言
作者在武漢大學(xué)為一年級本科生教授程序設(shè)計時,發(fā)現(xiàn)很多初學(xué)者熱衷于學(xué)習(xí)各種語言工具以及語法細(xì)節(jié),但是卻常常陷入對語言工具極為熟悉而無法寫出高質(zhì)量程序的困境,因而萌發(fā)了編寫本書的想法?! ≡鯓硬拍芡ㄟ^學(xué)習(xí)成為一個優(yōu)秀的程序員?對這個問題,初學(xué)者常常存在一些認(rèn)識上的誤區(qū),即只要花費大量的時間學(xué)習(xí)語言工具就能成為一個程序設(shè)計的高手。這個觀點有些荒謬,識字很多的人一定是最好的作家嗎?能演奏最多音符的人一定是最好的音樂家嗎?顯然不是。編程工作不僅僅只是編寫代碼,它應(yīng)當(dāng)是恰當(dāng)?shù)膯栴}解決策略和正確的語言細(xì)節(jié)的完美結(jié)合,其中最困難的部分并不是學(xué)習(xí)語言細(xì)節(jié),而是理解問題的解決之道?! ”緯鴱囊婚_始就注重程序設(shè)計方法,從準(zhǔn)備完整且準(zhǔn)確的程序說明開始,并強調(diào)測試計劃和程序驗證的重要性。本書以C語言為樣例,著重講解高級語言程序設(shè)計的基本理論,結(jié)合程序設(shè)計的基本思想、問題表達(dá)、設(shè)計方法以及解決問題能力為主線條,配合C語言的文法及描述方法,組織全書的內(nèi)容?! ”緯诮榻B程序設(shè)計的基本概念的基礎(chǔ)上,強調(diào)算法的重要性及其在程序設(shè)計中的作用;強調(diào)“以算法帶動文法”、“學(xué)思想用細(xì)節(jié)”的思想。并通過大量的數(shù)學(xué)、工程和算法方面的完整樣例程序,為讀者展示如何通過編程技巧闡述問題的解決策略?! ”緯鵀樗礁鞑幌嗤乃谐绦蛟O(shè)計人員編寫。無論是程序設(shè)計的初學(xué)者、教師還是成熟的專業(yè)人士,我們相信本書及其輔導(dǎo)教材將提供一種內(nèi)容豐富而具有挑戰(zhàn)性的學(xué)習(xí)經(jīng)歷 作者在每學(xué)年授課時,常被學(xué)生問到一個問題:為什么選擇C語言作為第一門編程課程?筆者認(rèn)為,C語言比C++或者Java等更適合作為編程的入門語言。實際上,由于好奇的天性,人們更容易注意到那些新的事物,而忽視了用以構(gòu)筑未來的堅實基礎(chǔ)。C語言正是這樣的基礎(chǔ),很多的程序代碼是用C語言運行的,C++正是在此基礎(chǔ)上建立的,C語言的語法構(gòu)成了Java的基礎(chǔ)。但是,C語言不僅僅只是其他語言的起點,它到今天仍然至關(guān)重要,仍然具有其他計算機語言無法比擬的魅力。除此之外,從C語言開始學(xué)起,可以有助于為隨后學(xué)習(xí)的C++或者Java奠定理論基礎(chǔ),這樣更容易理解抽象的數(shù)據(jù)類型?! 榱讼到y(tǒng)地介紹結(jié)構(gòu)化程序設(shè)計方法和c語言,全書共分11章,下面簡單介紹這些章節(jié)的內(nèi)容: 第一部分:程序設(shè)計概述 第1章介紹了計算機的基本組成和原理、程序和計算機語言、高級語言源程序的組成、C語言的發(fā)展史、C程序的基本組成、程序規(guī)范、測試計劃和編程的基本步驟。初學(xué)者通過第1章的學(xué)習(xí),為深入了解C語言的技術(shù)細(xì)節(jié)打下堅實的基礎(chǔ),有經(jīng)驗者可快速瀏覽本章。
內(nèi)容概要
程序設(shè)計概述,數(shù)據(jù)、類型和運算,簡單程序設(shè)計,控制流,函數(shù).程序設(shè)計方法概述、數(shù)組,結(jié)構(gòu)和聯(lián)合類型,文件,問題求解策略和算法設(shè)計。相對于以往的版本,《C語言及程序設(shè)計基礎(chǔ)》增加了對模塊化的程序設(shè)計方法、C語言實現(xiàn)的軟件開發(fā)技術(shù),以及窮舉法、局部搜索、回溯法、分治法和人工智能問題求解三個方面的內(nèi)容。新加入的內(nèi)容,通過實例的代碼來講解理論概念的方法,是《C語言及程序設(shè)計基礎(chǔ)》的-大特色,有利于促進學(xué)生參與到程序設(shè)計中來?! 禖語言及程序設(shè)計基礎(chǔ)》合作為高等院校計算機科學(xué)與技術(shù)、信息安全及相關(guān)專業(yè)學(xué)習(xí)高級語言程序設(shè)計的教科書,也可作為廣大軟件開發(fā)人員和自學(xué)人員的參考書。
書籍目錄
第1章 程序設(shè)計概述1.1 什么是計算機1.1.1 物理計算機1.1.2 系統(tǒng)軟件和應(yīng)用軟件1.1.3 網(wǎng)絡(luò)和計算模式1.2 程序和程序設(shè)計概述1.2.1 什么是程序1.2.2 計算機語言1.2.3 C語言的發(fā)展歷史和特點1.2.4 程序設(shè)計1.3 程序的組成1.3.1 程序的語法對象1.3.2 程序的基本結(jié)構(gòu)1.3.3 程序的基本語法單位1.4 程序設(shè)計的步驟1.4.1 問題說明1.4.2 設(shè)計測試計劃1.4.3 設(shè)計方案1.4.4 開發(fā)環(huán)境1.4.5 構(gòu)造程序1.4.6 執(zhí)行和測試程序1.5 本章小結(jié)習(xí)題1第2章 數(shù)據(jù)、類型和運算2.1 計算機中的數(shù)與數(shù)制2.1.1 計算機中的整數(shù)2.1.2 計算機中的實數(shù)2.1.3 計算機中的文字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é)中的變量和計算機中的變量2.3.2 變量的定義形式2.3.3 變量的定義位置2.3.4 變量的初始化2.3.5 類型限定詞2.3.6 變量的左值和右值2.4 常量2.4.1 整型常量2.4.2 浮點數(shù)常量2.4.3 字符型常量2.4.4 字符串常量2.4.5 符號常量(不帶參數(shù)的宏)2.5 數(shù)值問題的計算誤差2.5.1 整數(shù)上溢2.5.2 浮點數(shù)的可表示誤差2.5.3 浮點數(shù)上溢2.5.4 浮點數(shù)下溢2.5.5 數(shù)據(jù)類型的選擇2.6 表達(dá)式的基本概念2.6.1 運算符和算元2.6.2 優(yōu)先級別、括號和結(jié)合性2.6.3 C語言中的運算符概述2.7 C語言中的運算符2.7.1 算術(shù)運算、增量和減量運算符2.7.2 賦值運算符2.7.3 關(guān)系運算符和邏輯運算符2.7.4 條件運算符和逗號運算符2.7.5 位運算符2.7.6 其他運算符2.8 表達(dá)式中的自動類型轉(zhuǎn)換和強制類型轉(zhuǎn)換2.8.1 自動類型轉(zhuǎn)換2.8.2 強制類型轉(zhuǎn)換2.9 本章小結(jié)2.9.1 主要知識點2.9.2 難點和常見錯誤習(xí)題2第3章 簡單程序設(shè)計3.1 結(jié)構(gòu)化的三種基本結(jié)構(gòu)3.1.1 結(jié)構(gòu)化程序設(shè)計的基本思想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 控制臺I/O3.3.1 讀寫字符3.3.2 格式化控制臺輸出3.3.3 格式化控制臺輸入3.4 程序原型3.4.1 程序原型3.4.2 程序書寫風(fēng)格3.4.3 程序布局與規(guī)范3.5 編寫簡單的C程序3.6 本章小結(jié)3.6.1 主要知識點3.6.2 難點和常見錯誤習(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語句的條件運算符4.2 switch多重選擇語句4.2.1 switch語句基本語法4.2.2 使用switch語句的三個要點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)用實例4.5.1 哨兵循環(huán)4.5.2 查詢循環(huán)4.5.3 計數(shù)循環(huán)4.6 本章小結(jié)4.6.1 主要知識點4.6.2 難點和常見錯誤習(xí)題4第5章 函數(shù)5.1 模塊化的程序設(shè)計5.1.1 從構(gòu)造計算機說起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ù)中形參和實參間的值傳遞5.4.3 C函數(shù)的返回值5.5 函數(shù)的遞歸調(diào)用5.5.1 運行棧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)識符的作用域和可視性5.6.3 變量的存儲類別5.6.4 由多個源文件組成的程序的編譯問題5.7 編譯預(yù)處理5.7.1 宏5.7.2 文件嵌入5.7.3 條件編譯5.7.4 其他編譯預(yù)處理命令……第6章 程序設(shè)計方法概述第7章 數(shù)組第8章 指針第9章 結(jié)構(gòu)、聯(lián)合、枚舉和typedef第10章 流與文件第11章 問題求解策略和算法設(shè)計附錄A ASII碼表附錄B C要unsuan符的優(yōu)先級和結(jié)核性附錄C C關(guān)鍵字附錄D 常用C庫函數(shù)附錄E C/C++互聯(lián)網(wǎng)資源參考文獻(xiàn)
章節(jié)摘錄
第2章 數(shù)據(jù)、類型和運算 計算是計算機編程的核心。本章主要介紹如何為一個程序定義命名對象,例如變量、常量等,以及如何在計算中使用這些對象?! ”磉_(dá)式是計算機程序中計算的最基本形式,表達(dá)式由計算機語言的基本元素——數(shù)據(jù)和運算符構(gòu)成。數(shù)據(jù)可由變量、常量或函數(shù)返回的值來表達(dá)。運算符通常由圖形化符號表示,代表對數(shù)據(jù)執(zhí)行的操作種類。這里將討論如何對變量、常量運用C語言的各種運算操作,C的表達(dá)式比多數(shù)計算機語言的表達(dá)式更豐富、更強、更靈活。 本章介紹的主要內(nèi)容包括: ·計算機中的數(shù)和數(shù)制?! 的數(shù)據(jù)類型和基本數(shù)據(jù)類型?! ぷ兞康亩x、初始化等基本概念?! こA康谋磉_(dá)?! び嬎阏`差的基本概念,數(shù)據(jù)的上溢、下溢以及可表示誤差等。 ·表達(dá)式的基本概念,C語言中的算術(shù)運算、賦值運算、關(guān)系和邏輯運算、條件運算符、逗號運算符、位運算以及其他運算符?! ぷ詣宇愋娃D(zhuǎn)換和強制類型轉(zhuǎn)換?! ?.1 計算機中的數(shù)與數(shù)制 一般來說,用計算機解決一個具體問題時,基本步驟之一就是正確地描述現(xiàn)實問題中的數(shù)據(jù)。為了編寫一個“好”的程序,必須首先了解計算機中的數(shù)據(jù)表達(dá)和數(shù)學(xué)意義上的數(shù)據(jù)表達(dá)有哪些異同。 從數(shù)學(xué)意義來看,數(shù)據(jù)是對現(xiàn)實世界中的人物、事件、其他對象或概念的描述。它是對客觀事物的符號表示,如圖形符號、數(shù)字、字母等。例如統(tǒng)計武漢大學(xué)在校學(xué)生的平均年齡,需要處理的對象包括每個學(xué)生的年齡以及學(xué)生人數(shù),分別用實數(shù)和整數(shù)來表示?! 臄?shù)學(xué)意義來看,數(shù)據(jù)的表示范圍和計算精度僅受到待處理問題計算要求的限制?,F(xiàn)實世界中數(shù)據(jù)含義極為廣泛,除了我們所熟知的整數(shù)以及實數(shù)等數(shù)值數(shù)據(jù)(常用十進制數(shù)制來表示)外,還包括圖像、視頻、聲音等各種表示形式?! ∮糜嬎銠C程序解決實際問題時,首先需要將現(xiàn)實問題抽象成一個適當(dāng)?shù)臄?shù)學(xué)模型,然后為此數(shù)學(xué)模型設(shè)計一個相應(yīng)的算法,以便將數(shù)據(jù)和相應(yīng)的操作轉(zhuǎn)換成計算機可“識別”的表示形式。從這個意義來看,計算機中的數(shù)據(jù)不僅是客觀事物的符號表達(dá),同時也是所有能輸入到計算機并被計算機程序處理的符號介質(zhì)的總稱。計算機中的數(shù)據(jù)不僅受到待處理問題的計算要求的限制,同時受到計算機物理部件的限制。
圖書封面
評論、評分、閱讀與下載