内容正文:
2.3 程序设计基本知识
一、选择题
1.下列程序段功能是( )
s=0
n=1
for i in range(1,6):
n=n*i
s=s+n
print(s)
A.S=1!+2!+3!+4!+5! B.S=1*2*3*4*5 C.S=1+1*2+2*3+3*4+4*5 D.S=1+2+3+4+5
2.以下哪个选项是Python中实现循环结构的正确方法( )
A.使用loop关键字 B.使用while或for关键字
C.使用repeat函数 D.使用iterate方法
3.在BXY中编辑这样一段代码:
from microbit import *
import random
try:
whileTrue:
display.scroll(str(random.randint(1,6)))
except:
display.clear()
在micro: bit硬件支持下,该代码的功能是( )
A.每次运行这段代码,都会滚动显示一次一个在1到6之间的某个随机数
B.每次运行这段代码,都会滚动显示1到6之间的某个随机数
C.每次运行这段代码,都会滚动显示0到6之间的某个随机数
D.每次运行这段代码,都会滚动显示1到5之间的某个随机数
4.以下程序段运行后,整型变量s的值是( )
s=1
for i in range(1,11,3):
s=s * i
print(s)
A.55 B.280 C.28 D.3 640
5.下列表达式计算正确的是( )
A."a"+"b"="a" B.6 % 2=3 C.3*"py"="pypypy" D.8 / 4=2
6.象限是平面直角坐标系(笛卡儿坐标系)中横轴和纵轴所划分的四个区域,每一个区域叫作一个象限。象限以原点为中心,x,y轴为分界线,原点和坐标轴上的点不属于任何象限。某同学根据输入的坐标点(x.y)来判断该坐标点的位置所在,以下实现该分类的据Python程序段中正确的是( )
A.
if x==0 and y==0:
result="原点"
if x==0 or y==0:
result="数轴"
if x!=0 and y!=0:
result="象限"
B.
if x==0 or y==0:
result="数轴"
elif x==0 and y==0:
result="原点"
else:
result="象限"
C.
if x!=0 and y!=0:
result="象限"
elif x==0 or y==0:
result="数轴"
else:
result="原点"
D.
if x!=0 and y!=0:
result="象限"
if x==0 and y==0:
result="原点"
elif x==0 or y==0:
result="数轴"
A.A B.B C.C D.D
7.在Python中,以下代码执行后输出的结果是( )
x=1
for i in range(5):
x=x*i
print(x)
A.0 B.15 C.24 D.120
8.执行以下代码后,整型变量a和b的值分别是( )
a=2
b=3
a=a*b
b=a//b
a=a//b
A.2 3 B.6 2 C.3 2 D.6 3
9.数组元素 a[0]至a[n-1]依次存放着n个数据,现需要将元素 a[n-1]插入在下标为x(0≤x<n-1)的位置,例如:n为5,数组 a 为[0,3,4,6,7],x为2,插入操作后a为[0,3,7,4,6]。为实现此功能,某同学编写Python程序如下:
temp=a[n-1]
for i in range(n-2,x-1,-1):
a[i]=a[i-1]
a[i]=temp
此程序不能正确实现上述添加功能,若a的值是[0,3,4,6,7],执行该程序段后输出结果是( )
A.[0, 3, 6, 4, 7] B.[0, 3, 3, 4, 7] C.[0, 3, 7, 4, 7] D.[0, 4, 3, 4, 7]
10.下列Python表达式的值为True的是( )
A.7%2==0 B.int(6.89)==7 C.8%5==9//3 D.not(1>2or1!=5)
11.有如下Python程序段:
k = 3
c,j,Sum = 0,0,0
for i in range(len(s)):
ch = s[i]
if '0' <= ch <= '9':
c = c * 10 + int(ch)
j += 1
else:
if j == k:
Sum += c
j,c = 0,0
字符串 s 为"wz500ai2024ok102"时,执行该程序段后,Sum 的值为( )
A.500 B.602 C.2524 D.2626
12.有如下Python程序段:
s=["a","b","c","d"]
i=0
for xx in s:
t=ord(xx)-ord("a")
i+=t
print("i=",i)
执行该程序段后,输出 i 的值是( )
A.4 B.5 C.6 D.10
13.有如下Python程序段:
s=input()
word=[]
for i in range(len(s)):
for j in range(i+1,len(s)):
if s[i:j]not in word:
word.append(s[i:j])
ifs[i:]not in word:
word.append(s[i:])
n=len(word)
执行该程序段,输入“ababa”,则n的值是( )
A.7 B.8 C.9 D.10
14.有如下 Python 程序段:
import random
a=[1,2,3,4,5]
st=[0]*len(a);top=-1
i=0;res=[]
while i<len(a):
if random.randint(0,1)!=0 or top==-1:
top+=1
st[top]=a[i]
else:
res.append(st[top])
top-=1
continue
i+=1
while top!=-1:
res.append(st[top])
top-=1
print(res)
运行上述程序,下列输出 res 不可能的是( )
A.[3,1,2,4,5] B.[1,5,4,3,2] C.[3,4,2,1,5] D.[1,3,2,4,5]
15.将数学关系式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
16.运行如下Python程序段,若输入“B”,则变量cnt的值为( )
a=[ 'A ','B ','C ','D ','E ','F ','G ']
ch=input(“输入A-G之间的字母:”)
cnt=0
for key in a:
i,j=0,len(a)-1
while i<=j:
m=(i+j)//2
if a[m]==ch:
cnt+=1
break#终止while循环
if a[m]==key:
break
elif a[m]<key:
i=m+1
else:
j=m-1
A.1 B.2 C.3 D.7
二、填空题
17.一元二次方程的求根公式,在Python程序设计中,应该表示为 (如想使用数学模块,假设已经导入,不用单独再写)
18.在横线处填入表达式完成如下Python程序,求0-100所有偶数的和。
sum=0
for i in :
sum=sum+i
print(sum)
19.在Java中,System类的currentTimeMillis()方法返回的是自 以来的毫秒数。
20.在编程中, 是一种错误,它发生在程序运行时,导致程序不能正常执行。
21.将高级语言源程序翻译成机器语言通常有 和 两种方式。
三、判断题
22.列表对象的extend()方法属于原地操作,调用前后列表对象的地址不变。( )
23.在python中,下面程序可以正常运行。( )
n=10
s=n+'T'
24.循环语句可以嵌套使用。( )
25.字典是Python语言中的一种数据类型,其中每个元素包含键和值两部分。( )
四、操作题
26.某解压算法描述如下:
数据由数字段和字母段组成,数字段的数值代表字母段的重复次数。
例如:字符串1A2B3CD,用该解压算法解压后为ABBCDCDCD。实现该功能的Python程序如下:
decr=input("输入压缩码:")
①
num=0
tmp=""
res=""
for i in range(n):
if : num=num*10+int(decr[i])
else:
tmp+=decr[i]
if i<n-1 and "0" <=decr[i+1]<= "9":
②
num=0; tmp=""
res+=tmp*num
print("解压结果:"+res)
(1)请在程序中划线处填入合适的代码。
(2)若输入字符串“1A2BC3DEF”(不含引号),输出的内容是“解压结果: ”。
(3)以下选项与加框处表达式功能一致的有 (多选,填字母)。
A.decr[i]>="0" and decr[i]<="9" B.0<=int(decr[i])<=9
C.not(decr[i]<"0" or decr[i]>"9") D."0"<=decr[i]<"10"
试卷第1页,共3页
试卷第1页,共3页
学科网(北京)股份有限公司
参考答案:
1.A
【详解】本题考查Python程序。代码通过for循环计算从1到5的阶乘,并将每次计算的阶乘累加到变量s中。具体执行过程如下:当i=1时,n=1,s=1;当i=2时,n=2,s=1+2;当i=3时,n=6,s=1+2+6;当i=4时,n=24,s=1+2+6+24;当i=5时,n=120,s=1+2+6+24+120。最终,输出结果为S=1!+2!+3!+4!+5!。故答案为:A。
2.B
【详解】本题考查Python循环结构的描述。在Python中,实现循环结构的正确方法是使用while或for关键字。while循环用于在条件为真时重复执行一段代码,而for循环用于遍历序列(如列表、元组、字符串等)中的每个元素。选项A、C和D在Python中都不是用于实现循环的正确方法。故选B。
3.B
【详解】本题考查micro: bit程序设计相关内容。该代码段含义是直到按下清除显示,一直执行display.scroll()函数,所以正常情况下程序会一直滚动显示1到6之间的某个随机数。故本题答案是B选项。
4.B
【详解】本题考查Python基础。
根据range函数参数得知遍历的序列为:1、4、7、10。累乘到变量s。故正确答案:选项B。
5.C
【详解】本题考查Python基础。
选项A,正确结果为字符串ab。选项B,6能被2整除,故余数为0。选项D,正确结果为2.0。故正确答案为:选项C。
6.D
【详解】本题考查Python基础。
根据定义,(0,0)是原点,即if x==0 and y==0表示原点;(0,y)或者(x,0)分别表示y轴与x轴,即if x==0 or y==0且x与y不同时为0表示数轴。A选项,x==y==0时,第1个和第2个if均成立。故正确答案为:选项D。
7.A
【详解】本题考查的是Python循环语句。range(5)生成0,1,2,3,4序列数, x=x*i将i累乘到x中,即x=1*0*1*2*3*4=0,故选A。
8.C
【详解】本题考查的是Python调试与运行。*表示乘,//表示整除。a=a*b=2*3=6,b=a//b=6//3=2,a=a//b=6//2=3。执行后整型变量a和b的值分别是:3 2,选C。
9.C
【详解】本题考查Python程序设计相关内容。结合题目内容,分析程序段,若a的值是[0,3,4,6,7],n为5,x为2,执行过程:循环体共执行两次,(1)i=3,a[3]=4;(2)i=2,a[2]=3。循环结束时,i值为2,执行a[i]=temp,即a[2]=7。所以程序段执行完毕后,a为[0, 3, 7, 4, 7],故本题答案是C选项。
10.C
【详解】本题考查的是Python表达式。%表示求余,int表示转化为整数类型,==表示相等,!=表示不相等。7%2==0、int(6.89)==7、not(1>2or1!=5)值为False,8%5==9//3值为True。故选C。
11.A
【详解】本题考查Python程序设计相关内容。分析程序段,其运行过程如图所示:。执行该程序段后,Sum的值为500,故本题答案是A选项。
12.C
【详解】本题考查的是Python循环语句。for循环中,执行 t=ord(xx)-ord('a'),t的值依次是0、1、2、3,因此i=i+t=0+0+1+2+3=6,故本题选C选项。
13.C
【详解】本题考查计算机程序分析能力。根据程序两层for循环可知依次遍历切片字符串ababa,添加到空列表word中,不添加重复字符串。
i=0,j分别取1,2,3,4。
i=1,j分别取2,3,4。
i=2,j分别取3,4。
i=3,j分别取4。
根据代码 word.append(s[i:])可以将每次最后一个字符串添加上。
最终['a', 'ab', 'aba', 'abab', 'ababa', 'b', 'ba', 'bab', 'baba'],故C选项正确。
14.A
【详解】本题考查Python程序设计相关内容。本题涉及到栈的相关知识,栈的特点是先进后出。分析程序段,推知,先执行第一个循环(i<len(a)成立时),若随机函数产生的随机数为1或栈空,则将对应的列表元素a[i]入栈st,否则,将栈中元素全部出栈,依次添加res中;i<len(a)不成立时,执行第二个循环,若栈不空,则将栈中剩余元素出栈,依次添加res中。由此得出结论,res中元素排列次序与st栈中元素出栈次序相对应,BCD选项为可能结果,A选项,3为第一个元素,依据栈的特点,1不可能排列在2前面,该序列不可能出现。故本题答案是A选项。
15.D
【详解】本题主要考查Python表达式。逻辑运算符or两边值均为假时值才为假,否则值为真;逻辑运算符and两边值均为真时值才为真,否则值为假,not是取反。5≤x<14,表示x大于等于5且小于14,即x>=5 and x<14。故选D。
16.C
【详解】本题考查Python程序设计相关内容。分析程序段,其运行过程如图所示:。运行结束,变量cnt的值为3,故本题答案是C选项。
17.(-b+math.sqrt(b**2-4*a*c))/(2*a)
【详解】本题考查Python表达式。本题考查Python表达式。在Python程序设计中,对于数学运算有特定的函数和运算符。首先,求根公式中的开方运算使用的是math.sqrt()函数。这个函数可以计算一个数的平方根。幂运算使用**运算符。乘运算使用*运算符。一元二次方程ax^2+bx+c=0的求根公式为x=(-b±√(b^2-4ac))/(2a)。在Python中,要实现这个求根公式,需要用到一些数学运算和函数。math.sqrt()函数用于计算平方根,如math.sqrt(b**2-4*a*c)计算b^2-4ac的平方根。b**2表示b的平方。4*a*c表示4乘以a再乘以c。最终,表达式(-b+math.sqrt(b**2-4*a*c))/(2*a)就表示了一元二次方程求根公式的其中一个根(取正号的情况)。故答案为:(-b+math.sqrt(b**2-4*a*c))/(2*a)。
18.range(0,101,2)
【详解】本题考查Python程序设计相关内容。根据题意求0-100之间的偶数和,从2开始,每次递增2,直到增加到100,故用range()函数实现:range(0,101,2)。故本题答案是:range(0,101,2)。
19.1970年1月1日00:00:00 GMT
【详解】本题考查计算机编程。System类的currentTimeMillis()方法返回的是自1970年1月1日00:00:00 GMT(即Unix纪元)以来的毫秒数。这个时间戳可以用于测量时间间隔、创建时间戳或进行时间相关的计算。理解这一点对于编写涉及时间操作的Java程序非常重要,有助于进行准确的时间测量和处理。故答案为:1970年1月1日00:00:00 GMT。
20.运行时错误(Runtime Error)
【详解】本题考查计算机编程。在编程中,运行时错误(Runtime Error)是一种错误,它发生在程序执行过程中,导致程序不能正常执行。这类错误可能是由于无效的输入、资源不足或其他意外情况引起的。故答案为:运行时错误(Runtime Error)。
21. 解释 编译
【详解】本题考查程序的描述。将高级语言源程序翻译成机器语言通常有解释和编译两种方式。
22.正确
【详解】本题考查Python基础。
在Python中,列表(list)对象的extend()方法是一个原地操作,意味着它直接在原列表上添加元素,而不是创建并返回一个新的列表。因此,调用extend()方法前后,列表对象的内存地址保持不变。故正确。
23.错误
【详解】本题考查Python基础。
字符型数据和整型数据无法进行加法运算,类型不兼容。故错误。
24.正确
【详解】本题考查的知识点是循环结构应用。循环语句可以嵌套使用。在一个循环的内部再使用另一个循环,这就是循环的嵌套。在大多数编程语言中,如Python,Java,C++等,都支持循环的嵌套。故答案为正确。
25.正确
【详解】本题考查的是Python数据类型。字典是Python语言中的一种数据类型,其中每个元素包含键和值两部分。说法正确。
26. n=len(decr) res+=tmp*num ABCBCDEFDEFDEF AC
【详解】本题考查Python综合应用。
(1)需要获取输入字符串的长度,以便后续通过循环进行处理。故答案为:n=len(decr)。当遇到下一个数字段时,将之前累计的字母段按照重复次数添加到结果字符串res中。故答案为:res+=tmp*num。
(2)数字1表示字母A重复1次,数字2表示字母BC重复2次,数字3表示字母DEF重复3次,所以解压结果为ABCBCDEFDEFDEF。故答案为:ABCBCDEFDEFDEF。
(3)A选项“decr[i]>="0" and decr[i]<="9"”,直接判断字符是否在'0'到'9'之间,与加框处表达式功能一致。C选项“not(decr[i]<"0" or decr[i]>"9")”,通过逻辑运算判断字符不在'0'以下和'9'以上,即判断字符在'0'到'9'之间,与加框处表达式功能一致。B选项“0<=int(decr[i])<=9”,将字符转换为整数进行判断,不符合要求。D选项“"0"<=decr[i]<"10"”,对字符串进行比较时,确实是从第一个字符开始依次比较它们的ASCII码值,因此不存在字符满足"0"<=decr[i]<"10"。故答案为:AC。
答案第1页,共2页
答案第1页,共2页
学科网(北京)股份有限公司
$$