内容正文:
第2单元 编程计算
一、选择题
1.在Python中,运行以下程序后,变量的值是( )
i=0
while i<6:
print("*")
i=i+1
A.0 B.6 C.1 D.7
2.为提高人们的生活质量,把人从繁重的工作中解放出来,有许多工作可以通过编程业解决,以下描述中不宜使用编程来处理的是( )
A.编写程序控制工业喷涂机器人 B.编写程序计算所有实数和
C.编写导弹自动防御系统 D.编辑用数码相机拍摄的一段视频
3.在Python中,下列变量名合法的是( )
A.False B.Stu-1 C.if_1 D.2nd
4.在传递信息的过程中,常会将一些敏感信息进行加密,以下是对数据进行加密的Python程序段,若输入数据为“123sAw34”,则输出的内容为( )
A.123 B.246 C.157 D.321
5.对于下列Python语句
if b==2:
s=s*2
else:
s=s/2
下列说法正确的是( )
A.b==2为赋值语句 B.s=s*2和s=s/2均为赋值语句
C.s=s*2和s=s/2均为关系表达式 D.s=s*2为关系表达式,s=s/2为赋值语句
6.有如下Python程序段
s="aabbccabc"
st=s[1]
for i in range(1,len(s)):
if len(st)==0 or s[i]!=st[len(st)-1]:
st=st+s[i]
else:
st=st[0:len(st)-1]
print(st)
运行该段代码后,输出结果为( )
A.abc B.abcabc C.ababc D.aabbc
7.学校举行大合唱比赛,每个班级演唱结束后会有10个评委打分,最终得分的计分规则为:去掉一个最高分,去掉一个最低分,求平均分。
编程Python程序,实现快速计分,代码如下:
n=10
scores, maxs, mins=0, 0, 10
for i in range(n):
s=float(input("第"+str(i)+"个评委给分:"))
if maxs < s:
maxs=s
elif mins>s:
mins=s
scores+=s
avg=____________
print("平均分为:"+str(round(avg,2)))
以下关于该程序的说法正确的有( )
A.将“elif”改为“if”,程序功能不变
B.划线处代码为“(scores-maxs-mins)/n-2”
C.倒数第2行代码取消缩进,算法更加优化
D.此程序段只适用于满分不超过10的情况
8.利用计算机编程解决问题的过程中,需要使用一种程序设计语言来实现算法,这个过程叫做( )。
A.分析问题 B.设计算法 C.编写程序 D.调试程序
9.有如下Python程序段:
s=″328ud*YourDay″
t=″″
for i in range(len(s)):
if s[i]>=″a″ and s[i]<=″z″:
t=t+s[i]
print(t)
该程序段的功能是( )
A.输出字符串t中的所有小写字母 B.输出字符串s中的小写字母个数
C.输出字符串s中的所有的非数字字符 D.输出字符串s中的所有小写字母
10.数组a已有9个数据,分别存储于a[0]~a[8],需在第j个位置(1≤j≤9)插入数据k。利用Python语言编写代码,模拟数据插入过程,可选代码如下:
①a[i]=k ②a[i-1]=k ③a[i+1]=a[i] ④a[i]=a[i-1]
⑤for i in range(j,9) ⑥for i in range(8,j-2,-1)
a=[9,8,7,6,5,4,3,2,1,0]
________________________:
________________________
划线处所需代码依次为( )
A.⑥③① B.⑤③② C.⑥④① D.⑤③①
11.有如下Python程序段:
s = "PythonSuperNB"
list1 = ["Everyday","Study","Happy"]
if s[6:11] > list1[1]:
print(list1[1] + s[0:6])
else:
print(list1[1])
该程序段执行后,输出的结果是( )
A.Study B.StudyPython C.EveryPython D.StudySuper
12.有如下Python程序段:
sl=''1324'';s2="abcdefgh''
j,m=0,0
c=""
for i in s2:
k=int(s1[j])
c+=s2[m+k]
j+=1
ifj>3:
j=1
m=m+2
print(c)
运行程序,输出结果是( )
A.acbdefeg B.bdcefegh C.bcdefegh D.bdceefgh
13.某Python程序如下:
s="xyAB#Fk";k=x="";flag=True
for i in range(len(s)):
if "a"<=s[i]<="z" and flag:
x=chr(((ord(s[i])-95))%26+97) #字符"a"的ASCII码值为97
elif "A"<=s[i]<="Z" and flag:
x=chr(((ord(s[i])-41))%26+65) #字符"A"的ASCII码值为65
flag=False
else:
x=s[i];flag=True
k=k+x
print(k)
执行该程序后,输出值为( )
A.ZAyb#dK B.yzYZ#Dm C.zaYB#Dk D.zaYZ#Dm
14.有如下程序段:
程序运行后,输出结果是( )
A.56 B.456 C.01234 D.23456
15.在Python中,以下哪个选项能正确实现查找一个列表中是否存在某个特定元素8,并输出其索引
lst = [3,4,8,1]
target = 8
for i in ① :
if ② :
print(i)
A.①range(len(lst)) ②lst[i] == target B.①lst ②lst[i] == target
C.①lst ②i == target D.①range(len(lst)) ②i == target
16.执行下面的Python程序段后,変量i的值为( )
for i in range(6):
print (i)
A.6 B.1,2,3,4,5,6 C.0,1,2,3,4,5 D.0,1,2,3,4,5,6
17.某 Python 程序如下:
def encode(msg,key) :
result=""
for i in range(0,len(msg)) :
c=msg[i]
if "a"<=c<="z":
result=chr((ord(c)+key-ord("a"))%26+ord("a"))+result
elif "0"<=c<="9" :
result=result+chr((ord(c)-key-ord("0"))%10+ord("0"))
return result
msg=input("请输入明文:")
key=int(input("请输入密钥:"))
re=encode(msg,key)
print(re)
程序运行后,输入 msg 的值为“1a2b3c” ,key=2,输出的结果是( )
A.edc901 B.edc345 C.9c0d1e D.3c4d5e
二、填空题
18.在Python中,使用 可以进行字典推导。
19.用python编写程序,实现一元二次方程式ax2+bx+c=0(a≠0)的求解。输入系数a、b、c的值,输出方程可能的解。
import math
a=int(input("a:"))
b=int(input("b:"))
c=int(input("c:"))
if ① :
X1=((-1)*b+sqrt(f(a,b,c)))/(2*a)
x2=((-1)*b-sqrt(f(a,b,c)))/(2*a)
print("x1=",x1,"x2=",x2)
else:
print(“该方程式无解!”)
请把上面程序划线①处的代码补充完整。
20.某Python程序段如下:
def isdigit(x):
if "0" <= x <= "9":
return True
else:
return False
d = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"
s = "1*8%6$3@0#19&0"
ans = ""
t = 0
for i in s:
if isdigit(i):
t = t * 10 + int(i)
else:
ans += d[t]
t = 0
print(ans)
运行该程序段,输出结果是
21.阅读以下程序,写出程序运行结果。
def jc(n):
s=1
for i in range(2,n+1):
s=s*i
return s
total=jc(4) #调用jc函数
print(total)
程序运行后,其输出结果为
22.阅读下列程序,写出运行结果
s = 1
for i in range(1,10,3):
s = s *iprint(s)
运行输出结果是:
三、判断题
23.已知列表x = [1, 2],执行语句y = x后,表达式id(x) == id(y)的值为True。( )
24.网络爬虫是种程序或脚本,通过它可以将非结构化数据从网页中抽取出来,并以结构化的方式存储为本地数据文件。( )
25.在 Python语言环境下,For循环语句中的循环体在书写时需要缩进,且必须缩进四个空格。 ( )
26.在Python3.x语言中,input()函数的返回值类型是字符串。( )
27.下列Python程序段运行结束后,赋值语句sum=sum+i共被执行了9次。( )
四、操作题
28.图a和图b所示程序的功能分别采用for语句和while语句实现求1-2+3-4+5-6+7-8……+99-100的和,请将程序补充完整。
左图:① ④
右图:② ③ ④ ⑤
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.B
【详解】本题考查Python编程基础。while循环中,i<6,当i的值等于6时,结束循环,共循环6次。故选择B。
2.B
【详解】本题主要考查计算机编程解决问题。结合选项可知,计算所有实数和不适合用编程解决,不满足有穷性,故本题选B选项。
3.C
【详解】本题考查Python基础。
在Python中,变量名不可以使用Python中内定的关键字;变量名可以包括字母、数字和下划线,但不可以是数字开头。故正确答案为:选项C。
4.A
【详解】本题主要考查Python程序的执行。分析程序可知,变量i依次取字符串s中的字符, 当i是数字时,则执行t=t*10+int(i),如果i是小写字母则执行sum+=t,其余字符t=0。当i='s'时,此时sum=0+123=123,因为最后一组数字"34"后没有小写字母,不再执行sum+=t,故输出的内容sum为123,故本题选A选项。
5.B
【详解】本题主要考查If选择结构。b==2为关系表达式,s=s*2 和 s=s/2 均为赋值语句,因此B选项正确。
6.A
【详解】本题主要考查Python程序的执行。分析程序可知,该程序实现将s中相邻不相等的字母依次拼接到变量st中,相等字母跳过,s="aabbccabc",故运行该段代码后,输出结果为abc,故本题选A选项。
7.ACD
【详解】本题主要考查Python程序的调试。分析程序可知,将“elif”改为“if”,程序功能不变;划线处代码为“(scores-maxs-mins)/(n-2)”;倒数第2行代码取消缩进,该语句只执行一次,因此算法更加优化;此程序段只适用于满分不超过10的情况,故本题选ACD选项。
8.C
【详解】本题主要考查计算机编程解决问题。利用计算机编程解决问题的过程中,需要使用一种程序设计语言来实现算法,这个过程叫做编写程序,故本题选C选项。
9.D
【详解】本题Python循环语句。考查的是本题字符串t中输出的是字符串s中的所有小写字母,因此答案为D。
10.A
【详解】本题主要考查Python程序执行与调试。该算法的思想是:通过循环先将索引j-2~8的元素依次后移一位,再将k放到a[i]以实现k的插入。代码依次是for i in range(8,j-2,-1)、a[i+1]=a[i] 、a[i]=k ,故本题选A选项。
11.B
【详解】本题考查的是python程序。s[6:11] 是Super,与list1[1]的 "Study"相比,s[6:11] > list1[1]成立,故执行print(list1[1] + s[0:6])= "Study"+"Python"= "StudyPython",故选项B正确。
12.B
【详解】本题考查程序分析。程序代码运行过程:
k=1 j=1 m=0 c=b
k=3 j=2 m=0 c=bd
k=2 j=3 m=0 c=bdc
k=4 j=1 m=2 c=bdce
k=3 j=2 m=2 c=bdcef
k=2 j=3 m=2 c=bdcefe
k=4 j=1 m=4 c=bdcefeg
k=3 j=2 m=4 c=bdcefegh
故程序运行的最后变量c的结果为bdcefegh,故正确答案为选项B。
13.C
【详解】本题主要考查Python程序的执行。分析程序可知,对于小写字母执行x=chr(((ord(s[i])-95))%26+97) ,即"xy"变为"za",大写字母执行x=chr(((ord(s[i])-41))%26+65) 和 flag=False,即相邻的大写字母只有第一个执行,因此"AB"变为"YB"。特殊字符跳过,即执行 x=s[i],flag=True,因此执行该程序后,输出值为zaYB#Dk ,故本题选C选项。
14.A
【详解】本题主要考查Python程序的执行。n=len(a)=7,top=0,s[0]=a[0]=6,第二个for循环执行完,s[0]=6,s[1]=5,故输出的结果是56,故本题选A选项。
15.A
【详解】本题考查程序分析。B选项,直接遍历列表lst,变量i直接存储的是列表元素,非索引。C选项,变量i存储的是列表元素值,非索引。D选项,if条件判断错误,不能用索引等于目标值。故正确答案为A选项。
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(6)生成序列数:0,1,2,3,4,5。故本题应选C。
17.A
【详解】本题考查的是Python循环语句及自定义函数。由if语句可知,如果是小写字母则后移key位,并放在字符串前端;由elif语句可知,如果是数字,则前移key位,并放在字符串的后端。程序运行后,输入 msg 的值为“1a2b3c” ,key=2;字母后移2位后edc,数字前移2位后901,组合后为:edc901。选项A正确。
18.dict comprehension
【详解】本题考查Python基础。
在Python中,使用dict comprehension可以进行字典的推导。字典推导提供了一种简洁且高效的方式来创建字典,通常用于从一个已存在的字典、列表、元组或其他可迭代对象中提取数据来创建新的字典。故正确答案为:dict comprehension。
19.f(a,b,c)〉=0
【详解】本题考查Python程序设计相关内容。一元二次方程的求解:若b*b-4*a*c>0成立,表明方程有两个不等实根;若b*b-4*a*c==0成立,表明方程有两个相等实根;若b*b-4*a*c<0成立,表明方程无解;由给定程序段知,b*b-4*a*c的值通过调用函数f(a,b,c)获得,故本题答案是:f(a,b,c)〉=0。
20.BIGDAT
【详解】本题主要考查Python程序的执行。分析程序可知,依次从s中取出数字,将该数字作为索引从字符串d中取出对应的字母,s中的数字依次是1、8、6、3、0、19、0,因为最后一个数字0后面再无其他字符,故不会执行ans += d[t],对应d中的字符分别是B、I、G、D、A、T,故输出结果是BIGDAT。
21.24
【详解】本题考查的是Python函数及循环语句。由s=s*i及 range(2,n+1)可知返回值是s=1*2*3*……n,total=jc(4)=1*2*3*4=24。
22.28
【详解】本题考查的是Python循环语句及range函数。range()函数格式:range(起始值,结束值,步长)。注意:结束值不包含;步长可省略,默认为1。range(1,10,3)生成的是列表[1,4,7]。故s=1*1*4*7=28。
23.正确
【详解】本题考查Python基础。
在Python中,当你执行 y = x 这样的语句时,你实际上并没有创建 x 的一个新副本,而是让变量 y 指向了 x 指向的同一个对象。这意味着 x 和 y 都引用了内存中的同一个列表对象,即内存地址相等,故表达式id(x) == id(y)的值为True。故正确。
24.正确
【详解】本题考查网络爬虫。网络爬虫就是一种能够按照一定的规则,自动地抓取万维网信息的程序或者脚本。它能够从网页中提取出所需的非结构化数据,并将其整理成结构化的形式,存储为本地的数据文件,以便后续的分析和处理。故说法正确。
25.错误
【详解】本题考查的是Python中的for语句格式。在 Python语言环境下,For循环语句中的循环体在书写时需要缩进,但不是必须缩进四个空格。故题干中的说法错误。
26.正确
【详解】本题考查Python函数。input()函数用于从标准输入读取一行,并将其作为字符串返回。无论用户输入什么内容,input()函数返回的值始终是字符串类型。故说法正确。
27.正确
【详解】本题考查的是Python循环与选择语句。range(1,20)生成1~19的整数,阅读程序可知,只有i为1~19的偶数,才执行赋值语句sum=sum+i。故一共被执行了9次。题干中说法正确。
【点睛】
28. 0 else n<=100 1 else n=n+1或n+=1
【详解】本题考查Python程序综合应用。①求1-2+3-4+5-6+7-8……+99-100的和,i依次取1~100,当i是奇数时,执行sum+=i,故if判断条件是i%2!=0,故填0。②否则,如果i是偶数,执行sum-=i,故此处填else。③该程序中循环变量是n,使用while循环,因此循环条件是n<=100。④此处对应else部分,故填else。⑤此处循环变量n递增1,继续循环,故填n=n+1或n+=1,
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$