内容正文:
2.1数组 1.5课时(分层作业)
【基础达标】
1.数组是由 构成的一个序列。
2.数组的特性包括: 、 、 。
3.计算机中数据的存储结构主要分为 和 。
4.用二维数组表示的数据在内存中的存储方式也采用顺序存储,有 和 两种方式。
5.将数组元素a[i]中各项的名称填入方框中:
a[i]
6.一个数组的第一个元素的存储位置为1000(表示在第1000个字节处),每个元素所占空间大小为8个字节,则第5个元素的位置是( )?
A.1000 B.1040 C.1032 D.1256
7.有如下Python程序段:
a=[[0]*4]*3
b=[[0]*4 for i in range(3)]
a[2][3]=8
b[2][3]=8
则程序执行后,下列说法正确的是( )
A.a[0][3]的值为0,b[0][3]的值为0
B.a[0][3]的值为0,b[0][3]的值为8
C.a[0][3]的值为8,b[0][3]的值为0
D.a[0][3]的值为8,b[0][3]的值为8
8.有如下Python程序段:
a[[0]*3 for i in range(4)]
for i in range(len(a)):
for i in range(len[a[0]]):
a[i][j]=i*len(a[0])+j+1
则程序执行后,a[2][2]的值为( )
A.5 B.6 C.8 D.9
【巩固提升】
1.阿福将我国部分省份及其省会城市存储到二维数组中,并依次输出各省及其省会名称,例如“湖南省的省会是长沙市”。相关代码如下:
a=[["浙江省","杭州市"],["吉林省","长春市"],["湖南省","长沙市"],["湖北省","武汉市"],["江苏省","南京市"],["广东省","广州市"]]
for p in a:
print(f"{ }的省会是{ }")
则划线①和②处分别应填写的代码为( )
A.①p[1];②p[0] B.①p[0];②p[1]
C.①a[p][0];②a[p][1] D.①p[1];②p[2]
2.下列有关数据的描述正确的是( )
A.数组是由多种不同类型的变量构成的一个序列
B.数组是由相同类型的变量构成的一个序列
C.一个数组在内存中的存储空间不一定是连续的
D.一个数组在内存中的存储方式为非顺序结构
3.在一个长度为n的数组中的第i个元素(1<=i<=n)之前插入一个新元素时,需向后移动的元素个数为( )
A.i B.n-i C.n-i+1 D.n-i-1
4.有如下 Python 程序段:
a=[2,2,6,1,8,5,3,6,4,3,6,4,9,5,3] ; dic={}
for i in a:
if i not in dic:
dic[i]=0
else:
dic[i]+=1
执行该程序段后,dic[3]的值为( )
A.1 B.2 C.3 D.4
5.有如下Python程序段:
ma=a[0]
mb=a[0]
pa,pb=0,0
for i in range(1,10):
if ma<a[i]: ma=a[i] ; pa=i
if mb>a[i]: mb=a[i] ; pb=i
下列关于该程序段功能描述正确的是( )
A. 变量pa存储a[0]至a[9]中的最大值
B. 变量ma存储a[0]至a[9]中的最小值
C. 变量pb存储a[0]至a[9]中的最大值
D.变量mb存储a[0]至a[9]中的最小值
【链接高考】
1.有如下Python程序段:
a=[3,6,12,5,9,20,17,8]
p=0
for i in range (1,len(a)):
if a[i]>a[p]:
p=i
a.pop(p)
则执行程序段后,数组a中的元素为
A.3,6,12,5,9,20,17,8 B.3,6,12,5,9,17,8
C.3,6,12,5,9,20,17 D.6,12,5,9,20,17,8
2.有如下程序段:
s=1
a=[[1,2,3],[4,5,6],[7,8,9]]
for i in range(3):
for j in range(3):
if i==j:
s*=a[i][j]
则执行程序段后,变量s的值为
A.28 B.6 C.45 D.15
3.有两个非递减顺序存储的数组s1和s2,其元素个数分别是m和n个,请完善以下程序,最终实现s1和s2合并成一个非递减顺序存储的数组。
s1=[1,3,4,4,5,5]
s2=[2,5,6,6,7,7,8,9]
m=len(s1)
n=len(s2)
k = ① ________________________
s=[0]*k
while ②________________________:
if s1[m-1] >= s2[n-1]:
s[k-1] = s1[m-1]
m -= 1
else:
s[k-1] = s2[n-1]
n-= 1
③ ________________________
if m>0:
s[:k-1]=s1[:m-1]
else:
s[:k-1]=s1[:n-1]
print(s)
4.已知1班、2班各有m位同学,要在两个班中挑选身高最高的n位同学参加合唱队。小明编写了如下程序:
a=[0]*m;b=[0]*m;hc=[0]*m
#读取两个班同学的身高数据,分别存储在数组a、数组b中;分别将两个班同学的身高数据进行降序排列,代码略。
m1,m2=0,0
for i in range(n):
if a[m1]>=b[m2]:
hc[i]=a[m1]
____①_______
else:
c[i]=b[m2]
_____②_______
print(“身高前n位的值是:”,hc)
参考答案
【基础达标】
1.相同类型的变量
2.数组元素的数据类型相同、通过数组名和下标对数组元素的值进行访问、存储空间固定不变。
3.顺序存储结构、非顺序存储结构。
4.行优先存储、列优先存储。
5.数组名、下标/索引
6.[解析]第五个元素的存储地址为1000+8×(5-1)=1032
答案:C。
7.[解析]本题主要考查的是二维数组创建与访问。数组a为间接创建方式,当某个元素值改变时,对应的该列所有值改变,数组b使用的是列表生成式创建,各个元素独立。
答案:C
8.答案:D
【巩固提升】
1.[解析]考查数组的基本知识。遍历a数组的元素,p[0]获取省份,p[1]获取城市,因此①、②处分别应填写的代码为p[0],p[1]。
答案:①、②、B
2.[解析]如要访问数组中的某个元素,需通过下标指定,因此答案为B。
答案:B
3.[解析]数组下标由0开始,因此a[1][2]代表第2行第3列,值为6,因此答案为C。
答案:C
4.[解析]下标的表示有两个方向,正向从0开始,负数从-1开始。因此a[-3]代表从右往左数第3个,即“t”,因此答案为D。
答案:D
5.[解析]a[1]的值为1,选项A.a[2]*a[3]//3 =2*3//3=6;
选项B.a[2]-len(a)=2-5=-3;
选项C.a[-1]-a[4] =5-5=0;
选项D.a[3]%2=3%2=1,因此答案为D。
答案:D
【链接高考】
1.【解析】根据“if a[i]>a[p]:p=i”语句可知,此段程序是在数组a中找到最大值,并将其下标赋给p;而a.pop(p)的作用是去掉指定位置p上的元素,数组a最终的元素为“3,6,12,5,9,17,8”,因此答案为B。
答案: B
2.【解析】根据程序可知,当i与j相等时,即矩阵中的对角线,即a[0][0],a[1][1],a[2][2]进行相乘,最终计算结果为s=1*1*5*9=45,因此答案为C。
答案:C
3.【解析】此程序的作用是合并两个非递减序列,从后往前依次比较s1和s2中的元素大小。
第①空是计算k,由下面的程序可以知道,k代表合并后的总元素个数,因此答案是m + n;
第②空是设定能够继续比较元素大小的条件。只有当两个数组下标没有超出范围时,才能进行比较,因此答案是m > 0 and n >0,或等价写法。
第③空是新数组s的下标从后向前递减,由k控制,因此答案是k -= 1。
答案:① m + n ②m > 0 and n >0 ③k -= 1
4.[解析]根据题目要求要把数组a和数组b中最大的n个身高数据存入数组hc中,当选择数组a的数据存储后,对应数组a的下标m1后移;同理,当选择数组b的数据存储后,对应数组b的下标m2后移。
答案:①处填m1=m1+1,②处填m2=m2+1
原创精品资源学科网独家享有版权,侵权必究!
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$