计算机二级C语言公共基础知识,以及习题总结(一)
C語言二級公共基礎知識
| 二級C語言公共基礎知識,以及習題總結(二)樹和二叉樹 | 跳轉 |
| 二級C語言公共基礎知識,以及習題總結(三)查找和排序 | 跳轉 |
| 二級C語言公共基礎知識,以及習題總結(四)程序設計和軟件工程基礎 | 跳轉 |
| 二級C語言公共基礎知識,以及習題總結(五)數據庫設計基礎 | 跳轉 |
| 二級C語言公共基礎知識,以及習題總結(六)數據模型 | 跳轉 |
| 二級C語言公共基礎知識,以及習題總結(七)關系代數 | 跳轉 |
一、算法
1、算法的基本概念
算法 是指解決方案準確而完備【不僅僅是理論】的描述
算法的基本特點:可行性、確定性、有窮性、擁有足夠的情報。
算法的基本要素:算法對數據的基本運算和操作,算法的控制結構(順序結構、選擇結構、循環結構)。
2、算法的復雜度
算法的時間復雜度,是執行算法所需要的計算工作量【并不是時間】。
算法的空間復雜度,是執行這個算法所需要的內存空間。
3、本節練習
1、算法的空間復雜度是指
A)算法在執行過程中所需要的計算機存儲空間
B)算法在執行過程中所需要的臨時工作單元數
C)算法所處理的數據量
D)算法程序中語句或指令條數
A
2、算法的時間復雜度是指
A)設計該算法所需的工作量
B)算法中指令的條數
C)執行該算法所需要的時間
D)執行該算法時所需要的基本運算次數
D
3、算法的有窮性是指
A)算法是只能被有限的用戶使用
B)算法程序的運行時間是有限的
C)算法程序的運行時間是有限的
D)算法程序所處理的數據量是有限的
B
4、下列敘述中正確的是
A)對同一批數據不同的處理,如果數據存儲的結構相同,不同算法的時間復雜度肯定相同
B)對同一批數據作同一種處理,如果數據存儲結構不同,不同算法的時間復雜度肯定相同
C)解決同一個問題的不同算法的時間復雜度一般是不同的
D)解決同一個問題的不同算法的時間復雜度必定的相同的
C
5、下列敘述中正確的是
A)一個算法的時間復雜度大,則其空間復雜度必定小
B)一個算法的空間復雜度大,則其時間復雜度小
C)算法的時間復雜度與空間復雜度都沒有直接的關系
D)一個算法的空間復雜度大,則其時間復雜度必定大
C
二、數據結構的基本概念
1、什么是數據結構
事務的存在有兩種形式:實體、關系。
數據結構研究和討論問題:
(1)數據集合各種數據質之間所固有的邏輯關系,即數據的邏輯結構;
(2)在對數據處理時,各數據在計算機的存儲結構,即數據的存儲結構
(3)對各種數據結構進行的運算。
數據結構是指相互有關聯數據元素集合的表示。更通俗的講數據結構是帶有結構的數據元素的集合,以上表述可知一個數據結構應該包含以下二個方面內容:
(1)表示數據元素信息即數據元素的集合,通常記為D;
(2)表示各數據之間的前后件關系通常記為R。即一個數據結構可以表示為B=(D,R)。
列如B=(D,R)
D={春,夏,秋,冬}
R={(春,夏),(夏,秋),(秋,冬)}
數據處理是指對數據集合中的各元素以各種方式進行運算,包括插入,刪除,查找,更改,等運算,也可以包括對數據元素進行分析。
2、數據結構的圖形表示
一個數據結構處理用二元關系表示外,還可以直觀的用圖形表示。在數據結構的圖形表示中,對于數據結合D中的每一個元素用中間標有元素的方框表示,一般稱為數據節點,
并簡稱為節點:
為了進一步表示數據之間的前后關系,對于關系R中的每一個二元組,用一條有向線段從前件節點指向后減節點。
3、線性結構和非線性結構
如果一個非空的數據結構滿足下列兩個條件:
(1)有且只有一個根節點。
(2)每一個節點最多有一個前件,也最多有一個后件。
則稱該數據結構為線性結構。線性結構又稱線性表。
一個數據結構不是線性結構,則為非線性結構
4、線性表的基本概念
線性表有一組元素組成。比如一年中的(春、夏、秋、冬)、
其中的矩陣也是線性表(存儲時數據是100010001)分為三段
1.有且僅有一個根節點。
2.集合中必存在唯一的一個“第一元素”。
3.集合中必存在唯一的一個 “最后元素” 。
4.除最后一個元素之外,均有唯一的后繼(后件)。
5.除第一個元素之外,均有唯一的前驅(前件)。
5、線性表的順序存儲結構
線性表的順序存儲結構具有以下兩個基本特點:
(1)線性表中所有元素所占的存儲空間是連續的
(2)線性表中各種元素在存儲空間中是按邏輯順序依次存放的。【鏈表】
在線性表的順序存儲結構下可以對線性表進行各種處理。主要的運算有以下幾種:線性表的插入,刪除,查找,排序等。
6、本節練習
1、設元素集合為D={1,2,3,4,5,6}。B={D,R}為線性結構所對應的R是
A)、R={(6,1),(5,6),(1,3),(3,4),(3,2)};
B)、R={(6,1),(5,6),(1,3),(2,4),(3,2)}
C)、R={(6,1),(5,6),(1,3),(2,4),(3.2)}
D)、R={(4,5),(6,1),(5,6),(1,3),(2,4),(3,2)}
C
證明選項A是非線性的
證明選項B也是非線性的
5->6->1->3->2->4
證明C選項是線性的結構
證明D是非線性結構
2、下列敘述中正確的是、
A)有且只有一個根結點的數據結構可能是線性結構,也可能是非線性結構
B)每一個結點最多有一個前件也最多有一個后件的數據結構一定是線性結構
C)有且只有一個根節點的數據結構一定是線性結構
D)有且只有一個根節點的數據結構一定是非線性結構
A
比如樹就是非線性結構但是只有一個根結點所以A是正確的
數也是只有一個前件和一個后件B是錯誤的
樹可以推翻上方所有的概念
3、下列敘述中正確的是
A)具有兩個根結點的數據結構一定是非線性結構
B)存儲空間連續的數據結構一定是線性結構
C)沒有根結點的非空數據結構一定是非線性結構
D)存儲空間不連續的數據結構一定是非線性結構
A
4、在線性表的順序存儲結構當中,其存儲空間連續,各元素所占的字節數
A)相同,元素的存儲順序與邏輯順序一致
B)相同,但其元素的存儲順序可以與邏輯順序不一致
C)不同,但是元素的存儲順序與邏輯順序一致
D)不同,且其元素的存儲順序可以與邏輯順序不一致
A
三、棧和隊列
1、棧及其基本運算
棧是限定在一端插入與刪除的線性表。
允許插入與刪除的一端稱為棧頂(Top),而不允許插入與刪除的另外一端稱為棧底(Bottom)。
棧是按照“先進后出”或“后進先出”的原則組織數據。
在棧的順序存儲空間S(1:m)中,S(bottom)通常棧底元素(在非空情況下),S(top)為棧頂元素。top=0表示棧空,top=m表示為棧滿。
入棧運算是棧頂插入一個元素,top=top+1。如果棧空間已滿,不能再進入到棧。這種情況稱為“上溢”錯誤。
推棧運算是棧頂取出一個元素,top=top-1。如果為空棧。不能再退棧。這種情況稱為“下溢”錯誤。
Top=0,棧的開口向上,元素的個數是Top。
Top=Bottom+1,棧的開口向下,元素個數是Buttom-Top+1;
2、隊列及其基本運算
隊列:隊頭刪除元素,隊尾插入元素的線性表。
允許插入元素的一端稱為隊尾(Rear),允許刪除元素的稱為隊頭(Front)。
隊列又稱為“先進先出”或“后進后出”的線性表,它體現了“先來先服務”的原則。
隊列的順序存儲結構一般采用循環隊列的形式。
(R-F)+m
習題練習、
C
B
C
C
D
C
(R-F)+m=m-1===》答案為B
C
C
B
A
D
C
四、線性鏈表的基本概念
線性表的順序存儲結構具有簡單,運算方便等優點,特別是對于小線性表或者長度固定的線性表,采用順序存儲結構的優越性更為突出。
但是,對于大的線性表,特別是元素變動頻繁的大線性表,不宜采取順序存儲結構,而是采用的鏈式存儲結構。
1、概念理解
一般的線性表(順序存儲結構)
改進存儲數據的方式(線性鏈表)
注意:線性鏈表是線性結構
2、習題練習
答案: C(列如雙向鏈表)
D選項當中列如:
所以D選項是錯誤的
D
A
B
C
B
A
B
解析:
循環隊列本身是一種順序存儲結構,而循環列表是一種鏈式存儲結構。兩者之間是平級關系。
線性鏈表是線性表的鏈式存儲結構,包括單鏈表,雙鏈表,循環鏈表等。
隊列的順序存儲結構一般采用循環隊列的形式。
D
B
C
B
| 二級C語言公共基礎知識,以及習題總結(二)樹和二叉樹 | 跳轉 |
| 二級C語言公共基礎知識,以及習題總結(三)查找和排序 | 跳轉 |
| 二級C語言公共基礎知識,以及習題總結(四)程序設計和軟件工程基礎 | 跳轉 |
| 二級C語言公共基礎知識,以及習題總結(五)數據庫設計基礎 | 跳轉 |
| 二級C語言公共基礎知識,以及習題總結(六)數據模型 | 跳轉 |
| 二級C語言公共基礎知識,以及習題總結(七)關系代數 | 跳轉 |
總結
以上是生活随笔為你收集整理的计算机二级C语言公共基础知识,以及习题总结(一)的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: 利用NAS打造协同办公系统
- 下一篇: 面试技巧-面试官的考题