編輯推薦
程序員教程(第5版)依據2018年審定通過的程序員考試大綱大綱編寫,涵蓋程序員(初級)崗位所要求的主要知識及應用技術。
通過程序員考試的考生可以獲得由人力資源和社會保障部、工業和信息化部認可的職業資格證書,本考試為初級資格認證。
內容簡介
本書作為全國計算機技術與軟件專業技術資格(水平)考試(簡稱“軟考”)的初級職稱指定教材,具有比較*的指導意義。本書根據《程序員考試大綱》(2018年審定通過)的重點內容,組織瞭共11章的內容,考生在學習教材內容的同時,還須對照考試大綱,認真學習和復習大綱要求的知識點。
本書是在《程序員考試大綱》的指導下,對《程序員教程(第4版)》進行再編後完成的。
本書適閤參加相關考試的考生和在校大學生作為教材使用。
目錄
目錄
第1章計算機係統基礎知識1
1.1計算機係統的基本組成1
1.2數據的錶示及運算3
1.2.1計算機中數據的錶示3
1.2.2校驗碼13
1.2.3邏輯代數及邏輯運算17
1.2.4機器數的運算19
1.3計算機的基本組成及工作原理23
1.3.1總綫的基本概念23
1.3.2中央處理單元25
1.3.3存儲係統30
1.3.4輸入/輸齣技術36
1.4指令係統簡介40
1.5多媒體係統簡介44
1.5.1數字聲音45
1.5.2圖形與圖像48
1.5.3動畫和視頻55
第2章操作係統基礎知識62
2.1操作係統概述62
2.2進程管理65
2.2.1基本概念65
2.2.2進程控製67
2.2.3進程通信68
2.2.4進程調度72
2.2.5死鎖74
2.2.6綫程76
2.3存儲管理76
2.3.1基本概念76
2.3.2存儲管理方案77
2.3.3分頁存儲管理79
2.3.4分段存儲管理80
2.3.5虛擬存儲管理82
2.4設備管理85
2.4.1設備管理概述85
2.4.2設備管理技術86
2.4.3磁盤調度88
2.5文件管理89
2.5.1基本概念89
2.5.2文件的結構和組織90
2.5.3文件目錄92
2.5.4存取方法、存取控製93
2.5.5文件的使用95
2.5.6文件的共享和保護95
2.5.7係統的安全與可靠性96
2.6作業管理98
2.6.1作業管理98
2.6.2作業調度99
2.6.3人機界麵102
第3章程序設計語言基礎知識104
3.1程序設計語言概述104
3.1.1程序設計語言的基本概念104
3.1.2程序設計語言的分類和特點105
3.1.3程序設計語言的基本成分109
3.2語言處理程序基礎116
3.2.1匯編程序基礎116
3.2.2編譯程序基礎118
3.2.3解釋程序基礎126
第4章數據結構與算法129
4.1綫性結構129
4.1.1綫性錶129
4.1.2棧和隊列137
4.1.3串143
4.2數組144
4.3樹與二叉樹147
4.3.1樹的基本概念148
4.3.2二叉樹149
4.3.3樹和森林153
4.3.4最優二叉樹156
4.3.5二叉查找樹157
4.4圖158
4.5查找163
4.5.1順序查找與摺半查找164
4.5.2樹錶查找167
4.5.3哈希錶及哈希查找170
4.6算法173
4.6.1算法概述173
4.6.2排序算法177
4.6.3遞歸算法187
4.6.4字符串運算188
4.6.5圖的相關算法191
第5章軟件工程基礎知識199
5.1軟件工程概述199
5.1.1軟件生存周期199
5.1.2軟件生存周期模型201
5.1.3軟件過程評估207
5.1.4軟件工具209
5.1.5軟件開發環境211
5.2軟件需求分析212
5.2.1軟件需求的定義212
5.2.2軟件需求分析的基本任務213
5.2.3需求建模213
5.3軟件設計214
5.3.1軟件設計的基本任務214
5.3.2軟件設計原則216
5.4結構化分析與設計方法219
5.4.1結構化分析方法219
5.4.2結構化設計方法221
5.4.3結構化程序設計方法223
5.5麵嚮對象分析與設計方法224
5.5.1麵嚮對象的基本概念224
5.5.2麵嚮對象分析與設計227
5.5.3UML概述228
5.5.4設計模式232
5.6軟件測試與運行235
5.6.1軟件測試的目的及原則235
5.6.2軟件測試方法238
5.6.3軟件測試過程241
5.6.4軟件測試設計和管理242
5.6.5軟件調試243
5.6.6軟件運行與維護243
5.7軟件項目管理245
5.7.1管理範圍245
5.7.2成本估算246
5.7.3風險分析247
5.7.4進度管理248
5.8軟件質量與軟件質量保證250
5.8.1軟件質量特性250
5.8.2軟件質量保證252
第6章數據庫基礎知識254
6.1基本概念254
6.1.1數據庫係統254
6.1.2數據庫管理技術的發展255
6.1.3大數據257
6.2數據模型260
6.2.1數據模型的基本概念260
6.2.2數據模型的三要素261
6.2.3E-R模型261
6.2.4基本的數據模型265
6.3DBMS的功能和特徵267
6.3.1DBMS的功能267
6.3.2DBMS的特徵與分類268
6.4數據庫模式270
6.4.1模式270
6.4.2三級模式兩級映像272
6.5關係數據庫與關係運算272
6.5.1關係數據庫的基本概念272
6.5.2關係數據庫模式275
6.5.3完整性約束276
6.5.4關係代數運算276
6.6關係數據庫SQL語言簡介280
6.6.1SQL概述280
6.6.2SQL數據定義281
6.6.3SQL數據查詢285
6.6.4SQL數據更新293
6.6.5SQL的訪問控製295
6.6.6嵌入式SQL296
6.7數據庫設計297
第7章網絡與信息安全基礎知識300
7.1計算機網絡概述300
7.1.1計算機網絡的組成300
7.1.2計算機網絡的分類301
7.1.3ISO/OSI參考模型304
7.2計算機網絡硬件305
7.2.1計算機網絡互連設備305
7.2.2計算機網絡傳輸媒體311
7.3TCP/IP314
7.3.1TCP/IP模型314
7.3.2TCP/IP協議315
7.3.3IP地址318
7.4Internet基礎知識322
7.4.1Internet服務322
7.4.2因特網接入方式327
7.4.3TCP/IP的配置328
7.4.4瀏覽器的設置與使用329
7.5局域網基礎知識332
7.6信息安全基礎知識337
7.7網絡安全概述341
第8章標準化和知識産權基礎知識346
8.1標準化基礎知識346
8.1.1軟件工程標準化346
8.1.2能力成熟度模型簡介348
8.2知識産權基礎知識349
8.2.1基本概念349
8.2.2計算機軟件著作權351
8.2.3計算機軟件的商業秘密權363
第9章C程序設計366
9.1C語言基礎366
9.1.1數據類型366
9.1.2運算符與錶達式372
9.1.3輸入/輸齣375
9.2控製語句377
9.3函數381
9.4指針385
9.4.1指針的定義385
9.4.2指針與數組387
9.4.3指針與函數389
9.4.4指針與鏈錶393
9.5常見的C程序錯誤395
第10章C++程序設計407
10.1C++程序基礎407
10.1.1數據類型407
10.1.2運算符、錶達式和語句409
10.1.3基本輸入/輸齣410
10.1.4函數412
10.1.5類與對象415
10.2繼承與多態423
10.3異常處理428
10.4標準庫430
10.4.1I/O流庫431
10.4.2string434
10.4.3STL438
10.4.4vector443
第11章Java程序設計447
11.1Java語言概述447
11.2Java語言基礎448
11.2.1Java基本數據類型449
11.2.2控製結構455
11.2.3Java核心類458
11.3類與接口462
11.3.1類的定義與使用462
11.3.2對象的初始化464
11.3.3包466
11.3.4繼承468
11.3.5抽象類與接口471
11.4異常478
11.4.1異常的處理478
11.4.2自定義異常480
11.5輸入、輸齣和流483
11.5.1字節流483
11.5.2字符流486
11.5.3標準輸入/輸齣流487
11.6Java類庫的使用489
11.6.1基本類型的包裝類型489
11.6.2泛型和集閤類493
精彩書摘
第3章程序設計語言基礎知識
程序設計語言是為瞭書寫計算機程序而設計的符號語言,用於對計算過程進行描述、組織和推導。程序設計語言的廣泛使用始於1957年齣現的FORTRAN,其發展和演化已經超越瞭運行程序的機器。
3.1程序設計語言概述
本節主要介紹程序設計語言的基本概念、基本成分和一些典型語言的特點及其適用範圍。
3.1.1程序設計語言的基本概念
1.低級語言和高級語言
計算機硬件隻能識彆由0、1字符序列組成的機器指令,因此機器指令是最基本的計算機語言。用機器語言編製程序效率低、可讀性差,也難以理解、修改和維護。因此,人們設計瞭匯編語言,用容易記憶的符號代替0、1序列,來錶示機器指令中的操作碼和操作數。例如,用ADD錶示加法、SUB錶示減法等。雖然使用匯編語言編寫程序的效率和程序的可讀性有所提高,但匯編語言是麵嚮機器的語言,其書寫格式在很大程度上取決於特定計算機的機器指令。機器語言和匯編語言被稱為低級語言。
人們開發瞭功能更強、抽象級彆更高的語言以支持程序設計,因此就産生瞭麵嚮各類應用的程序設計語言,即高級語言,常見的有Java、C、C++、C#、Python、PHP等。這類語言與人們使用的自然語言比較接近,大大提高瞭程序設計的效率。
2.編譯程序和解釋程序
目前,盡管人們可以藉助高級語言與計算機進行交互,但是計算機仍然隻能理解和執行由0、1序列構成的機器語言,因此高級程序設計語言需要翻譯,擔負這一任務的程序稱為“語言處理程序”。由於應用的不同,程序語言的翻譯也是多種多樣的。它們大緻可分為匯編程序、解釋程序和編譯程序。
用某種高級語言或匯編語言編寫的程序稱為源程序,源程序不能直接在計算機上執行。如果源程序是用匯編語言編寫的,則需要一個稱為匯編程序的翻譯程序將其翻譯成目標程序後纔能執行。如果源程序是用某種高級語言編寫的,則需要對應的解釋程序或編譯程序對其進行翻譯,然後在機器上運行。
解釋程序也稱為解釋器,它可以直接解釋執行源程序,或者將源程序翻譯成某種中間錶示形式後再加以執行;而編譯程序(編譯器)則首先將源程序翻譯成目標語言程序,將目標程序與庫函數鏈接後形成可執行程序,然後在計算機上運行可執行程序。這兩種語言處理程序的根本區彆是:在編譯方式下,機器上運行的是與源程序等價的目標程序,源程序和編譯程序都不再參與目標程序的執行過程;而在解釋方式下,解釋程序和源程序(或其某種等價錶示)要參與到程序的運行過程中,運行程序的控製權在解釋程序。解釋器翻譯源程序時不産生獨立的目標程序,而編譯器則需將源程序翻譯成獨立的目標程序。
3.程序設計語言的定義
一般地,程序設計語言的定義都涉及語法、語義和語用3個方麵。
(1)語法。語法是指由程序設計語言基本符號組成程序中的各個語法成分(包括程序)的一組規則,其中由基本字符構成的符號(單詞)書寫規則稱為詞法規則,由符號(單詞)構成語法成分的規則稱為語法規則。程序設計語言的語法可通過形式語言進行描述。
(2)語義。語義是程序設計語言中按語法規則構成的各個語法成分的含義,可分為靜態語義和動態語義。靜態語義是指編譯時可以確定的語法成分的含義,而運行時刻纔能確定的含義是動態語義。一個程序的執行效果說明瞭該程序的語義,它取決於構成程序的各個組成部分的語義。
(3)語用。語用錶示瞭構成語言的各個記號和使用者的關係,涉及符號的來源、使用和影響。
語言的實現還涉及語境問題。語境是指理解和實現程序設計語言的環境,這種環境包括編譯環境和運行環境。
3.1.2程序設計語言的分類和特點
1.程序設計語言發展概述
程序設計語言的發展是一個不斷演化的過程,其根本的推動力就是對抽象機製的更高要求,以及對程序設計活動更好地支持。具體地說,就是把機器能夠理解的語言提升到也能夠很好地模仿人類思考問題的形式。
FORTRAN(“FORmulaTRANslator”的縮寫)是第一個高級程序設計語言,在數值計算領域積纍瞭大量高效而可靠的程序代碼。FORTRAN語言的最大特性是接近數學公式的自然描述,具有很高的執行效率,目前廣泛地應用於並行計算和高性能計算領域。
前言/序言
第5版前言
全國計算機技術與軟件專業技術資格(水平)考試從實施至今已有二十餘年,在社會上産生瞭很大的影響,對我國軟件産業的形成和發展做齣瞭重要的貢獻。為瞭適應我國計算機信息技術發展的需求,人力資源和社會保障部、工業和信息産業部決定將考試的級彆拓展到計算機信息技術行業的各個方麵,以滿足社會上對計算機信息技術人纔的需要。
編者受全國計算機專業技術資格考試辦公室委托,對《程序員教程(第4版)》一書進行再編,以適應新的考試大綱要求。在考試大綱中,要求考生掌握的知識麵很廣,每個章節的內容都能構成相關領域的一門課程,因此編寫本書的難度很高。考慮到參加考試的人員已有一定的基礎,所以本書中隻對考試大綱中所涉及的知識領域的要點加以闡述,但限於篇幅所限,不能詳細地展開,請讀者諒解。
全書共分11章,各章的內容安排如下。
第1章計算機係統基礎知識:主要介紹計算機係統硬件組成、數據在計算機中的錶示和運算、校驗碼基礎知識、指令係統和多媒體係統基礎知識。
第2章操作係統基礎知識:主要介紹操作係統的類型和功能等基本概念,進程管理、存儲管理、設備管理、文件管理和作業管理等基礎知識。
第3章程序設計語言基礎知識:主要介紹程序設計語言的類型和特點、程序設計語言的基本成分以及編譯、解釋等基本的語言翻譯基礎知識。
第4章數據結構與算法:主要介紹綫性錶和鏈錶、棧、隊列、數組、樹、圖等基本數據結構以及查找、排序等常用算法。
第5章軟件工程基礎知識:主要介紹軟件工程和項目管理基礎、麵嚮對象分析與設計方法、軟件需求分析、軟件設計、編碼和測試、軟件係統運行與維護、軟件質量管理等基礎知識。
第6章數據庫基礎知識:主要介紹數據庫管理係統的主要功能和特徵、數據庫模式、數據模型和ER圖、關係運算和SQL等基礎知識。
第7章網絡與信息安全基礎知識:主要介紹網絡的功能、分類、組成和拓撲結構,基本的網絡協議與標準,常用網絡設備與網絡通信設備的作用和特點、局域網(LAN)和互聯網(Internet)基礎知識,以及信息安全、網絡安全基礎知識。
第8章標準化和知識産權基礎知識:主要介紹標準化的基本概念和知識産權的概念與特點、計算機軟件著作權和商業秘密權基礎知識。
第9章C程序設計:主要介紹C程序基礎、語句、函數、指針與簡單C程序中常見錯誤。
第10章C++程序設計:主要介紹C++程序基礎、類與對象、繼承與多態、輸入與輸齣流庫、異常處理和常用STL模闆庫。
第11章Java程序設計:主要介紹Java程序語言基礎和特點、類與接口、異常、文件和輸入/輸齣流以及Java類庫等基礎知識。
本書第1章由張淑平、馬誌欣編寫,第2章由王亞平編寫,第3章和第4章由張淑平編寫,第5章由褚華、霍鞦艷編寫,第6章由王亞平編寫,第7章由嚴體華編寫,第8章由劉強編寫,第9章由張淑平、覃桂敏編寫,第10章由張淑平、宋勝利編寫,第11章由霍鞦艷編寫,全書由張淑平、覃桂敏統稿。
在本書的編寫過程中,參考瞭許多相關的書籍和資料,編者在此對這些參考文獻的作者錶示感謝。同時感謝清華大學齣版社在本書齣版過程中所給予的支持和幫助。
因水平有限,書中難免存在欠妥之處,望讀者指正,以利改進和提高。
編者
2018年1月
程序員教程(第5版)/全國計算機技術與軟件專業技術資格(水平)考試指定用書 epub pdf mobi txt 電子書 下載 2024
程序員教程(第5版)/全國計算機技術與軟件專業技術資格(水平)考試指定用書 下載 epub mobi pdf txt 電子書