内容正文:
第2单元 编程计算
一、选择题
1.在Python中,用于实现循环结构的关键字是( )
A.if B.while C.for D.loop
2.有以下的程序段,其中k取( )值时x =3。
if k<=10 and k>0:
if k>5:
if k>8:
x=0
else:
x=1
else:
if k>2:
x=3
else:
x=4
A.3 4 5 B.1 2 C.5 6 7 D.5 6
3.下面代码的输出结果是( )
weekstr = “星期一星期二星期三星期四星期五星期六星期日”; weekid = 3
print(weekstr[weekid*3: weekid*3+3])
A.星期二 B.星期三 C.星期四 D.星期一
4.自定义函数delStr(s,m)的功能是删除字符串s中第m位上的字符。程序段如下所示:
def delStr(s,m):
n=len(s)
if m<1 or m >n:
result="wrong input"
elif m==1:
result=s[1:]
elif m < n:
elif m==n:
result=s[:-1]
return result
则程序中划线处应填入的语句是( )
A.result=s[1:m-1]+s[m:] B.result=s[:m-1]+s[m:] C.result=s[:m-1]+s[m+1:] D.result=s[:m]+s[m+1:]
5.在Python中,下列表达式的值为“假”的是( )
A.3+5>7 and 7-3<5 B.8%4>4 or 4//3>2
C.5>3 or 3<2 D.4+12>15
6.有Python程序代码如下:
a=[3,0,8,0]
a.sort()
m1=a[3]*1000+a[2]*100+a[1]*10+a[0]
i=0
while i<=3:
if a[i]>0:
a[0],a[i]=a[i],a[0]
break
i=i+1
m2=a[0]*1000+a[1]*100+a[2]*10+a[3]
print(m1,m2)
运行上面Python程序代码段,输出结果为( )
A.8300 3008 B.8300 38 C.8003 3008 D.8300 3800
7.有如下Python程序段:
x,y,z=input("请输入三个整数:").split(",")
x=int(x);y=int(y);z=int(z)
maxt=x
if y>maxt:maxt=y
if z>maxt:maxt=z
print(maxt)
运行该程序,输入数据“2,13,9”,程序的输出结果是( )
A.13 B.9 C.2 D.31
8.小王收集了某时刻全国各省部分城市的PM2.5和AQI的数据保存在“kqz1.x1sx”中,部分数据如下图所示,编写Python程序,统计当时AQI值(AQI值不含重复数据)最小的5个城市。
import pandas as pd
df=pd.read_excel("kqzl.xlsx")
df1=df.sort_values("AQI",ascending=True)
print( )
要实现上述功能,程序加框处实现输出AQI值最小的5个城市,下列可行的有( )
①df1.head(5) ②df1.tail(5) ③df1[0:5] ④df1[0:6] ⑤df1.head()
A.①④ B.②③ C.①③⑤ D.①④⑤
9.为了保证图书的有效流通,在该图书馆内借书,30天及以内可享受免费,超过规定日期10天及以内,每天需交纳滞还费0.2元,逾期10天以上则每天需交纳滞还费0.5元。下列Python程序段中符合要求的是( )
A.
if day<=30:
pay=0
if day>40:
pay=2+0.5*(day-40)
else:
pay=0.2*(day-30)
B.
if day<=30:
pay=0
elif day<=40:
pay=0.2*(day-30)
else:
pay=2+0. 5*(day-40)
C.
pay=0
if 30<day<=40:
pay=0.2*(day-30)
else:
pay=2+0.5*(day-40)
D.
pay=0
if day>=30:
pay=0.2*(day-30)
elif day>40:
pay=2+0.5*(day-40)
A.A B.B C.C D.D
10.有如下Python程序段:
d=[3,9,2,0,2,4]
s=[0,1,2,3,4,5]
n=len(d)
for i in range(n-1):
for j in range(n-1,i,-1):
if d[s[j]] < d[s[j-1]]:
s[j],s[j-1]=s[j-1],s[j]
print(s)
执行该程序段后,输出的结果是( )
A.[3,4,2,0,5,1] B.[3,2,4,0,5,1] C.[1,5,0,4,2,3] D.[1,5,0,2,4,3]
11.函数 len([10,12,35,46])的返回值是( )
A.10 B.12 C.4 D.46
12.以下问题中不适合用程序处理的是( )
A.计算,23×35= B.输出2023年所有星期日的日期
C.交通信号灯定时变换 D.室温达到28摄氏度时,风扇启动
13.某Python程序如下:
a=[0]*4
for i in range(7):
j=0
a [j]+=1
while a[j]= =2:
a [j]=0
j+=1
a [j]+=1
print(a[::-1])
程序运行后输出的结果为( )
A.[1,1,1,0] B.[0,1,0,1] C.[0,1,1,1] D.[1,0,1,0]
14.“鸡兔同笼”是一个经典的数学问题,现在我们想通过编制计算机程序来解决鸡兔同笼问题,其基本过程为( )
①调试运行程序 ②分析问题 ③设计算法 ④问题解决 ⑤编写程序
A.①②③④⑤ B.②④③⑤① C.④②③⑤① D.②③⑤①④
15.有如下python程序,执行后,程序输出结果为( )
s='13,12,12,15,26,23,36'
n=len (s)
a=["]*n
head=tail=0
t="
For ch in s:
if '0' <=ch<='9':
t=t+ch
else:
While head<tail:
if t<a[tail-1]:
tail-=1
else:
break
a[tail]=t
tail+=1
t="
while head<tail:
print (a[head],end='')
head+=1
A.12 15 26 36 B.12 15 23 26 C.12 12 15 23 D.12 13 15 23 36
16.在Python语言 中,下面程序的屏幕输出结果是( )
s=1
for i in range(1, 9,2):
s=s*2
print (s)
A.2 B.8 C.16 D.32
17.以下Python程序段:
n=l
for i in range(0, 5):
n=n*i
print(n)
运行后的输出结果为( )
A.0 B.24 C.120 D.60
18.有如下 Python 程序段:
import random
n=6;a=[0]*n;i=0
while i<n:
k=random.randint(1,10)
if k%5==0:
i-=1
elif k%3==0:
a[n-1]=k
n=n-1;i+=1
else:
a[i]=k
i=i+1
执行该程序段后,列表a中的各元素可能的是( )
A.[8,0,0,3,1,6] B.[0,0,5,8,1,3]
C.[1,4,0,0,6,7] D.[8,0,0,8,1,9]
二、填空题
19.在Python中,使用 循环可以遍历字典的键值对。
20.在数学课堂上,小智正尝试判断一个数是否既是2的倍数又是3的倍数,如果是2的倍数又是3的倍数则打印出“YES”,否则打印出“NO”,并写出了下列程序,由于操作失误误删了一行代码,请你补充该代码:
num=int(input())
if :
print("YES")
else:
print("NO")
21.Python表达式'ab'in'acbed'的值为 。
22.在Python中,使用 可以进行列表推导。
23.阅读下列程序,写出运行结果
sum=0
for k in range(1,11):
if k%2==0:
sum=sum+k
print(sum)
程序运行后输出结果是: 。
三、判断题
24.定义Python函数时必须指定函数返回值类型。( )
25.Python使用缩进来体现代码之间的逻辑关系。( )
26.Python语言的变量名要区分英文字母的大小写。( )
27.计算机解决问题的过程依次是分析问题、设计算法、编写代码、调试运行,其中编写代码是核心。( )
28.下列Python程序段运行结束后,赋值语句sum=sum+i共被执行了9次。( )
四、操作题
29.小王因为毕业需要往家里邮寄物品,邮资的计费规则如下:重量在1000克以内(包括1000克)的,基本费8元;超过1000克的部分,除了收取基本费之外,每超过500克加收超重费3元,不足500克的部分按500克计算。现用Python程序实现以上功能,请在画线处填入合适的代码。
n=int(input())
if ① :
fee=8
elif (n-1000)%500==0:
fee=8+(n-1000)//500*3
else:
②
print(fee)
30.在Python编辑器中打开“Y:\212”下的“p1.py”文件,按照下列要求进行操作并保存。使之能够实现如下功能:
输入一个数判断正负数或0,并输出“正数”“零”或“负数”。
测试数据:
输入8,输出结果:正数。
输入0,输出结果:零。
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.BC
【详解】本题考查Python循环结构的描述。在Python中,用于实现循环结构的关键字有两个,分别是 while 和 for。while 用于在条件为真时重复执行一段代码,而 for 用于遍历序列(如列表、元组、字符串等)中的每一个元素。选项 A. if 是条件语句,选项 D. loop 在Python中并不存在。故选BC。
2.A
【详解】本题考查Python基础。
若取到x=3,则必然进入if k>5判断的else分支。故k<=5。排除选项C、D。程序进入下一个分支语句,当k>2时,则x=3。故k可以取3、4、5。故正确答案为:选项A。
3.C
【详解】本题考查Python基础。
Python 中的字符串索引是从 0 开始的。字符串切片 s[start:end] 会返回从索引 start 到 end-1 的子字符串(包含 start 索引,但不包含 end 索引)。
题目中weekstr[weekid*3: weekid*3+3]=weekstr[9:12],故正确答案为:选项C。
4.B
【详解】本题考查Python基础。
自定义函数delStr(s,m)的功能是删除字符串s中第m位上的字符,分4种情况进行讨论,划线处为删除字符s中间m位置上的字符的情况,需注意的是m是字符串的实际位置(第1个字符的位置为1),对应字符串中的索引位置为m-1,因此答案为B。
5.B
【详解】本题考查Python基础。
表达式:8%4>4 or 4//3>2
8%4 是 0,0>4 是 False
4//3 是 1(整数除法),1>2 是 False
False or False 是 False
故正确答案为:选项B。
6.A
【详解】本题考查Python程序。初始时,列表a的内容为[3,0,8,0],升序排序后为[0,0,3,8],因此变量m1的值为8300。变量m2是列表a中首先按从左到右次序找到第一个非零位置和a[0]交换所得,结果为[3,0,0,8],因此变量m2的值为3008。故答案为:A。
7.A
【详解】本题考查Python基础。
该程序功能是从输入的数字中,找到最大的一个数输出。故正确答案为:选项A。
8.C
【详解】本题考查程序分析。
调用head方法,可以取出前5条数据。默认为5条或指定参数5。tail方法取出末尾数据。故排除②。通过索引值0到4取得,故上限为5。故排除 ④。故正确答案为:选项C。
9.B
【详解】本题考查的是Python选择语句。选项A中,30天及以内,会执行else分支,不符合题意;选项C中,30天及以内,会执行else分支,不符合题意;选项D中,超过30天一直执行if分支,elif分支不会被执行,不符合题意。故选B。
10.B
【详解】本题考查程序分析。根据程序可知运行过程:
最后输出的s值为[3,2,4,0,5,1],故选择B。
11.C
【详解】本题考查函数相关内容。len()函数用于获取对象的长度,如字符串、列表、元组等。列表[10,12,35,46]中含有4个元素,故本题答案是C选项。
12.A
【详解】本题考查计算机解决问题相关内容。计算机解决的是从自然界、人类社会中抽象出来的数据或数学模型的数值解,也有利用计算机来进行图像处理、数值仿真、图像还原、数据挖掘(从海量数据中提取知识)、利用计算机模拟人类智能、从海量知识中提取有用的规律、模拟自然界或人类社会某些系统的行为、运行方式、模拟我们只能观测、无法实际接触的实际事务。A选项,“23×35=”通过简单计算即可解决,不需要用程序处理。BCD选项适合用程序处理。故本题答案是A选项。
13.C
【详解】本题考查的是Python循环嵌套。
当i取值为0时,a[0]=1,不满足while循环条件,结束第一次外循序,列表a为[1,0,0,0];
当i取值为1时,a[0]=2,满足while循环条件进入内循环,a[0]=0,j=1,a[1]=1,结束第二次外循序,列表a为[0,1,0,0];
当i取值为2时,a[0]=1,不满足while循环条件,结束第三次外循序,列表a为[1,1,0,0];
当i取值为3时,a[0]=2,满足while循环条件进入内循环,a[0]=0,j=1,a[1]=2,满足while循环条件进入内循环,a[1]=0,j=2,a[2]=1,结束第四次外循序,列表a为[0,0,1,0];
当i取值为4时,a[0]=1,不满足while循环条件,结束第五次外循序,列表a为[1,0,1,0];
当i取值为5时,a[0]=2,满足while循环条件进入内循环,a[0]=0,j=1,a[1]=1,结束第六次外循序,列表a为[0,1,1,0];
当i取值为4时,a[0]=1,不满足while循环条件,结束第七次外循序,列表a为[1,1,1,0];
最后逆序输出列表a,故为:[0,1,1,1],选项C正确。
14.D
【详解】本题考查计算机解决问题相关内容。计算机解决问题的步骤:分析问题→设计算法→编写程序→调试运行程序→问题解决,故本题答案是D选项。
15.C
【详解】本题考查Python程序。该程序的目的是将给定的字符串s中的数字按照非递减顺序输出。程序中使用了一个单调递增栈的思想来实现。 程序执行步骤: 初始化字符串s为'13,12,12,15,26,23,36'。 初始化一个空列表a,长度为字符串s的长度,即7。 初始化头指针head和尾指针tail为0。 初始化临时字符串t为空字符串。 遍历字符串s中的字符,如果字符是数字,则将其加入临时字符串t,否则进行栈的维护。 在栈的维护过程中,当头指针小于尾指针且当前数字小于栈顶元素时,弹出栈顶元素;否则,将当前数字入栈。 循环结束后,输出栈中的元素。按照上述步骤执行,输出的结果应该是'12 12 15 23'。故答案为:C。
16.C
【详解】本题考查是Python循环语句。range(start, stop, [step]),start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);stop:计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5;step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)。range(1, 9,2)生成的序列数是:1,3,5,7,故s=1*2*2*2*2=16,选项C正确。
17.A
【详解】本题考查Python循环结构的应用。i依次取0、1、2、3、4,因此n=n*i=1*0*1*2*3*4=0,故选A。
18.D
【详解】本题考查Python随机数、程序设计等相关内容。通过分析代码段,可知:当k=5或10时,a列表元素值不会出现5或10,B选项错误;当k=3、6、9时,a[5]元素值为对应的3、6、9,C选项错误;当列表元素前有两个0(未被修改)出现时,其列表最后的两个元素值应该是3、6、9中的一个,A选项错误。故本题正确答案是D选项。
19.dict.items()
【详解】本题考查Python循环的描述。在Python中,可以使用for循环结合字典的items()方法来遍历字典的键值对。items()方法返回一个包含字典键值对的视图对象。
20.num%2= =0 and num%3= =0
【详解】本题考查程序设计。
判断一个数能被另一个数整除,可以使用取余数是否为0判断。题目中判断一个数是否既是2的倍数又是3的倍数,故可以写为:num%2==0 and num%3==0。
21.False
【详解】本题考查Python程序设计相关内容。在Python中,in是一个运算符,用于检查一个值是否存在于一个序列(如字符串、列表、元组、集合)中,返回一个布尔值,即True或False,指示该值是否存在于序列中。字符串'ab'不在'acbed'中,其结果为False,故本题答案是:False。
22.list comprehension
【详解】本题考查Python程序设计相关内容。Python中的列表推导式(list comprehension)是一种方便快捷的语法,可以快速地生成列表。它的语法形式类似于数学中的集合推导式,语义也相似,因而易于理解和使用。故本题答案是:list comprehension。
23.30
【详解】本题考查的是Python循环语句。sum=0,变量i的范围是1~10,如果是偶数,则执行sum=sum+i,故程序执行完,sum=sum+i=0+2+4+6+8+10=30。
24.错误
【详解】本题考查Python基础。
在Python中,定义函数时不需要显式指定函数的返回值类型,这与一些静态类型语言(如C++、Java或TypeScript)不同。Python是一种动态类型语言,这意味着变量的类型是在运行时动态确定的,而不是在编写代码时静态确定的。故错误。
25.正确
【详解】本题考查Python基础。
Python 使用缩进来定义代码块(block)的范围。缩进是语法的一部分,这意味着缩进的正确使用对于程序的正确执行至关重要。Python 的这种设计选择强调了代码的可读性和简洁性。故正确。
26.正确
【详解】本题考查Python。Python语言的变量名是区分英文字母大小写的,这意味着在Python中,变量名var和Var被视为两个不同的变量。故说法正确。
27.错误
【详解】本题主要考查编写计算机解决问题相关内容。计算机解决问题要依次经过分析问题、设计算法、编写程序、调试运行的步骤,设计算法是编程的核心,是依据。故本题答案是:错误。
28.正确
【详解】本题考查的是Python循环与选择语句。range(1,20)生成1~19的整数,阅读程序可知,只有i为1~19的偶数,才执行赋值语句sum=sum+i。故一共被执行了9次。题干中说法正确。
【点睛】
29. n<=1000 fee=8+((n-1000)//500+1)*3
【详解】本题考查Python综合应用。
(1)①空对应的语句块为fee=8,显然判断的条件应为物品重量是否在1000克以内,即n<=1000;故答案为:n<=1000。
(2)当物品的重量超出1000克,此时需要判断超出的部分是否为500克的倍数,即中间的elif语句块,当物品重量超出的部分不是500克的倍数时,不足500克的按500克计算,因此需要在整除500的基础上+1再计算邮费,即②空为fee=8+((n-1000)//500+1)*3。故答案为:fee=8+((n-1000)//500+1)*3。
30.a=int(input("请输入一个数:"))
if a>0:
print("正数")
elif a==0:
print("零")
else:
print("负数")
【详解】本题考查Python程序设计。调用input()函数读入一个数,默认是字符串类型,int() 函数用于将给定的值转换为整型;要判断一个数正负数或0,并输出“正数”“零”或“负数”,使用if-elif-else语句。具体代码如下:
a=int(input("请输入一个数:"))
if a>0:
print("正数")elif a==0:
print("零")else:
print("负数")
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$