軟考

TheDarkWoods發表於2020-11-03

#1 程式語言基礎

1.1 程式語言分類

通用的程式語言有C語言、C++語言、Java語言、C#語言、PHP語言、Python語言、VB語言、JavaScript語言等。
標記語言是名稱帶有ML即MarkLanguage的語言
SQL為資料庫語言
通用指令碼語言包括 Python, Ruby, VBScript,PHP。

COBOL是面向事務處理的語言;
XML即可擴充套件標記語言;
PROLOG是邏輯式語言;
LISP是函式式語言

1.2 變數存放位置

變數實際上是儲存位置的名字。
程式碼區存放指令,執行過程中不可修改。
全域性變數的儲存單元位於靜態資料區
區域性變數的儲存單元位於棧區
根據需要進行動態申請和釋放的動態變數儲存空間在堆區

1.3 程式變數敘述

函式的呼叫和返回控制都是用來進行的,以保證運算邏輯的正確性。
函式的宣告必須在該函式的呼叫之前,定義可以在函式呼叫之後。
動態繫結是程式執行過程中,把函式(或過程)呼叫與響應呼叫所需要的程式碼相結合的過程
連線程式是將來源不同的目標程式裝配成一個可執行程式

程式的錯誤可以分為兩類:語法錯誤和語義錯誤,語法描述語言的結構,語義表達語言的含義。語法錯誤會在編譯階段
 
 

#2 線性表

2.1 串

串的模式匹配演算法是指在串中查詢指定的模式串是否出現及其位置
兩個字串比較時,按照對應字元(編碼)的大小關係進行比較。
 
 

#3 軟工&項管

3.1 軟體開發模型

RUP統一過程的商業版本,是用力和風險驅動、以架構為中心、迭代的增量開發過程。
XP是一種輕量級,高效,低風險,柔性,可預測的,科學的軟體開發方式,不斷迭代。
螺旋模型將開發過程分為幾個螺旋週期,每個螺旋週期在前一個螺旋週期的基礎上迭代進行開發。
瀑布模型適用於軟體需求確定,開發過程能夠以線性化的方式完成的那些軟體開發專案。能否用於某個專案或者快速開發某個專案並不取決於所開發的軟體專案的規模或開發團隊的規模。而且只要軟體需求確定,開發過程能夠採用線性方式進行,現今的軟體開發仍然可以使用瀑布模型。
V模型是瀑布模型的一種演變模型,將測試和分析與設計關聯進行。
原形模型通過快速構建可執行的原型系統,然後根據執行過程中獲取的使用者反饋進行改進,特別適用於對軟體需求缺乏認識的情況。

敏捷開發有:XP,SCRUM,水晶法
RUP屬於統一開發過程

Mc Call軟體質量模型從軟體產品的執行、修整、轉移三個方面確定了11個質量特性。
執行方面的特性包括正確性、可靠性、易使用性、效率和完整性;
產品轉移方面特性包括可移植性、複用性和互用性;
產品修正方面特性包括可維護性、靈活性、可測試性;

CMM:
可重複級: 建立了基本的專案管理過程和實踐來跟蹤專案費用,進度和功能性。
已定義級: 所有專案都採用根據實際情況修改後得到的標準軟體過程來開發和維護軟體。
已管理級: 收集對軟體過程和產品質量的詳細度量,對軟體過程和產品都有定量的理解和控制。
優化級: 過程的量化反饋和先進的新思想,新技術促使過程不斷改進。

雲端計算: 使用者所需的資源和呼叫方式對使用者透明,向使用者提供方便、靈活的服務。
 
 

#4 辦公自動化 √

#5 中央處理器 CPU

5.1 中央處理器的內部構成

中央處理器(CPU) 是指由 運算器(ALU)、控制器(CU)、暫存器組(Registers)、內部匯流排所組成
運算器算術邏輯單元(ALU)累加器資料緩衝暫存器狀態條件暫存器組成
控制器程式計數器指令暫存器指令譯碼器時序產生器操作控制器組成
I/O匯流排是在記憶體與外設(顯示器、印表機、掃描器、外部儲存裝置等)間傳送資料的通路
 
程式計數器用於存放下一條指令所在單元的地址。當執行一條指令時,首先需要根據PC中存放的指令地址,將指令由記憶體取到指令暫存器中,此過程稱為 “取指令”。與此同時,PC中的地址或自動加1或由轉移指標給出下一條指令的地址。此後經過分析指令執行指令
 
