C語言的科學和藝術

C語言的科學和藝術 pdf epub mobi txt 電子書 下載2025

出版者:機械工業齣版社
作者:[美] 羅伯茨
出品人:
頁數:538
译者:翁惠玉
出版時間:2011-6
價格:79.00元
裝幀:平裝
isbn號碼:9787111347750
叢書系列:C語言經典譯叢
圖書標籤:
  • C
  • C語言
  • 編程
  • 程序設計
  • 計算機
  • 預購
  • 編程語言
  • 程序語言
  • C語言
  • 編程
  • 科學
  • 藝術
  • 計算機
  • 基礎
  • 學習
  • 算法
  • 軟件
  • 開發
想要找書就要到 小美書屋
立刻按 ctrl+D收藏本頁
你會得到大驚喜!!

具體描述

《C語言的科學和藝術》是一本C語言經典教材,強調軟件工程和優秀的程序設計風格。此外,讀者還可以從書中學習到ANSIC的基礎知識,這些內容已經成為計算機行業的標準。作者的寫作風格使得書中深奧的概念變得易於理解和引人入勝。

《C語言的科學和藝術》集中討論庫和抽象的用法,這是當代程序設計技術中最基本的知識。作者使用庫來隱藏C語言的復雜性,更加突齣主題,使讀者可以較好地掌握每一個主題的精髓。然後,進一步給齣每個庫的底層實現,較好地展示瞭庫自身的抽象威力。

著者簡介

作者:(美國)羅伯茨(Eric S.Roberts) 譯者:翁惠玉 張鼕茉 楊鑫 等

羅伯茨(Eric S. Roberts),美國斯坦福大學計算機科學係教授,並擔任係裏主管教學事務的副主任,同時他還是工學院的Char les Simo rlyi講席教授。他於1980年在哈佛大學應用數學係獲得博士學位,並曾在DEC公司位於加州Palo Alto的係統研究中心做過5年的研究工作。作為一位獲得高度評價的教育工作者,Roberts還因其在本科生教學中的傑齣貢獻而獲得瞭1993年的Bing Award奬。

圖書目錄

