資源簡介 粵教版 選修1 第一章 認識數據和數據結構 單元練習學校:___________姓名:___________班級:___________考號:___________一、選擇題1.char 型數據通常占的字節數是( )A.1 B.2 C.3 D.42.圖中有關數據結構的概念中錯誤的是( )A.圖中有9個數據元素B.圖中每個數據元素有7個數據項C.數據項名稱為“姓名”的數據值類型是一樣的D.第4個數據元素第3個數據項的值為“86”3.圖結構中的每個頂點( )與其他頂點有邊相連,數據元素之間是( )的關系。A.都可以;一對多 B.都可以;多對多 C.不都可以;多對多 D.不都可以;一對多4.某線性表采用順序存儲結構,每個元素占5個存儲單元,首地址為1000,則第8個元素的存儲地址為( )A.1440 B.1444 C.1035 D.10385.下列關于數據和信息的說法正確的是( )A.數據是信息的載體,數據是信息所表示的意義 B.數據是信息的載體,信息是數據所表示的意義C.信息是數據的載體,數據是信息所表示的意義 D.信息是數據的載體,信息是數據所表示的意義6.單車道胡同路邊停車,先進去的車只能從另一出口出來,閱讀程序代碼,下列說法錯誤的是( )listque=[] #定義列表listque存儲停車狀況max=8 #停車位最大容量while(True): print('\n1.停車') #\n表示換行打印 print('2. 開車離開') print('3. 查看停車庫') print('其他. 退出') x=input("輸入你的選擇:") #輸入選擇項 if x=='1': if len(listque) print("還有"+str(max-len(listque))+"個停車位。") listque.append(input("請輸入停車車牌:")) else: print("對不起,停車位已滿。") elif x=='2': if len(listque)==0: print("停車庫為空。") else: print(listque.pop(0)+"開出。") elif x=='3': print(listque) else: breakA.listque.append( )語句的作用是輸入停車車牌B.listque.pop(0)表示開車離開,刪除停車車牌C.此程序的數據結構方式是先進先出的棧D.while(True)語句表示永遠執行循環7.在存儲數據時,通常不僅要存儲各數據元素的值,還要存儲( ?。?br/>A.數據的存儲方法 B.數據處理的方法 C.數據元素的類型 D.數據元素之間的關系8.關于數據結構的描述,以下選項中錯誤的是( )A.數據結構指相互有關聯的數據元素的集合B.數據的存儲結構有順序存儲、鏈接存儲、索引存儲和散列存儲C.數據結構不可以直觀地用圖形表示D.數據的邏輯結構主要有集合結構、線性結構、樹結構和圖結構四種類型9.關于棧,下列說法錯誤的是( )A.棧是先進后出(FILO)表。它的數據元素只能在同一端(稱為棧頂)進行操作,添加(進棧),刪除(出棧)B.pop(0)方法可以刪除列表的尾元素(相當于棧的“出?!辈僮?C.pop()方法可以刪除列表的尾元素(相當于棧的“出棧”操作)D.append方法可以在列表尾部添加一個數據元素(相當于棧的“入棧”操作)10.有一入棧序列為“ABCD”,以下以“C”開頭的出棧序列中不正確的是( )A.CABD B.CBAD C.CBDA D.CDBA11.用兩個列表a、b分別保存單向鏈表中的數據區域和指針區域。如下圖所示,在節點x與節點y之間插入一個新節點,操作步驟正確的是( )①b[i]= b[y] ②b[i]= b[x] ③b[y]= i ④b[x]=i ⑤b[i]= x ⑥b[i]= yA.③⑥ B.④② C.①③ D.②④12.某同學網購的書,三本書是三個不同的物流公司派送的,將圖中每個節點進行編號,作為根節點的“家”編號為“H”,其3個子節點(快遞門店A,快遞門店B,快遞門店C)分別編號為“A” “B” “C”,圖中兩結點的連接線表示“權”,值為用時,詳見下圖。依次列出所有可能走法的分析樹,求出取書用時最短時的路徑,下列選擇正確的是( )A.H-A-C-B-H B.H-C-B-A-H C.H-A-B-C-H D.H-B-A-C-H13.線性結構中元素之間存在()關系,樹結構中元素之間存在()關系,圖形結構中元素之間存在()關系A.一對多 多對多 一對一 B.一對一 一對多 多對多C.多對多 一對一 一對多 D.一對一 多對一 多對多14.數據結構中棧和隊列的共同特點是( )A.處理數據時滿足先進后出 B.處理數據時滿足先進先出C.只允許在端點處插入和刪除數據 D.沒有共同點15.網店接受了大量的訂單,如何安排發貨呢?實際上,網店在處理訂單時,一般采取“先下單,先發貨”的原則,閱讀下面的Python程序,下列選擇中正確的是( )listque=[] #定義列表listque存儲訂單x=0while(x!=4): print('1. 添加訂單') print('2. 發貨') print('3. 查看訂單列表') print('4. 退出') x=int(input("輸入你的選擇:")) if x==1: y=input("輸入訂單編號:") listque.append(y) elif x==2: if len(listque)==0: print("訂單列表為空") else: print("發貨單號:"+listque.pop(0)) elif x==3: print("等待發貨:",listque) print() input("運行完畢,請按回車鍵退出...")A.listque.append(y)增加訂單編號,listque.pop(0)出貨,刪除訂單編號B.listque.append(y)增加訂單編號,listque.pop()出貨,刪除訂單編號C.此程序的數據結構是先進先出的棧D.如此程序的數據結構是先進先出的“隊列”,可以用listque.insert(y)代替listque.append(y)插入添加訂單16.單車道死胡同停車,后進去的車先倒出來,先進去的車最后才能倒出來,閱讀下列“單車道死胡同停車管理”程序代碼,下列說法錯誤的是( )listque=[] #定義列表listque存儲停車狀況max=8 #停車位最大容量while(True): print('\n1. 停車') #\n表示換行打印 print('2. 開車離開') print('3. 查看停車庫') print('其他. 退出') x=input("輸入你的選擇:") #輸入選擇項 if x=='1': if len(listque) print("還有"+str(max-len(listque))+"個停車位。") listque.append(input("請輸入停車車牌:")) else: print("對不起,停車位已滿。") elif x=='2': if len(listque)==0: print("停車庫為空。") else: print(listque.pop()+"開出。") elif x=='3': print(listque) else: breakA.此程序的數據結構方式是先進先出的隊列B.listque.pop()表示刪除停車車牌C.while(True)語句表示永遠執行循環D.listque.append( )語句的作用是輸入停車車牌17.float屬于的數據類型( )A.整型 B.浮點型 C.字符型 D.A,B,C全錯18.下列關于數據結構的說法,正確的是( )A.基本數據類型是在程序設計時利用結構數據類型構造出的新類型B.數據結構設計主要考慮數據之間的存儲結構C.Python列表中數據的存儲結構和邏輯結構相同D.行優先的6行10列方陣a首地址為SA,每個元素占10個字節,那么a[2][3]的起始地址為SA+23019.現有如下Python程序: List = [ "Happy", "new", "year!" ] s = List[ 1 ] d = s[ : -1 ]執行該程序后,d的值為()A."py" B."Happ" C."ew" D."ne"20.下列關于數據結構的說法,正確的是( )A.進行數據的插入操作時,鏈表中的元素會被移動B.進行數據查詢時,數組中的元素都會被遍歷C.使用鏈表進行數據插入時,效率一定比數組高D.使用數組實現數據插入時,插入位置后面的所有元素下標都要改變21.以下選項中不屬于線性數據結構的是( )。A.線性表 B.二叉樹 C.隊列 D.棧22.樹結構是一種具有層次關系的非線性結構。樹是由n(n≥0)個節點組成的有限集合,如圖所示,下列說法錯誤的是( )A.任何一個非空樹均僅有一個稱為根的節點,如圖中A,n=0時為空樹B.當n>0時,其余節點可分為m ( m≥0)個互不相交的有限集合,其中每個集合又是一棵樹,并稱為根的子樹C.節點A為根節點,B、C、D為A的子樹的根節點,同理,E、F、G是B的子樹的根節點,B是E、F、G的父節點D.在樹結構中,數據元素之間是一對一的關系23.一個隊列初始為空,若它的輸入序列為a、b、c、d,則它的輸出序列為( )。A.d、c、b、a B.d、a、c、b C.a、b、c、d D.a、c、b、d24.如圖所示的線性數據結構,下列說法錯誤的是( )A.正向編號,首元素索引號為0,向后走,索引號遞增B.反向編號,尾元素編號為-1,向首元素方向依次遞減C.線性數據結構只包括隊列與棧D.棧:后進先出,添加和刪除都在棧頂實現,隊列:先進先出,刪除在隊首,添加在隊尾25.在樹形結構中,沒有的是()?A.根的父節點 B.父節點 C.根 D.子樹試卷第1頁,共3頁試卷第1頁,共3頁參考答案:1.A【詳解】本題主要考查C程序語言數據類型。char類型占用1字節,short類型占用2字節,int類型占用4字節,long int類型占用4字節,long long 類型占用8字節,float 類型占用4字節,double 類型占用8字節,long double 類型占用8字節,bool 類型占用1個字節,故本題選A選項。2.D【詳解】本題主要考查數據結構。由圖可知,圖中有9個數據元素圖中每個數據元素;有7個數據項;數據項名稱為“姓名”的數據值類型是一樣的;第4個數據元素第3個數據項的值為“85”,故本題選D選項。3.B【詳解】本題主要考查數據結構。圖結構中的每個頂點都可以與其他頂點有邊相連,數據元素之間是多對多的關系,故本題選B選項。4.C【詳解】本題考查的是順序存儲。順序存儲結構,每個元素占5個存儲單元,首地址為1000。用表格簡單表示其存儲地址,見下表,第8個元素的首地址為1035。故選項C正確。5.B【詳解】本題主要考查數據和信息的描述。信息,指音訊、消息、通訊系統傳輸和處理的對象,泛指人類社會傳播的一切內容,信息是加工了的數據。數據是記錄客觀事物的、可鑒別的符號。即數據是信息的載體,信息是數據所表示的意義,故本題選B選項。6.C【詳解】本題主要考查隊列數據結構及Python程序實現。分析程序可知,listque.append( )語句的作用是輸入停車車牌;listque.pop(0)表示開車離開,刪除停車車牌;此程序的數據結構方式是先進先出的隊列;while(True)語句表示永遠執行循環,故本題選C選項。7.D【詳解】本題主要考查數據結構。數據結構的實質就是相互存在各種特定關系的數據元素的集合。數據元素是數據的基本單位。根據數據元素之間的關系的不同特征,可以分成集合、線性結構、樹狀結構、圖狀或者網狀結構4類基本結構。存儲數據時,通常不僅要存儲數據元素的值,還要存儲元素之間的關系,因此D選項正確。【點睛】8.C【詳解】本題主要考查數據結構。數據結構指相互有關聯的數據元素的集合;數據的存儲結構有順序存儲、鏈接存儲、索引存儲和散列存儲;數據結構可以直觀地用圖形表示,如圖結構等;數據的邏輯結構主要有集合結構、線性結構、樹結構和圖結構四種類型,故本題選C選項。9.B【詳解】本題主要考查棧數據結構。棧是先進后出(FILO)表。它的數據元素只能在同一端(稱為棧頂)進行操作,添加(進棧),刪除(出棧);pop()方法可以刪除列表的尾元素(相當于棧的“出?!辈僮?;append方法可以在列表尾部添加一個數據元素(相當于棧的“入棧”操作),故本題選B選項。10.A【詳解】本題主要考查棧數據結構。由入棧序列為“ABCD”,可知C與B和D相鄰,則以“C”開頭的出棧序列的前兩位只能是CB或CD,CA不可能,故本題選A選項。11.D【詳解】本題主要考查鏈表數據結構。在節點x與節點y之間插入一個新節點i前x與y相連,b[x]=y,插入i后需要將i連接進來,首先將i節點與y相連接,即②b[i]=b[x]=y,再將x與i連接起來,即④b[x]=i,故本題選D選項。12.A【詳解】本題主要考查圖結構和數結構。圖中的圖結構可以轉換為下圖的數結構,依次計算每一種情況,其中路徑H-A-C-B-H、H-B-C-A-H用時最短,其時長為2+6+4+5=17,故本題選A選項。13.B【詳解】本題主要考查數據結構。線性結構中元素之間存在一對一關系,樹結構中元素之間存在一對多關系,圖形結構中元素之間存在多對多關系,故本題選B選項。14.C【詳解】本題主要考查數據結構。棧僅允許在表的一端進行插入和刪除運算,這一端被稱為棧頂,相對地,把另一端稱為棧底。隊列是一種特殊的線性表,特殊之處在于它只允許在表的前端進行刪除操作,而在表的后端進行插入操作。故數據結構中棧和隊列的共同特點是只允許在端點處插入和刪除數據,故本題選C選項。15.A【詳解】本題主要考查Python程序執行與調試。分析代碼可知,添加訂單時在隊列尾使用append(y)添加訂單,出貨時從隊列頭pop(0)出貨,刪除訂單編號,故listque.append(y)增加訂單編號,listque.pop(0)出貨,刪除訂單編號;此程序的數據結構是先進先出的隊列,不可以用listque.insert(y)代替listque.append(y)插入添加訂單,因為訂單只能從尾部追加,故本題選A選項。16.A【詳解】本題主要考查數據結構及Python程序設計。單車道死胡同停車,后進去的車先倒出來,先進去的車最后才能倒出來,可知此程序的數據結構方式是先進后出的棧;listque.pop()表示刪除停車車牌;while(True)語句表示永遠執行循環;listque.append( )語句的作用是輸入停車車牌,故本題選A選項。17.B【詳解】本題主要考查數據類型。Integer是整型,float是浮點型,String是字符型,故本題選B選項。18.D【詳解】本題主要考查數據結構的描述。結構數據類型是在程序設計時利用結構數據類型構造出的新類型;數據結構設計主要考慮數據之間的相互關系,即數據的組織形式;Python列表中數據的存儲結構和邏輯結構不相同;行優先的6行10列方陣a首地址為SA,每個元素占10個字節,那么a[2][3]的起始地址為SA+230((2*10+3)*10=230),故本題選D選項。19.D【詳解】本題主要考查Python列表運算。 s = List[ 1 ]="new", d = s[ : -1 ]="ne"(表示去除字符串s最后一個字符剩下的部分),故本題選D選項。20.D【詳解】本題主要考查數據結構的描述。進行數據的插入操作時,鏈表中的元素不會被移動;進行數據查詢時,數組中的元素不一定都會被遍歷;使用鏈表進行數據插入時,效率不一定比數組高。在尾部插入數據,數據量較小時鏈表比較快,因為數組要頻繁擴容,當數據量大時數組比較快,因為數組擴容是當前容量*1.5。其次在首部插入時鏈表比較快,越往中間鏈表效率越低,因為鏈表檢索位置的時間越長了,越往后數組效率越高,因為移動元素越少了;使用數組實現數據插入時,插入位置后面的所有元素下標都要改變,故本題選D選項。21.B【詳解】本題主要考查數據結構。常用的線性結構有:線性表,棧,隊列,雙隊列,串(一維數組)。二叉樹屬于非線性數據結構,故本題選B選項。22.D【詳解】本題主要考查數據結構。任何一個非空樹均僅有一個稱為根的節點,如圖中A,n=0時為空樹;當n>0時,其余節點可分為m ( m≥0)個互不相交的有限集合,其中每個集合又是一棵樹,并稱為根的子樹;節點A為根節點,B、C、D為A的子樹的根節點,同理,E、F、G是B的子樹的根節點,B是E、F、G的父節點;在樹結構中,數據元素之間是一對多的關系,故本題選D選項。23.C【詳解】本題主要考查隊列數據結構。一個隊列初始為空,若它的輸入序列為a、b、c、d,則它的輸出序列為a、b、c、d(先進先出、后進后出),故本題選C選項。24.C【詳解】本題主要考查數據結構。正向編號,首元素索引號為0,向后走,索引號遞增;反向編號,尾元素編號為-1,向首元素方向依次遞減;線性數據結構包括隊列、棧、線性表及數組等;棧:后進先出,添加和刪除都在棧頂實現,隊列:先進先出,刪除在隊首,添加在隊尾,故本題選C選項。25.A【詳解】本題主要考查樹形結構。一個樹結構包含一系列存在父子關系的節點。每個節點都有一個父節點(除了頂部的第一個節點)以及零個或多個子節點,因此A選項符合題意。【點睛】答案第1頁,共2頁答案第1頁,共2頁 展開更多...... 收起↑ 資源預覽 縮略圖、資源來源于二一教育資源庫