第二章 数据的存储方式 2024-2025学年高中信息技术粤教版(2019) 选修1

2024-08-07
| 9页
| 114人阅读
| 1人下载

内容正文:

第二章 数据的存储方式 学校:___________姓名:___________班级:___________考号:___________ 一、选择题 1.如果一个链表的头指针为head,要访问链表中第i个节点,需要进行几次指针移动(   ) A.i次 B.i-1次 C.i+1次 D.无法确定,取决于链表长度 2.在单向链表中,如何访问第n个节点(   ) A.从头节点开始遍历n次 B.通过下标直接定位 C.从尾节点开始反向遍历n次 D.无法直接访问,必须遍历整个链表 3.有关数组特征描述中,下列说法不正确的是(  ) A.同一数组中,每个数组元素的数据类型是相同的 B.通过数组名和下标可以对数组中任意位置的数组元素进行高效访问 C.数组的存储空间固定不变 D.数组是非顺序存储结构 4.语句Dim a&(1 To 20),b#(2,-1 To 1)定义两个数组,其类型分别为: (    ) A.二维单精度实型数组和二双精度型数组 B.二维长整型数组和二维单精度实型数组 C.一维单精度实型数组和二维整型数组 D.一维长整型数组和二维双精度型数组 5.设有一个5×8的二维数组a,若按行优先的顺序存储数组元素,则元素a[3][5]前面元素的个数为(  ) A.21 B.22 C.29 D.37 6.链表中的节点通常包含哪两部分(   ) A.数据域和控制域 B.数据域和指针域 C.指令域和地址域 D.标志域和内容域 7.数组是一种采用哪种存储结构的数据结构(   ) A.顺序存储结构 B.非顺序存储结构 C.索引存储结构 D.散列存储结构 8.使用链表结构模拟某校游玩路线,链表a中每一个节点包含三个数据,第1个为景点名称,第2个为预计游玩时间(单位:分钟),第3个为下一个景点指针。该校可以从多个景点开始游玩,但只能从“南大门”离开,输出显示从各景点进入路线及预计总时间的代码如下。a=[["校训石",21,2],["行政楼",40,2],["风雨操场",50,5],["丽泽湖",30,4],["西餐厅",60,5],["南大门",20,-1]] head=[0,1,3] for i in range(len(head)):       (1)      s=a[p][1]      while a[p][2]!=-1:           print(a[p][0],end="→")      (2)      (3)      print(a[p][0])      print("预计时间:",s,"分钟") 上述程序划线处的可选代码有: ①p=head    ②p=head[i]    ③s=s+a[p][1]    ④p=a[p][2] 则(1)、(2)、(3)处代码依次为(    ) A.①③④ B.①④③ C.②③④ D.②④③ 9.链表和数组在存储空间上的主要区别是什么(   ) A.链表需要连续的内存空间,数组则不需要 B.数组需要连续的内存空间,链表则不需要 C.两者都需要连续的内存空间 D.两者都不需要连续的内存空间 10.在一个列表a中隐藏着一个链表,a=[[4,0],[5,2],[7,4],[8,5],[6,3],[1,-1]]。链表节点a[i]中,a[i][0]表示数据,a[i][1]表示指针,下列说法正确的是(   ) A.链表的两个相邻节点,其存储空间必须连续 B.该隐藏链表的表头head=2 C.该隐藏链表有5个节点 D.代码“a[i][1]=a[i+1][1]”可以实现删除节点“i+1” 11.创建一个空链表时,通常会设置什么来表示链表的起始(   ) A.尾指针 B.头指针指向一个空节点 C.头指针指向NULL或-1 D.无需设置特殊标记 12.运用Python编程处理数据时,经常会用到pandas库,其中Series是一维数据结构,下图程序运行后的结果        A.水蜜桃 B.3 C.水蜜桃 D.“猕猴桃” ”水蜜桃” 13.a数组定义如下:a=[2,5,0,3,6,8],则运算表达式“a[1]+a[3]+a[5]”的结果为(  ) A.16 B.8 C.10 D.13 14.使用列表d模拟链表结构(节点数大于0)每个节点包含数据区域和指针区域,h为头指针。链表中各节点已按数据区域中数值的绝对值由小到大排列,如图a所示。现要修改该链表各节点的链接关系,使链表各节点按数据区域中的数值由小到大排列,结果如图b所示。实现该功能的程序段如下,方框中应填入的正确代码为(   ) 图a                 图b t = h p = d[h][1] while p != -1:     q = d[p][1]         p = q d[t][1]=-1 A. B. C. D. 15.某单向链表如下图所示,若要将数据data3和data4同时从链表中移除,至少需要修改几个节点的指针(   ) A.1 B.2 C.3 D.4 16.下列关于数据结构的说法,不正确的是(   ) A.数组、链表、队列和栈都是常见的线性表数据结构 B.数组的存储空间是连续的,链表的存储空间可以是不连续的 C.每个链表必定有一个头指针,同一链表中每个节点的结构均相同 D.对数组进行操作时,若某数组元素被删除,数组占用的存储空间会变小 17.下列有关链表的描述,不正确的是(   ) A.要取出链表中的元素时,需要知道该元素在链表中的位置 B.要访问链表中的元素,只能从头节点开始遍历 C.在链表的首尾之间增加链接,就形成了循环链表 D.链表的存在形式主要有单向链表、双向链表和循环链表 18.子序列是指数组中连续的若干个元素(至少1个元素)。数组a中有n个整型元素(有正有负),现要查找和最大的子序列,并输出和。实现该功能的程序段如下,方框中应填入的正确代码为(   )     def maxsub(a):        tot=-1; tmp = 0        for num in a:           tmp += num                  return tot     a = [-2,1,-3,4,-1,2,1,-5,4]     print(maxsub(a)) A. B. C. D. 19.设有数组定义语句:Dim a(5) As Integer,Listl 为列表框控件。下列给数组元素赋值的语句,错误的是(  )。 A.a(3)=3 B.a(3)=VAL(InputBox(“InputData”) C.a(3)=Listl.ListIndex D.a=Array(1,2,3,4,5,6) 20.下列关于链表节点插入操作的描述,哪个是正确的(   ) A.插入操作总是从链表头部开始 B.只需要修改新节点的指针域即可完成插入 C.必须先找到插入位置的前驱节点,再修改前驱节点的指针域 D.链表插入操作的时间复杂度总是O(1) 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.B 【详解】本题考查链表。要访问链表中第i个节点,从头节点开始需经过i-1个节点的指针移动。故选择B。 2.A 【详解】本题考查链表。从头节点开始遍历n次 - 在单向链表中,要访问第n个节点,必须从头节点开始,逐个遍历直到到达目标节点。故选择A。 3.D 【详解】本题主要考查数组特征。同一数组中,每个数组元素的数据类型是相同的;通过数组名和下标可以对数组中任意位置的数组元素进行高效访问;数组的存储空间固定不变;数组是顺序存储结构,故本题选D选项。 4.D 【详解】本题主要考查数组的定义。符号“%”表示短整型,“&”表示长整型,“!”表示单精度浮点型,“#”表示双精度浮点型,故语句Dim a&(1 To 20),b#(2,-1 To 1)定义两个数组,其类型分别为一维长整型数组和二维双精度型数组,故本题选D选项。 5.C 【详解】本题主要考查Python二维数组结构。有一个5 × 8的二维数组a,若按行优先的顺序存储数组元素,则元素a 3| 5|前面元素的个数为29个。其中第一行为a0开头共8个元素,第二行以a [1]开头为8个元素,第三行以a [2]开头为8个元素,第四行以a [3]开头,到a [3] [5]前面有5个元素,所以共有3* 8+ 5 = 29,故本题选C选项。 6.B 【详解】本题考查链表。数据域:用于存储节点的数据信息。指针域:用于存储指向下一个节点的指针。故选择B。 7.A 【详解】本题考查数组。数组是一种典型的采用顺序存储结构的数据结构。在顺序存储结构中,数组元素在内存中是连续存储的,元素之间的逻辑关系和物理关系是一致的。通过索引可以快速定位到数组中的任意元素。故选择A。 8.D 【详解】本题考查的是链表。head列表里存放的是开始景点的指针。p表示头结点,故第一空应为:p=head[i] ;由于内循环开始前已经把头结点的时间存储到s中,故内循环要先指向下一个指针,再累加时间,故第二空应为:p=a[p][2],第三空应为:s=s+a[p][1]。选项D正确。 9.B 【详解】本题考查数组和链表。 数组的元素在内存中连续存储,而链表的节点可以分散在内存的不同位置。故选择B。 10.C 【详解】本题考查链表。A选项错误,链表的相邻节点存储时不需要连续空间。B选项错误,该隐藏链表的表头head=1。D选项错误,删除节点“i+1”的代码是“a[i][1]=a[a[i][1]][1]”。故答案为:C。 11.C 【详解】本题考查链表。创建空链表时,通常会将头指针设置为一个表示空的值,如NULL(在C/C++中)或-1(在某些特定场景下的约定)。故选择C。 12.B 【详解】本题考查的是pandas库相关知识。Series中如果没有指定索引,索引值就从 0 开始,故s[2]值为3,故选项B正确。 13.A 【详解】本题主要考查数组运算。数组索引是从0开始,故a[1]+a[3]+a[5]=5+3+8=16,故本题选A选项。 14.C 【详解】本题考查单链表及分支语句和数据排序等知识。 由于数据区域中数值的绝对值由小到大排列,由代码可知,原先的节点关系是:t→p→q,若数据区域d[p][0]的数值为正数,则原链表节点关系不变,只需将各节点关系往下迭代即可,即:t变为p,p变为g即可。若数据区域d[p][0]的数值为负数,则原先的链表各节点关系需要重新指向,由于原数据是按照绝对值大小排序的,因此越往后面绝对值数越大,因此其相反数(负数)就越小,这样每一个当前节点p的负数肯定是当前链表中最小的数,因此该数应该变为最小的头节点,采用头插法可以实现,即将当前节点p的指针域指向原先的头节点h,然后再将头节点h变为当前节点p。故本题选C。 15.A 【详解】本题考查的是链表相关知识。由图中可知若要将数据data3和data4同时从链表中移除,至少要修改data2的指针指向data5,故本题应选A。 【点睛】 16.D 【详解】本题考查的是数据结构。数组的存储空间都是固定不变的,若某数组元素被删除,数组占用的存储空间不会变。故选D。 17.A 【详解】本题考查链表。在链表中组织处理数据时,不需要知道数据元素实际所处的具体位置,只需知道数据之间相互链接的顺序,因此答案为A。 18.C 【详解】本题考查的知识点是子序列的相关知识。子序列是指数组中连续的若干个元素(至少1个元素)。依题意知:数组a中和最大的子序列为[4,-1,2,1],和为6。A选项运行结果为4,B选项运行结果为4,C选项运行结果6,D选项运行结果为1。故答案为C选项。 19.D 【详解】本题主要考查数组的赋值。array()函数的作用:返回一个包含数组的Variant(可变的),题干定义了一个容量固定的数组a(Dim a(5) As Integer),故赋值语句a=Array(1,2,3,4,5,6)是错误的,故本题选D选项。 20.C 【详解】本题考查链表。必须先找到插入位置的前驱节点,再修改前驱节点的指针域,C该选项描述了链表插入操作的正确步骤,需要先定位到插入位置的前驱节点,然后修改其指针指向新节点。故答案为:C。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

第二章 数据的存储方式 2024-2025学年高中信息技术粤教版(2019) 选修1
1
第二章 数据的存储方式 2024-2025学年高中信息技术粤教版(2019) 选修1
2
第二章 数据的存储方式 2024-2025学年高中信息技术粤教版(2019) 选修1
3
所属专辑
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。