累加器用於暫時存放運算元和中間運算結果。
 
匯流排寬度分為地址匯流排寬度資料匯流排寬度
地址匯流排寬度決定了CPU可以訪問的實體地址空間,簡單地說就是CPU到底能夠使用多大容量的記憶體。
CPU執行算術運算或者邏輯運算時,算術邏輯運算部件(ALU)將計算結果儲存在累加器(AC)中。
 
資料暫存器用於暫時存放由記憶體讀取的一條指令或資料字,反之,當向記憶體寫入一個資料字時,也暫時將他們存放在資料緩衝暫存器中。

計算機的用途不同,對其不同部件的效能指標要求也有所不同。用作科學計算為主的計算機,其對主機的運算速度要求很高;用作大型資料庫處理為主的計算機,其對主機的記憶體容量、存取速度和外儲存器的讀寫速度要求較高:對於用作網路傳輸的計算機,則要求有很高的I/O速度

CPU對主存的訪問方式屬於隨機儲存。

連入計算機系統的裝置都要進行編址以便進行訪問,對於I/O裝置,可以採用與記憶體統一編址的方式或獨立的編址方式。若與記憶體單元統一編址,則訪問I/O裝置介面如同訪問記憶體單元,在指令系統中就不需要加以區分(即不需要設定專門的訪問I/O裝置介面的指令);若採用獨立的編址方式,則I/O裝置介面的編號與記憶體單元的地址可能重疊,因此訪問I/O裝置介面的指令應該與訪問記憶體單元的指令相互區分。

RISC(精簡指令集計算機)指令系統的最大特點是:選取使用頻率最高的一些簡單指令,指令條數少; 指令長度固定,指令格式種類少;只有取數_/存數指令訪問儲存器,其餘指令的操作都在暫存器之間進行。

CPU字長指CPU在單位時間內能一次處理的二進位制數的位數
資料匯流排負責計算機中資料在各組成部分之間的傳送.
 

5.2 定址方式

直接定址方式下,運算元在記憶體中,指令中給出運算元的地址,需要再訪問一次記憶體來得到運算元。
立即定址方式下,運算元在指令中,所以在取得指令時就得到運算元,是速度最快的。
暫存器定址方式下,運算元在CPU的暫存器中。
暫存器間接定址方式下,運算元的地址在CPU的暫存器中,還需要訪問一次記憶體來得到運算元。
間接定址下,間接定址意味著指令中給出的地址A不是運算元的地址,二是存放運算元地址的主存單元的地址,簡稱運算元地址的地址。

無條件傳送、程式查詢和中斷方式都需要CPU執行程式指令進行資料的輸入和輸出。**DMA方式則是一種不經過CPU而直接從記憶體存取資料的資料交換模式。**在DMA模式下,CPU只需向DMA控制器下達指令,讓DMA控制器來處理資料的傳送,資料傳送完之後再把資訊反饋給CPU即可。
 
 

#6 資料庫語言

6.1 屬性分類:

簡單屬性: 不能再劃分的更小部分屬性
複合屬性: 可以在劃分為更小部分,也就是可以在劃分一下其他屬性的屬性
單值屬性: 資料庫中所定義的屬性對於一個特定的實體來說只有一個單獨的值
多值屬性: 在某種情況下對某個特定的實體而言,一個屬性可能對應一組值
派生屬性: 可以從別的實體或相關屬性派生出來

6.2 關係模型中有三類完整性約束:

實體完整性: 對主屬性值域的約束
參照完整性: 對參照關係的外碼屬性值域的約束
( 如 果 一 個 關 系 中 的 一 個 屬 性 是 另 外 一 個 關 系 中 的 主 碼 則 這 個 屬 性 為 外 碼 。 外 碼 的 值 或 為 空 , 或 為 其 對 應 的 主 碼 中 的 一 個 值 ) \color{#696969}{(如果一個關係中的一個屬性是另外一個關係中的主碼則這個屬性為外碼。外碼的值或為空,或為其對應的主碼中的一個值)} ()**
使用者定義完整性: 對其他屬性值域的約束

6.3 SQL語句補全

查詢語句

//查詢 零件名為P2, 供應商包含華德, 利潤在1280~2500的 零件名,供應商以及利潤(售價-進貨價)
SELECT 零件名, 供應商, 售價 - 進貨價 as 利潤 
	FROM P
	WHERE 零件名 = 'P2' 
	AND 供應商 like '%華德%'
	AND 利潤 Between 250 AND 500
	
//尋找比所有計算機系學生的年齡都小的其他系的學生 姓名及年齡
SELECT 姓名, 年齡 
	FROM 學生
	WHERE 年齡 < ALL( 
		SELECT 年齡 FROM 學生 WHERE 
		專業 = '計算機')
		AND 專業 <> '計算機';

//查詢至少選擇了四門課程的學生學號、姓名及平均成績
SELECT 學號, 姓名, AVG(成績) AS 平均成績
	FROM Student GROUP BY 學號
	HAVING COUNT(課程號)>3

修改語句

//
UPDATE P
	SET 價格 = 價格*0.98
	WHERE 供應商 = 'S2';

插入語句

INSERT INTO EMP Values(10058, '黃曉華' , '開發部')

建表語句

//
CREATE TABLE Emp(
	員工號 CHAR(4),
	姓名 CHAR(10),
	性別 CHAR(1) CHECK(性別 IN ('M','F')),
	部門 CHAR(4) REFERENCES Dept(部門),
	家庭住址 CHAR(30),
	PRIMARY KEY (員工號);

 
 

#7 物件導向技術 √

#8 應用數學

#9 資料的表示

原碼: 正數的符號位為0,負數的符號位為1
反碼: 正數的反碼等於他的原碼。負數的符號位不變,其他位取反。
補碼: 正數的補碼等於他的原碼。負數的補碼等於反碼+1。
移碼: 補碼符號位取反,數值位不變。
海明碼: 利用奇偶性來檢錯和糾錯的校驗方法。海明碼的構成方法是在資料位之間的確定位置上插入k個校驗位,通過擴大碼距來實現檢錯和糾錯。
奇偶校驗碼: 通過增加一位校驗位來使編碼中“1”的個數橫為奇數或偶數。
兩個數值相同,亦或結果為0,兩個數不同,亦或結果為1;
迴圈冗餘校驗碼: 的基本原理是在尺位資訊碼後再拼接位的校驗碼,整個編碼長度為N位。
數值中的小數點在硬體中不明確表示,二是採用約定位置的方式。

IEEE754浮點表示法中,階碼採用移碼表示
 
 

#10 系統分析與系統設計

直譯器模式: 定義一個語言的文法,並且建立一個直譯器來解釋該語言中的句子,這裡的“語言“”是指使用規定格式和語法的程式碼

N-S盒圖,PAD圖和程式流程圖主要用於表示軟體模組的執行過程。
E-R圖是在對系統進行資料建模時採用,用於表示實體與實體之間的聯絡。

物件導向分析結果主要是物件導向分析模型,當前主流的技術是採用物件導向建模語言來描述和表達。

程式模組設計的原則包括:規模適中,介面簡單,單入口出口;

#11 儲存器系統

#12 Windows基本操作

#13 程式測試基礎知識

13.1 測試的分類

靜態測試: 包括人工測試和計算機輔助靜態分析。
動態測試: 通過執行程式發現錯誤。
**黑盒測試: ** 包括等價類劃分,錯誤猜測,因果圖等
**白盒測試(結構測試): **

路徑覆蓋: 要求每一條獨立路徑都執行過。
語句覆蓋: 要求所有語句至少執行一次。
條件覆蓋: 每個判斷裡的每個條件的可能取值至少執行一次
判定覆蓋: 每個判斷的取真分支和取假分支至少經歷一次

#14 網路協議與標準

#15 處理機標準

#16 樹和二叉樹√

#17 統一建模語言UML

我們對Markdown編輯器進行了一些功能擴充與語法支援,除了標準的Markdown編輯器功能,我們增加了如下幾點新功能,幫助你用它寫部落格:

  1. 全新的介面設計 ,將會帶來全新的寫作體驗;
  2. 在創作中心設定你喜愛的程式碼高亮樣式,Markdown 將程式碼片顯示選擇的高亮樣式 進行展示;
  3. 增加了 圖片拖拽 功能,你可以將本地的圖片直接拖拽到編輯區域直接展示;
  4. 全新的 KaTeX數學公式 語法;
  5. 增加了支援甘特圖的mermaid語法1 功能;
  6. 增加了 多螢幕編輯 Markdown文章功能;
  7. 增加了 焦點寫作模式、預覽模式、簡潔寫作模式、左右區域同步滾輪設定 等功能,功能按鈕位於編輯區域與預覽區域中間;
  8. 增加了 檢查列表 功能。

功能快捷鍵

撤銷:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜體:Ctrl/Command + I
標題:Ctrl/Command + Shift + H
無序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
檢查列表:Ctrl/Command + Shift + C
插入程式碼:Ctrl/Command + Shift + K
插入連結:Ctrl/Command + Shift + L
插入圖片:Ctrl/Command + Shift + G
查詢:Ctrl/Command + F
替換:Ctrl/Command + G

合理的建立標題,有助於目錄的生成

直接輸入1次#,並按下space後,將生成1級標題。
輸入2次#,並按下space後,將生成2級標題。
以此類推,我們支援6級標題。有助於使用TOC語法後生成一個完美的目錄。

如何改變文字的樣式

強調文字 強調文字

加粗文字 加粗文字

標記文字

刪除文字

引用文字

H2O is是液體。

210 運算結果是 1024.

插入連結與圖片

連結: link.

圖片: Alt

帶尺寸的圖片: Alt

居中的圖片: Alt

居中並且帶尺寸的圖片: Alt

當然,我們為了讓使用者更加便捷,我們增加了圖片拖拽功能。

如何插入一段漂亮的程式碼片

部落格設定頁面,選擇一款你喜歡的程式碼片高亮樣式,下面展示同樣高亮的 程式碼片.

// An highlighted block
var foo = 'bar';

生成一個適合你的列表

  • 專案
    • 專案
      • 專案
  1. 專案1
  2. 專案2
  3. 專案3
  • 計劃任務
  • 完成任務

建立一個表格

一個簡單的表格是這麼建立的:

專案Value
電腦$1600
手機$12
導管$1

設定內容居中、居左、居右

使用:---------:居中
使用:----------居左
使用----------:居右

第一列第二列第三列
第一列文字居中第二列文字居右第三列文字居左

SmartyPants

SmartyPants將ASCII標點字元轉換為“智慧”印刷標點HTML實體。例如:

TYPEASCIIHTML
Single backticks'Isn't this fun?'‘Isn’t this fun?’
Quotes"Isn't this fun?"“Isn’t this fun?”
Dashes-- is en-dash, --- is em-dash– is en-dash, — is em-dash

建立一個自定義列表

Markdown
Text-to- HTML conversion tool
Authors
John
Luke

如何建立一個註腳

一個具有註腳的文字。2

註釋也是必不可少的

Markdown將文字轉換為 HTML

KaTeX數學公式

您可以使用渲染LaTeX數學表示式 KaTeX:

Gamma公式展示 Γ ( n ) = ( n − 1 ) ! ∀ n ∈ N \Gamma(n) = (n-1)!\quad\forall n\in\mathbb N Γ(n)=(n1)!nN 是通過尤拉積分

Γ ( z ) = ∫ 0 ∞ t z − 1 e − t d t   . \Gamma(z) = \int_0^\infty t^{z-1}e^{-t}dt\,. Γ(z)=0tz1etdt.

你可以找到更多關於的資訊 LaTeX 數學表示式here.

新的甘特圖功能,豐富你的文章

Mon 06 Mon 13 Mon 20 已完成 進行中 計劃一 計劃二 現有任務 Adding GANTT diagram functionality to mermaid
  • 關於 甘特圖 語法,參考 這兒,

UML 圖表

可以使用UML圖表進行渲染。 Mermaid. 例如下面產生的一個序列圖:

張三 李四 王五 你好!李四, 最近怎麼樣? 你最近怎麼樣,王五? 我很好,謝謝! 我很好,謝謝! 李四想了很長時間, 文字太長了 不適合放在一行. 打量著王五... 很好... 王五, 你怎麼樣? 張三 李四 王五

這將產生一個流程圖。:

連結
長方形
圓角長方形
菱形
  • 關於 Mermaid 語法,參考 這兒,

FLowchart流程圖

我們依舊會支援flowchart的流程圖:

Created with Raphaël 2.2.0 開始 我的操作 確認? 結束 yes no
  • 關於 Flowchart流程圖 語法,參考 這兒.

匯出與匯入

匯出

如果你想嘗試使用此編輯器, 你可以在此篇文章任意編輯。當你完成了一篇文章的寫作, 在上方工具欄找到 文章匯出 ,生成一個.md檔案或者.html檔案進行本地儲存。

匯入

如果你想載入一篇你寫過的.md檔案,在上方工具欄可以選擇匯入功能進行對應副檔名的檔案匯入,
繼續你的創作。


  1. mermaid語法說明 ↩︎

  2. 註腳的解釋 ↩︎

相關文章