基本数据结构 知识点题库

有一种元素除首元素没有前驱元素、尾元素没有后继元素外,其它元素都只有一个前驱元素和一个后继元素。具有以上特点的数据结构是(    )
A . 树结构 B . 选择结构 C . 线性结构 D . 网状结构     
树结构的数据元素是多对多的关系。
某班级组建研究性学习小组,小组成员的分组情况以及学员成绩分别用Python存储在students和scores中。若students= {"第一组”:["小红","小明”,"小张"], "第二组":"小黄","小霞","小斌"],"第三组":["小蓝”,"小华","小诚"]} ,scores=([“小红":90,"小明":80,"小张":75}, {"小黄”:86,"小霞":70,"小斌":89);{"小蓝":67,"小华":90,"小诚":77}],则要访问第二组第1位学员姓名的表达式为;要访问小明的学习成绩的表达式为
下面的代码,哪些会输出1,2,3,三个数字(     )
A . for i in range(3):     Print(i) B . aList = [1,2,3] for i in aList:     print(i+1) C . i = 1 while i<3:     print(i)     i+=1 D . for i in range(3):     Print(i+1)
数据字典是专门用来描述数据本身的有关信息,是对数据流程图中的各元素的补充说明。
下列有关字典的说法,不正确的是(     )
A . 字典中的每个元素包含键和值两部分 B . 字典中的值可以是任意类型的数据 C . 可以通过字典的值来找到对应的键 D . 在同一字典中,键必须互不相同
关于数据结构的描述,以下选项中错误的是(      )
A . 数据结构指相互有关联的数据元素的集合 B . 数据的存储结构有顺序存储、链接存储、索引存储和散列存储 C . 数据结构不可以直观地用图形表示 D . 数据的逻辑结构主要有集合结构、线性结构、树结构和图结构四种类型
下图是注册表的树结构,下列说法错误的是(      )

A . 图中计算机为树的根结点(父节点),有5个子树 B . 图中HKEY_CURRENT_USER有10个子结点 C . 叶子结点是子树 D . 图中HKEY_CURRENT_USER有3个叶子结点
树的递归定义如下:树是由n(n         )个节点组成的        集合。若n        , 则称为        。任何一个非空树均满足以下二个条件:(1)仅有一个        。(2)当n>0时,其余节点可分为m(m>=0)个互不相交的有限集合,其中每个集合又是一棵树,并称为        。(    )
A . >0;有限;=0;空树;根节点;根的子树 B . >=0;有限;>0;空树;根节点;根的子树 C . >=0;有限;=0;空树;根的子树;根节点 D . >=0;有限;=0;空树;根节点;根的子树
队列是一种有限制的         结构。特点是数据元素只能在         依次添加(称为         , 在         依次删除(称为         )。(    )
A . 线性;一端;进队;另一端;出队 B . 线性;二端;进队;二端;出队 C . 队列;一端;进队;另一端;出队 D . 队列;二端;进队;二端;出队
执行下列语句,输出的结果是(    )。

a="student"

b=a[-2:-5:-1]

print(b)

A . "den" B . "ned" C . "ude" D . "edu"
有如下Python程序段:

List1=["apple", "watermelon", "coconut", "orange", "peach", "lemon"]

a=List1[2]

b=List1[1]< a

c=a[0:2]==a[2:4]

该程序执行后,a的值为,b的值为,c的值为

下图是物流配送线路图,是树结构,下列说法错误的是(       )

A . 一级快件集散中心是树的根结点 B . 二级公共配送中心进行地域分配,是一级快件集散中心根结点下的子树 C . 共同配送点是二级公共配送中心的子树 D . 共同配送点-社区便利店的树的深度是3
设一棵二叉树的中序遍历序列:becfad,后序遍历序列:efcbda,则二叉树前序遍历序列为(     )
A . abcdef B . bdaefc C . abcefd D . abcfed
图中配送快递方式是属于          关系。(       )

A . 线性结构,多对多 B . 树结构,一对多 C . 图结构,多对多 D . 集合,一对多
用栈的数据结构编写进制转换中的“除二取余法”的程序段如下:

st=[-1]*100

top=-1

n=int(input("请输入一个十进制数:"))

while n>0:

  

while top!=-1:

  print(st[top],end="")

top-=1

方框处的代码由以下四部分组成:

①n=n//2 ②top+=1 ③x=n%2 ④st[top]=x

下列选项中,代码顺序正确的是(    )

A . ③④②① B . ③①②④ C . ①②③④ D . ①③④②
元素 a, b, c, d, e 依次入栈,若最后一个出栈的元素是e,则之前出栈序列不可能是(    )
A . a, b, c, d B . b, c, d, a C . d, b, c, a D . c, b, a, d
输入一个字符串S1S2S3…Sn,按如下过程操作:取出第一个字符S1,将第二个字符S2放到字符串的末尾Sn后面,得到字符串S3…SnS2;接着将S3取出,S4放到字符串的末尾S2后面……直到最后一个字符Sn被取出。这些字符按取出的顺序形成一个新的字符串,

输出该新字符串,实现相应功能的Python程序段如下:

s=input("请输入字符串:")

que = [""] * 100                  #该空队列可以满足需要

head = 0

tail = 0

for i in range(   ①   ):          #原字符串全部字符依次入队

  que[tail] = s[i]

  tail+=1

  print("加密后的串为: ")

while head < tail:               #队列非空时

print(que[head], end="")

  ②  

if head < tail:                      #队列非空时,出队的元素加入队尾

    ③  

  tail+=1

head+=1

上述程序段3个方框处的代码分别为(    )

A . ①len(s) + 1 ②head+=1 ③que[tail] = que[head] B . ①len(s) + 1 ②tail+=1 ③que[head] = que[tail] C . ①len(s) ②head+=1 ③que[tail] = que[head] D . ①len(s) ②tail+=1 ③que[head] = que[tail]
在日常幻灯片(如使用PowerPoint制作的讲稿)的放映中,可以通过超链接的方式进行幻灯片之间的任意跳转。与这种幻灯片的组织方式相似的数据结构是(    )
A . 链表 B . 队列 C . D .
罗马数字是阿拉伯数字传入之前使用的一种数码。罗马数字采用七个罗马字母作基本数字,即Ⅰ(1)、X(10)、C(100)、M(1000)、V(5)、L(50)、D(500)。

具体的记数方法为:

①相同的数字连写,所表示的数等于这些数字相加得到的数,如Ⅲ=3;

②小的数字在大的数字的右边,所表示的数等于这些数字相加得到的数,如Ⅷ=8、Ⅻ=12;

③单个小的数字(限于Ⅰ、X和C)在大的数字的左边,所表示的数等于大数减小数得到的数,如Ⅳ=4、Ⅸ=9

王老师结合上述规则,在7个基本数字基础上新增了部分常用数字,并设计了一个将罗马数字和阿拉伯数字进行相互转换的程序,运行界面如图所示:

实现该功能的程序代码如下:

num=[1000, 900, 500, 400,  100, 90, 50, 40,  10, 9, 5, 4,  1]

roma={1000: 'M', 900: 'CM', 500: 'D', 400: 'CD', 100: 'C', 90: 'XC', 50: 'L', 40: 'XL',  10: 'X', 9: 'IX', 5: 'V', 4: 'IV',  1: 'I'}
s=input('输入一个罗马数字: ')

result1=0

    ①  

for i in range(13):

  while s[k:k+len(roma[num[i]])]==roma[num[i]]:

  result1 += num[i]

 

print('阿拉伯数字是:',result1)

n=int(input('输入一个阿拉伯数字:'))

result2=''

for i in range(13):

  while n>=num[i]:

    result2 = result2 + roma[num[i]]

    ②   

print('罗马数字是:',result2)

根据以上代码,回答下列问题:

  1. (1) “roma”的数据结构类型是
  2. (2) 要实现数字转换,请完善上述程序的划线处代码。

  3. (3) 上述程序中加框处代码有误,请改正。