内容正文:
2.4 可以复用的代码2024-2025学年高中信息技术教科版(2019)必修1
一、选择题
1.将数学关系式5≤x<14表示成Python表达式,正确的是( )
A.5≤x<14 B.5≤x and x<14 C.x>=5 or x<14 D.x>=5 and x<14
2.有如下Python程序段:
s = [3,5,2,7,4]
m1 = m2 = s[0]
i=1
while i<len(s):
if s[i] >= m1:
m2 = m1
m1 = s[i]
elif s[i] >= m2:
m2 = s[i]
i=i+1
print(m2)
执行上述程序后,输出的结果是( )
A.7 B.5 C.4 D.3
3.使用列表lnk模拟链表结构,head为头指针,每个节点包括性别、身高和后续指针。原链表按先男生再女生升序排列(如图a所示),现要修改各节点的链接关系,使得链表按先女生再男生升序排列(如图b所示),实现该功能的代码如下:
lnk=[["男",178,1],["男",180,2],["男",185,3],["女",160,4],["女",172,5],["女",174,-1]]
head = 0
t = head
pre = cur = lnk[head][2]
while lnk[cur][2] ! = -1:
if lnk[cur][0] == "男":
pre = cur
cur = lnk[cur][2]
lnk[cur][2]=t
方框处应填入正确的代码为( )
A. B. C. D.
4.不符合Python变量命名规则的是( )
A.6ac B.BsFF C.a123 D.ABCD
5.有python程序段如下:
s = input()
k = 3
cnt = j = c = 0
for x in s:
if ’0’ <= x <= ’9’:
c = c * 10 + int(x)
j += 1
else:
if j >= k:
cnt += c
j = c = 0
print(cnt)
若输入“ab30cd201e2024fg002h”后运行该程序段,输出的结果为( )
A.2024 B.2227 C.2225 D.2257
6.执行以下python程序,若输入的值是2,则输出的结果是( )
a=int(input( ))
a=a**3
print(a)
A.2 B.4 C.6 D.8
7.在Python语言中,下面程序段运行结果是( )
a=1
s=0
for i in range(1,5):
a=a*i
s=s+a
print(s)
A.0 B.15 C.33 D.120
8.有Python程序代码如下:
def MMin(a,b):
if a>b:
return b
else:
return a
下列选项中,函数调用有误的语句是( )
A.k=MMin(3.1415,23) B.print(MMin('abgh','bc')) C.print(MMin(3,6,9)) D.k=MMin([3,2,3],[3,1,3,5])
9.以下不能创建一个字典的语句是( )
A.dict1 = {} B.dict2 = { 3 : 5 }
C.dict3 = dict( [2 , 5] ,[ 3 , 4 ] ) D.dict4 = dict( ( [1,2],[3,4] ) )
10.某DataFrame对象df,其columns属性值为["姓名","科目","成绩"]。下列语句中能将df对象中的数据按照“成绩”从大到小排序的是( )
A.df.sort_values("成绩",axis=0,ascending=True) B.df.sort_values("成绩",axis=1,ascending=False)
C.df.sort_values("成绩",ascending=False) D.df=df.sort_values("成绩",ascending=False)
11.小王同学写了Python程序,来判断一行诗是否为回文诗句,代码如下:
s=input("请输入一句古诗:")
if :
print(s,"是回文诗!")
else:
print(s,"不是回文诗!")
加框处代码可替换为以下哪个选项,以实现相同功能( )
A.s==s[len(s)-1:0:-1] B.s==s[-1:-len(s)+1:-1]
C.s[:len(s)//2]==s[-1:(len(s)-1)//2] D.s[:len(s)//2]==s[-1:-(len(s)//2)-1:-1]
12.在函数print()中,括号里的参数不可以是( )
A.字符串 B.变量名 C.表达式 D.文件名
13.列表q长度为20,q[0]至q[4]的值依次为'p','r','i','n','t',执行如下程序段后,输出的最后一个字符为( )
head, tail= 0,5
while head<tail:
if head %3 == 0:
q[tail] = q[head]
tail+=1
else:
print(q[head])
head+= 1
A.t B.n C.i D.r
14.在Python中,若变量a=1;b=0;c=-1,下列选项中表达式的值与其他三项不同的是( )
A.a>b or a>c B.b!=c and a==c C.b>c or(not a<c) D.a>b and b>c
15.在Python中,执行以下语句后,显示的结果是( )
>>>x=3;y=12
>>>x+=1
>>>y//=x
>>>x+y
A.7 B.15 C.6 D.4
16.列表a中依次存放了8个数据,分别是[14,12,23,42,35,60,37,30],使用如下Python程序要找出小于25的数据的个数,选择恰当的表达式填入横线处( )
a=[14,12,23,42,35,60,37,30]
k=0
m=25
for i in range(0,8):
if :
k=k+1
print(k)
A.a[i]>k B.a[i]>m C.a[i]<k D.a[i]<m
17.运行以下Python程序,结果为( )
for i in range(5):
for j in range(i):
print(“*”,end=“”)
print()
A.
*****
*****
*****
*****
*****
B.
*****
C.
*
*
*
*
*
D.
*
**
***
****
A.A B.B C.C D.D
18.在Python中,属于列表的是( )
A.{1.2.3.4} B.(1,2,3.4) C.[1,2,3.4] D.1,2,3.4
19.某二分查找算法的Python程序段如下:
i,j = 0,len(d)-1
while i <= j:
m = (i+j)//2 # 语句①
if key == d[m]:
break
elif key < d[m]:
j = m-1
else:
i = m+1
当d为[6,12,15,18,22,25,28,35,46]时,运行该程序段查找key,语句①的执行次数小于等于2;若将d修改为[6,12,15,18,22,25,28,35,46,58],重新运行该程序段,查找同一key值,则语句①的执行次数不可能为( )
A.1 B.2 C.3 D.4
20.以下程序段定义的函数btoh接受一个4位二进制数的字符串,函数返回该二进制数对应的十六进制数:
def btoh(b):
hs="0123456789ABCDEF"
s=0
for c in b:
s=s*2+int(c)
return
该程序段画线处应填入的代码为( )
A.btoh B.btoh[s] C.hs[s] D.hs
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.D
【详解】本题主要考查Python表达式。逻辑运算符or两边值均为假时值才为假,否则值为真;逻辑运算符and两边值均为真时值才为真,否则值为假,not是取反。5≤x<14,表示x大于等于5且小于14,即x>=5 and x<14。故选D。
2.B
【详解】本题考查Python程序。s=[3,5,2,7,4],m1=m2=3,i=1进入while循环:i=1,s[i]=5,5>=3,所以m2=3,m1=5;i=2,s[i]=2,2<5,且2<3,不更新m1和m2;i=3,s[i]=7,7>=5,所以m2=5,m1=7;i=4,s[i]=4,4<7,且4<5,不更新m1和m2循环结束后,m2的值是5。故答案为:B。
3.C
【详解】本题考查Python程序。初始化链表:lnk是一个列表,模拟了链表结构,每个节点包括性别、身高和后续指针。head为头指针,t初始化为头指针指向的下一个节点,pre和cur初始化为链表的第二个节点。遍历链表:循环遍历链表,直到找到第一个男生节点,更新pre和cur的指针,pre始终指向上一个节点,cur指向当前节点。修改指针:一旦找到第一个男生节点,将当前节点的后续指针指向头指针,调整链表结构。这段代码的目的是在遍历链表时,找到第一个男生节点,并进行链表重排。判断条件t==head:如果t等于head,意味着遍历开始时,链表的第一个节点为男生。将head更新为当前节点cur(即第一个男生节点)。将上一个节点pre的后续指针设置为-1,表示新的链表结尾。否则cur=lnk[cur][2]:如果t不等于head,意味着链表的第一个节点为女生,继续更新当前节点cur。最终,链表将按女生节点在前、男生节点在后的顺序排列。故答案为:C。
4.A
【详解】本题考查Python基础。
Python中变量名的命名不能以数字开头,开头必须是字母或下划线。故正确答案为:选项A。
5.B
【详解】本题考查Python程序综合应用。分析程序,当字符串s中有3位数及以上时,将值c保存到cnt中,因此程序执行完,cnt=201+2024+002=2227。故选B。
6.D
【详解】本题考查Python程序。程序中的关键点是对输入值进行立方运算,然后输出结果。根据题目的设定,如果输入的值是2,那么程序执行的具体步骤如下:用户输入一个整数,假设输入为2。 程序将输入的值2进行立方运算:23=8。最后输出结果,即打印变量a的值,结果为8。故答案为:D。
7.C
【详解】本题考查Python基础。
该程序功能为:遍历产生1到4的数赋值给变量i,每次累乘i到变量a,累加a到变量s。故s=1+2+6+24=33。故正确答案为:选项C。
8.C
【详解】本题考查Python程序。print(MMin(3, 6, 9)),此处传入了三个参数,而函数MMin只接收两个参数。故答案为:C。
9.C
【详解】本题考查Python基础。
dict3 = dict( [2 , 5] ,[ 3 , 4 ] ):这里存在问题。dict()函数可以接受一个序列(通常是元组或列表的列表/元组)的序列,或者关键字参数来创建字典。然而,当使用序列的序列时,每个内部序列应该包含两个元素,分别作为键和值。此外,dict()的调用方式应该是dict([(key, value), ...]),即接受一个序列,该序列中的每个元素都是一个包含两个元素的序列(通常是元组或列表)。但在这个例子中,dict()被错误地传递了两个单独的列表作为参数,而不是一个列表的列表或元组,因此这是不正确的。故正确答案为:选项C。
10.D
【详解】本题考查Python基础。
利用sort_values函数进行排序时,将不会改变原有df对象中的数据,可将结果返回一个对象中来存放排序后的数据,降序排列需要将ascending参数设置为False,因此答案为D。
11.D
【详解】本题考查Python程序。要判断一个字符串是否为回文,需要比较字符串的前半部分和后半部分的逆序是否相等。我们分析各选项的含义:s==s[len(s)-1:0:-1]:这段代码从倒数第二个字符开始逆序到第一个字符,少比较了第一个字符和最后一个字符,错误。s==s[-1:-len(s)+1:-1]:这段代码从最后一个字符逆序到第二个字符,少比较了第一个字符,错误。s[:len(s)//2]==s[-1:(len(s)-1)//2]:这段代码将字符串前半部分和后半部分进行比较,但后半部分的索引不正确,错误。s[:len(s)//2]==s[-1:-(len(s)//2)-1:-1]:这段代码将字符串前半部分与后半部分的逆序进行比较,正确。因此,加框处代码可替换为D选项。故答案为:D。
12.D
【详解】本题考查Python函数。print()函数用于将指定的内容输出到控制台。在print()函数中,括号内的参数可以是字符串、变量名或表达式,用于指定要输出的内容。文件名不是print()函数的有效参数类型,因为print()函数不用于打开或处理文件,而是用于输出内容到控制台。故答案为:D。
13.B
【详解】本题考查程序分析。初始化head和tail,当head<tail时,进入循环操作。当head能被3整除,则复制q[head]到q[tail]中,tail+=1操作。否则输出q[head]。循环一次,head+=1操作一次。该程序运行输出过程为:
head= 1 , tail= 6 , q[head]= r
head= 2 , tail= 6 , q[head]= i
head= 4 , tail= 7 , q[head]= t
head= 5 , tail= 7 , q[head]= p
head= 7 , tail= 8 , q[head]= n
故输出的最后一个字符为:n。故正确答案为:选项B。
14.B
【详解】本题考查Python运算符与表达式相关内容。A选项,a>b or a>c-->True or True-->True。B选项,b!=c and a==c-->True and False-->False。C选项,b>c or (not a<c)-->True or True-->True。D选项,a>b and b>c-->True and True-->True。故本题答案是B选项。
15.A
【详解】本题考查Python基础。x+=1,则x=4。y//=x,则y=3。x+y结果为7。故选择A。
16.D
【详解】本题考查Python程序设计相关内容。结合题目要求,分析程序段,若要找出小于25的数据的个数,可以对列表[14,12,23,42,35,60,37,30]进行遍历,逐一比较元素值与25的关系,若小于25(a[i]<m),则个数加1,故本题答案是D选项。
17.D
【详解】本题考查Python基础。
外循环i的取值为0、1、2、3、4。内循环根据i的值输出,功能为第i行输出i个星号。故正确答案为:选项D。
18.C
【详解】本题考查Python列表数据类型。Python中用[]方括号来表示列表,并用逗号分隔其中的元素。故选C。
19.C
【详解】本题考查Python程序设计相关内容。本题涉及到二分查找算法相关操作。分析程序段,推知:
数组d为[6,12,15,18,22,25,28,35,46]时,i=0,j=8,m=4,执行程序段,查找过程用二叉树表示如下:
语句①的执行次数小于等于2,该次数与key值在二叉树中的深度值一致,因此查找的数key可能是:22(1次查找)、12(2次查找)和28(2次查找)。若将d修改为[6,12,15,18,22,25,28,35,46,58],此时,i=0,j=9,m=4,查找过程用二叉树表示如下:
第一次查找的仍然是22,若往左查找,第二次是12。但若第二次往右查找,则找到的是35,而不是原先的28,然后继续第三次查找,找到25,接着进行第四次查找,找到28,此时查找过程结束。所以查找同一key值,则语句①的执行次数不可能为3,故本题答案是C选项。
20.C
【详解】本题考查Python函数。在函数btoh中,通过遍历二进制字符串b,将其转换为对应的十进制数s。而hs字符串中存储了十六进制的字符表示。所以要得到二进制对应的十六进制字符,应该使用hs[s],即从hs字符串中取出索引为s的字符。故答案为:C。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$