出版時間:2010-3 出版社:人民郵電出版社 作者:Jeri R.Hanly,Elliot B.Koffman 頁數(shù):572 譯者:潘蓉,孟廣蘭,鄭海紅,萬波
Tag標(biāo)簽:無
前言
本書教給讀者怎樣用訓(xùn)練有素的方法來解決問題,并應(yīng)用廣為接受的軟件工程方法將程序解決方案設(shè)計為內(nèi)聚的、可讀的、可復(fù)用的模塊。本書將ANSIC的一個子集作為這些模塊的實(shí)現(xiàn)工具進(jìn)行介紹,ANSIC是一種標(biāo)準(zhǔn)化的、在行業(yè)中廣泛使用的編程語言,功能強(qiáng)大,可移植性好。本書可以用于程序設(shè)計方法的第一門課程,因?yàn)樗灰笥嬎銠C(jī)和程序設(shè)計的預(yù)備知識;此外,書中選擇了大量實(shí)例研究和練習(xí),教師完全可以用本書為計算機(jī)科學(xué)專業(yè)或其他專業(yè)的學(xué)生開設(shè)一門導(dǎo)論性的C語言程序設(shè)計課程。本版的更新本版中增加了新的第0章,這一章向剛?cè)腴T的學(xué)生介紹了計算機(jī)領(lǐng)域的構(gòu)成和各方向的發(fā)展機(jī)會。我們希望這一章引導(dǎo)學(xué)生展望未來世界,激勵他們認(rèn)真考慮選修計算機(jī)方向。另外,第1章中硬件方面的內(nèi)容已經(jīng)有了重大的更新,涵蓋了自上一版以來的技術(shù)最新發(fā)展。最后,我還修訂和增強(qiáng)了實(shí)例研究和章末項(xiàng)目中的許多地方,以便給讀者一個全新的感受。用C來教授程序開發(fā)本書有兩個目標(biāo),講授程序設(shè)計以及講授c,這在某些人看來可能是矛盾的。很多人認(rèn)為應(yīng)該先用其他更加友好的語言學(xué)習(xí)編程基礎(chǔ)之后再學(xué)習(xí)C語言。c語言之所以被認(rèn)為非常難,可以追溯到它的歷史。C語言是作為編寫UNIX操作系統(tǒng)的工具而設(shè)計的,它最初的使用者就是理解操作系統(tǒng)和底層機(jī)器復(fù)雜性的程序員,這些使用者認(rèn)為在其程序中利用這些底層知識很自然。所以,許多講授c語言的教材展示給學(xué)生的程序示例都需要理解機(jī)器概念就不足為奇了,盡管這些概念并沒有出現(xiàn)在標(biāo)準(zhǔn)的導(dǎo)論性程序設(shè)計課程的大綱中。本書之所以能既講授程序開發(fā)的正確方法又講授ANSIC語言,是因?yàn)槲覀冞x擇前者作為最主要的目標(biāo)。有人可能會擔(dān)心這種選擇會弱化對ANSIC的闡述。事實(shí)正相反,我們發(fā)現(xiàn)將程序設(shè)計的概念和這些概念在C中的實(shí)現(xiàn)相結(jié)合,能夠清晰地展示C作為一種高級編程語言所具備的威力,而這一點(diǎn)在那些以介紹ANSIC所有內(nèi)容為主的教科書中往往是很模糊的。雖然與討論C語言特征相比我們更強(qiáng)調(diào)程序設(shè)計的方法,但本書仍然全面講述了C的基本結(jié)構(gòu)。指針與本書的組織書中C語言各主題出現(xiàn)的順序是按照我們理解的初級編程者的需要確定的,而不是由C語言的結(jié)構(gòu)決定的。讀者會驚奇地發(fā)現(xiàn)沒有標(biāo)題為“指針”的章節(jié)。這是因?yàn)槲覀儗當(dāng)作一種高級語言來討論,而并不是忽視了指針在C語言中的重要作用。其他高級語言在輸出參數(shù)和數(shù)組方面具有獨(dú)立的語言結(jié)構(gòu),但c語言將這些概念包裝在它的指針概念中,這明顯增加了學(xué)習(xí)的難度。本書在涉及的地方分散地討論指針,從而簡化了學(xué)習(xí)過程,使得學(xué)生能夠每次吸收一點(diǎn)指針用法的精髓。這種方法便于用傳統(tǒng)的高級語言術(shù)語(輸出參數(shù)、數(shù)組、數(shù)組下標(biāo)和字符串)來表示基本概念,方便了沒有匯編語言背景的學(xué)生掌握指針的多種用法。
內(nèi)容概要
本書是C語言的經(jīng)典教材。它不僅深入淺出地講述了實(shí)際開發(fā)中最需要的C語言基礎(chǔ)知識,還充分介紹了動態(tài)數(shù)據(jù)結(jié)構(gòu)和多進(jìn)程等高級內(nèi)容,而且同時闡述了程序設(shè)計思想。本書著眼于提高讀者的問題解決能力和實(shí)際編程能力,使其初步掌握當(dāng)前軟件行業(yè)公認(rèn)的程序設(shè)計風(fēng)格和編程實(shí)踐。書中對指針的講解通俗易懂,降低了這一難點(diǎn)的學(xué)習(xí)門檻。此外,本書配有各種層次的習(xí)題和示例,而且每一章都有一個或多個來自實(shí)際生活的實(shí)例研究?! ”緯m合作為計算機(jī)科學(xué)等專業(yè)本科生C語言程序設(shè)計課程的教材,對已有一定經(jīng)驗(yàn)的技術(shù)人員也是不可多得的參考書。
作者簡介
作者:(美國)漢利(Jeri R.Hanly) (美國)科夫曼(Elliot B.Koffman) 譯者:潘蓉 鄭海紅 孟廣蘭 等Jeri R.Hanly世界知名的計算機(jī)科學(xué)教育家。曾多年任教于懷俄明大學(xué)和霍華德大學(xué)計算機(jī)科學(xué)系。她出版過多部著作,并被譯為多種文字,其讀者遍及全世界。Elliot B.Koffman美國一流的計算機(jī)科學(xué)教育家。坦普爾大學(xué)計算機(jī)和信息科學(xué)系教授,有近40年的教學(xué)經(jīng)驗(yàn)。他曾經(jīng)擔(dān)任.ACM’task Force的主席。已出版著作數(shù)十部,其中包括多種非常成功的編程語言教材。譯者簡介:潘蓉,西安電子科技大學(xué)計算機(jī)學(xué)院講師、博士。研究方向?yàn)閳D形圖像處理、數(shù)字水印技術(shù)等,主要教授面向?qū)ο蟪绦蛟O(shè)計和網(wǎng)絡(luò)應(yīng)用程序設(shè)計等課程,在核心期刊及會議上已發(fā)表100余篇論文。鄭海紅,西安電子科技大學(xué)計算機(jī)學(xué)院副教授、博士。研究方向?yàn)橛嬎銠C(jī)圖形圖像處理,曾參與武器裝備預(yù)研基金、陜西省自然科學(xué)基金等項(xiàng)目,并在核心期刊、國際會議上發(fā)表論文10余篇。承擔(dān)的教學(xué)課程有離散數(shù)學(xué)、人工智能等。孟廣蘭,西安電子科技大學(xué)人文學(xué)院講師。研究方向?yàn)橥鈬Z言學(xué)與應(yīng)用語言學(xué),對科技英語寫作和翻譯有較深入的研究。萬波,西安電子科技大學(xué)計算機(jī)學(xué)院副教授、博士。研究方向?yàn)橛嬎銠C(jī)系統(tǒng)結(jié)構(gòu)、圖形圖像處理,曾參與及主持多項(xiàng)武器裝備預(yù)研基金、陜西省自然科學(xué)基金等項(xiàng)目。目前為計算機(jī)學(xué)院程序設(shè)計課程組組長,承擔(dān)的教學(xué)課程有圖形學(xué)、Java程序設(shè)計、C++程序設(shè)計、網(wǎng)絡(luò)應(yīng)用程序設(shè)計等,其中c++程序設(shè)計是陜西省精品課程。
書籍目錄
第0章 計算機(jī)科學(xué)的職業(yè)之路 引言 1.1 為什么選擇計算機(jī)科學(xué)領(lǐng)域 1.1.1 將計算機(jī)科學(xué)作為專業(yè)的理由 1.1.2 計算機(jī)科學(xué)家的特質(zhì) 1.2 大學(xué)經(jīng)歷:可選的計算機(jī)學(xué)科和專業(yè) 1.2.1 計算機(jī)科學(xué) 1.2.2 計算機(jī)工程 1.2.3 信息系統(tǒng) 1.2.4 信息技術(shù) 1.2.5 軟件工程 1.2.6 交叉學(xué)科 1.3 就業(yè)機(jī)會 1.3.1 美國和全世界的需求 1.3.2 非代表性群體的需求 1.3.3 新職業(yè)持續(xù)出現(xiàn) 第1章 計算機(jī)與程序設(shè)計概述 1.1 電子計算機(jī)的過去和現(xiàn)在 1.2 計算機(jī)硬件 1.2.1 存儲器 1.2.2 中央處理器 1.2.3 輸入/輸出設(shè)備 1.2.4 計算機(jī)網(wǎng)絡(luò) 1.3 計算機(jī)軟件 1.3.1 操作系統(tǒng) 1.3.2 應(yīng)用軟件 1.3.3 計算機(jī)語言 1.3.4 執(zhí)行程序 1.4 軟件開發(fā)方法 1.4.1 軟件開發(fā)方法 1.4.2 注意:失敗是編程過程的一部分 1.5 應(yīng)用軟件開發(fā)方法 實(shí)例研究 英里到公里的轉(zhuǎn)換 復(fù)習(xí) 快速測試 快速測試答案 復(fù)習(xí)題 第2章 C概述 2.1 C語言要素 2.1.1 預(yù)處理指令 2.1.2 預(yù)處理指令的語法展示 2.1.3 main函數(shù) 2.1.4 保留字 2.1.5 標(biāo)準(zhǔn)標(biāo)識符 2.1.6 用戶定義的標(biāo)識符 2.1.7 大寫字母和小寫字母 2.1.8 程序風(fēng)格之選擇標(biāo)識符名稱 2.2 變量聲明和數(shù)據(jù)類型 2.2.1 變量聲明 2.2.2 數(shù)據(jù)類型 2.3 可執(zhí)行語句 2.3.1 內(nèi)存中的程序 2.3.2 賦值語句 2.3.3 輸入/輸出操作和函數(shù) 2.3.4 printf函數(shù) 2.3.5 scanf函數(shù) 2.3.6 return語句 2.4 C程序的一般形式 2.4.1 程序風(fēng)格之程序中的空格 2.4.2 程序的注釋 2.4.3 程序風(fēng)格之使用注釋 2.5 算術(shù)表達(dá)式 2.5.1 運(yùn)算符/和% 2.5.2 表達(dá)式的數(shù)據(jù)類型 2.5.3 混合類型賦值語句 2.5.4 強(qiáng)制類型轉(zhuǎn)換 2.5.5 具有多個運(yùn)算符的表達(dá)式 2.5.6 用C語言編寫數(shù)學(xué)公式 實(shí)例研究 超市硬幣處理機(jī) 2.6 在程序輸出中格式化數(shù)值 2.6.1 格式化int型值 2.6.2 格式化double型值 2.6.3 程序風(fēng)格之消除前導(dǎo)空白 2.7 交互模式、批處理模式和數(shù)據(jù)文件 2.7.1 輸入重定向 2.7.2 程序風(fēng)格之回顯與提示符 2.7.3 輸出重定向 2.7.4 程序控制的輸入和輸出文件 2.8 常見編程錯誤 2.8.1 語法錯誤 2.8.2 運(yùn)行時錯誤 2.8.3 未檢測到的錯誤 2.8.4 邏輯錯誤 復(fù)習(xí) 快速測試 快速測試答案 復(fù)習(xí)題 程序設(shè)計項(xiàng)目 第3章 函數(shù)的自頂向下設(shè)計 3.1 利用已有信息編程 實(shí)例研究 求圓的面積和周長 實(shí)例研究 計算一批墊圈的重量 3.2 庫函數(shù) 3.2.1 預(yù)定義函數(shù)和代碼復(fù)用 3.2.2 使用灰色區(qū)分新結(jié)構(gòu) 3.2.3 C庫函數(shù) 3.2.4 本節(jié)目標(biāo) 3.3 自頂向下設(shè)計和結(jié)構(gòu)圖 實(shí)例研究 畫簡單的圖形 3.4 無參函數(shù) 3.4.1 函數(shù)原型 3.4.2 函數(shù)定義 3.4.3 程序中函數(shù)的位置 3.4.4 程序風(fēng)格之在含有函數(shù)的程序中使用注釋 3.4.5 函數(shù)子程序和主函數(shù)的執(zhí)行順序 3.4.6 使用函數(shù)子程序的優(yōu)點(diǎn) 3.4.7 顯示用戶指令 3.5 帶輸入?yún)?shù)的函數(shù) 3.5.1 帶輸入?yún)?shù)的void函數(shù) 3.5.2 帶輸入?yún)?shù)和單一結(jié)果的函數(shù) 3.5.3 程序風(fēng)格之函數(shù)接口注釋 3.5.4 帶多個參數(shù)的函數(shù) 3.5.5 參數(shù)表一致性 3.5.6 函數(shù)數(shù)據(jù)區(qū) 3.5.7 使用驅(qū)動測試函數(shù) 3.6 常見編程錯誤 復(fù)習(xí) 快速測試 快速測試答案 復(fù)習(xí)題 程序設(shè)計項(xiàng)目 第4章 選擇結(jié)構(gòu):if語句和switch語句 4.1 控制結(jié)構(gòu) 4.2 條件 4.2.1 關(guān)系運(yùn)算符和判等運(yùn)算符 4.2.2 邏輯運(yùn)算符 4.2.3 運(yùn)算符優(yōu)先級 4.2.4 短路求值 4.2.5 用C語言表示條件 4.2.6 比較字符 4.2.7 邏輯賦值 4.2.8 條件取反 4.3 if語句 4.3.1 有兩個選項(xiàng)的if語句 4.3.2 只有一個選項(xiàng)的if語句 4.3.3 比較一個選項(xiàng)的if語句和兩個選項(xiàng)的if語句 4.3.4 程序風(fēng)格之if語句的格式 4.4 具有復(fù)合語句的if語句 4.4.1 程序風(fēng)格之編寫具有復(fù)合語句的if語句 4.4.2 跟蹤if語句 4.5 算法中的決策步驟 實(shí)例研究 水費(fèi)問題 4.5.1 程序風(fēng)格之在函數(shù)中使用一致的名稱 4.5.2 程序風(fēng)格之內(nèi)聚函數(shù) 4.5.3 程序風(fēng)格之使用常量宏來增強(qiáng)可讀性和易維護(hù)性 4.6 解決更多問題 4.6.1 結(jié)構(gòu)圖中的數(shù)據(jù)流信息 4.6.2 使用函數(shù)子程序修改程序 實(shí)例研究 具有節(jié)約需求的水費(fèi)問題 4.7 嵌套if語句和多選項(xiàng)決策 4.7.1 比較嵌套if和if序列 4.7.2 嵌套if的多選項(xiàng)決策形式 4.7.3 多選項(xiàng)決策中條件的順序 4.7.4 程序風(fēng)格之確認(rèn)變量的值 4.7.5 具有多個變量的嵌套if語句 4.8 switch語句 4.9 常見編程錯誤 復(fù)習(xí) 快速測試 快速測試答案 復(fù)習(xí)題 程序設(shè)計項(xiàng)目 第5章 重復(fù)和循環(huán)語句 5.1 程序中的重復(fù) 5.2 計數(shù)循環(huán)和while語句 5.3 在循環(huán)中計算和或者乘積 5.3.1 程序風(fēng)格之編寫通用循環(huán) 5.3.2 計算一列數(shù)的乘積 5.3.3 復(fù)合賦值運(yùn)算符 5.4 for語句 5.4.1 程序風(fēng)格之格式化for語句 5.4.2 自增和自減運(yùn)算符 5.4.3 步長非1的自增和自減 5.4.4 顯示值構(gòu)成的表格 5.5 條件循環(huán) 5.6 循環(huán)設(shè)計 5.6.1 標(biāo)記控制循環(huán) 5.6.2 使用for語句實(shí)現(xiàn)標(biāo)記循環(huán) 5.6.3 文件結(jié)束控制循環(huán) 5.6.4 錯誤數(shù)據(jù)上的無限循環(huán) 5.7 嵌套循環(huán) 5.8 do-while語句和標(biāo)志控制循環(huán) 5.9 問題求解示例 實(shí)例研究 太陽能加熱房的采暖面積 5.10 如何調(diào)試和測試程序 5.10.1 使用調(diào)試器程序 5.10.2 不使用調(diào)試器進(jìn)行調(diào)試 5.10.3 循環(huán)次數(shù)差1的錯誤 5.10.4 測試 5.11 常見編程錯誤 復(fù)習(xí) 快速測試 快速測試答案 復(fù)習(xí)題 程序設(shè)計項(xiàng)目 第6章 模塊化編程 6.1 帶簡單輸出參數(shù)的函數(shù) 6.2 帶輸入輸出參數(shù)函數(shù)的多次調(diào)用 6.3 名字的作用域 6.4 輸出形參作為實(shí)參變量 6.5 由多個函數(shù)構(gòu)成的程序 實(shí)例研究 簡分?jǐn)?shù)的算術(shù)運(yùn)算 6.6 程序系統(tǒng)的調(diào)試與測試 6.7 常見編程錯誤 復(fù)習(xí) 快速測試 快速測試答案 復(fù)習(xí)題 程序設(shè)計項(xiàng)目 第7章 簡單數(shù)據(jù)類型 7.1 數(shù)值類型的表示與轉(zhuǎn)換 7.1.1 數(shù)值類型的差異 7.1.2 數(shù)值的不精確性 7.1.3 數(shù)據(jù)類型的自動轉(zhuǎn)換 7.1.4 數(shù)據(jù)類型的顯式轉(zhuǎn)換 7.2 字符類型的表示與轉(zhuǎn)換 7.3 枚舉類型 7.4 迭代近似 實(shí)例研究 求根的二分方法 7.5 常見編程錯誤 復(fù)習(xí) 快速測試 快速測試答案 復(fù)習(xí)題 程序設(shè)計項(xiàng)目 第8章 數(shù)組 8.1 聲明和引用數(shù)組 8.2 數(shù)組下標(biāo) 8.3 使用循環(huán)順序存取 8.3.1 使用數(shù)組進(jìn)行統(tǒng)計計算 8.3.2 程序風(fēng)格之使用循環(huán)控制變量作為數(shù)組下標(biāo) 8.4 將數(shù)組元素作為函數(shù)參數(shù)使用 8.5 數(shù)組參數(shù) 8.5.1 形參數(shù)組 8.5.2 和形參數(shù)組對應(yīng)的實(shí)參 8.5.3 數(shù)組作為輸入?yún)?shù) 8.5.4 返回數(shù)組結(jié)果 8.5.5 部分填充數(shù)組 8.5.6 ?! ?.6 數(shù)組搜索和排序 8.6.1 數(shù)組搜索 8.6.2 數(shù)組排序 8.7 多維數(shù)組 8.7.1 多維數(shù)組的初始化 8.7.2 多維數(shù)組 8.8 數(shù)組處理示例 實(shí)例研究 醫(yī)院收入?yún)R總 8.9 常見編程錯誤 復(fù)習(xí) 快速測試 快速測試答案 復(fù)習(xí)題 程序設(shè)計項(xiàng)目 第9章 字符串 9.1 字符串基礎(chǔ) 9.1.1 聲明并初始化字符串變量 9.1.2 字符串?dāng)?shù)組 9.1.3 使用printf和scanf進(jìn)行輸入/輸出 9.2 字符串庫函數(shù):賦值和子串 9.2.1 字符串賦值 9.2.2 子串 9.3 較長的字符串:拼接和整行輸入 9.3.1 拼接 9.3.2 字符和字符串的區(qū)別 9.3.3 掃描一個完整的行 9.4 字符串比較 9.5 指針數(shù)組 9.6 字符操作 9.6.1 字符輸入/輸出 9.6.2 字符分析和轉(zhuǎn)換 9.7 字符串到數(shù)值和數(shù)值到字符串的轉(zhuǎn)換.290 9.8 字符串處理示例 實(shí)例研究 文本編輯器 9.9 常見編程錯誤 復(fù)習(xí) 快速測試 快速測試答案 復(fù)習(xí)題 程序設(shè)計項(xiàng)目 第10章 遞歸 10.1 遞歸的本質(zhì) 10.2 跟蹤遞歸函數(shù) 10.2.1 帶返回值的遞歸函數(shù)的跟蹤 10.2.2 void類型遞歸函數(shù)的跟蹤 10.2.3 參數(shù)與局部變量棧 10.2.4 C中參數(shù)棧的實(shí)現(xiàn) 10.2.5 何時、如何跟蹤遞歸函數(shù) 10.3 遞歸數(shù)學(xué)函數(shù) 10.4 帶數(shù)組和字符串參數(shù)的遞歸函數(shù) 實(shí)例研究 找出字符串中的大寫字母 實(shí)例研究 遞歸選擇排序 10.5 用遞歸解決問題 實(shí)例研究 集合運(yùn)算 10.6 遞歸的經(jīng)典實(shí)例研究:漢諾塔 10.7 常見編程錯誤 復(fù)習(xí) 快速測試 快速測試答案 復(fù)習(xí)題 程序設(shè)計項(xiàng)目 第11章 結(jié)構(gòu)與聯(lián)合類型 11.1 用戶自定義結(jié)構(gòu)類型 11.1.1 結(jié)構(gòu)類型定義 11.1.2 操作結(jié)構(gòu)化數(shù)據(jù)對象的單個成員 11.1.3 運(yùn)算符優(yōu)先級回顧 11.1.4 操作結(jié)構(gòu)整體 11.1.5 程序風(fēng)格之類型命名約定 11.2 結(jié)構(gòu)類型數(shù)據(jù)作為輸入/輸出參數(shù) 11.3 返回值為結(jié)構(gòu)類型的函數(shù) 11.4 用結(jié)構(gòu)類型解決問題 實(shí)例研究 用于復(fù)數(shù)的用戶自定義類型 11.5 并行數(shù)組和結(jié)構(gòu)的數(shù)組 11.5.1 并行數(shù)組 11.5.2 結(jié)構(gòu)數(shù)組的聲明 實(shí)例研究 通用計量轉(zhuǎn)換 11.6 聯(lián)合類型(可選) 11.7 常見編程錯誤 復(fù)習(xí) 快速測試 快速測試答案 復(fù)習(xí)題 程序設(shè)計項(xiàng)目 第12章 文本文件和二進(jìn)制文件的處理 12.1 輸入/輸出文件:回顧與進(jìn)一步研究 12.1.1 鍵盤和屏幕作為文本流 12.1.2 換行與EOF 12.1.3 轉(zhuǎn)義序列 12.1.4 用printf實(shí)現(xiàn)格式化輸出 12.1.5 文件指針變量 12.1.6 獲取文件指針參數(shù)的函數(shù) 12.1.7 關(guān)閉文件 12.2 二進(jìn)制文件 12.3 數(shù)據(jù)庫查詢 實(shí)例研究 數(shù)據(jù)庫查詢 12.4 常見編程錯誤 復(fù)習(xí) 快速測試 快速測試答案 復(fù)習(xí)題 程序設(shè)計項(xiàng)目 第13章 大型程序設(shè)計 13.1 使用抽象處理復(fù)雜問題 13.1.1 過程抽象 13.1.2 數(shù)據(jù)抽象 13.1.3 信息隱藏 13.1.4 可復(fù)用代碼 13.2 個人庫:頭文件 13.2.1 頭文件 13.2.2 頭文件設(shè)計的忠告 13.3 個人庫:實(shí)現(xiàn)文件 13.4 存儲類型 13.4.1 全局變量 13.4.2 static和register存儲類型 13.5 庫中包含函數(shù)的修改 13.6 條件編譯 13.7 函數(shù)main的參數(shù) 13.8 定義帶參數(shù)的宏 13.8.1 在宏體中使用括號 13.8.2 在兩行以上擴(kuò)展宏 13.9 常見編程錯誤 復(fù)習(xí) 快速測試 快速測試答案 復(fù)習(xí)題 程序設(shè)計項(xiàng)目 第14章 動態(tài)數(shù)據(jù)結(jié)構(gòu) 14.1 指針 14.1.1 作為函數(shù)參數(shù)的指針 14.1.2 表示數(shù)組和字符串的指針 14.1.3 指向結(jié)構(gòu)的指針 14.1.4 指針使用的小結(jié) 14.2 動態(tài)內(nèi)存分配 14.2.1 訪問動態(tài)分配的結(jié)構(gòu)成員 14.2.2 使用calloc動態(tài)分配數(shù)組 14.2.3 返回堆單元 14.3 鏈表 14.3.1 帶指針成員的結(jié)構(gòu) 14.3.2 連接結(jié)點(diǎn) 14.3.3 鏈表的優(yōu)點(diǎn) 14.4 鏈表運(yùn)算符 14.4.1 遍歷鏈表 14.4.2 獲得輸入表 14.4.3 在表中查詢目標(biāo) 14.4.4 避免跟蹤NULL指針 14.5 用鏈表表示?! ?4.6 用鏈表表示隊(duì)列 14.7 有序表 實(shí)例研究 維護(hù)一個整數(shù)有序表 14.8 二叉樹 14.8.1 二叉查找樹 14.8.2 搜索二叉查找樹 14.8.3 建立二叉查找樹 14.8.4 顯示二叉查找樹 14.9 常見編程錯誤 復(fù)習(xí) 快速測試 快速測試答案 復(fù)習(xí)題 程序設(shè)計項(xiàng)目 第15章 使用進(jìn)程和線程的多進(jìn)程 15.1 多任務(wù) 15.1.1 線性程序設(shè)計和并行程序設(shè)計 15.1.2 分時多任務(wù) 15.1.3 搶占式多任務(wù) 15.1.4 時間片和并行 15.1.5 并發(fā)程序設(shè)計 15.2 進(jìn)程 15.2.1 進(jìn)程創(chuàng)建 15.2.2 進(jìn)程等待 15.2.3 從進(jìn)程中執(zhí)行另一個程序 15.3 進(jìn)程間通信和管道 15.3.1 管道 15.3.2 管道的用法 15.3.3 使用標(biāo)準(zhǔn)輸入的進(jìn)程間通信 15.3.4 父進(jìn)程和子進(jìn)程間通信舉例 15.4 線程 15.4.1 線程的創(chuàng)建 15.4.2 線程的同步 15.4.3 互斥鎖 15.4.4 死鎖 15.5 線程舉例 實(shí)例研究 生產(chǎn)者/消費(fèi)者模型 15.6 常見編程錯誤 復(fù)習(xí) C語言結(jié)構(gòu)的復(fù)習(xí) 快速測試 快速測試答案 復(fù)習(xí)題 程序設(shè)計項(xiàng)目 第16章 關(guān)于C++ 16.1 C++控制結(jié)構(gòu)、輸入/輸出以及函數(shù) 16.1.1 使用名字空間std 16.1.2 C++標(biāo)準(zhǔn)輸入/輸出 16.1.3 引用參數(shù) 16.1.4 輸出格式化 16.2 C++對面向?qū)ο缶幊痰闹С帧 ?6.2.1 頭文件complexh 16.2.2 類名和構(gòu)造函數(shù) 16.2.3 成員函數(shù)和運(yùn)算符 16.2.4 實(shí)現(xiàn)文件complex.cpp 16.2.5 數(shù)據(jù)成員 16.2.6 輸入/輸出運(yùn)算符重載 復(fù)習(xí) 快速測試 快速測試答案 復(fù)習(xí)題 程序設(shè)計項(xiàng)目 附錄A 關(guān)于指針的更多信息 附錄B ANSI C標(biāo)準(zhǔn)庫 附錄C C運(yùn)算符 附錄D 字符集 附錄E ANSI C保留字 附錄F ANSI C結(jié)構(gòu)參照表 詞匯表 索引
章節(jié)摘錄
插圖:第0章 計算機(jī)科學(xué)的職業(yè)之路引言為了選擇一門課程并最終選定希望從事的職業(yè),需要思考很多重要的問題。為什么要選擇這一領(lǐng)域?我們對此是否擅長?在完成學(xué)業(yè)時能否就業(yè)?是否喜歡這樣的工作?本章將就這些問題為那些想在計算機(jī)科學(xué)或相關(guān)領(lǐng)域獲得學(xué)位的人們給出一些建議。0.1 為什么選擇計算機(jī)科學(xué)領(lǐng)域0.1.1 將計算機(jī)科學(xué)作為專業(yè)的理由我們所做的每一件事情幾乎都受計算機(jī)的影響,如今被稱為“千禧世代”的新一代大學(xué)生并不會對此感到驚訝。他們的成長伴隨著計算機(jī)、互聯(lián)網(wǎng)、即時通信和電玩,他們推崇新技術(shù),并期望它能做各種奇妙的事情。千禧世代1982年以后出生的人,據(jù)說很自信,愛好社交并具有團(tuán)隊(duì)精神,對成功充滿了自豪感,喜歡利用分析技巧作出決策,并堅(jiān)決追求自我安全、穩(wěn)定和平衡。但是,上一代人并不樂意接受技術(shù),他們在解決問題時并不總是首先想到技術(shù)。很多在職的人抵制技術(shù)帶來的改變,他們通常讓年輕員工接管技術(shù)問題,并依靠他們對導(dǎo)致重要結(jié)果的事情作出選擇。不同時代的人之間的這種差異為那些聰明且專注的學(xué)生選擇計算機(jī)科學(xué)或相關(guān)領(lǐng)域作為專業(yè)創(chuàng)造了很好的環(huán)境。計算機(jī)行業(yè)是經(jīng)濟(jì)增長最快的行業(yè)之一,而且在將來有望繼續(xù)快速增長。一個公司要想有競爭力,必須不斷雇用訓(xùn)練有素的專業(yè)人員,不僅能在現(xiàn)階段生產(chǎn)出高質(zhì)量的產(chǎn)品,也可為將來具有創(chuàng)造性的科學(xué)和工程進(jìn)步作好準(zhǔn)備。從事計算機(jī)行業(yè)的人有廣泛的領(lǐng)域選擇空間,其中有很多有趣并具挑戰(zhàn)性的問題需要解決。獲得計算機(jī)科學(xué)學(xué)位的人,除了首選從事商務(wù)和通信領(lǐng)域的工作外,還能解決生活中方方面面的問題。快速瀏覽技術(shù)文章會發(fā)現(xiàn)這么一些領(lǐng)域:為全國選舉或州選舉而開發(fā)的電子投票系統(tǒng);利用無線設(shè)備信號統(tǒng)計車輛和行人的行進(jìn)時間,為合理控制紅綠燈或管理施工街區(qū)作最優(yōu)決策;通過超級計算機(jī)運(yùn)行的“虛擬地震”,研究如何利用真實(shí)地理位置和破壞場景的3D模型的預(yù)警系統(tǒng)。計算機(jī)專家在醫(yī)學(xué)領(lǐng)域從事的一些研究包括:通過模擬大腦的刺激模式來了解人腦是如何工作的,這主要是為了幫助那些患有孤獨(dú)癥或類似妄想型精神分裂癥的人;為身體受傷的人定制大量的輔助設(shè)備,包括可編程的機(jī)器人假肢和數(shù)字“眼”等;從移植的起搏器上搜集信息,以便在出現(xiàn)危險時及時作出決策;通過實(shí)時分析人臉,開發(fā)能夠識別人類感情狀態(tài)的計算機(jī)系統(tǒng);開發(fā)僅憑人的手勢驅(qū)動計算機(jī)來操縱實(shí)際對象的人機(jī)界面。
媒體關(guān)注與評論
“我連續(xù)幾個學(xué)期使用本書作為教材,教授程序設(shè)計課程。學(xué)生都認(rèn)為它可讀性很強(qiáng)?!艺J(rèn)為本書極好地介紹了如何編程以及如何使用C語言。……我強(qiáng)烈推薦這本教材,無論是課堂教學(xué)還是個人自學(xué),都十分合適?!薄 狣an Grecu,伍斯特理工學(xué)院“如果你想學(xué)習(xí)編程,用C作為實(shí)現(xiàn)語言,那么本書將是最好的選擇之一?!薄 狥rancis Glassborow,ACCU(C/C++用戶協(xié)會)前主席
編輯推薦
《C語言詳解(第6版)》是C語言經(jīng)典教程,歷經(jīng)多次改版,為世界各國眾多大學(xué)采用,迄今為止全球已有近10萬讀者通過《C語言詳解(第6版)》掌握了C語言。《C語言詳解(第6版)》的最大特色是程序設(shè)計思想的介紹和C語言語法的講述并重,不僅細(xì)致入微地講述C語言知識,而且更多地強(qiáng)調(diào)學(xué)生解決實(shí)際問題和動手編程的能力。與國內(nèi)眾多C語言教材相比,書中突出了良好的程序風(fēng)格和軟件工程概念的重要性,并力求使學(xué)生比較早地建立軟件開發(fā)的大局觀。書中將教學(xué)難點(diǎn)——指針分散在多個章節(jié)分別討論,使學(xué)生能夠從實(shí)際運(yùn)用中逐漸吸收指針用法的精髓,充分體現(xiàn)了作者豐富的教學(xué)經(jīng)驗(yàn)。此外,《C語言詳解(第6版)》的內(nèi)容也非常新穎,講授了用抽象管理復(fù)雜性、多進(jìn)程和多線程、動態(tài)數(shù)據(jù)結(jié)構(gòu)等知識。大量的案例、示例、習(xí)題和程序設(shè)計項(xiàng)目,以及常見編程錯誤提示,使《C語言詳解(第6版)》成為課堂教學(xué)和自學(xué)參考皆宜的理想學(xué)習(xí)工具?!禖語言詳解(第6版)》為最新的第6版,其中為初學(xué)者新增加了第0章,介紹了計算領(lǐng)域的職業(yè)發(fā)展機(jī)會。此外,第1章中硬件方面的內(nèi)容根據(jù)當(dāng)前技術(shù)發(fā)展有了重大的更新。最后,《C語言詳解(第6版)》對實(shí)例研究和章末項(xiàng)目中的許多地方也做了大幅修訂,使內(nèi)容與時俱進(jìn),給讀者全新的感受。提高解題能力,掌握編程藝術(shù),應(yīng)用軟件工程思想和方法,養(yǎng)成良好的編程風(fēng)格。
圖書封面
圖書標(biāo)簽Tags
無
評論、評分、閱讀與下載