注冊(cè) | 登錄讀書好,好讀書,讀好書!
讀書網(wǎng)-DuShu.com
當(dāng)前位置: 首頁(yè)出版圖書科學(xué)技術(shù)計(jì)算機(jī)/網(wǎng)絡(luò)軟件與程序設(shè)計(jì)C/C++及其相關(guān)C語(yǔ)言的科學(xué)和藝術(shù)

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

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

定 價(jià):¥55.00

作 者: (美)Eric S.Roberts著;翁惠玉[等]譯
出版社: 機(jī)械工業(yè)出版社
叢編項(xiàng): 計(jì)算機(jī)科學(xué)叢書
標(biāo) 簽: C

ISBN: 9787111159711 出版時(shí)間: 2005-04-01 包裝: 膠版紙
開(kāi)本: 26cm 頁(yè)數(shù): 498 字?jǐn)?shù):  

內(nèi)容簡(jiǎn)介

  本書是計(jì)算機(jī)科學(xué)的經(jīng)典教材,介紹了計(jì)算機(jī)科學(xué)的基礎(chǔ)知識(shí)和程序設(shè)計(jì)的專門知識(shí)。本書以介紹ANSIC為主線,不僅涵蓋C語(yǔ)言的基本知識(shí),而且介紹了軟件工程技術(shù)以及如何應(yīng)用良好的程序設(shè)計(jì)風(fēng)格進(jìn)行開(kāi)發(fā)等內(nèi)容。本書采用了庫(kù)函數(shù)的方法,強(qiáng)調(diào)抽象的原則,詳細(xì)闡述了庫(kù)和模塊化開(kāi)發(fā)。此外,本書還利用大量實(shí)例講述解決問(wèn)題的全過(guò)程,對(duì)開(kāi)發(fā)過(guò)程中常見(jiàn)的錯(cuò)誤也給出了解決和避免的方法。本書既可作為高等院校計(jì)算機(jī)科學(xué)入門課程及C語(yǔ)言入門課程的教材,也是C語(yǔ)言開(kāi)發(fā)人員的極佳參考書。本書前言致學(xué)生歡迎你!拿起這本書,你就邁進(jìn)了計(jì)算機(jī)科學(xué)的世界—這門學(xué)科出現(xiàn)在半世紀(jì)以前,現(xiàn)在卻成為這個(gè)時(shí)代最具生機(jī)和活力的學(xué)科之一。在幾十年的發(fā)展過(guò)程中,計(jì)算機(jī)幾乎使所有領(lǐng)域中看似不可能的事情成為可能。由于計(jì)算機(jī)可在瞬間將信息傳遞到任何地方,所以今天的企業(yè)家能以空前的規(guī)模經(jīng)營(yíng)跨國(guó)公司。由于計(jì)算機(jī)可進(jìn)行必要的、但人工很難完成的計(jì)算,科學(xué)家才能解決許多問(wèn)題。電影人利用計(jì)算機(jī)制作出更具感染力的視覺(jué)效果。由于計(jì)算機(jī)能處理醫(yī)學(xué)中大量的信息處理,因此醫(yī)生能對(duì)患者的病情做出更精確的診斷。計(jì)算機(jī)技術(shù)正在飛速發(fā)展。目前我們已經(jīng)看到的優(yōu)勢(shì)與新的世紀(jì)將要經(jīng)歷的發(fā)展相比肯定將相形見(jiàn)絀。最近50年,計(jì)算機(jī)已經(jīng)對(duì)世界產(chǎn)生了深遠(yuǎn)影響,在新的世紀(jì)亦將如此。今日的學(xué)生將會(huì)是執(zhí)行這項(xiàng)偉大的工程的中流砥柱。要做到這一點(diǎn),就必須懂得如何使用計(jì)算機(jī)。和其他值得掌握的技能一樣,理解計(jì)算機(jī)的工作原理以及學(xué)會(huì)怎樣控制它們是需要花費(fèi)時(shí)間的。這一切不可能一蹴而就,必須從某個(gè)起點(diǎn)開(kāi)始循序漸進(jìn)。2500年前,中國(guó)的哲學(xué)家老子曾說(shuō)過(guò):“千里之行,始于足下”。本書就是一個(gè)很好的起點(diǎn)。然而對(duì)很多人來(lái)說(shuō),萬(wàn)事開(kāi)頭難。許多學(xué)生在計(jì)算機(jī)面前束手無(wú)策,認(rèn)為計(jì)算機(jī)科學(xué)超出了他們的理解范圍。可是基本的程序設(shè)計(jì)并不需要具備高等數(shù)學(xué)和電子學(xué)的知識(shí)。在程序設(shè)計(jì)中,最重要的是能否從陳述問(wèn)題過(guò)渡到解決問(wèn)題。要做到這一點(diǎn),就必須以邏輯方式考慮問(wèn)題。訓(xùn)練自己用計(jì)算機(jī)能夠理解的方式表達(dá)自己的邏輯。最重要的是,不要被困難和挫折壓倒,要堅(jiān)持到底。若能堅(jiān)持下來(lái),就會(huì)發(fā)現(xiàn)解決問(wèn)題是件多么令人興奮的事情,它所帶來(lái)的喜悅足以讓你忘卻學(xué)習(xí)過(guò)程中遇到的任何挫折。本書旨在教授程序設(shè)計(jì)基礎(chǔ)和C語(yǔ)言基礎(chǔ)。C語(yǔ)言是當(dāng)今計(jì)算機(jī)產(chǎn)業(yè)中處于主導(dǎo)地位的程序設(shè)計(jì)語(yǔ)言。本書不但介紹了程序設(shè)計(jì)中的“為什么”,還介紹了“如何做”,使讀者對(duì)程序設(shè)計(jì)有總體的印象。為使讀者避免出現(xiàn)那些阻礙學(xué)習(xí)的錯(cuò)誤,本書在結(jié)構(gòu)上做出了精心安排,可以幫助讀者掌握重點(diǎn)。接下來(lái)將總結(jié)本書在結(jié)構(gòu)上的一些獨(dú)具匠心之處,并說(shuō)明如何在學(xué)習(xí)過(guò)程中高效地利用本書。