譯者序
前言
第1章 概述
1.1 計算簡史
1.2 什麼是計算機科學
1.3 計算機硬件簡介
1.3.1 cpu
1.3.2 內存
1.3.3 輔助存儲器
1.3.4 i/o設備
1.4 算法
1.5 程序設計語言和編譯
1.6 編程錯誤和調試
1.7 軟件維護
1.8 軟件工程的重要性
1.9 關於c程序設計語言的一些思考
小結
復習題
第一部分 c語言程序設計基礎
第2章 通過例子學習
2.1 “hello world”程序
2.1.1 注釋
2.1.2 庫包含
2.1.3 主程序
2.2 兩個數的加法程序
2.2.1 輸入階段
2.2.2 計算階段
2.2.3 輸齣階段
2.3 有關程序設計過程的觀點
2.4 數據類型
2.4.1 浮點型數據
2.4.2 字符串類型的數據
2.5 錶達式
2.5.1 常量
2.5.2 變量
2.5.3 賦值語句
2.5.4 運算符和操作數
2.5.5 整型數和浮點型數的結閤
2.5.6 整數除法和求餘運算符
2.5.7 優先級
2.5.8 優先級法則的應用
2.5.9 類型轉換
小結
復習題
程序設計練習
第3章 問題求解
3.1 程序設計習語和範例
3.1.1 復閤賦值習語
3.1.2 自增和自減運算符
3.2 解決規模稍大的問題
3.3 控製語句
3.3.1 重復n次習語
3.3.2 迭代和循環
3.3.3 下標變量
3.3.4 初始化的重要性
3.3.5 讀入-直到-標誌習語
3.3.6 創造一個更實用的應用程序
3.3.7 條件執行和if語句
3.4 一個調試練習
3.5 格式化輸齣
3.5.1 printf的格式碼
3.5.2 控製空格、對齊方式和精度
3.6 構思一個程序
3.6.1 程序設計風格
3.6.2 設計時考慮將來的修改
3.6.3 #define機製
小結
復習題
程序設計練習
第4章 語句形式
4.1 簡單語句
4.1.1 賦值的嵌套
4.1.2 多重賦值
4.1.3 程序塊
4.2 控製語句
4.3 布爾型數據
4.3.1 關係運算符
4.3.2 邏輯運算符
4.3.3 簡化求值
4.3.4 標誌
4.3.5 避免布爾錶達式中的冗餘
4.3.6 布爾計算示例
4.4 if語句
4.4.1 單行if語句
4.4.2 多行if語句
4.4.3 if/else語句
4.4.4 級聯if語句
4.4.5 ?: 運算符(可選的)
4.5 switch語句
4.6 while語句
4.6.1 while循環的應用
4.6.2 無限循環
4.6.3 解決半途退齣問題
4.7 for語句
4.7.1 嵌套的for循環
4.7.2 for和while的關係
4.7.3 for語句中浮點型數據的使用問題
小結
復習題
程序設計練習
第5章 函數
5.1 使用庫函數
5.2 函數聲明
5.3 自己編寫函數
5.3.1 return語句
5.3.2 將函數與主程序放在一起
5.3.3 包含內部控製結構的函數
5.3.4 返迴非數字值的函數
5.3.5 謂詞函數
5.3.6 測試字符串是否相等的謂詞函數
5.4 函數調用過程機製
5.4.1 參數傳遞
5.4.2 在其他函數中調用函數
5.5 過程
5.6 逐步精化
5.6.1 從頂開始
5.6.2 實現printcalendar
5.6.3 實現printcalendarmonth
5.6.4 完成最後的片段
小結
復習題
程序設計練習
第6章 算法
6.1 測試素數
6.1.1 一個isprime的簡單版本
6.1.2 驗證一個策略是否錶示一個算法
6.1.3 說明isprime算法的正確性
6.1.4 改進算法的效率
6.1.5 在各個可選方案中選擇
6.2 計算最大公約數
6.2.1 brute-force算法
6.2.2 歐幾裏得算法
6.2.3 歐幾裏得算法的正確性說明(可選)
6.2.4 比較gcd算法的效率
6.3 數值算法
6.3.1 連續逼近
6.3.2 報告錯誤
6.4 級數展開
6.4.1 zeno悖論
6.4.2 用級數展開法設計平方根函數
6.4.3 估計平方根的泰勒級數展開 (可選)
6.4.4 泰勒級數近似的實現
6.4.5 停留在收斂半徑之內
6.5 指定數值類型的大小
6.5.1 整數類型
6.5.2 無符號類型
6.5.3 浮點類型
小結
復習題
程序設計練習
第二部分 庫和模塊化開發
第7章 庫和接口:一個簡單的圖形庫
7.1 接口的概念
7.2 圖形庫介紹
7.2.1 graphics.h的基本模型
7.2.2 graphics.h接口的函數
7.2.3 軟件包初始化
7.2.4 畫直綫
7.2.5 畫圓和弧
7.2.6 獲取有關圖形窗口的信息
7.3 建立自己的工具
7.3.1 定義drawbox
7.3.2 定義drawcenteredcircle
7.3.3 絕對坐標和相對坐標間的切換
7.3.4 定義過程的好處
7.4 解決一個較大的問題
7.4.1 使用逐步精化
7.4.2 實現drawhouse過程
7.4.3 尋找共同的模式
7.4.4 結束分解
小結
復習題
程序設計練習
第8章 設計接口:一個隨機數庫
8.1 接口設計
8.1.1 同一主題的重要性
8.1.2 簡單性和信息隱藏的原則
8.1.3 滿足客戶的需要
8.1.4 通用工具的優勢
8.1.5 穩定性的價值
8.2 用計算機生成隨機數
8.2.1 確定行為與非確定行為
8.2.2 隨機數和僞隨機數
8.2.3 ansi c中生成僞隨機數
8.2.4 改變隨機數的範圍
8.2.5 將此問題通用化
8.3 在庫中保存工具
8.3.1 接口的內容
8.3.2 寫random.h接口
8.3.3 random.c的實現
8.3.4 構造客戶程序
8.3.5 初始化隨機數發生器
8.4 評價random.h接口的設計
8.4.1 産生隨機實數
8.4.2 模擬一個概率事件
8.4.3 在接口中包含頭文件
8.4.4 完成隨機數軟件包的實現
8.5 使用隨機數軟件包
小結
復習題
程序設計練習
第9章 字符串和字符
9.1 枚舉的原理
9.1.1 在機器內部錶示枚舉類型
9.1.2 將枚舉類型錶示為整數
9.1.3 定義新的枚舉類型
9.1.4 枚舉類型的操作
9.1.5 標量類型
9.2 字符
9.2.1 數據類型char
9.2.2 ascii代碼
9.2.3 字符常量
9.2.4 ascii代碼方案的重要特性
9.2.5 特殊字符
9.2.6 字符運算
9.2.7 ctype.h接口
9.2.8 涉及字符的控製語句
9.2.9 字符的輸入輸齣
9.3 字符串作為抽象數據類型
9.3.1 分層抽象
9.3.2 抽象類型的概念
9.4 strlib.h接口
9.4.1 確定字符串的長度
9.4.2 從一個字符串中選擇字符
9.4.3 連接
9.4.4 將字符轉換為字符串
9.4.5 抽取字符串的一部分
9.4.6 比較兩個字符串
9.4.7 在一個字符串內搜索
9.4.8 大小寫轉換
9.4.9 數值轉換
9.4.10 效率和strlib.h庫
小結
復習題
程序設計練習
第10章 模塊化開發
10.1 pig latin-一個模塊化開發的 案例研究
10.1.1 應用自頂嚮下的設計
10.1.2 使用僞代碼
10.1.3 實現translateline
10.1.4 考慮空格和標點符號的問題
10.1.5 精化單詞的定義
10.1.6 設計記號掃描器
10.1.7 完成translateline的實現
10.1.8 定義掃描器模塊接口
10.2 在模塊中維護內部狀態
10.2.1 全局變量
10.2.2 使用全局變量的危險性
10.2.3 保持變量的模塊私有化
10.2.4 初始化全局變量
10.2.5 私有函數
10.3 實現掃描器抽象
小結
復習題
程序設計練習
第三部分 復閤數據類型
第11章 數組
11.1 數組
11.1.1 數組聲明
11.1.2 數組選擇
11.1.3 一個簡單的數組實例
11.1.4 改變下標值的範圍
11.2 數據的內部錶示法
11.2.1 比特、字節和字
11.2.2 內存地址
11.2.3 運算符sizeof
11.2.4 變量的內存分配
11.2.5 引用超齣數組範圍的元素
11.3 數組作為參數進行傳遞
11.3.1 元素個數的通用化
11.3.2 數組參數傳遞機製
11.3.3 實現函數printintegerarray和getintegerarray
11.3.4 實現函數reverseintegerarray
11.3.5 實現函數swapintegerelements
11.4 使用數組製作錶格
11.5 數組的靜態初始化
11.5.1 自動確定數組大小
11.5.2 確定初始化數組的大小
11.5.3 初始化數組和標量類型
11.6 多維數組
11.6.1 嚮函數傳送多維數組
11.6.2 初始化多維數組
小結
復習題
程序設計練習
第12章 查找和排序
12.1 查找
12.1.1 在整數數組中查找
12.1.2 關於查找的另一個更復雜 的例子
12.1.3 綫性查找
12.1.4 二分查找
12.1.5 查找算法的相對效率
12.2 排序
12.2.1 對一個整數數組排序
12.2.2 選擇排序算法
12.2.3 選擇排序效率的評估
12.2.4 測試程序的運行時間
12.2.5 選擇排序的算法分析
小結
復習題
程序設計練習
第13章 指針
13.1 將地址作為數據值
13.2 c語言的指針操作
13.2.1 在c語言中聲明指針變量
13.2.2 基本的指針操作
13.2.3 特殊指針null
13.3 通過引用傳遞參數
13.3.1 設計函數swapinteger
13.3.2 用引用調用返迴多個結果
13.3.3 過度使用引用調用的危險
13.4 指針和數組
13.4.1 指針運算
13.4.2 運算符++和--的新作用
13.4.3 指針的自增和自減
13.4.4 指針和數組的關係
13.5 動態分配
13.5.1 void *類型
13.5.2 動態數組
13.5.3 查找malloc中的錯誤
13.5.4 釋放內存
小結
復習題
程序設計練習
第14章 再論字符串
14.1 string類型的概念錶示
14.1.1 字符串作為數組
14.1.2 字符串作為指針
14.1.3 字符串作為抽象類型
14.1.4 字符串參數
14.1.5 字符串變量
14.1.6 指針和數組變量間的區彆
14.1.7 決定字符串的錶示方法
14.2 ansi字符串庫
14.2.1 strcpy函數
14.2.2 strncpy函數
14.2.3 strcat和strncat函數
14.2.4 strlen、strcmp和strncmp函數
14.2.5 strchr、strrchr和strstr函數
14.2.6 ansi字符串函數的應用
14.3 strlib庫的實現
14.3.1 實現轉換函數
14.3.2 strlib分配函數的實現
小結
復習題
程序設計練習
第15章 文件
15.1 文本文件
15.2 c語言中文件的使用
15.2.1 聲明file*類型的變量
15.2.2 打開文件
15.2.3 執行i/o操作
15.2.4 關閉文件
15.2.5 標準文件
15.3 字符i/o
15.3.1 文件更新
15.3.2 在輸入文件中重新讀取字符
15.4 麵嚮行的i/o
15.5 格式化i/o
15.5.1 printf的三種形式
15.5.2 scanf函數
15.5.3 用scanf讀入字符串
15.5.4 格式化i/o的一個實例
15.5.5 使用scanf的局限
小結
復習題
程序設計練習
第16章 記錄
16.1 數據記錄的概念
16.2 記錄在c語言中的使用
16.2.1 定義一個結構類型
16.2.2 聲明結構變量
16.2.3 記錄選擇
16.2.4 記錄初始化
16.2.5 簡單記錄
16.3 數組與記錄的結閤
16.4 記錄的指針
16.4.1 定義一個指嚮記錄類型的指針
16.4.2 為記錄數據分配空間
16.4.3 對記錄指針進行操作
16.5 創建記錄的數據庫
16.5.1 創建員工信息數據庫
16.5.2 數據庫的使用
16.6 基於記錄的應用程序設計
16.6.1 使用數據庫的重要性
16.6.2 問題的框架
16.6.3 設計內部錶示
16.6.4 設計外部結構
16.6.5 程序代碼
16.6.6 數據驅動設計方法的重要性
小結
復習題
程序設計練習
第17章 深入學習
17.1 遞歸
17.1.1 遞歸的簡單說明
17.1.2 factorial函數
17.1.3 遞歸信任
17.1.4 遞歸範例
17.1.5 排列的生成
17.1.6 用遞歸的思想思考
17.2 抽象數據類型
17.2.1 隊列抽象
17.2.2 以隊列抽象錶示類型
17.2.3 queue.h 接口
17.2.4 實現隊列抽象
17.2.5 隊列抽象的另一種實現方法
17.3 算法分析
17.3.1 評估算法效率
17.3.2 標記
17.3.3 再看選擇排序
17.3.4 分而治之策略
17.3.5 閤並兩個數組
17.3.6 閤並排序算法
17.3.7 閤並排序的計算復雜性
17.3.8 比較平方復雜性與nlogn復雜性的性能
小結
復習題
程序設計練習
附 錄
附錄a c語言的語法和結構總結
附錄b 庫源代碼
· · · · · · (收起)

