粤教版 选修1 第二章 数据的存储方式 单元练习(附答案解析)

资源下载
  1. 二一教育资源

粤教版 选修1 第二章 数据的存储方式 单元练习(附答案解析)

资源简介

2022年10月17日高中信息技术作业
学校:___________姓名:___________班级:___________考号:___________
一、选择题
1.将英文单词“student”中的每个字符按次序以单链表的形式进行存储,操作过程中漏掉了字符 e,存储状态如图所示:
现将字符e存放于1111H处,并按正确的次序插入单链表中,则元素d、e、n的“链接地址”依次是( )
A.100CH,1014H,1111H B.100CH,1111H,1014H
C.1111H,100CH,1014H D.1111H,1014H,100CH
2.设有数组定义语句: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)
3.一头指针 head=2 的单向链表 L=[[30,4], [10,-1], [20,0], [15,1],[21,3]]通过以下 Python 程序段,转换为原链表的逆序链表,即头指针 head=1,L=[[30,2], [10,3], [20,-1], [15,4],[21,0]]。
q=-1
p=head #head 为原链表头指针
while p!=-1 :
tmp=L[p][1]
head=q
上述程序段中方框处可选的语句为:①p=tmp ②q=p ③L[p][1]=q
则方框处语句依次为( )
A.③②① B.③①② C.①③② D.①②③
4.有如下程序段:
a=[[2,2,1],[8,0,4],[3,3,0],[6,-1,2],[8,1,-1]]
ans=head=3
p=a[head][2]
while p!=-1:
if a[ans][0] < a[p][0] :
ans=p
p=a[p][2]
print(ans,a[ans][0],sep=",")
则程序运行后,下列说法正确的是( )
A.链表数据值依次为2->8->3->6->8
B.程序输出结果为4,8
C.a[0][2]的值为1,双向链表a的头节点数据值为2
D.a[1][1]的值为0,双向链表a的尾节点数据值为8
5.有个列表n=[‘水果’, ‘砂糖橘’,’苹果’, ‘橙子’],请把列表中’苹果’改为’橘子’,选出修改正确的语句( )
A.n[2]= ‘橘子’ B.n[‘橘子’] C.n[3]= ‘橘子’ D.list[‘橘子’]
6.语句Dim a&(1 To 20),b#(2,-1 To 1)定义两个数组,其类型分别为: ( )
A.二维单精度实型数组和二双精度型数组
B.二维长整型数组和二维单精度实型数组
C.一维单精度实型数组和二维整型数组
D.一维长整型数组和二维双精度型数组
7.一维数组a(下标从0开始)中元素值依次为11--100之间的奇数,则数组元素a[k]的值是( )
A.2*k+10 B.2*k+11 C.2*k+12 D.2*k+13
8.在单向链表如下图所示,在data2与data3之间插入一个新节点data4(p指向data2,r指向data4。列表data来记录链表数据域,列表next来记录指针域),在以下选项中选择正确的执行步骤( )
①next[p]= next[r] ②next[p]= r ③next[r]= p
④next[r]= -1 ⑤next[r]= next[p] ⑥next[p]= -1
A.③⑥ B.⑤② C.①④ D.⑤②④
9.设有一个5×8的二维数组a,若按行优先的顺序存储数组元素,则元素a[3][5]前面元素的个数为(  )
A.21 B.22 C.29 D.37
10.已知一个有7个节点的单向链表,设有头指针head和尾指针tail,如右图所示,下列操作需要遍历多个节点的是( )
A.删除该链表中的最后一个节点
B.删除该链表中的第一个节点
C.在该链表第一个节点前插入一个新节点
D.在该链表最后一个节点后插入一个新节点
11.数组a的数据存放情况如下表,则当i=2时,a[6/i-1]的值是( )。
a[1] a[2] a[3] a[4] a[5] a[6] a[7] a[8]
48 52 98 26 47 22 82 33
A.98 B.26 C.52 D.22
12.在日常幻灯片(如使用 PowerPoint 制作的讲稿) 的放映中, 可以通过超链接的方式进行幻灯片之间的任意跳转。与这种幻灯片的组织方式相似的数据结构是( )
A.链表 B.队列 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.有关数组特征描述中,下列说法不正确的是( )
A.同一数组中,每个数组元素的数据类型是相同的
B.通过数组名和下标可以对数组中任意位置的数组元素进行高效访问
C.数组的存储空间固定不变
D.数组是非顺序存储结构
15.给数组a赋值如下表,运行i=2 : i=i*i之后,读取a(i)的值为
A.7.9
B.8.4
C.7.6
D.7.8
16.使用Python的二维列表来模拟单向链表,如下代码创建一个拥有4个节点的链表a
a=[["cat",1],[ "dog",2],[ "pig",-1],[ "rabbit",0]]
head=3
依次输出各节点数据域的值,内容为(  )
A."cat","dog","pig","rabbit" B."pig","rabbit","cat","dog"
C."pig","dog","cat","rabbit" D."rabbit","cat","dog","pig"
17.在Python中可以使用列表模拟单向链表,如链表中的节点p,a[p] [0]存储p节点的数据,a[p][1]存储p指向后继节点的指针。若要在p节点之后插入新的节点x(x作为p的新后继节点),需要执行的语句是( )
A.a[p][1]=x; a[x][1]=a[p][1] B.a[x][1]=a[p][1]; a[p][1]=x
C.a[p][0]=x; a[x][0]=a[p][0] D.a[x][0]=a[p][0]; a[p][0]=x
18.有一组含有9个元素的有序链表:1->3->5->6->8->11->15->18->20,现为该链表增设关键节点,建立索引,下列说法不正确的是( )
A.一级索引中的关键节点为1,5,8,15,20
B.二级索引中的关键节点为1,8,20
C.若要在建立的一级索引的基础上插入元素7,则需要比较3次即可找到7插入的位置
D.若要在建立的二级索引的基础上查找元素18,则需要比较4次就可以找到元素18
19.定义数组 a(1 to 5,5)后,下列哪一个数组元素不存在( )。
A.a(1,1)
B.a(1,5)
C.a(0,1)
D.a(5,5)
20.在日常幻灯片的放映中,可以通过超级链接方式进行幻灯片之间的任意跳转。和这种跳转方式相似的数据结构是(  )
A.数 B.链表 C.队列 D.栈
试卷第1页,共3页
试卷第1页,共3页
参考答案:
1.C
【详解】本题考查的是链表的读取。将字母e插入后,其链接地址如下图:
故,d、e、n的“链接地址”依次是111H、100CH、1014H。选项C正确。
2.D
【详解】本题主要考查数组的赋值。array()函数的作用:返回一个包含数组的Variant(可变的),题干定义了一个容量固定的数组a(Dim a(5) As Integer),故赋值语句a=Array(1,2,3,4,5,6)是错误的,故本题选D选项。
3.A
【详解】本题主要考查链表及Python程序实现。因为是逆序链表,q的初值为-1,故L[p][1]即p的下一个节点指向q,③L[p][1]=q。由题干单项链表可知,接下来更新q的值为p即②q=p,p的值为tmp①p=tmp,故本题选A选项。
4.D
【详解】本题主要考查链表及Python程序。分析程序可知,a是双向链表,ans=head=3,故链表数据值依次为6->3->2->8->8;程序运行结束后,ans=1,a[ans][0]=8;a[0][2]的值为1,head=3,双向链表a的头节点数据值为6;a[1][1]的值为0,双向链表a的尾节点数据值为8,故本题选D选项。
5.A
【详解】本题主要考查数组知识点。对应列表中的位置修改相应的数据,列表是从0起点标注位置,故正确的语句是n[2]= ‘橘子’,故本题选A选项。
6.D
【详解】本题主要考查数组的定义。符号“%”表示短整型,“&”表示长整型,“!”表示单精度浮点型,“#”表示双精度浮点型,故语句Dim a&(1 To 20),b#(2,-1 To 1)定义两个数组,其类型分别为一维长整型数组和二维双精度型数组,故本题选D选项。
7.B
【详解】本题主要考查数组。一维数组a(下标从0开始)中元素值依次为11--100之间的奇数,2*k是偶数,2*k+11表示11~100之间的奇数(k从0开始),故本题选B选项。
8.B
【详解】本题主要考查链表的操作。在data2与data3之间插入一个新节点data4,p指向data2,r指向data4,则正确的步骤是,先将r的next指针域指向p的next节点,其次更新p的next为r,故分别是:next[r]= next[p] 和next[p]= r ,故本题选B选项。
9.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选项。
10.A
【详解】本题主要考查链表数据结构。删除该链表中的第一个节点、在该链表第一个节点前插入一个新节点、在该链表最后一个节点后插入一个新节点均不需要遍历多个节点,只需一次操作即可完成。删除该链表中的最后一个节点需要从头开始遍历,故本题选A选项。
11.C
【详解】本题主要考查数组知识点。当i=2时,a[6/i-1]= a[2]=52,故本题选C选项。
12.A
【详解】本题主要考查链表数据结构。链表是一种物理存储结构上非连续,非顺序的存储结构,数据元素的逻辑顺序是通过链表中的指针链接次序实现的。在日常幻灯片(如使用 PowerPoint 制作的讲稿) 的放映中, 可以通过超链接的方式进行幻灯片之间的任意跳转。与这种幻灯片的组织方式相似的数据结构是链表,故本题选A选项。
13.A
【详解】本题主要考查数组运算。数组索引是从0开始,故a[1]+a[3]+a[5]=5+3+8=16,故本题选A选项。
14.D
【详解】本题主要考查数组特征。同一数组中,每个数组元素的数据类型是相同的;通过数组名和下标可以对数组中任意位置的数组元素进行高效访问;数组的存储空间固定不变;数组是顺序存储结构,故本题选D选项。
15.B
【详解】本题主要数组相关知识点。i=2,i*i=4,a(4)=8.4,故读取a(i)的值为8.4,故本题选B选项。
16.D
【详解】本题主要考查链表的操作。head=3,即对应列表索引3,其值为“rabbit”,指向索引为0的节点,其值为“cat”,依次类推,依次输出各节点数据域的值,内容为"rabbit","cat","dog","pig",故本题选D选项。
17.B
【详解】本题主要考查链表数据结构。若要在p节点之后插入新的节点x(x作为p的新后继节点),则x的指针域指向p的下一个节点,即a[x][1]=a[p][1]。其次将x与p连接起来,即p的指针域指向x,即a[p][1]=x,故本题选B选项。
18.C
【详解】本题主要考查链表数据结构。有序链表:1->3->5->6->8->11->15->18->20,则一级索引中的关键节点为1,5,8,15,20(取奇数位);二级索引中的关键节点为1,8,20(取首尾以及中间元素);若要在建立的一级索引的基础上插入元素7,则需要比较4次即可找到7插入的位置,首先分别与1、5、8比较,其次与6比较共4次;若要在建立的二级索引的基础上查找元素18,则需要比较4次就可以找到元素18,分别与8、20比较,再与19、18比较,共4次,故本题选C选项。
19.C
【详解】本题主要考查二维数组。定义数组 a(1 to 5,5),第一个参数的范围是从1到5,第二个参数是5,故数组元素a(0,1)不存在,故本题选C选项。
20.B
【详解】本题考查的是对数据结构的理解。链表是一种数据元素按照链式存储结构进行存储的数据结构,这种存储结构具有在物理上存在非连续的特点。链表由一系列数据结点构成,每个数据结点包括数据域和指针域两部分。其中,指针域保存了数据结构中下一个元素存放的地址。链表结构中数据元素的逻辑顺序是通过链表中的指针链接次序来实现的。故选项B正确。
答案第1页,共2页
答案第1页,共2页

展开更多......

收起↑

资源预览