作者簡(jiǎn)介

  EricS.Roberts,美國(guó)斯坦福大學(xué)計(jì)算機(jī)科學(xué)系教授,主管教學(xué)的系副主任。他由于教學(xué)改革的成就獲得CharlesSimonyi榮譽(yù)教授。Roberts于1980年獲哈佛大學(xué)應(yīng)用數(shù)學(xué)博士學(xué)位,其后他創(chuàng)建了威爾斯利學(xué)院的計(jì)算機(jī)科學(xué)系,并擔(dān)任系主任。后來(lái),他在加州PaloAlto的DEC公司系統(tǒng)研究中心工作了5年。相關(guān)圖書數(shù)據(jù)倉(cāng)庫(kù)(原書第3版)離散數(shù)學(xué)導(dǎo)學(xué)數(shù)據(jù)庫(kù)設(shè)計(jì)教程(第2版)軟件需求3D游戲卷1實(shí)時(shí)渲染與軟件技術(shù)3D游戲卷2動(dòng)畫與高級(jí)實(shí)時(shí)渲染技術(shù)數(shù)字圖像處理疑難解析現(xiàn)代信息檢索CAXA數(shù)控銑CAD/CAM技術(shù)計(jì)算機(jī)視覺(jué)信息系統(tǒng)原理:原書第6版數(shù)據(jù)庫(kù)與事務(wù)處理高級(jí)編譯器設(shè)計(jì)與實(shí)現(xiàn)計(jì)算機(jī)網(wǎng)絡(luò)系統(tǒng)方案(原書第3版)3D計(jì)算機(jī)圖形學(xué)(原書第3版)計(jì)算機(jī)網(wǎng)絡(luò)與因特網(wǎng)(原書第4版)計(jì)算機(jī)科學(xué)概論(原書第2版)可擴(kuò)展并行計(jì)算技術(shù)、結(jié)構(gòu)與編程數(shù)據(jù)庫(kù)原理、編程與性能嵌入式微控制器微機(jī)接口技術(shù)實(shí)驗(yàn)教程神經(jīng)網(wǎng)絡(luò)原理(原書第2版)編譯原理C++語(yǔ)言的設(shè)計(jì)和演化并行計(jì)算導(dǎo)論(原書第2版)信息論、編碼與密碼學(xué)組合數(shù)學(xué)(原書第4版)JAVA編程思想(第2版)數(shù)據(jù)庫(kù)系統(tǒng)導(dǎo)論UNIX系統(tǒng)編程并行程序設(shè)計(jì)操作系統(tǒng)現(xiàn)代操作系統(tǒng)(第2版)計(jì)算機(jī)網(wǎng)絡(luò):自頂向下方法與Internet特色(原書第3版)C程序設(shè)計(jì)語(yǔ)言(第2版·新版)習(xí)題解答人工智能:英文Java面向?qū)ο蟪绦蛟O(shè)計(jì)教程C++編程思想。第2卷:實(shí)用編程技術(shù)模式分析的核方法

