C語言的科學(xué)和藝術(shù)

出版時間:2005-3  出版社:機(jī)械工業(yè)出版社  作者:羅伯茨  頁數(shù):498  譯者:翁惠玉  
Tag標(biāo)簽:無  

內(nèi)容概要

本書是計算機(jī)科學(xué)的經(jīng)典教材,介紹了計算機(jī)科學(xué)的基礎(chǔ)知識和程序設(shè)計的專門知識。本書以介紹ANSI C為主線,不僅涵蓋C語言的基本知識,而且介紹了軟件工程技術(shù)以及如何應(yīng)用良好的程序設(shè)計風(fēng)格進(jìn)行開發(fā)等內(nèi)容。本書采用了庫函數(shù)的方法,強(qiáng)調(diào)抽象的原則,詳細(xì)闡述了庫和模塊化開發(fā)。此外,本書還利用大量實例講述解決問題的全過程,對開發(fā)過程中常見的錯誤也給出了解決和避免的方法。本書既可作為高等院校計算機(jī)科學(xué)入門課程及C語言入門課程的教材,也是C語言開發(fā)人員的極佳參考書。

作者簡介

Eric S. Roberts,美國斯坦福大學(xué)計算機(jī)科學(xué)系教授,主管教學(xué)的系副主任。他由于教學(xué)改革的成就獲得Charles Simonyi榮譽教授。Roberts于1980年獲哈佛大學(xué)應(yīng)用數(shù)學(xué)博士學(xué)位,其后他創(chuàng)建了威爾斯利學(xué)院的計算機(jī)科學(xué)系,并擔(dān)任系主任。后來,他在加州Palo Alto的DEC公司系統(tǒng)

書籍目錄