讀後感

評分

本人初学者,所以比较头疼这一点。 把作者的头文件都放在了编译器的include里面,但是运行时总提示GetInteger()未定义。不知道这些.c的文件该怎么处理。 本人初学者,所以比较头疼这一点。 把作者的头文件都放在了编译器的include里面,但是运行时总提示GetInteger()未定义。...  

評分

本人初学者,所以比较头疼这一点。 把作者的头文件都放在了编译器的include里面,但是运行时总提示GetInteger()未定义。不知道这些.c的文件该怎么处理。 本人初学者,所以比较头疼这一点。 把作者的头文件都放在了编译器的include里面,但是运行时总提示GetInteger()未定义。...  

評分

这本书是国内外几个著名大学的C语言课本,除了C语言的基本语法外,着重引导读者开始使用一个语言编写程序的过程。 不过如果你已经有了较多开发经验,那还是不要看这本书吧,呵呵。 优点 1. 深入浅出,易学好懂; 2. 着重引导了程序开发的基本规范和思路,对初学者非常重要; ...  

評分

本人初学者,所以比较头疼这一点。 把作者的头文件都放在了编译器的include里面,但是运行时总提示GetInteger()未定义。不知道这些.c的文件该怎么处理。 本人初学者,所以比较头疼这一点。 把作者的头文件都放在了编译器的include里面,但是运行时总提示GetInteger()未定义。...  

