内容正文:
第2单元 编程计算
一、选择题
1.变量是在程序运行过程中值允许改变的量。以下可以用作python变量名的是( )
A.import B.Student 5 C.3dmax D.abc#123
2.有如下Python程序段:
import random
a=[1,0,0,0,0]
for i in range(1,5):
a[i]=random.randint(1,9)
if a[i]%2==1:
a[i]=a[i]+a[i-1]
elif i%2 ==0:
a[i]=a[i]//2
执行程序后,a列表各元素不可能的是( )
A.1,4,2,4,15 B.1,8,3,2,5
C.1,2,11,8,2 D.1,8,15,6,4
3.某加密程序的代码如下:
sl=input("请输入明文:")
q="1357902468";S2=""
for ch in sl:
if"0"<=ch<="9":
s2+=q[int(ch)]
elif"a"<=ch<="z":
s2+=chr((ord(ch)-ord("a")+2)%26+ord("a"))
else:
s2+=ch
print(s2)
运行该程序,输入s1的值为"Mike521@qq.com",则输出结果为( )
A.Mgic053@oo.amk B.Kgic931@oo.amk C.Mkmg053@ss.eqo D.Okmg931@ss.eqo
4.已知字符串 s 是由字母和数字组成的,现要用 VB 程序实现如下功能,将字符串中的数字字符按照原有顺序移动到 s 的左边,字母字符按照原有顺序移动到字符串右边,如 s=“Su2cc0ess20”执行完程序后变成 s=“2020Success”,为实现上述功能,在横线处填入的代码应该是( )
m=0:k=0
For i = 1 To Len(s)
ch = Mid(s, i, 1)
k = k + 1
If ch >= "a" And ch <= "z" or ch >= "A" And ch <= "Z" Then
a(k) = ch
Else
m = m + 1: ①
Do While j > m
②
j = j - 1
Loop
③
End If
Next i
n = Len(s): s = ""
For i = 1 To n
s = s + a(i)
Next i
A.①j=k ②a(j)=a(j-1) ③a(m) = ch B.①j=k ②a(j)=a(j+1) ③a(j+1)=ch
C.①j=k-1 ②a(j)=a(j-1) ③a(m) = ch D.①j=k-1 ②a(j)=a(j-1) ③a(j+1)=ch
5.Python语言中,小宇用计算机解决“红灯变绿灯”问题时,红灯和绿灯信号之间的变化需要用到绘制图像函数turtle,“通过导入turtle模块,利用其中的函数circle()绘制圆形”主要属于计算机解决问题一般过程的哪一个阶段( )
A.分析问题 B.设计算法 C.编写程序 D.调试程序
6.在Python中,执行以下语句后,显示的结果是( )
>>>x=4
>>>y=8
>>>x=x**2
>>>y=10-y
>>>x-y
A.12 B.18 C.16 D.14
7.在Python语句中,以下代码输出的结果是( )
s= "HelloPython"
print(s[2:7])
A.llo B.elloPy C.elloP D.lloPy
8.有5万元资金存入银行,选择“1年定期、自动转存”的存款方式。5年后会有多少收益呢?(假定利率为3.25%),下列计算表达式正确的是()
A.money=50000*(1+0.0325)*5 B.money=50000*(1+0.0325)**5
C.money=50000*(1+0.0325)5 D.money=50000*(1+0.0325)^5
9.下列Python代码段的功能是计算( )
a = 10
s = 0
while a>0:
s += a * a * a
a- = 1
print (s )
A.13+23+33+…+103的值 B.1!+2!+3!…+10!的值
C.(1+2+3+…+10)3的值 D.10个103的和
10.有如下Python程序段:
s=input()
occ=""
n=len(s)
rk=ans=0
for i in range(n):
while rk < n and s[rk] not in occ:
occ+=s[rk]
rk+=1
ans=max(ans,rk-i)
occ=occ[1:]
print(ans)
执行该程序段后,若输入字符串s的值为“ilovexuejun”,则输出ans的值为( )
A.6 B.7 C.8 D.9
11.下列Python程序段执行后,变量d的值是( )
d=2
t=3
if t>=1 and t<=5:
d=d*(1+t)
else:
d=d*t
A.2 B.4 C.6 D.8
12.有如下Python程序段:
import random
q=[0]*8; head, tail=0, 4
for i in range (4):
k=random. randint (0, 10)
if k%2==0:
q[tail]=k%5
tail+=1
else:
head+=1
while head<tail:
print (q[head], end="")
head+=1
程序运行后,输出结果可能为( )
A.00002306 B.01234 C.0000 D.24
13.个人所得税采用按年度分段计税,根据年度收入计算纳税额应该采用( )
A.循环结构 B.顺序结构 C.立体结构 D.选择结构
14.已知S=1+2+3+……+N, 找出一个最大整数N,使得S<3000。编写程序解决此问题,最合适的程序结构是( )
A.环型结构 B.顺序结构 C.循环结构 D.分支结构
15.小陈在学习Python后,编写了一个出租车计费程序,如下所示,当输入路程数据为5.6,程序运行结果为( )
A.12 B.10 C.11.2 D.14
16.若a,b,c为互不相同的整数,要找出它们中最大的数。以下Python程序段不可行的是( )
A.
if a>b:
max=a
else:
max=b
if c>max:
max=c
print(max)
B.
max=a
if b>max:
max=b
if c>max:
max=c
print(max)
C.
max=c
if a>b:
if a>c:
max=a
elif b>c:
max=b
print(max)
D.
if a>b>c:
max=a
elif b>a>c:
max=b
else:
max=c
print(max)
A.A B.B C.C D.D
17.下列描述,正确的是( )
A.range(10),包含10个元素 B.range(1,10),包含10个元素
C.range(0,10,2),包含10个元素 D.range(0,10,5),包含5个元素
18.阅读下列Python程序,选出运行结果。
for i in range(1,11): #i控制*的行数
for j in range(1,i+1): #j控制每行*的个数
print("*",end=" ") #输出*,end=" "表示输出结束后不换行
print ( ) #输出换行
运行结果是 ( )
A. B. C. D.
19.有如下Python程序段:
import random
a=[]
for i in range(6):
a.append(random.randint(1,10))
for i in range(5):
if i%2==0 and a[i] < a[i+1]:
a[i],a[i+1]=a[i+1],a[i]
else:
a[i]-=1
print(a)
运行该程序后,输出结果不可能的是( )
A.[7, 3, 3, 4, 9, 4] B.[8, 8, 10, 5, 7, 8] C.[9, 4, 9, 4, 8, 7] D.[7, 2, 9, 7, 4, 5]
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.B
【详解】本题考查变量。import是系统保留字不能用作变量名;3dmax,第一位只能用字母或下划线;abc#123,符号可用作变量名的只有下划线,不能包含“#”。故答案为:B。
2.A
【详解】本题考查的是Python循环、选择语句。random.randint(1,9)生成的是1~9的任意整数。阅读程序可知,如果随机生成的数是奇数,则a[i]的值为a[i]+a[i-1],否则如果索引是偶数位则a[i]的值为a[i]//2。选项A中a[4]=15,因为随机生成的数是1~9,故不可能由a[i]//2计算得出,只能是a[i]+a[i-1],由于a[3]=4,故随机生成的a[4]=15-4=11符合奇数,但不符合随机生成的数是1~9。故选项A不可能。
3.C
【详解】本题主要考查Python程序的执行。分析程序可知,ch依次是从字符串s1中取的字符,如果ch是数字时,则将其作为索引从字符串q中取对应的数字,故521对应的数字是053;如果ch是小写字母,则将其循环后移2位;如果ch是其他字符,则保持不变,故输入s1的值为"Mike521@qq.com",则输出结果为Mkmg053@ss.eqo,故本题选C选项。
4.A
【详解】本题考查VB程序段。题目要求,将字符串中的数字字符按照原有顺序移动到s的左边,字母字符按照原有顺序移动到字符串右边,又根据代码可知,当变量ch是字母时,将ch存放在数组元素a(k)中,即a(k)=ch。当ch是数字时,执行Else部分,根据选项和代码结构,可判断else部分的功能是将ch中的数字存放在数组元素a(m)中,如果a(m)中已经有字母存在,则需要将从a(m)至a(k)的数组元素向后移动一位。故由此判断,代码第一空填入j=k,代码第二空实现数组后移一位,填入a(j)=a(j-1),代码第三空将ch存入数组中,即a(m)=ch。故本题选A。
5.B
【详解】本题考查计算机解决问题相关内容。计算机解决问题的一般过程:分析问题→设计算法→编写代码→调试程序→得到结果。“通过导入turtle模块,利用其中的函数circle()绘制圆形”主要属于计算机解决问题一般过程的设计算法阶段。故本题答案是B选项。
6.D
【详解】本题考查Python基础。x=x**2=4**2=16,y=10-y=10-8=2,x-y=16-2=14。故选D。
7.D
【详解】本题考查Python字符串切片操作。切片操作基本表达式:object[start_index:end_index:step],step:正负数均可,其绝对值大小决定了切取数据时的“步长”,而正负号决定了“切取方向”,正表示“从左往右”取值,负表示“从右往左”取值。start_index:表示起始索引(包含该索引对应值),该参数省略时,表示从对象“端点”开始取值。end_index:表示终止索引(不包含该索引对应值),该参数省略时,表示一直取到数据“端点”。s[2:7]即取字符串索引2~6之间的字符,即lloPy。故选D。
8.B
【详解】本题主要考查Python表达式。Python表达式中幂运算是“**”,乘运算是“*”,由题干存款方式可知,5年后收益是money=50000*(1+0.0325)**5,故本题选B选项。
9.A
【详解】本题考查程序设计相关内容。s += a * a * a的功能是将a的三次方累加给s,a从10循环到1,则该代码段功能是计算13+23+33+…+103的值。故本题答案是A选项。
10.B
【详解】本题考查Python程序。给定字符串“ilovexuejun”,我们需要找出不包含重复字符的最长子串,并输出其长度。程序使用了滑动窗口的方法,通过两个指针(i和rk)和一个临时字符串(occ)来实现。具体步骤如下:初始化:输入字符串s为“ilovexuejun”,occ为空字符串,n为字符串长度11,rk和ans都初始化为0。遍历字符串:对于每一个起始位置i,通过内循环移动rk指针找到最长的无重复字符子串,并更新occ和ans。内循环条件是rk未到达字符串末尾且字符s[rk]未出现在occ中。每次rk移动时,将当前字符s[rk]加入occ,并更新rk。内循环结束后,更新ans为当前最长无重复子串的长度rk-i。更新occ为去掉第一个字符的子串,为下一次迭代做准备。最后打印ans。根据以上过程,可知输出ans的值为:7。故答案为:B。
11.D
【详解】本题主要考查Python分支结构的应用。d=2,t=3,满足t>=1 and t<=5,因此执行 d=d*(1+t)=8,故本题选D选项。
12.C
【详解】本题考查Python程序的执行与调试。k=random. randint (0, 10),k随机生成0~10, 由q[tail]=k%5可知,q列表中不可能出现6,排除A选项;for循环一共循环4次,若q中有1、2、3、4,说明没有执行head+=1,则B应是00001234,排除B选项;如果k是连续生成0或10两个再生成两个奇数,选项C可能;选项D有偶数2、4,则说明head+=1至多执行2次,因此输出结果一定有0,排除D选项。故选C。
13.D
【详解】本题主要考查选择结构的应用。个人所得税采用按年度分段计税,根据年度收入计算纳税额应该采用选择结构,即根据不同的条件执行不同的语句,故本题选D选项。
14.C
【详解】本题考查的是程序的循环结构。循环结构是指在程序中需要反复执行某个功能而设置的一种程序结构。它由循环体中的条件,判断继续执行某个功能还是退出循环。本题有“S<3000”适合循环结构实现。故选项C正确。
15.A
【详解】本题考查Python程序设计相关内容。已知s=5.6,int(5.6)=5!=5.6,执行:s=round(s+0.5),则s=6,s>5成立,执行:m=10+(s-5)*2,则m=12,故本题答案是A选项。
16.D
【详解】本题考查Python程序。当a=2,b=2,c=1时,按照D选项的代码逻辑,因为a>b>c不成立,b>a>c也不成立,就会执行else部分,此时会得出max=c,即max=1,但实际上应该是max=2,所以输出结果是错误的。故答案为:D。
17.A
【详解】本题考查的是range函数。格式: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)。故本题应选A。
18.D
【详解】本题考查的是Python循环嵌套。外循环控制*的行数,内循环控制每行*的个数。 range(1,11)生成的是1~10的整数。range(1,i+1)生成的是1~i的整数,输出是从左到右输出。故本题应选D。
19.A
【详解】本题考查的是循环语句。阅读程序可知,列表索引为偶数同时比后一个元素小时,交换两数;其余情况列表元素值减1。如果原来列表索引为偶数的值比后一个大,这两个数都是执行else,执行后索引为偶数的值还是大于后一个;如果原来列表索引为偶数的值等于后一个,这两个数都是执行else,执行后索引为偶数的值还是等于后一个(特例:当原来a[4]=a[5],由于第二个for变量取值到4,a[5]不减1,这时a[5]-a[4]=1);如果原来列表索引为偶数的值比后一个小,索引为偶数执行if语句(使得索引为偶数的值大于后一个),后一个执行else,执行后索引为偶数的值大于后一个。总上所述,程序执行结果肯定:a[0]>=a[1],a[2]>=a[3]。选项A中a[2]=3,a[3]=4不满足a[2]>=a[3]。故本题应选A。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$