第1章 概述     1.1 計算簡史     1.2 什么是計算機(jī)科學(xué)     1.3 計算機(jī)硬件簡介      1.3.1 CPU      1.3.2 內(nèi)存      1.3.3 輔助存儲器      1.3.4 I/O設(shè)備     1.4 算法     1.5 程序設(shè)計語言和編譯     1.6 編程錯誤和調(diào)試     1.7 軟件維護(hù)     1.8 軟件工程的重要性     1.9 關(guān)于C程序設(shè)計語言的一些思考     小結(jié)     復(fù)習(xí)題    第一部分 C語言程序設(shè)計基礎(chǔ) 第2章 通過例子學(xué)習(xí)      2.1 “Hello world”程序       2.1.1 注釋       2.1.2 庫包含       2.1.3 主程序      2.2 兩個數(shù)的加法程序       2.2.1 輸入階段       2.2.2 計算階段       2.2.3 輸出階段      2.3 有關(guān)程序設(shè)計過程的觀點      2.4 數(shù)據(jù)類型       2.4.1 浮點型數(shù)據(jù)       2.4.2 字符串類型的數(shù)據(jù)      2.5 表達(dá)式       2.5.1 常量       2.5.2 變量       2.5.3 賦值語句       2.5.4 運算符和操作數(shù)       2.5.5 整型數(shù)和浮點型數(shù)的結(jié)合       2.5.6 整數(shù)除法和求余運算符       2.5.7 優(yōu)先級       2.5.8 優(yōu)先級法則的應(yīng)用       2.5.9 類型轉(zhuǎn)換      小結(jié)      復(fù)習(xí)題      程序設(shè)計練習(xí)     第3章 問題求解      3.1 程序設(shè)計習(xí)語和范例       3.1.1 復(fù)合賦值習(xí)語       3.1.2 自增和自減運算符      3.2 解決規(guī)模稍大的問題      3.3 控制語句       3.3.1 重復(fù)N次習(xí)語       3.3.2 迭代和循環(huán)       3.3.3 下標(biāo)變量       3.3.4 初始化的重要性       3.3.5 讀入-直到-標(biāo)志習(xí)語       3.3.6 創(chuàng)造一個更實用的應(yīng)用程序       3.3.7 條件執(zhí)行和if語句      3.4 一個調(diào)試練習(xí)      3.5 格式化輸出       3.5.1 printf的格式碼       3.5.2 控制空格、對齊方式和精度      3.6 構(gòu)思一個程序       3.6.1 程序設(shè)計風(fēng)格       3.6.2 設(shè)計時考慮將來的修改       3.6.3 #define機(jī)制     小結(jié)     復(fù)習(xí)題     程序設(shè)計練習(xí)     第4章 語句形式      4.1 簡單語句       4.1.1 賦值的嵌套       4.1.2 多重賦值       4.1.3 程序塊      4.2 控制語句      4.3 布爾型數(shù)據(jù)       4.3.1 關(guān)系運算符       4.3.2 邏輯運算符       4.3.3 簡化求值      4.3.4 標(biāo)志       4.3.5 避免布爾表達(dá)式中的冗余       4.3.6 布爾計算示例      4.4 if語句       4.4.1 單行if語句       4.4.2 多行if語句       4.4.3 if/else語句       4.4.4 級聯(lián)if語句       4.4.5 ?: 運算符(可選的)       4.5 switch語句      4.6 while語句       4.6.1 while循環(huán)的應(yīng)用       4.6.2 無限循環(huán)       4.6.3 解決半途退出問題      4.7 for語句       4.7.1 嵌套的for循環(huán)       4.7.2 for和while的關(guān)系       4.7.3 for語句中浮點型數(shù)據(jù)的使用問題      小結(jié)      復(fù)習(xí)題      程序設(shè)計練習(xí)     第5章 函數(shù)      5.1 使用庫函數(shù)      5.2 函數(shù)聲明      5.3 自己編寫函數(shù)       5.3.1 return語句       5.3.2 將函數(shù)與主程序放在一起       5.3.3 包含內(nèi)部控制結(jié)構(gòu)的函數(shù)       5.3.4 返回非數(shù)字值的函數(shù)       5.3.5 謂詞函數(shù)       5.3.6 測試字符串是否相等的謂詞函數(shù)      5.4 函數(shù)調(diào)用過程機(jī)制       5.4.1 參數(shù)傳遞       5.4.2 在其他函數(shù)中調(diào)用函數(shù)      5.5 過程      5.6 逐步精化       5.6.1 從頂開始       5.6.2 實現(xiàn)PrintCalendar       5.6.3 實現(xiàn)PrintCalendarMonth       5.6.4 完成最后的片段      小結(jié)      復(fù)習(xí)題      程序設(shè)計練習(xí)     第6章 算法      6.1 測試素數(shù)       6.1.1 一個IsPrime的簡單版本       6.1.2 驗證一個策略是否表示一個算法       6.1.3 說明IsPrime算法的正確性       6.1.4 改進(jìn)算法的效率       6.1.5 在各個可選方案中選擇     6.2 計算最大公約數(shù)       6.2.1 brute-force算法       6.2.2 歐幾里德算法       6.2.3 歐幾里德算法的正確性說明(可選)       6.2.4 比較GCD算法的效率      6.3 數(shù)值算法       6.3.1 連續(xù)逼近       6.3.2 報告錯誤      6.4 級數(shù)展開       6.4.1 Zeno悖論       6.4.2 用級數(shù)展開法設(shè)計平方根函數(shù)       6.4.3 估計平方根的泰勒級數(shù)展開(可選)       6.4.4 泰勒級數(shù)近似的實現(xiàn)       6.4.5 停留在收斂半徑之內(nèi)      6.5 指定數(shù)值類型的大小       6.5.1 整數(shù)類型       6.5.2 無符號類型       6.5.3 浮點類型      小結(jié)      復(fù)習(xí)題      程序設(shè)計練習(xí)    第二部分 庫和模塊化開發(fā)……第三部分 復(fù)合數(shù)據(jù)類型附錄

