资源简介 粤教版 选修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.在存储数据时,通常不仅要存储各数据元素的值,还要存储( )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页 展开更多...... 收起↑ 资源预览