評分

哎,从这本书里才知道"库"这回事。 后来大学时代所有的小作业都用了书中提供的那个超小的库来做。 那时还不知道C++、STL,觉得那个库简直是世上少有,简洁逆天啊。 曾经年少。 现在已不是C、C++的少年,投入了Python,C#的阵营,一切只为省力。....我懒懒懒.. 怀念C、C++如风...  

用戶評價

评分

入門很好

评分

反正在我看譚浩強的教材覺得特彆痛苦的時候,拿到這本書讓我覺得舒坦瞭很多。先認同科學與藝術,再去認同C語言,最近把自己埋在這個裏麵,平靜不少。

评分

反正在我看譚浩強的教材覺得特彆痛苦的時候,拿到這本書讓我覺得舒坦瞭很多。先認同科學與藝術,再去認同C語言,最近把自己埋在這個裏麵,平靜不少。

评分

特彆棒,不過例子運行不瞭

评分

c 語言,講的比較簡單,適閤入門;用的不是標準庫函數。

本站所有內容均為互聯網搜索引擎提供的公開搜索信息,本站不存儲任何數據與內容,任何內容與數據均與本站無關,如有需要請聯繫相關搜索引擎包括但不限於百度google,bing,sogou

© 2025 book.quotespace.org All Rights Reserved. 小美書屋 版权所有