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