内容正文:
教科版(2019)必修一2.3周而复始的循环同步作业
一、单选题
1. 用python算法控制结构描述“如果报名人数超过10人则输出活动升级,若小于3人则输出活动取消,否则输出活动正常举行”,设t为报名人数,下列选项正确的是( )
A. B.
C. D.
2. 有一分数序列:2/1,3/2,5/3,8/5,13/8,21/13. . . 求出这个数列的前 n 项之和。
n = int(input())
a,b,num = 2,1,2
for i in range(n-1):
print(num)
方框中的代码由以下三部分组成:①num += a / b ②a = a + b ③b = a - b代码顺序正确的选项是( )
A.①②③ B.②③① C.②①③ D.③②①
3.有如下 Python 程序段:
tmps = [32,28,26,29]
n = len (tmps) ; top = -1
an s = [0] * n
stk = [-1] * n
for i in range(n):
t = tmps[i]
while top > -1 and t > tmps[stk[top]] :
d = stk[top]
top -= 1
an s[d] = i - d
top += 1
stk[top] = i
print(an s)
执行该程序段后,输出的结果是( )
A.[1, 0, 0, 1] B.[1, 1, 0, 0]
C.[0, 2, 1, 0] D.[0, 1, 2, 0]
4.有如下 VB 程序段:
Dim a(l To n) As Integer,y(l To n) As Integer, i As Integer, j As Integer
k=Val(Text1.Text)
For i=1 To n
y(i)=1
Next i
For i=1 To n
For j=1 To n
If a(i) < a(j) Then y(i)=y(i)+1
Next j
If y(i)=k Then List1.AddItem Str(a(i))
Next i
数组 a 的各元素的值为3,4,3,1,4,4,5,5,6,2,0, 在文本框中输入4,执行该段程序后 List1 中显示的值为( )
A.3 B. C. D.
5.某客户购买的新能源汽车价格为t万元,可享受当地政府购车补贴,补贴标准如下:价格20万元(不含)以下,补贴0.25万元;价格20万元(含)至30万元(不含),补贴0.5万元;价格30万元(含)以上,补贴1万元。在下列选项中,计算实际购车价格p的程序代码正确的是( )
A.
p=t-0.25
if t>=20:
p=t-0.5
elif t>=30:
p=t-1
B.
p=t-1
if t<20:
p=t-0.25
elif t<30:
p=t-0.5
C.
p=t-0.25
if t>=30:
p=t-1
if t>=20:
p=t-0.5
D.
p=t-1
if t>=20:
p =t-0.5
else:
p=t-0.25
A.A B.B C.C D.D
6.判断某序列𝑏是否是入栈序列a=[1,2,3,4,5]的出栈序列,程序如下:
输入示例:
2 3 5 4 1
输出示例:
[2,3,5,4,1]是[1,2,3,4,5]的出栈序列
a = [1, 2, 3, 4, 5]
b = list(map(int, input().split()))
stack = []
i = j = 0
while i < len(a):
stack.append( ① )
i += 1
while len(stack) > 0 and ② :
stack.pop()
j += 1
if len(stack) == 0 and i == j == len(a):
print(b, '是', a, '的出栈序列')
else:
print(b, '不是', a, '的出栈序列')
划线处应填写的语句是( )
A.① a[i] ② stack[-1] == a[j] B.① a[i] ② stack[-1] == b[j]
C.① b[i] ② stack[-1] == b[i] D.① b[i] ② stack[-1] == a[j]
7.有如下Python程序段:
a = b = ""
k = 0
s = input().strip()
for i in range(len(s)):
if '0' <= s[i] <= '9':
k += 1
else:
b = s[i-k:i]
if a < b:
a = b
k = 0
print(a)
运行后若输入“3.803.93.520.888”(不包括引号),则输出是( )
A.803 B.93 C.520 D.888
8.有如下Python程序段:
q = [1, 2, 3, 4, 5, 6, 7, 8, 9]
f, r = 0, 8
n = int(input())
while r < n:
cur = q[f]
f = f + 1
m = cur % 10
if m == 0:
q.append(cur * 10 + m)
q.append(cur * 10 + m + 1)
r += 2
elif m == 9:
q.append(cur * 10 + m - 1)
q.append(cur * 10 + m)
r += 2
else:
q.append(cur * 10 + m - 1)
q.append(cur * 10 + m)
q.append(cur * 10 + m + 1)
r += 3
对于该程序,下列说法正确的是( )
A.q[12]的值是20
B.若程序输入𝑛的值等于21,则列表q中的元素个数是22个
C.对列表任一元素q[i](9≤𝑖≤𝑟),其个、十、百、千……等相邻位上的数值相差都不超过1
D.q中元素值递增,且任意相邻两个元素q[i]和q[i+1](0≤𝑖<𝑟),它们数值相差不会超过1
9.有如下Python程序段:
lst=[3, 5, 6, 7, 10, 11, 14, 16]
i=len(lst)-1
stk=[0]*len(lst)
top=-1
while i>=0:
if lst[i]%2==0:
top+=1
stk[top]=lst[i]
else:
lst[i+top+1]=lst[i]
i-=1
i=0
while top>-1:
lst[i]=stk[top]
top-=1
i+=l
执行该程序段后,lst[3]的值是( )
A.3 B.6 C.14 D.16
10.有如下VB程序段:
flag=False:s="ShanShui2020!"
For i=1 To Len(s)
ch=Mid(s,i,1)
If Not(ch〉="0"And ch<="9")And Not flag Then
t=ch+t
End If
flag=Not flag
Next i
Text1.Text=t
执行完以上程序段后,文本框text1中的内容为( )
A.!uSaS B.SaSu! C.!22uSaS D.ShanShui!
11.【加试题】有VB编写的程序如下:
Private Sub Command1_Click()
Dim a(0 To 9) As Integer
Dim t as Long
t = Val(Text1.Text)
Do While t <> 0
a(t Mod 10) = 1
t = t \ 10
Loop
For i = 0 To 9
x = x + a(i)
Next i
End Sub
若在文本框Text1中输入10242048,则程序执行后,变量x的值为( )
A.1 B.2 C.5 D.10
12.有如下VB 程序
Dim i As Integer, j As Integer, s As Integer, n As Integer
n = 3: s = 0
For i = 1 To n
For j = 1 To i
s = s + j
Next j
Next i
Text1.Text = s
End Sub
该程序运行后在文本框Text1 中显示的结果是( )
A.3 B.6 C.10 D.18
二、判断题
13.如下图所示程序段,程序运行结果sum的值为55。
14.循环结构表示程序反复执行某个或某些操作,只有用户干预才能终止循环。
三、填空题
15.请在横线处填写正确的代码
写一个计数器程序,要求反复输入一位数字,遇到数字0结束输入,统计输入了多少个数字(不含0)并输出结果。
a=int(input("请输入一个数字"))
ans= #ans用来统计数字个数
while :
ans+=
a=int(input("请输入一个数字"))
print(ans)
16.请在横线处填写正确的代码
斐波那契数列:该数列的第一个和第二个数均为1,从第三个数起,每个数据都是它前两项数字的和。求斐波拉契数列第n项的值。
f1=f2=1 #变量f1和f2表示斐波那契数列的第一个数和第二个数
n= (input("请输入要求该数列的第几个数:"))
for i in range(3, ): #求该数列的第n个数
f1, f2=f2, f1+f2
print("第", n, "个数是", )
17.本程序的功能是:输入一个字符串,将该字符串反向输出。例如,输入:abcdefgh 输出:hgfedcba。请将下列程序补充完整。
Dim s1 As String, s2 As String
Dim c As Integer, i As Integer
s1 = InputBox("请输入一串字符")
s2 = ""
c = Len(s1)
For i = ▲
s2 = Mid(s1, i, 1) + s2
Next i
Print s2
【函数功能提示】
⑴函数Len(x)的功能是:取字符串x的长度值(即字符个数值)。
若x="abc",则Len(x)的值为3。
⑵函数Mid(x,y,z)的功能是:在字符串x中第y个字符开始取z个字符。
若x="abcdefg",则 Mid(x,4,3)取得的值是"def"。
程序空白处应填写的语句是: 。
答案解析部分
1.【答案】D
2.【答案】B
3.【答案】C
4.【答案】C
5.【答案】B
6.【答案】B
7.【答案】B
8.【答案】C
9.【答案】D
10.【答案】B
11.【答案】D
12.【答案】C
13.【答案】正确
14.【答案】错误
15.【答案】0;a!=0;1
16.【答案】int;n+1;f2
17.【答案】1 to c
学科网(北京)股份有限公司
$$