主頁 > 後端開發 > 干貨分享:計算機二級考試C語言基礎知識,送給考二級的同學!

干貨分享:計算機二級考試C語言基礎知識,送給考二級的同學!

2020-11-07 03:21:40 後端開發

第一章 資料結構與演算法


 

  1.1 演算法

  1.演算法的基本概念

如果你在學習C/C++的程序中遇到了問題,可以來加入小編的企鵝圈問小編哦~小編很熱情的(●’?’●)

  (1) 概念:演算法是指一系列解決問題的清晰指令,

  (2) 4個基本特征:可行性、確定性、有窮性、擁有足夠的情報,

  (3) 兩種基本要素:對資料物件的運算和操作、演算法的控制結構(運算和操作時問的順序),

  (4) 設計的基本方法:列舉法、歸納法、遞推法、遞回法、減半遞推技術和回溯法,

  2.演算法的復雜度

  (1) 演算法的時間復雜度:執行演算法所需要的計算作業量,

  (2) 演算法的空間復雜度:執行演算法所需的記憶體空間,

  1.2 資料結構的基本概念

  資料結構指相互有關聯的資料元素的集合,即資料的組織形式,其中邏輯結構反映資料元素之間邏輯關系;存盤結構為資料的邏輯結構在計算機存盤空間中的存放形式,有順序存盤、鏈式存盤、索引存盤和散列存盤4種方式,

  資料結構按各元素之間前后件關系的復雜度可劃分為:

  (1) 線性結構:有且只有一個根節點,且每個節點最多有一個直接前驅和一個直接后繼的非空資料結構,

  (2) 非線性結構:不滿足線性結構的資料結構,

  1.3 線性表及其順序存盤結構

  1.線性表的基本概念

  線性結構又稱線性表,線性表是最簡單也是最常用的一種資料結構,

  2.線性表的順序存盤結構

   元素所占的存盤空間必須連續,

   元素在存盤空間的位置是按邏輯順序存放的,

  3.線性表的插入運算

  在第i個元素之前插入一個新元素的步驟如下:

  步驟一:把原來第n個節點至第i個節點依次往后移一個元素位置,

  步驟二:把新節點放在第i個位置上,

  步驟三:修正線性表的節點個數,

  在最壞情況下,即插入元素在第一個位置,線性表中所有元素均需要移動,

  4.線性表的洗掉運算

  洗掉第i個位置的元素的步驟如下:

  步驟一:把第i個元素之后不包括第i個元素的n-i個元素依次前移一個位置;

  步驟二:修正線性表的結點個數,

  1.4 堆疊和佇列

  1.堆疊及其基本運算

  (1) 基本概念:堆疊是一種特殊的線性表,其插入運算與洗掉運算都只在線性表的一端進行,也被稱為“先進后出”表或“后進先出”表,

  堆疊頂:允許插入與洗掉的一端,

  堆疊底:堆疊頂的另一端,

  空堆疊:堆疊中沒有元素的堆疊,

  (2) 特點,

   堆疊頂元素是最后被 插入和最早被洗掉的元素,

   堆疊底元素是最早被 插入和最后被洗掉的元素,

   堆疊有記憶作用,

   在順序存盤結構下,堆疊的插入和洗掉運算不需移動表中其他資料元素,

   堆疊頂指標top動態反映了堆疊中元素的變化情況

  (3) 順序存盤和運算:入堆疊運算、退堆疊運算和讀堆疊頂運算,

  2.佇列及其基本運算

  (1) 基本概念:佇列是指允許在一端進行插入,在另一端進行洗掉的線性表,又稱“先進先出”的線性表,

   隊尾:允許插入的一端,用尾指標指向隊尾元素,

   排頭:允許洗掉的一端,用頭指標指向頭元素的前一位置,

  (2) 回圈佇列及其運算,

  所謂回圈佇列,就是將佇列存盤空間的最后一個位置繞到第一個位置,形成邏輯上的環狀空間,

  入隊運算是指在回圈佇列的隊尾加入一個新元素,

  當回圈佇列非空(s=1)且隊尾指標等于隊頭指標時,說明回圈佇列已滿,不能進行人隊運算,這種情況稱為“上溢”,

  退隊運算是指在回圈佇列的隊頭位置退出一個元素并賦給指定的變數,首先將隊頭指標進一,然后將排頭指標指向的元素賦給指定的變數,當回圈佇列為空(s=0)時,不能進行退隊運算,這種情況稱為“下溢”,

  1.5 線性鏈表

  在定義的鏈表中,若只含有一個指標域來存放下一個元素地址,稱這樣的鏈表為單鏈表或線性鏈表,

  在鏈式存盤方式中,要求每個結點由兩部分組成:一部分用于存放資料元素值,稱為資料域;另一部分用于存放指標,稱為指標域,其中指標用于指向該結點的前一個或后一個結點(即前件或后件),

  1.6 樹和二叉樹

  1.樹的基本概念

  樹是簡單的非線性結構,樹中有且僅有一個沒有前驅的節點稱為“根”,其余節點分成m個互不相交的有限集合T1,T2,…,T}mm,每個集合又是一棵樹,稱T1,T2,…,T}mm為根結點的子樹,

   父節點:每一個節點只有一個前件,無前件的節點只有一個,稱為樹的根結點(簡稱樹的根),

   子節點:每~個節點可以后多個后件,無后件的節點稱為葉子節點,

   樹的度:所有節點最大的度,

   樹的深度:樹的最大層次,

  2.二叉樹的定義及其基本性質

 


 

  (1) 二叉樹的定義:二叉樹是一種非線性結構,是有限的節點集合,該集合為空(空二叉樹)或由一個根節點及兩棵互不相交的左右二叉子樹組成,可分為滿二叉樹和完全二叉樹,其中滿二叉樹一定是完全二叉樹,但完全二叉樹不一定是滿二叉樹,二叉樹具有如下兩個特點:

   二叉樹可為空,空的二叉樹無節點,非空二叉樹有且只有一個根結點;

   每個節點最多可有兩棵子樹,稱為左子樹和右子樹,

  (2) 二叉樹的基本性質,

  性質1:在二叉樹的第k層上至多有2k-1個結點(k≥1),

  性質2:深度為m的二叉樹至多有2m-1個結點,

  性質3:對任何一棵二叉樹,度為0的結點(即葉子結點)總是比度為2的結點多一個,

  性質4:具有n個結點的完全二叉樹的深度至少為[log2n]+1,其中[log2n]表示log2n的整數部分,

  3.滿二叉樹與完全二叉樹

 


 

  (1) 滿二叉樹:滿二叉樹是指這樣的一種二叉樹:除最后一層外,每一層上的所有結點都有兩個子結點,滿二叉樹在其第i層上有2i-1個結點,

  從上面滿二叉樹定義可知,二叉樹的每一層上的結點數必須都達到最大,否則就不是滿二叉樹,深度為m的滿二叉樹有2m-1個結點,

  (2) 完全二叉樹:完全二叉樹是指這樣的二叉樹:除最后一層外,每一層上的結點數均達到最大值;在最后一層上只缺少右邊的若干結點,

  如果—棵具有n個結點的深度為k的二叉樹,它的`每—個結點都與深度為k的滿二叉樹中編號為1~n的結點——對應,

  3.二叉樹的存盤結構

  二叉樹通常采用鏈式存盤結構,存盤節點由資料域和指標域(左指標域和右指標域)組成,二叉樹的鏈式存盤結構也稱二叉鏈表,對滿二叉樹和完全二叉樹可按層次進行順序存盤,

  4.二叉樹的遍歷

  二叉樹的遍歷是指不重復地訪問二叉樹中所有節點,主要指非空二叉樹,對于空二叉樹則結束回傳,二叉樹的遍歷包括前序遍歷、中序遍歷和后序遍歷,

  (1) 前序遍歷,

  前序遍歷是指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先訪問根結點,然后遍歷左子樹,最后遍歷右子樹;并且,在遍歷左右子樹時,仍然先訪問根結點,然后遍歷左子樹,最后遍歷右子樹,前序遍歷描述為:若二叉樹為空,則執行空操作;否則①訪問根結點;②前序遍歷左子樹;③前序遍歷右子樹,

  (2) 中序遍歷,

 


 

  中序遍歷是指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然后訪問根結點,最后遍歷右子樹;并且,在遍歷左、右子樹時,仍然先遍歷左子樹,然后訪問根結點,最后遍歷右子樹,中序遍歷描述為:若二叉樹為空,則執行空操作;否則①中序遍歷左子樹;②訪問根結點;③中序遍歷右子樹,

  (3) 后序遍歷,

  后序遍歷是指在訪問根結點、遍歷左子樹與遍歷右子樹這三者中,首先遍歷左子樹,然后遍歷右子樹,最后訪問根結點,并且,在遍歷左、右子樹時,仍然先遍歷左子樹,然后遍歷右子樹,最后訪問根結點,后序遍歷描述為:若二叉樹為空,則執行空操作;否則①后序遍歷左子樹;②后序遍歷右子樹;③訪問根結點,

  1.7 查找技術

  (1) 順序查找:在線性表中查找指定的元素,

  (2) 最壞情況下,最后一個元素才是要找的元素,則需要與線性表中所有元素比較,比較次數為n,

  (3) 二分查找:二分查找也稱折半查找,它是一種高效率的查找方法,但二分查找有條件限制,它要求表必須用順序存盤結構,且表中元素必須按關鍵字有序(升序或降序均可)排列,對長度為n的有序線性表,在最壞情況下,二分查找法只需比較log2n次,

  1.8 排序技術

  (1) 交換類排序法,

   冒泡排序:通過對待排序序列從后向前或從前向后,依次比較相鄰元素的排序碼,若發現逆序則交換,使較大的元素逐漸從前部移向后部或較小的元素逐漸從后部移向前部,直到所有元素有序為止,在最壞情況下,對長度為n的線性表排序,冒泡排序需要比較的次數為n(n-1)/2,

   快速排序:是迄今為止所有內排序演算法中速度最快的一種,它的基本思想是:任取待排序序列中的某個元素作為基準(一般取第一個元素),通過一趟排序,將待排元素分為左右兩個子序列,左子序列元索的排序碼均小于或等于基準元素的排序碼,右子序列的排序碼則大于基準元素的排序碼,然后分別對兩個子序列繼續進行排序,直至整個序列有序,最壞情況下,即每次劃分,只得到一個序列,時間效率為O(n2),

  (2) 插人類排序法,

   簡單插入排序法:把n個待排序的元素看成為一個有序表和一個無序表,開始時有序表中只包含一個元素,無序表中包含有n-1個元素,排序程序中每次從無序表中取出第一個元素,把它的排序碼依次與有序表元素的排序碼進行比較,將它插入到有序表中的適當位置,使之成為新的有序表,在最壞情況下,即初始排序序列是逆序的情況下,比較次數為n(n-1)/2,移動次數為n(n-1)/2,

   希爾排序法:先將整個待排元素序列分割成若干個子序列(由相隔某個“增量”的元素組成的)分別進行直接插入排序,待整個序列中的元素基本有序(增量足夠小)時,再對全體元素進行一次直接插入排序,

  (3) 選擇類排序法,

   簡單選擇排序法:掃描整個線性表,從中選出最小的元素,將它交換到表的最前面;然后對剩下的子表采用同樣的方法,直到子表空為止,最壞情況下需要比較n(n-1)/2次,

 


 

   堆排序的方法:首先將一個無序序列建成堆;然后將堆頂元素(序列中的最大項)與堆中最后一個元素交換(最大項應該在序列的最后),不考慮已經換到最后的那個元素,只考慮前n-1個元素構成的子序列,將該子序列調整為堆,反復做步驟②,直到剩下的子序列空為止,在最壞情況下,堆排序法需要比較的次數為0(nlog2n)

第二章 程式設計基礎

  2.1 程式設計方法與風格

  (1)設計方法:指設計、編制、除錯程式的方法和程序,主要有結構化程式設計方法、軟體工程方法和面向物件方法,

  (2)設計風格:良好的設計風格要注重源程式檔案化、資料說明方法、陳述句的結構和輸入輸出,

  2.2 結構化程式設計

  1.結構化程式設計的原則

  結構化程式設計強調程式設計風格和程式結構的規范化,提倡清晰的結構,,

  (1)自頂向下:即先考慮總體,后考慮細節;先考慮全域目標,后考慮區域目標,

  (2)逐步求精:對復雜問題,應設計一些子目標做過渡,逐步細化,

  (3)模塊化:把程式要解決的總目標分解為分目標,再進一步分解為具體的小目標,把每個小目標稱為一個模塊;

  (4)限制使用GOT0陳述句,

  2.結構化程式的基本結構與特點

  (1)順序結構:自始至終嚴格按照程式中陳述句的先后順序逐條執行,是最基本、最普遍的結構形式,

  (2)選擇結構:又稱為分支結構,包括簡單選擇和多分支選擇結構,

  (3)重復結構:又稱為回圈結構,根據給定的條件,判斷是否需要重復執行某一相同的或類似的程式段,

  結構化程式設計中,應注意事項:

 


 

  (1)使用程式設計語言中的順序、選擇、回圈等有限的控制結構表示程式的控制邏輯,

  (2)選用的控制結構只準許有一個人口和一個出口,

  (3)程式語言組成容易識別的塊,每塊只有一個入口和一個出口,

  (4)復雜結構應該用嵌套的基本控制結構進行組合嵌套來實作,

  (5)語言中所沒有的控制結構,應該采用前后一致的方法來模擬,

  (6)盡量避免GOT0陳述句的使用,

  2.3 面向物件的程式設計

  面向物件方法的本質是主張從客觀世界固有的事物出發來構造系統,強調建立的系統能映射問題域,

   物件:用來表示客觀世界中任何物體,可以是任何有明確邊界和意義的東西,

   類:具有共同屬性、共同方法的物件的集合,

   實體:一個具體物件就是其對應分類的一個實體,

   訊息:實體間傳遞的資訊,它統一了資料流和控制流,

   繼承:使用已有的類定義作為基礎建立新類的定義技術,

   多型性:指物件根據所接受的資訊而作出動作,同樣的資訊被不同的物件接收時有不同行動的現象,面向物件程式設計的優點:與人類習慣的思維方法一致、穩定性好、可重用性好、易于開發大型軟體產品、可維護性好,

第三章 軟體工程基礎

  3.1 軟體工程基本概念

  1.軟體的定義與特點

  (1)定義:軟體是指與計算機系統的操作有關的計算機程式、規程、規則,以及可能有的檔案、檔案和資料,

  (2)特點,

   是邏輯物體,有抽象性,

   生產沒有明顯的制作程序,

   運行使用期間不存在磨損、老化問題,

   開發、運行對計算機系統有依賴性,受計算機系統的限制,導致了軟體移植問題,

   復雜性較高,成本昂貴,

   開發涉及諸多社會因素,

  2.軟體的分類

  軟體可分應用軟體、系統軟體和支撐軟體3類,

  (1)應用軟體是特定應用領域內專用的軟體,

  (2)系統軟體居于計算機系統中最靠近硬體的一層,是計算機管理自身資源,提高計算機使用效率并為計算機用戶提供各種服務的軟體,

  (3)支撐軟體介于系統軟體和應用軟體之間,是支援其它軟體的開發與維護的軟體,

  3.軟體危機與軟體工程

  軟體危機指在計算機軟體的開發和維護中遇到的一系列嚴重問題,軟體工程是應用于計算機軟體的定義、開發和維護的一整套方法、工具、檔案、實踐標準和工序,包括軟體開發技術和軟體工程管理,

  4.軟體生命周期

  軟體產品從提出、實作、使用維護到停止使用的程序稱為軟體生命周期,

  在國家標準中,軟體生命周期劃分為8個階段①軟體定義期:包括問題定義、可行性研究和需求分析3個階段,②軟體開發期:包括概要設計、詳細設計、實作和測驗4個階段,③運行維護期:即運行維護階段,

  5.軟體工程的原則

  軟體工程的原則包括:抽象、資訊隱蔽、模塊化、區域化、確定性、一致性、完備性和可驗證性,

  3.2 結構化分析方法

  需求分析的任務是發現需求、求精、建模和定義需求的程序,可概括為:需求獲取、需求分析、撰寫需求規格說明書和需求評審,

  1.常用的分析方法

   結構化分析方法:其實質著眼于資料流,自頂向下,逐層分解,建立系統的處理流程,

   面向物件分析方法,

  2.結構化分析常用工具

  結構化分析常用工具包括資料流圖、數字字典(核心方法)、判斷樹和判斷表,

  (1)資料流圖:即DFD圖,以圖形的方式描繪資料在系統中流動和處理的程序,它只反映系統必須完成的邏輯功能,是一種功能模型,

  符號名稱作用:

   箭頭代表資料流,沿箭頭方向傳送資料的通道

   圓或橢圓代表加工,輸入資料經加工變換產生輸出

   雙杠代表存盤檔案,表示處理程序中存放各種資料檔案

   方框代表源和潭,表示系統和環境的介面

  (2)資料字典:結構化分析方法的核心,資料字典是對所有與系統相關的資料元素的一個有組織的串列,以及精確的、嚴格的定義,使得用戶和系統分析員對于輸入、輸出、存盤成分和中間計算結果有共同的理解,

  (3)判定樹:使用判定樹進行描述時,應先從問題定義的文字描述中分清判定的條件和判定的結論,根據描述材料中的連接詞找出判定條件之問的從屬關系、并列關系、選擇關系,根據它們構造判定樹,

  (4)判定表:與判定樹相似,當資料流圖中的加工要依賴于多個邏輯條件的取值,即完成該加工的一組動作是由于某一組條件取值的組合引發的,使用判定表比較適宜,

  3.軟體需求規格說明書

  軟體需求規格說明書是需求分析階段的最后成果,是軟體開發的重要檔案之一,

  (1)軟體需求規格說明書的作用:①便于用戶、開發人員進行理解和交流;②反映出用戶問題的結構,可以作為軟體開發作業的基礎和依據;③作為確認測驗和驗收的依據,

  (2)軟體需求規格說明書的內容:①概述;②資料描述;③功能描述;④性能描述;⑤參考文獻;⑥附錄,

  (3)軟體需求規格說明書的特點:①正確性;②無歧義性;③完整性;④可驗證性;⑤一致性;⑥可理解性;⑦可修改性;⑧可追蹤性,

  3.3 結構化設計方法

  1.軟體設計的基本概念和方法

  軟體沒計是一個把軟體需求轉換為軟體表示的程序,

  (1)基本原理:抽象、模塊化、資訊隱藏、模塊獨立性(度量標準:耦合性和內聚性,高耦合、低內聚),

  (2)基本思想:將軟體設計成由相對獨立、單一功能的模塊組成的結構,

  2.概要設計

  (1)4個任務:設計軟體系統結構、資料結構及資料庫設計、撰寫概要設計檔案、概要設計檔案評審,

  (2)面向資料流的設計方法:資料流圖的資訊分為交換流和事物流,結構形式有交換型和事務型,

  3.詳細設計的工具

  詳細設計的工具包括:

   圖形工具:程式流程圖、N-S、PAD、HIPO,

   表格工具:判定表,

   語言工具:PDL(偽碼),

  3.4 軟體測驗

  1.目的

  為了發現錯誤而執行程式的程序,

  2.準則

   所有測驗應追溯到用戶需求,

   嚴格執行測驗計劃,排除測驗的隨意性,

   充分注意測驗中的群集現象,

   程式員應避免檢查自己的程式,

   窮舉測驗不可能,

   妥善保存設計計劃、測驗用例、出錯統計和最終分析報告,

  3.軟體測驗技術和方法

  軟體測驗的方法按是否需要執行被測軟體的角度,可分為靜態測驗和動態測驗,按功能分為白盒測驗和黑盒測驗,

  (1)白盒測驗:根據程式的內部邏輯設計測驗用例,主要方法有邏輯覆寫測驗、基本路徑測驗等,

  (2)黑盒測驗:根據規格說明書的功能來設計測驗用例,主要診斷方法有等價劃分法、邊界值分析法、錯誤推測法、因果圖法等,主要用于軟體確認測驗,

  4.軟體測驗的實施

  軟體測驗是保證軟體質量的重要手段,軟體測驗是一個程序,其測驗流程是該程序規定的程式,目的是使軟體測驗作業系統化,

  軟體測驗程序分4個步驟,即單元測驗、集成測驗、驗收測驗和系統測驗,

  單元測驗是對軟體設計的最小單位——模塊(程式單元)進行正確性檢驗測驗,

  單元測驗的目的是發現各模塊內部可能存在的各種錯誤,

  單元測驗的依據是詳細的設計說明書和源程式,

  單元測驗的技術可以采用靜態分析和動態測驗,

  3.5 程式的除錯

  (1)任務:診斷和改正程式中的錯誤,

  (2)除錯方法:強行排錯法、回溯法和原因排除法,

第四章 資料庫設計基礎

  4.1 資料庫系統的基本概念

  (1) 資料(Data):描述事物的符號記錄,

  (2) 資料庫(DataBase):長期存盤在計算機內的、有組織的、可共享的資料集合,

  (3) 資料庫管理系統的概念

資料庫管理系統(DataBase Management System,DBMS)是資料庫的機構,它是一種系統軟體,負責資料庫中的資料組織、資料操作、資料維護、資料控制及保護和資料服務等,為完成以上6個功能,DBMS提供了相應的資料語言;資料定義語言(負責資料的模式定義與資料的物理存取構建);資料操縱語言(負責資料的操縱);資料控制語言(負責資料完整性、安全性的定義),資料庫管理系統是資料庫系統的核心,它位于用戶和作業系統之間,從軟體分類的角度來說,屬于系統軟體,

  (4) 資料庫技術發展經歷了3個階段,

  人工管理階段→檔案系統階段→資料庫系統階段

  (5) 資料庫系統的特點:集成性、高共享性、低冗余性、資料獨立性、資料統一管理與控制等,

  (6) 資料庫系統的內部機構體系:三級模式(概念模式、內模式、外模式)和二級映射(外模式/概念模式的映射、概念模式/內模式的映射)構成了資料庫系統內部的抽象結構體系,

  4.2 資料模型

  資料模型是資料特征的抽象,從抽象層次上描述了系統的靜態特征、動態行為和約束條件,描述的內容有資料結構、資料操作和資料約束,有3個層次:概念資料模型、邏輯資料模型和物理資料模型,

  (1) E—R模型:提供了表示物體、屬性和聯系的方法,物體間聯系有“一對一”、“一對多”和“多對多”,

  (2) 層次模型:利用樹形結構表示物體及其之問聯系,其中節點是物體,樹枝是聯系,從上到下是一對多關系,

  (3) 網狀模型:用網狀結構表示物體及其之間聯系,是層次模型的擴展,網路模型以記錄型為節點,反映現實中較為復雜的事物聯系,

  (5) 關系模型:采用二維表(由表框架和表的元組組成)來表示,可進行資料查詢、增加、洗掉及修改操作,關系模型允許定義“物體完整性”、“參照完整性”和“用戶定義的完整性”三種約束,

   鍵(碼):二維表中唯一能標識元組的最小屬性集,

   候選鍵(候選碼):二維表中可能有的多個鍵,

  主鍵:被選取的一個使用的鍵,

  4.3 關系代數

  (1) 關系代數的基本運算:投影、選擇、笛卡爾積,

  (2) 關系代數的擴充運算:交、連接與自然連接、除,

  4.4 資料庫設計與管理

  1.資料庫設計概述

   基本思想:程序迭代和逐步求精,

   方法:面向資料的方法和面向程序的方法,

   設計程序:需求分析→概念設計→邏輯設計→物理設計→編碼→測驗→運行→進→步修改,

  2.資料庫設計的需求分析

  需求收集和分析是資料庫設計的第一階段,常用結構化分析方法(自頂向下、逐層分解)和面向物件的方法,主要作業有繪制資料流程圖、資料分析、功能分析、確定功能處理模塊和資料間關系,

  資料字典:包括資料項、資料結構、資料流、資料存盤和處理程序,是對系統中資料的詳盡描述,

  3.資料庫的設計

  (1) 資料庫的概念設計:分析資料問內在的語意關聯,以建立資料的抽象模型,

  (2) 資料庫的邏輯設計:從E-R圖向關系模型轉換,邏輯模式規范化,關系視圖設計可以根據用戶需求隨時創建,物體轉換為元組,屬性轉換為關系的屬性,聯系轉換為關系,

  (3) 資料庫的物理設計:是資料在物理設備上的存盤結構與存取方法,目的是對資料庫內部物理結構作出調整并選擇合理的存取路徑,以提高速度和存盤空間,

  4.資料庫管理

  資料庫管理包括資料庫的建立、資料庫的調整、資料庫的重組、資料庫的安全性與完整性控制、資料庫故障恢復和資料庫的監控,

轉載請註明出處,本文鏈接:https://www.uj5u.com/houduan/205027.html

標籤:C

上一篇:C/C++專案開發:用C++做圖書管理系統,小白也能學會!

下一篇:【每天學點新知識】Linux作業系統下C語言多執行緒同步使用指南!

標籤雲
其他(157675) Python(38076) JavaScript(25376) Java(17977) C(15215) 區塊鏈(8255) C#(7972) AI(7469) 爪哇(7425) MySQL(7132) html(6777) 基礎類(6313) sql(6102) 熊猫(6058) PHP(5869) 数组(5741) R(5409) Linux(5327) 反应(5209) 腳本語言(PerlPython)(5129) 非技術區(4971) Android(4554) 数据框(4311) css(4259) 节点.js(4032) C語言(3288) json(3245) 列表(3129) 扑(3119) C++語言(3117) 安卓(2998) 打字稿(2995) VBA(2789) Java相關(2746) 疑難問題(2699) 细绳(2522) 單片機工控(2479) iOS(2429) ASP.NET(2402) MongoDB(2323) 麻木的(2285) 正则表达式(2254) 字典(2211) 循环(2198) 迅速(2185) 擅长(2169) 镖(2155) 功能(1967) .NET技术(1958) Web開發(1951) python-3.x(1918) HtmlCss(1915) 弹簧靴(1913) C++(1909) xml(1889) PostgreSQL(1872) .NETCore(1853) 谷歌表格(1846) Unity3D(1843) for循环(1842)

熱門瀏覽
  • 【C++】Microsoft C++、C 和匯編程式檔案

    ......

    uj5u.com 2020-09-10 00:57:23 more
  • 例外宣告

    相比于斷言適用于排除邏輯上不可能存在的狀態,例外通常是用于邏輯上可能發生的錯誤。 例外宣告 Item 1:當函式不可能拋出例外或不能接受拋出例外時,使用noexcept 理由 如果不打算拋出例外的話,程式就會認為無法處理這種錯誤,并且應當盡早終止,如此可以有效地阻止例外的傳播與擴散。 示例 //不可 ......

    uj5u.com 2020-09-10 00:57:27 more
  • Codeforces 1400E Clear the Multiset(貪心 + 分治)

    鏈接:https://codeforces.com/problemset/problem/1400/E 來源:Codeforces 思路:給你一個陣列,現在你可以進行兩種操作,操作1:將一段沒有 0 的區間進行減一的操作,操作2:將 i 位置上的元素歸零。最終問:將這個陣列的全部元素歸零后操作的最少 ......

    uj5u.com 2020-09-10 00:57:30 more
  • UVA11610 【Reverse Prime】

    本人看到此題沒有翻譯,就附帶了一個自己的翻譯版本 思考 這一題,它的第一個要求是找出所有 $7$ 位反向質數及其質因數的個數。 我們應該需要質數篩篩選1~$10^{7}$的所有數,這里就不慢慢介紹了。但是,重讀題,我們突然發現反向質數都是 $7$ 位,而將它反過來后的數字卻是 $6$ 位數,這就說明 ......

    uj5u.com 2020-09-10 00:57:36 more
  • 統計區間素數數量

    1 #pragma GCC optimize(2) 2 #include <bits/stdc++.h> 3 using namespace std; 4 bool isprime[1000000010]; 5 vector<int> prime; 6 inline int getlist(int ......

    uj5u.com 2020-09-10 00:57:47 more
  • C/C++編程筆記:C++中的 const 變數詳解,教你正確認識const用法

    1、C中的const 1、區域const變數存放在堆疊區中,會分配記憶體(也就是說可以通過地址間接修改變數的值)。測驗代碼如下: 運行結果: 2、全域const變數存放在只讀資料段(不能通過地址修改,會發生寫入錯誤), 默認為外部聯編,可以給其他源檔案使用(需要用extern關鍵字修飾) 運行結果: ......

    uj5u.com 2020-09-10 00:58:04 more
  • 【C++犯錯記錄】VS2019 MFC添加資源不懂如何修改資源宏ID

    1. 首先在資源視圖中,添加資源 2. 點擊新添加的資源,復制自動生成的ID 3. 在解決方案資源管理器中找到Resource.h檔案,編輯,使用整個專案搜索和替換的方式快速替換 宏宣告 4. Ctrl+Shift+F 全域搜索,點擊查找全部,然后逐個替換 5. 為什么使用搜索替換而不使用屬性視窗直 ......

    uj5u.com 2020-09-10 00:59:11 more
  • 【C++犯錯記錄】VS2019 MFC不懂的批量添加資源

    1. 打開資源頭檔案Resource.h,在其中預先定義好宏 ID(不清楚其實ID值應該設定多少,可以先新建一個相同的資源項,再在這個資源的ID值的基礎上遞增即可) 2. 在資源視圖中選中專案資源,按F7編輯資源檔案,按 ID 型別 相對路徑的形式添加 資源。(別忘了先把檔案拷貝到專案中的res檔案 ......

    uj5u.com 2020-09-10 01:00:19 more
  • C/C++編程筆記:關于C++的參考型別,專供新手入門使用

    今天要講的是C++中我最喜歡的一個用法——參考,也叫別名。 參考就是給一個變數名取一個變數名,方便我們間接地使用這個變數。我們可以給一個變數創建N個參考,這N + 1個變數共享了同一塊記憶體區域。(參考型別的變數會占用記憶體空間,占用的記憶體空間的大小和指標型別的大小是相同的。雖然參考是一個物件的別名,但 ......

    uj5u.com 2020-09-10 01:00:22 more
  • 【C/C++編程筆記】從頭開始學習C ++:初學者完整指南

    眾所周知,C ++的學習曲線陡峭,但是花時間學習這種語言將為您的職業帶來奇跡,并使您與其他開發人員區分開。您會更輕松地學習新語言,形成真正的解決問題的技能,并在編程的基礎上打下堅實的基礎。 C ++將幫助您養成良好的編程習慣(即清晰一致的編碼風格,在撰寫代碼時注釋代碼,并限制類內部的可見性),并且由 ......

    uj5u.com 2020-09-10 01:00:41 more
最新发布
  • Rust中的智能指標:Box<T> Rc<T> Arc<T> Cell<T> RefCell<T> Weak

    Rust中的智能指標是什么 智能指標(smart pointers)是一類資料結構,是擁有資料所有權和額外功能的指標。是指標的進一步發展 指標(pointer)是一個包含記憶體地址的變數的通用概念。這個地址參考,或 ” 指向”(points at)一些其 他資料 。參考以 & 符號為標志并借用了他們所 ......

    uj5u.com 2023-04-20 07:24:10 more
  • Java的值傳遞和參考傳遞

    值傳遞不會改變本身,參考傳遞(如果傳遞的值需要實體化到堆里)如果發生修改了會改變本身。 1.基本資料型別都是值傳遞 package com.example.basic; public class Test { public static void main(String[] args) { int ......

    uj5u.com 2023-04-20 07:24:04 more
  • [2]SpinalHDL教程——Scala簡單入門

    第一個 Scala 程式 shell里面輸入 $ scala scala> 1 + 1 res0: Int = 2 scala> println("Hello World!") Hello World! 檔案形式 object HelloWorld { /* 這是我的第一個 Scala 程式 * 以 ......

    uj5u.com 2023-04-20 07:23:58 more
  • 理解函式指標和回呼函式

    理解 函式指標 指向函式的指標。比如: 理解函式指標的偽代碼 void (*p)(int type, char *data); // 定義一個函式指標p void func(int type, char *data); // 宣告一個函式func p = func; // 將指標p指向函式func ......

    uj5u.com 2023-04-20 07:23:52 more
  • Django筆記二十五之資料庫函式之日期函式

    本文首發于公眾號:Hunter后端 原文鏈接:Django筆記二十五之資料庫函式之日期函式 日期函式主要介紹兩個大類,Extract() 和 Trunc() Extract() 函式作用是提取日期,比如我們可以提取一個日期欄位的年份,月份,日等資料 Trunc() 的作用則是截取,比如 2022-0 ......

    uj5u.com 2023-04-20 07:23:45 more
  • 一天吃透JVM面試八股文

    什么是JVM? JVM,全稱Java Virtual Machine(Java虛擬機),是通過在實際的計算機上仿真模擬各種計算機功能來實作的。由一套位元組碼指令集、一組暫存器、一個堆疊、一個垃圾回收堆和一個存盤方法域等組成。JVM屏蔽了與作業系統平臺相關的資訊,使得Java程式只需要生成在Java虛擬機 ......

    uj5u.com 2023-04-20 07:23:31 more
  • 使用Java接入小程式訂閱訊息!

    更新完微信服務號的模板訊息之后,我又趕緊把微信小程式的訂閱訊息給實作了!之前我一直以為微信小程式也是要企業才能申請,沒想到小程式個人就能申請。 訊息推送平臺🔥推送下發【郵件】【短信】【微信服務號】【微信小程式】【企業微信】【釘釘】等訊息型別。 https://gitee.com/zhongfuch ......

    uj5u.com 2023-04-20 07:22:59 more
  • java -- 緩沖流、轉換流、序列化流

    緩沖流 緩沖流, 也叫高效流, 按照資料型別分類: 位元組緩沖流:BufferedInputStream,BufferedOutputStream 字符緩沖流:BufferedReader,BufferedWriter 緩沖流的基本原理,是在創建流物件時,會創建一個內置的默認大小的緩沖區陣列,通過緩沖 ......

    uj5u.com 2023-04-20 07:22:49 more
  • Java-SpringBoot-Range請求頭設定實作視頻分段傳輸

    老實說,人太懶了,現在基本都不喜歡寫筆記了,但是網上有關Range請求頭的文章都太水了 下面是抄的一段StackOverflow的代碼...自己大修改過的,寫的注釋挺全的,應該直接看得懂,就不解釋了 寫的不好...只是希望能給視頻網站開發的新手一點點幫助吧. 業務場景:視頻分段傳輸、視頻多段傳輸(理 ......

    uj5u.com 2023-04-20 07:22:42 more
  • Windows 10開發教程_編程入門自學教程_菜鳥教程-免費教程分享

    教程簡介 Windows 10開發入門教程 - 從簡單的步驟了解Windows 10開發,從基本到高級概念,包括簡介,UWP,第一個應用程式,商店,XAML控制元件,資料系結,XAML性能,自適應設計,自適應UI,自適應代碼,檔案管理,SQLite資料庫,應用程式到應用程式通信,應用程式本地化,應用程式 ......

    uj5u.com 2023-04-20 07:22:35 more