媒體關(guān)注與評論

  本書是一本計算機(jī)科學(xué)的經(jīng)典教材,強(qiáng)調(diào)軟件工程和優(yōu)秀的程序設(shè)計風(fēng)格。此外,學(xué)生還可以從書中學(xué)習(xí)到ANSI C的基礎(chǔ)知識,這些內(nèi)容已經(jīng)成為計算機(jī)行業(yè)的標(biāo)準(zhǔn)。作者的寫作風(fēng)格使得書中深奧的概念變得易于理解和引人入勝。  本書集中討論庫和抽象的用法,這是當(dāng)代程序設(shè)計技術(shù)中最基本的知識。作者使用庫來隱藏C語言的復(fù)雜性,更加突出主題,使學(xué)生可以較好地掌握每一個主題的精髓。然后,進(jìn)一步給出每個庫的底層實現(xiàn),較好地展示了自身的抽象威力?! ”緯鴱幕A(chǔ)開始講起,是C語言的入門教材。本書已經(jīng)被美國斯坦福大學(xué)、哥倫比亞大學(xué)等多所大學(xué)和學(xué)院成功采用,在國內(nèi)已被上海交通大學(xué)采用,是一本適合高等院校計算機(jī)及相關(guān)專業(yè)使用的優(yōu)秀教材?! ∽g者序  隨著計算機(jī)產(chǎn)業(yè)的迅速發(fā)展,對計算機(jī)專業(yè)人才的需求也日益迫切。而程序設(shè)計是所有計算機(jī)專業(yè)人才必備的基礎(chǔ)知識和技能。俗話說“萬事開頭難”,如何使學(xué)生順利地進(jìn)入程序設(shè)計的大門,如何熟悉和精通程序設(shè)計,也是計算機(jī)專業(yè)教學(xué)的難題?! ”緯且槐居嬎銠C(jī)科學(xué)的經(jīng)典教材,是作者二十多年來從事計算機(jī)教學(xué)的經(jīng)驗的總結(jié),它提供了豐富的計算機(jī)科學(xué)的基礎(chǔ)知識和程序設(shè)計的專門知識。本書具有鮮明的特色。首先,用ANSI C作為教學(xué)語言。C語言是目前使用最廣泛的教學(xué)語言,選用C語言可以使學(xué)生畢業(yè)后很快就能投入實際工作,并為學(xué)習(xí)C++和面向?qū)ο蟮恼Z言鋪平了道路。第二,采用了基于庫函數(shù)的方法,強(qiáng)調(diào)抽象的原則。本書相當(dāng)詳細(xì)地介紹了庫和模塊化開發(fā),介紹了如何通過庫隱藏程序的復(fù)雜性,這些是現(xiàn)代程序設(shè)計的基本概念。第三,在程序設(shè)計中最重要的是從陳述問題過渡到解決問題,本書以通俗易懂的方式講述了這一過程,使學(xué)生能輕松而有趣地學(xué)習(xí)程序設(shè)計?! 〕绦蛟O(shè)計既是一門科學(xué),也是一門藝術(shù)。學(xué)習(xí)良好的程序設(shè)計需要掌握很多知識,而不只是記住一組規(guī)則。必須通過實踐以及閱讀其他程序來學(xué)習(xí)。本書包括大量的程序?qū)嵗?,這些實例說明了如何用C語句建立一個完整的程序,如何培養(yǎng)良好的程序設(shè)計風(fēng)格。每章都用豐富的復(fù)習(xí)題作為知識點的總結(jié),并包含大量的程序設(shè)計練習(xí)讓讀者自己動手做更多的程序設(shè)計項目?! ≌且驗楸緯哂械纳鲜鰞?yōu)點,我們認(rèn)為把本書譯成中文能讓更多的學(xué)生從中獲益,從而打下扎實的程序設(shè)計的基礎(chǔ)?! ⒓颖緯g工作的有翁惠玉、張冬茉、楊鑫和蔣文新,由翁惠玉對全書進(jìn)行審校。本書也是上海交通大學(xué)《程序設(shè)計》課程所選用的教材。在翻譯過程中得到了整個課程小組十多位教師的大力幫助,在此表示衷心的感謝。由于時間和水平的限制,書中難免有錯漏之處,敬請讀者指正?! ∽g者  2004年8月

圖書封面

圖書標(biāo)簽Tags

評論、評分、閱讀與下載


    C語言的科學(xué)和藝術(shù) PDF格式下載