圖書目錄

第1章  概述        1
1.1  計(jì)算簡(jiǎn)史        1
1.2  什么是計(jì)算機(jī)科學(xué)        4
1.3  計(jì)算機(jī)硬件簡(jiǎn)介        4
1.3.1  CPU        4
1.3.2  內(nèi)存        5
1.3.3  輔助存儲(chǔ)器        5
1.3.4  I/O設(shè)備        5
1.4  算法        6
1.5  程序設(shè)計(jì)語(yǔ)言和編譯        7
1.6  編程錯(cuò)誤和調(diào)試        8
1.7  軟件維護(hù)        9
1.8  軟件工程的重要性        10
1.9  關(guān)于C程序設(shè)計(jì)語(yǔ)言的一些思考        10
小結(jié)        10
復(fù)習(xí)題        11
第一部分  C語(yǔ)言程序設(shè)計(jì)基礎(chǔ)
第2章  通過(guò)例子學(xué)習(xí)        14
2.1  “Hello world”程序        14
2.1.1  注釋        15
2.1.2  庫(kù)包含        15
2.1.3  主程序        16
2.2  兩個(gè)數(shù)的加法程序        17
2.2.1  輸入階段        19
2.2.2  計(jì)算階段        20
2.2.3  輸出階段        20
2.3  有關(guān)程序設(shè)計(jì)過(guò)程的觀點(diǎn)        21
2.4  數(shù)據(jù)類型        22
2.4.1  浮點(diǎn)型數(shù)據(jù)        22
2.4.2  字符串類型的數(shù)據(jù)        23
2.5  表達(dá)式        25
2.5.1  常量        25
2.5.2  變量        26
2.5.3  賦值語(yǔ)句        27
2.5.4  運(yùn)算符和操作數(shù)        29
2.5.5  整型數(shù)和浮點(diǎn)型數(shù)的結(jié)合        30
2.5.6  整數(shù)除法和求余運(yùn)算符        30
2.5.7  優(yōu)先級(jí)        31
2.5.8  優(yōu)先級(jí)法則的應(yīng)用        33
2.5.9  類型轉(zhuǎn)換        33
小結(jié)        35
復(fù)習(xí)題        36
程序設(shè)計(jì)練習(xí)        37
第3章  問(wèn)題求解        40
3.1  程序設(shè)計(jì)習(xí)語(yǔ)和范例        40
3.1.1  復(fù)合賦值習(xí)語(yǔ)        41
3.1.2  自增和自減運(yùn)算符        42
3.2  解決規(guī)模稍大的問(wèn)題        43
3.3  控制語(yǔ)句        44
3.3.1  重復(fù)N次習(xí)語(yǔ)        44
3.3.2  迭代和循環(huán)        45
3.3.3  下標(biāo)變量        45
3.3.4  初始化的重要性        47
3.3.5  讀入-直到-標(biāo)志習(xí)語(yǔ)        47
3.3.6  創(chuàng)造一個(gè)更實(shí)用的應(yīng)用程序        49
3.3.7  條件執(zhí)行和if語(yǔ)句        51
3.4  一個(gè)調(diào)試練習(xí)        53
3.5  格式化輸出        56
3.5.1  printf的格式碼        57
3.5.2  控制空格、對(duì)齊方式和精度        57
3.6  構(gòu)思一個(gè)程序        60
3.6.1  程序設(shè)計(jì)風(fēng)格        60
3.6.2  設(shè)計(jì)時(shí)考慮將來(lái)的修改        61
3.6.3  #define機(jī)制        61
小結(jié)        63
復(fù)習(xí)題        63
程序設(shè)計(jì)練習(xí)        64
第4章  語(yǔ)句形式        68
4.1  簡(jiǎn)單語(yǔ)句        68
4.1.1  賦值的嵌套        69
4.1.2  多重賦值        70
4.1.3  程序塊        70
4.2  控制語(yǔ)句        71
4.3  布爾型數(shù)據(jù)        72
4.3.1  關(guān)系運(yùn)算符        72
4.3.2  邏輯運(yùn)算符        73
4.3.3  簡(jiǎn)化求值        75
4.3.4  標(biāo)志        75
4.3.5  避免布爾表達(dá)式中的冗余        76
4.3.6  布爾計(jì)算示例        76
4.4  if語(yǔ)句        77
4.4.1  單行if語(yǔ)句        78
4.4.2  多行if語(yǔ)句        79
4.4.3  if/else語(yǔ)句        79
4.4.4  級(jí)聯(lián)if語(yǔ)句        79
4.4.5  ?: 運(yùn)算符(可選的)        80
4.5  switch語(yǔ)句        81
4.6  while語(yǔ)句        83
4.6.1  while循環(huán)的應(yīng)用        84
4.6.2  無(wú)限循環(huán)        85
4.6.3  解決半途退出問(wèn)題        86
4.7  for語(yǔ)句        87
4.7.1  嵌套的for循環(huán)        89
4.7.2  for和while的關(guān)系        90
4.7.3  for語(yǔ)句中浮點(diǎn)型數(shù)據(jù)的使用問(wèn)題        91
小結(jié)        92
復(fù)習(xí)題        93
程序設(shè)計(jì)練習(xí)        93
第5章  函數(shù)        96
5.1  使用庫(kù)函數(shù)        96
5.2  函數(shù)聲明        98
5.3  自己編寫函數(shù)        99
5.3.1  return語(yǔ)句        99
5.3.2  將函數(shù)與主程序放在一起        100
5.3.3  包含內(nèi)部控制結(jié)構(gòu)的函數(shù)        101
5.3.4  返回非數(shù)字值的函數(shù)        103
5.3.5  謂詞函數(shù)        104
5.3.6  測(cè)試字符串是否相等的謂詞函數(shù)        105
5.4  函數(shù)調(diào)用過(guò)程機(jī)制        106
5.4.1  參數(shù)傳遞        107
5.4.2  在其他函數(shù)中調(diào)用函數(shù)        109
5.5  過(guò)程        115
5.6  逐步精化        116
5.6.1  從頂開(kāi)始        116
5.6.2  實(shí)現(xiàn)PrintCalendar        117
5.6.3  實(shí)現(xiàn)PrintCalendarMonth        118
5.6.4  完成最后的片段        121
小結(jié)        125
復(fù)習(xí)題        126
程序設(shè)計(jì)練習(xí)        126
第6章  算法        131
6.1  測(cè)試素?cái)?shù)        131
6.1.1  一個(gè)IsPrime的簡(jiǎn)單版本        132
6.1.2  驗(yàn)證一個(gè)策略是否表示一個(gè)算法        132
6.1.3  說(shuō)明IsPrime算法的正確性        133
6.1.4  改進(jìn)算法的效率        133
6.1.5  在各個(gè)可選方案中選擇        136
6.2  計(jì)算最大公約數(shù)        136
6.2.1  brute-force算法        136
6.2.2  歐幾里德算法        137
6.2.3  歐幾里德算法的正確性說(shuō)明(可選)        138
6.2.4  比較GCD算法的效率        138
6.3  數(shù)值算法        139
6.3.1  連續(xù)逼近        139
6.3.2  報(bào)告錯(cuò)誤        141
6.4  級(jí)數(shù)展開(kāi)        141
6.4.1  Zeno悖論        141
6.4.2  用級(jí)數(shù)展開(kāi)法設(shè)計(jì)平方根函數(shù)        143
6.4.3  估計(jì)平方根的泰勒級(jí)數(shù)展開(kāi)(可選)        143
6.4.4  泰勒級(jí)數(shù)近似的實(shí)現(xiàn)        144
6.4.5  停留在收斂半徑之內(nèi)        146
6.5  指定數(shù)值類型的大小        147
6.5.1  整數(shù)類型        148
6.5.2  無(wú)符號(hào)類型        149
6.5.3  浮點(diǎn)類型        149
小結(jié)        149
復(fù)習(xí)題        150
程序設(shè)計(jì)練習(xí)        150
第二部分  庫(kù)和模塊化開(kāi)發(fā)
第7章  庫(kù)和接口:一個(gè)簡(jiǎn)單的圖形庫(kù)        156
7.1  接口的概念        156
7.2  圖形庫(kù)介紹        158
7.2.1  graphics.h的基本模型        158
7.2.2  graphics.h接口的函數(shù)        159
7.2.3  軟件包初始化        163
7.2.4  畫直線        163
7.2.5  畫圓和弧        164
7.2.6  獲取有關(guān)圖形窗口的信息        166
7.3  建立自己的工具        166
7.3.1  定義DrawBox        167
7.3.2  定義DrawCenteredCircle        169
7.3.3  絕對(duì)坐標(biāo)和相對(duì)坐標(biāo)間的切換        169
7.3.4  定義過(guò)程的好處        170
7.4  解決一個(gè)較大的問(wèn)題        170
7.4.1  使用逐步精化        171
7.4.2  實(shí)現(xiàn)DrawHouse過(guò)程        172
7.4.3  尋找共同的模式        172
7.4.4  結(jié)束分解        173
小結(jié)        177
復(fù)習(xí)題        178
程序設(shè)計(jì)練習(xí)        179
第8章  設(shè)計(jì)接口:一個(gè)隨機(jī)數(shù)庫(kù)        183
8.1  接口設(shè)計(jì)        183
8.1.1  同一主題的重要性        184
8.1.2  簡(jiǎn)單性和信息隱藏的原則        184
8.1.3  滿足客戶的需要        185
8.1.4  通用工具的優(yōu)勢(shì)        185
8.1.5  穩(wěn)定性的價(jià)值        186
8.2  用計(jì)算機(jī)生成隨機(jī)數(shù)        186
8.2.1  確定行為與非確定行為        186
8.2.2  隨機(jī)數(shù)和偽隨機(jī)數(shù)        187
8.2.3  ANSI C中生成偽隨機(jī)數(shù)        187
8.2.4  改變隨機(jī)數(shù)的范圍        188
8.2.5  將此問(wèn)題通用化        192
8.3  在庫(kù)中保存工具        193
8.3.1  接口的內(nèi)容        193
8.3.2  寫random.h接口        195
8.3.3  random.c的實(shí)現(xiàn)        196
8.3.4  構(gòu)造客戶程序        197
8.3.5  初始化隨機(jī)數(shù)發(fā)生器        198
8.4  評(píng)價(jià)random.h接口的設(shè)計(jì)        200
8.4.1  產(chǎn)生隨機(jī)實(shí)數(shù)        201
8.4.2  模擬一個(gè)概率事件        201
8.4.3  在接口中包含頭文件        202
8.4.4  完成隨機(jī)數(shù)軟件包的實(shí)現(xiàn)        202
8.5  使用隨機(jī)數(shù)軟件包        202
小結(jié)        205
復(fù)習(xí)題        206
程序設(shè)計(jì)練習(xí)        207
第9章  字符串和字符        213
9.1  枚舉的原理        213
9.1.1  在機(jī)器內(nèi)部表示枚舉類型        214
9.1.2  將枚舉類型表示為整數(shù)        214
9.1.3  定義新的枚舉類型        215
9.1.4  枚舉類型的操作        217
9.1.5  標(biāo)量類型        217
9.2  字符        218
9.2.1  數(shù)據(jù)類型char        218
9.2.2  ASCII代碼        218
9.2.3  字符常量        219
9.2.4  ASCII代碼方案的重要特性        219
9.2.5  特殊字符        220
9.2.6  字符運(yùn)算        221
9.2.7  ctype.h接口        222
9.2.8  涉及字符的控制語(yǔ)句        223
9.2.9  字符的輸入輸出        223
9.3  字符串作為抽象數(shù)據(jù)類型        224
9.3.1  分層抽象        224
9.3.2  抽象類型的概念        225
9.4  strlib.h接口        226
9.4.1  確定字符串的長(zhǎng)度        226
9.4.2  從一個(gè)字符串中選擇字符        227
9.4.3  連接        227
9.4.4  將字符轉(zhuǎn)換為字符串        228
9.4.5  抽取字符串的一部分        229
9.4.6  比較兩個(gè)字符串        229
9.4.7  在一個(gè)字符串內(nèi)搜索        230
9.4.8  大小寫轉(zhuǎn)換        232
9.4.9  數(shù)值轉(zhuǎn)換        232
9.4.10  效率和strlib.h庫(kù)        235
小結(jié)        235
復(fù)習(xí)題        236
程序設(shè)計(jì)練習(xí)        237
第10章  模塊化開(kāi)發(fā)        241
10.1  Pig Latin—一個(gè)模塊化開(kāi)發(fā)的案例研究        242
10.1.1  應(yīng)用自頂向下的設(shè)計(jì)        243
10.1.2  使用偽代碼        243
10.1.3  實(shí)現(xiàn)TranslateLine        244
10.1.4  考慮空格和標(biāo)點(diǎn)符號(hào)的問(wèn)題        245
10.1.5  精化單詞的定義        246
10.1.6  設(shè)計(jì)記號(hào)掃描器        247
10.1.7  完成TranslateLine的實(shí)現(xiàn)        248
10.1.8  定義掃描器模塊接口        250
10.2  在模塊中維護(hù)內(nèi)部狀態(tài)        252
10.2.1  全局變量        252
10.2.2  使用全局變量的危險(xiǎn)性        253
10.2.3  保持變量的模塊私有化        253
10.2.4  初始化全局變量        253
10.2.5  私有函數(shù)        255
10.3  實(shí)現(xiàn)掃描器抽象        255
小結(jié)        261
復(fù)習(xí)題        261
程序設(shè)計(jì)練習(xí)        261
第三部分  復(fù)合數(shù)據(jù)類型
第11章  數(shù)組        268
11.1  數(shù)組        268
11.1.1  數(shù)組聲明        269
11.1.2  數(shù)組選擇        270
11.1.3  一個(gè)簡(jiǎn)單的數(shù)組實(shí)例        271
11.1.4  改變下標(biāo)值的范圍        271
11.2  數(shù)據(jù)的內(nèi)部表示法        272
11.2.1  比特、字節(jié)和字        273
11.2.2  內(nèi)存地址        273
11.2.3  運(yùn)算符sizeof        274
11.2.4  變量的內(nèi)存分配        274
11.2.5  引用超出數(shù)組范圍的元素        275
11.3  數(shù)組作為參數(shù)進(jìn)行傳遞        276
11.3.1  元素個(gè)數(shù)的通用化        277
11.3.2  數(shù)組參數(shù)傳遞機(jī)制        279
11.3.3  實(shí)現(xiàn)函數(shù)PrintIntegerArray和GetIntegerArray        281
11.3.4  實(shí)現(xiàn)函數(shù)ReverseIntegerArray        282
11.3.5  實(shí)現(xiàn)函數(shù)SwapIntegerElements        283
11.4  使用數(shù)組制作表格        286
11.5  數(shù)組的靜態(tài)初始化        291
11.5.1  自動(dòng)確定數(shù)組大小        292
11.5.2  確定初始化數(shù)組的大小        292
11.5.3  初始化數(shù)組和標(biāo)量類型        293
11.6  多維數(shù)組        293
11.6.1  向函數(shù)傳送多維數(shù)組        294
11.6.2  初始化多維數(shù)組        295
小結(jié)        295
復(fù)習(xí)題        296
程序設(shè)計(jì)練習(xí)        297
第12章  查找和排序        303
12.1  查找        303
12.1.1  在整數(shù)數(shù)組中查找        303
12.1.2  關(guān)于查找的另一個(gè)更復(fù)雜的例子        305
12.1.3  線性查找        307
12.1.4  二分查找        308
12.1.5  查找算法的相對(duì)效率        310
12.2  排序        311
12.2.1  對(duì)一個(gè)整數(shù)數(shù)組排序        312
12.2.2  選擇排序算法        313
12.2.3  選擇排序效率的評(píng)估        315
12.2.4  測(cè)試程序的運(yùn)行時(shí)間        316
12.2.5  選擇排序的算法分析        317
小結(jié)        318
復(fù)習(xí)題        318
程序設(shè)計(jì)練習(xí)        318
第13章  指針        323
13.1  將地址作為數(shù)據(jù)值        324
13.2  C語(yǔ)言的指針操作        325
13.2.1  在C語(yǔ)言中聲明指針變量        325
13.2.2  基本的指針操作        325
13.2.3  特殊指針NULL        327
13.3  通過(guò)引用傳遞參數(shù)        327
13.3.1  設(shè)計(jì)函數(shù)SwapInteger        329
13.3.2  用引用調(diào)用返回多個(gè)結(jié)果        330
13.3.3  過(guò)度使用引用調(diào)用的危險(xiǎn)        332
13.4  指針和數(shù)組        332
13.4.1  指針運(yùn)算        333
13.4.2  運(yùn)算符++和--的新作用        335
13.4.3  指針的自增和自減        336
13.4.4  指針和數(shù)組的關(guān)系        337
13.5  動(dòng)態(tài)分配        338
13.5.1  Void *類型        339
13.5.2  動(dòng)態(tài)數(shù)組        340
13.5.3  查找malloc中的錯(cuò)誤        340
13.5.4  釋放內(nèi)存        341
小結(jié)        341
復(fù)習(xí)題        342
程序設(shè)計(jì)練習(xí)        344
第14章  再論字符串        347
14.1  string類型的概念表示        347
14.1.1  字符串作為數(shù)組        347
14.1.2  字符串作為指針        349
14.1.3  字符串作為抽象類型        350
14.1.4  字符串參數(shù)        350
14.1.5  字符串變量        351
14.1.6  指針和數(shù)組變量間的區(qū)別        352
14.1.7  決定字符串的表示方法        354
14.2  ANSI字符串庫(kù)        354
14.2.1  strcpy函數(shù)        355
14.2.2  strncpy函數(shù)        357
14.2.3  strcat和strncat函數(shù)        358
14.2.4  strlen、strcmp和strncmp函數(shù)        359
14.2.5  strchr、strrchr和strstr函數(shù)        359
14.2.6  ANSI字符串函數(shù)的應(yīng)用        360
14.3  strlib庫(kù)的實(shí)現(xiàn)        360
14.3.1  實(shí)現(xiàn)轉(zhuǎn)換函數(shù)        360
14.3.2  strlib分配函數(shù)的實(shí)現(xiàn)        363
小結(jié)        364
復(fù)習(xí)題        365
程序設(shè)計(jì)練習(xí)        365
第15章  文件        368
15.1  文本文件        368
15.2  C語(yǔ)言中文件的使用        369
15.2.1  聲明FILE*類型的變量        370
15.2.2  打開(kāi)文件        370
15.2.3  執(zhí)行I/O操作        371
15.2.4  關(guān)閉文件        371
15.2.5  標(biāo)準(zhǔn)文件        371
15.3  字符I/O        371
15.3.1  文件更新        374
15.3.2  在輸入文件中重新讀取字符        376
15.4  面向行的I/O        377
15.5  格式化I/O        379
15.5.1  printf的三種形式        380
15.5.2  scanf函數(shù)        380
15.5.3  用scanf讀入字符串        381
15.5.4  格式化I/O的一個(gè)實(shí)例        383
15.5.5  使用scanf的局限        385
小結(jié)        385
復(fù)習(xí)題        386
程序設(shè)計(jì)練習(xí)        387
第16章  記錄        393
16.1  數(shù)據(jù)記錄的概念        393
16.2  記錄在C語(yǔ)言中的使用        394
16.2.1  定義一個(gè)結(jié)構(gòu)類型        394
16.2.2  聲明結(jié)構(gòu)變量        395
16.2.3  記錄選擇        395
16.2.4  記錄初始化        395
16.2.5  簡(jiǎn)單記錄        396
16.3  數(shù)組與記錄的結(jié)合        397
16.4  記錄的指針        399
16.4.1  定義一個(gè)指向記錄類型的指針        399
16.4.2  為記錄數(shù)據(jù)分配空間        400
16.4.3  對(duì)記錄指針進(jìn)行操作        401
16.5  創(chuàng)建記錄的數(shù)據(jù)庫(kù)        402
16.5.1  創(chuàng)建員工信息數(shù)據(jù)庫(kù)        402
16.5.2  數(shù)據(jù)庫(kù)的使用        404
16.6  基于記錄的應(yīng)用程序設(shè)計(jì)        405
16.6.1  使用數(shù)據(jù)庫(kù)的重要性        405
16.6.2  問(wèn)題的框架        405
16.6.3  設(shè)計(jì)內(nèi)部表示        406
16.6.4  設(shè)計(jì)外部結(jié)構(gòu)        408
16.6.5  程序代碼        409
16.6.6  數(shù)據(jù)驅(qū)動(dòng)設(shè)計(jì)方法的重要性        415
小結(jié)        415
復(fù)習(xí)題        417
程序設(shè)計(jì)練習(xí)        418
第17章  深入學(xué)習(xí)        424
17.1  遞歸        424
17.1.1  遞歸的簡(jiǎn)單說(shuō)明        425
17.1.2  Factorial函數(shù)        425
17.1.3  遞歸信任        429
17.1.4  遞歸范例        430
17.1.5  排列的生成        431
17.1.6  用遞歸的思想思考        433
17.2  抽象數(shù)據(jù)類型        433
17.2.1  隊(duì)列抽象        434
17.2.2  以隊(duì)列抽象表示類型        434
17.2.3  queue.h 接口        436
17.2.4  實(shí)現(xiàn)隊(duì)列抽象        437
17.2.5  隊(duì)列抽象的另一種實(shí)現(xiàn)方法        441
17.3  算法分析        444
17.3.1  評(píng)估算法效率        444
17.3.2  O標(biāo)記        444
17.3.3  再看選擇排序        445
17.3.4  分而治之策略        446
17.3.5  合并兩個(gè)數(shù)組        447
17.3.6  合并排序算法        447
17.3.7  合并排序的計(jì)算復(fù)雜性        448
17.3.8  比較平方復(fù)雜性與NlogN復(fù)雜性的性能        450
小結(jié)        450
復(fù)習(xí)題        451
程序設(shè)計(jì)練習(xí)        451
附      錄
附錄A  C語(yǔ)言的語(yǔ)法和結(jié)構(gòu)總結(jié)        457
附錄B  庫(kù)源代碼        471
索引        491

本目錄推薦

掃描二維碼
Copyright ? 讀書網(wǎng) m.ranfinancial.com 2005-2020, All Rights Reserved.
鄂ICP備15019699號(hào) 鄂公網(wǎng)安備 42010302001612號(hào)