内容正文:
选择性必修1 数据与数据结构专题检测
专题二 检测卷
一、选择题(本大题共12小题,每小题2分,共计24分。每题只有一个正确答案,多选、不选、错选均不给分)
1. 下列有关数组的描述,错误的是( )
A. 数组是由相同数据类型的变量组成的一个序列
B. 数组中的每个元素按照下标顺序依次存储
C. 二维数组中的元素在内存中的存储方式有行优先存储和列优先存储两种
D. 在数组中进行插入、删除操作时无需移动数据元素
2. 下列有关链表的描述,错误的是( )
A. 链表是将需要处理的数据对象以节点的形式,通过指针串联在一起的一种数据结构
B. 链表中的头指针是链表的入口,只有通过头指针才能进入链表
C. 同一个链表中的每个节点的结构可以不同
D. 链表占用的空间不固定,可以根据需要增加或减少节点
3. 在Python中,若需将100位学生的姓名分别存储在数组元素name[0]~name[99]中,则下列创建方法正确的是( )
A. name[0:99]="" B. name[100]=""
C. name=[0 for i in range(100)] D. name=[""]*100
4. 使用如下Python语句来定义数组b:b=[i*2 for i in range(10)]。则执行语句print(b[5]),输出的结果是( )
A. 0 B. 8 C. 10 D. 12
5. 使用如下Python语句来定义二维数组a:a=[[i*i for i in range(3)]for j in range(5)]。则该二维数组的行数和列数分别为( )
A. 3 5 B. 5 3 C. 4 6 D. 6 4
6. 有如下Python程序段:
a=[1,20,15,6,9,12,30,8,7,5]
n=len(a)
sumx=0
for i in range(n):
if a[i]%3==2:
sumx=sumx+a[i]
print(sumx)
该程序段执行后,输出的结果为( )
A. 25 B. 28 C. 33 D. 72
7. 设a是一个8×10的二维数组(8行10列),若按列优先的顺序存储数组元素,则数组元素a[5][5]前面共有元素的个数为( )
A. 45 B. 46 C. 53 D. 55
8. 在一个单向链表中,每个节点由数据域data和指针域next组成,现要在指针p所指向的节点后面插入一个指针r所指节点,则下列代码能实现的是( )
A. p.next=r B. p.next=r;r.next=p.next.next
C. r.next=p.next;p.next=r.next D. r.next=p.next;p.next=r
9. 有一单向链表,链表结构如下图所示:
现要在尾指针p所指节点之后插入新节点r(r指针所指节点),则应进行的操作为( )
A. p.next=r B. r.next=p C. p.next=r;r.next=null D. r.next=p;r.next=null
10. 有一单向链表,每个节点由数据域data和指针域next组成,链表结构如下图所示:
现要删除头节点后面的节点(数据域为data2的节点),则应进行的操作是( )
A. head=head.next B. head.next=data3 C. head=head.next.next D. head.next=head.next.next
11. 在带尾指针(链表指针tail指向尾节点)的非空循环单链表中,每个节点都以next指针指向下一个节点。已知该链表中已有3个以上的节点,则下列说法中正确的是( )
A. 如果p指向一个待插入的新节点,在头部插入p节点的语句序列为:tail.next=p;p.next=tail.next
B. 如果p指向一个待插入的新节点,在尾部插入p节点的语句序列为:p.next=tail;ct.next=p
C. 要删除头节点的语句序列为:ct.next=ct.next.next
D. 要删除尾结点语句序列为:tail=tail.next
12. 双向链表中有两个指针域llink和rlink,llink指向当前节点的前一个节点,rlink指向当前节点的后一个节点。假定链表中节点数大于3个,p指向链表中的某一个节点(p不是头节点),现要求删除p所指的节点,则下列操作能实现的是( )
A. p.llink.rlink=p.rlink
B p.llink.rlink=p.rlink
C. p.rlink.llink=p.llink;p.llink.rlink=p.rlink
D. p.llink.rlink=p.llink;p