用戶評論 (總計33條)

 
 

  •   給大一學(xué)生的c語言教學(xué)就應(yīng)該是這樣的嘛,面向問題為主線,講解了未來計算機(jī)專業(yè)學(xué)習(xí)中要面臨的很多東西。而且后面的習(xí)題也很有意思,可惜沒答案。

    我本來只當(dāng)是快速復(fù)習(xí)一下c語言,沒想到還從中學(xué)了很多東西。想想當(dāng)時學(xué)的譚的那本,實在太暈。記得當(dāng)時有個年級的學(xué)弟們竟然有一半人沒及格,不知道是不是該換教練了。本來入門的書就不需要太注重語言細(xì)節(jié),要不很難讓初學(xué)者快速把握整體框架,樹立信心,形成初步應(yīng)用能力。反正我當(dāng)時學(xué)了之后根本不知道c能用來做什么,至少書上那么多無聊的習(xí)題都不會給你什么興趣。而這本書有組織順序完全和譚的那本不同,從一個實際問題逐步展開,就象一位有經(jīng)驗的老師引領(lǐng)入門。要深入學(xué)習(xí)語言細(xì)節(jié),去找本c語言大全好了。計算機(jī)只是工具,不從解決實際問題入手,培養(yǎng)良好的編程習(xí)慣,上來就講一大堆語法細(xì)節(jié),就算當(dāng)時學(xué)的再好,放下那么多年還能記得多少?當(dāng)然只是對我這樣的一般人員,那些天生狂熱的專業(yè)人員怎么都能學(xué)好的,只是這樣的人太少。大多數(shù)人都在入門的時候被嚇暈了,被一本也不怎么樣的書和一些本來也不怎么樣的教書匠。

    很多人不滿意這本書用了自己的庫,我也是。不過我想作者的水平當(dāng)然遠(yuǎn)在我輩之上,可惜除此之外沒法把c語言講解地更通俗些吧,本來嘛人家也說c不是給初學(xué)編程的人用的。

    另外關(guān)于本書的配套資源,聯(lián)系過出版社,也沒回音。在cdsn上可以下代碼庫。還有這本書的紙質(zhì)太脆,容易碎。機(jī)械工業(yè)的書是不是都有這問題?
  •   這個才是真正的程序設(shè)計語言的教學(xué),針對問題的解決,而不是針對語法本身。
    若是早點知道這本書,我想我的C語言也就不用這么困難的學(xué)習(xí)了。
  •   學(xué)習(xí)C已經(jīng)十多年前的事情了,買這本回來就是想溫習(xí)一下。目前只看了40頁,表達(dá)的看法可能比較片面。編寫的方式與老譚那種從下而上的方式不同,先從大的面入手,整體概念把握的好,不干澀,讀起來不費勁。條理很清楚,目錄頁設(shè)計的很好,查閱起來很方便,可以作為手邊的參考書。
    需要反映的是,新書的第一頁(相當(dāng)于封面頁的復(fù)印件)有缺損。不影響閱讀,但感覺怪怪的。
  •   很好的一本書,適合初識C語言的人閱讀,對C語言所涉及的知識讓讀者有一個了解,這樣對以后所要學(xué)習(xí)的東西會是很好的指導(dǎo)。
  •   很不錯的一本書,在大學(xué)畢業(yè)兩年后又重拾C語言,這本書給了我大學(xué)時學(xué)C語言時想都沒有想過的感受,五星級推薦
  •   必須好書,庫是為這書自編的,還是慎用
  •   好書啊,這是一本C語言里難得的經(jīng)典書啊
  •   寫得很有水準(zhǔn) 相比譚那本 只講語法 不講應(yīng)用的中國特色的書籍,這門書讓你了解更多的c應(yīng)用
  •   這本書寫的不錯,值得一看!!!!!!!!!!!!!!
  •   內(nèi)容充實,無論是初學(xué)者還是有一定編程經(jīng)驗的人,這都無疑是一部相當(dāng)不錯的好書!
  •   很好的書,就是發(fā)貨慢了點,呵呵十分感謝?。?!
  •   對現(xiàn)在的我作用不大,只是偶爾翻翻,希望在經(jīng)典里有所得
  •   經(jīng)典書籍沒得說~~~~~
  •   老師推薦的書,準(zhǔn)備好好研讀。
  •   有和原書頁數(shù)的對照,一起看挺舒服~~
  •   作為學(xué)習(xí)計算機(jī)的本科生中的一員,我認(rèn)為C語言是一門非常重要的語言,是我們學(xué)習(xí)別的語言的基礎(chǔ),因此,在這個入門的階段,我們應(yīng)該考慮把一門計算機(jī)語言的原理弄明白,這是我們以后作計算機(jī)方面深入研究的要求,而本書這是這樣的一個很好的教材,我強(qiáng)烈推薦本書作為大家的C語言的入門教材,如果有條件,最好看英文版哦~~
  •   語言挺通俗易懂的。只是沒有計算機(jī)基礎(chǔ),也不知道好壞。
  •   對于初學(xué)者不太好理解.作者定義了很多庫.直接用了很多自己定義庫中的命令..對于初學(xué)者來說..很辛苦..可以結(jié)合別的書一起看.
  •   這本書確實適合學(xué)習(xí)c,書很不錯。
  •   書的確是新的,但是從封皮上沿貌似被硬紙條拉過前幾頁都被拉壞了,雖然并不影響閱讀,卻影響到了其收藏的價值,要知道這可是現(xiàn)在很難找的一本絕版好書啊
  •   發(fā)貨速度還行 內(nèi)容不錯 不過書的封面有點舊!
  •   幫同學(xué)買的,感覺還可以。
  •   容易看懂~~而且題目適中~~
  •   基礎(chǔ)內(nèi)容,翻譯版的頁面邊沿有標(biāo)明對應(yīng)的英文版的頁面。發(fā)現(xiàn)一頁中文抵得上好幾頁英文內(nèi)容。
  •   算一般,總體來說還是不錯的,當(dāng)一本教程來看還好,不過不夠細(xì)致
  •   很明顯的痕跡,在右上角,前幾頁紙都變形了。
  •   印刷有點模糊,紙張很薄,反面的字都模糊看到.
  •     本人初學(xué)者,所以比較頭疼這一點。
      把作者的頭文件都放在了編譯器的include里面,但是運行時總提示GetInteger()未定義。不知道這些.c的文件該怎么處理。
      
      本人初學(xué)者,所以比較頭疼這一點。
      把作者的頭文件都放在了編譯器的include里面,但是運行時總提示GetInteger()未定義。不知道這些.c的文件該怎么處理。
  •     哎,從這本書里才知道"庫"這回事。
      后來大學(xué)時代所有的小作業(yè)都用了書中提供的那個超小的庫來做。
      那時還不知道C++、STL,覺得那個庫簡直是世上少有,簡潔逆天啊。
      曾經(jīng)年少。
      現(xiàn)在已不是C、C++的少年,投入了Python,C#的陣營,一切只為省力。....我懶懶懶..
      
      懷念C、C++如風(fēng)般的日子。
      
      還是要推薦,初學(xué)C,這個真的是個不錯的選擇。
  •      本書的作者因為對本科生的教育做出了杰出的貢獻(xiàn)而獲得了Bing Award獎,而這本書也正體現(xiàn)了他作為一名教師,深入淺出的教學(xué)方法和易于理解又引人入勝的行文風(fēng)格。
       文中所用的例子也都非常符合本節(jié)所要講述的內(nèi)容,并且把不得以而用到的以后章節(jié)的知識以一種genlib庫的形式封裝了起來,隱藏了C的復(fù)雜性,從而避免了初學(xué)者的困惑。這樣,在讀完本書后,會發(fā)現(xiàn),我們不僅僅學(xué)到了C的知識,而且把庫的編寫方法、習(xí)慣都潛移默化的留在了心中。在書中很多地方都會有作者關(guān)于軟件工程和優(yōu)秀程序設(shè)計風(fēng)格的見解,如接口的編寫等等,都對我們打下扎實基礎(chǔ)起到了積極的作用。
       特別需要指出的一點是:這本書對于C語言中比較困難的部分:如指針、C風(fēng)格字符串、數(shù)組和指針的關(guān)系、數(shù)組和字符串的關(guān)系,都有“一針見血”式的透徹分析,使初學(xué)者能夠容易的明白其中的知識,也使有經(jīng)驗的讀者能夠抓住重點理解更加深入。對于這些比較精髓的知識,特別是指針和數(shù)組名的區(qū)別,會在文中多次被提醒:分配內(nèi)存、左值!
       初學(xué)者在編程中,很少接觸文件的操作,但是文件操作非常重要,無論初學(xué)者還是有一定經(jīng)驗的讀者都應(yīng)該對C標(biāo)準(zhǔn)庫中的文件函數(shù)熟練的掌握,這本書對文件的介紹會讓你有系統(tǒng)理解,而且對使用這些函數(shù)時常會犯的錯誤有先知一般的預(yù)見,從而避免了初學(xué)者遇到問題調(diào)試時的辛苦周折。
      
       如果非要說說這本書的缺點,我想就是,沒有把genlib庫的代碼刻成cd附在書里,這多少會給初學(xué)者上機(jī)調(diào)試造成了不便,好在網(wǎng)上有這本書中的源代碼和其他資源,而且書后也有完整的代碼。其實換種思路想,這也可以算是一件好事,國內(nèi)學(xué)生的動手能力差,那就應(yīng)該在敲代碼的同時把她理解了吧,呵呵,有點自虐傾向-_-b
      
       最后,無論如何,如果你想學(xué)習(xí)C語言,那么看看這本書吧,她很好的?。ǘ也槐卦诤跏裁础癈語言已死”這樣的胡說八道)作為一種應(yīng)用最廣的面向過程的語言,她會讓你對計算機(jī)程序設(shè)計形成一種必要的經(jīng)典的思考模式!
  •   好,真是沒得話說。
  •   所有目前從事高級語言編程開發(fā)都適合熟讀的一本書。真正融匯貫通這本書后,再看其他的書和了解其他的知識就會一目了然。
  •   幾乎零基礎(chǔ)能不能從這本初學(xué)呢?
 

250萬本中文圖書簡介、評論、評分,PDF格式免費下載。 第一圖書網(wǎng) 手機(jī)版

京ICP備13047387號-7