内容正文:
3.2 Python语言程序设计同步作业2024—2025学年高中信息技术 浙教版(2019)必修1
一、选择题
1.以下Python表达式中,哪项的值与其它三项不同( )
A.len(“my name is james”.split()) B.int(4.99)
C.sum([1,2,1,1]) D.max([1,2,3,4])
2.下列选项中变量和数据结构不正确的是( )
A._B4
B.list
C.创建字典: m={“李华”, “高三”, “98”}
D.“hello ”*3的值为“hello hello hello ”
3.连续上升子序列指的是连续、递增的子序列,例如字符串“13437123569”中的“134”“37”和“123569”都是该字符串的连续上升子序列,其中最长连续上升子序列是“123569”,长度为6。编写程序求字符串s中的最长连续上升子序列的长度,部分程序代码如下:
n=len(s);c=1;maxlen=1
for i in range( (1) ):
if s[i] < s[i+1]:
(2)
if c>maxlen:
maxlen=c
else:
(3)
print(maxlen)
画线处可选代码为:
①c=c+1 ②n ③n-1 ④c=1 ⑤c=0
程序代码(1)(2)(3)处语句依次为( )
A.②①④ B.②①⑤ C.③⑤① D.③①④
4.下列选项中,不属于Python常量的是( )
A.abc B.9.8 C.“文明出行” D.True
5.下列选项中,可以实现导入Python语言的非内置模块功能的是( )
A.add turtle B.input pygame C.def sys D.import math
6.使用列表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.
7.有如下Python程序段:
a=[3,5,2,4,1]
sum1=m=a[0]
for i in range(1,len(a)):
if a[i]<m:
m=a[i]
suml+=m
执行该程序后,sum1的值为( )
A.6 B.9 C.11 D.15
8.某递归函数如下所示:
def fx(m):
if m<=1:
f=1
else:
f=fx(m-1)+2*(m-1)
return f
ans=0
for i in range(3, 5):
ans+=fx(i)
print(ans)
程序运行后,输出的结果是( )
A.12 B.20 C.25 D.46
9.列表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
10.程序如下
a=input()
b=input()
c=a+b
print(a,"+",b,"=",c)
从键盘分别输入23和3,运算结果是( )
A."23"+"3"=26. B.23+3=26 C."23"+*3"=233 D.23+3=233
11.在Python中,以下代码执行后输出的结果是( )
s=0
i=1
while s<12:
s=s+i
i=i+1
print(s)
A.10 B.11 C.13 D.15
12.下列 while 循环语句写法正确的是( )
A.while a<10 B.while a<10: C.while a<10; D.while(a<10)
13.下列表达式中,运算结果为True的是( )
A.“A”<“e” B.“32”>“ab” C.3+4y>5-2y D.not(7>=0 and 30>=5)
14.以下程序段的运行结果是( )
sum=0
for i in range(1, 11):
sum+=i
print(sum)
A.10 B.11 C.55 D.66
15.输入345,输出结果正确的是( )
n=int(input("请输入一个整数:"))
s=0
while n!=0:
s=s+n%10
n=n//10
print(s)
A.14 B.13 C.12 D.11
16.有如下Python程序段:
for i in range(0,len(a)-1,2):
if i > 0 and a[i] < a[i-1]:
a[i],a[i-1] = a[i-1],a[i]
if a[i] < a[i+1]:
a[i],a[i+1] = a[i+1],a[i]
列表a有6个元素,运行该程序段后,a可能的值是( )
A.[2,9,8,6,9,3] B.[9,9,8,6,3,2] C.[9,3,6,2,8,9] D.[6,3,9,2,9,8]
17.在Python中,想要从键盘输入数据可以使用下列( )语句。
A.print( ) B.sum( ) C.average( ) D. input( )
18.输入下列Python程序段,查看输出结果( )
s=[3,15,27,8,42]
s. append(16)
s. sort()
print(s)
A.[3,8,15,16,27,42] B.[3,15,27,8,42,16]
C.[3,15,16,27,8,42] D.[3,15,27,16,8,42]
19.有如下Python程序段:
n=11
s=0
for i in range(n):
if i%2==0 or i%3==0:
s=s+i
print(s)
执行该程序段后,输出的s值是( )
A.32 B.42 C.6 D.30
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
学科网(北京)股份有限公司
参考答案:
1.C
【详解】本题考查的是Python函数。split() 通过指定分隔符对字符串进行切片,无参数即分隔所有,len() 方法返回对象(字符、列表、元组等)长度或项目个数,故len(“my name is james”.split())=4;int 函数可以将数字转换为整数,直接取整,不会四舍五入 ,int(4.99)=4;sum() 方法对系列进行求和计算,sum([1,2,1,1])=5;max() 方法返回给定参数的最大值,参数可以为序列,max([1,2,3,4])=4。故应选C。
2.C
【详解】本题主要考查Python变量和数据结构。字典的每个键值 key=>value 对用冒号“ :” 分割,每个键值对之间用逗号 “, ”分割,整个字典包括在花括号 {} 中 ,格式:{key1 : value1, key2 : value2 }。使用大括号,并以逗号间隔创建的是集合。故本题选C选项。
3.D
【详解】本题考查程序分析。
(1)寻找最长连续上升子序列,字符串s中字符读取访问序号范围是[0,n-1],两相邻元素比较次数是n-1次,由条件“if s[i]<s[i+1]:”可知i的取值范围是[0,n-2]。故填③。(2)变量c存放子串的长度,初始化1,当找到一个升序字符,则加1。故填①。(3)每次遍历后,判断是否是是长度最大,否则初始化c为1,开始下一次遍历和判断。故填④。故正确答案为:选项D。
4.A
【详解】本题主要考查Python变量与常量。abc属于Python的变量,9.8、“文明出行” 、True均属于Python的常量,故本题选A选项。
5.D
【详解】本题主要考查Python模块导入。Python导入非内置模块的关键字是import,故本题选D选项。
6.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。
7.C
【详解】本题考查Python程序设计相关内容。该程序段功能是:每次将a[i]与m中的较小值累加到变量suml中,因此sum1=3+3+2+2+1=11,故本题答案为C选项。
8.B
【详解】本题考查Python递归函数相关内容。分析程序段,可知:
(1)i=3时,调用fx函数,f=fx(2)+2*2-->fx(1)+2*1+2*2-->f=7-->ans+=fx(i)-->ans=7。
(2)i=4时,调用fx函数,f=fx(3)+2*3-->f=7+6-->f=13-->ans=7+13=20。
故本题答案为B选项。
9.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。
10.B
【详解】本题主要考查Python程序的执行。a=23,b=3,c=a+b=23+3=26,故运算结果是23+3=26,故本题选B选项。
11.D
【详解】本题主要考查Python程序的执行。分析程序可知,变量i依次取1、2、3……,循环条件是s<12,s=s+i=0+1+2+3+4=10,i=i+1=4+1=5,此时仍满足循环条件,继续循环,s=s+i=1+5=15,循环结束,故代码执行后输出的结果是15,故本题选D选项。
12.B
【详解】本题主要考查Python循环结构。while循环条件后面需要加冒号,因此正确的是while a<10:,故本题选B选项。
13.A
【详解】本题主要考查Python表达式的运算。ASCII码表中小写字母的值大于大写字母的值,大写字母的值大于数字的值。所以“A”<“e”的值为True,“32” >“ab”的值为False,3+4y> 5-2y的值为False,7>=O and 30>=5的值为True,not(7>=O and 30>=5)的值为False,故本题选A选项。
14.C
【详解】本题主要考查Python程序的执行。sum初始值为0,变量i的范围是1~10,循环体是sum+=i,故程序段的运行结果是sum=sum+i=0+1+2+3+4+5+6+7+8+9+10=55,故本题选C选项。
15.C
【详解】本题考查的是Python循环语句。由循环体中代码s=s+n%10、 n=n//10可知,这是计算一个数的每位上数字之和,故输入345,则输出结果为:3+4+5=12,选项C正确。
16.D
【详解】本题考查Python程序设计相关内容。分析程序段,推知:列表a有6个元素,由“for i in range(0,len(a)-1,2)”知,列表a的索引i为0、2、4,且当i的值为2、4时,若a[i] < a[i-1],则交换两个元素,若a[i] < a[i+1],则交换两个元素,即:a[2]的值不能小于前面的a[1]和后面的a[3];a[4]的值不能小于前面的a[3]和后面的a[5]。AB选项中,8比前面相邻的9小,选项结果不可能。C选项,8比后面相邻的9小,选项结果不可能。D选项为可能结果,故本题答案是D选项。
17.D
【详解】本题主要考查Python函数。print( )是输出函数,sum( )求和函数,average( )求平均值函数,input( )是输入函数,故本题选D选项。
18.A
【详解】本题考查Python程序设计相关内容。程序段中的sort()方法执行的是原地(in place)排序,意味着它会改变列表中元素的位置。默认情况下,sort()方法使用小于运算符对列表元素进行排序。也就是说,更小的元素排在前面,更大的元素排在后面。代码段中,先在s中添加元素16,后对s列表进行升序排序。输出结果为[3,8,15,16,27,42]。故本题答案是A选项。
19.B
【详解】本题主要考查Python程序的执行。分析程序,可知程序段的功能是将在0~10中能被2整除或者能被3整除的数相加并输出结果,即s=2+3+4+6+8+9+10=42,故本题选B选项。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
学科网(北京)股份有限公司
$$