第2单元 编程计算 练习 2021—2022学年教科版(2019) 必修1 (含答案)

文档属性

名称 第2单元 编程计算 练习 2021—2022学年教科版(2019) 必修1 (含答案)
格式 docx
文件大小 117.9KB
资源类型 教案
版本资源 教科版(2019)
科目 信息技术(信息科技)
更新时间 2022-02-04 21:03:33

图片预览

文档简介

第2单元 编程计算
一、选择题
1.某景区使用了游客人数控制系统来控制景区内的游览人数,该系统在景区的各个入口和出口分别统计人数,并汇总计算得出景区内的大致人数,该过程属于计算机解决问题的一般步骤中哪个环节( )
A.抽象建模 B.设计算法 C.编写程序 D.调试运行程序
2.有下面的程序段
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
其中k取哪组值时, x =3 。( )
A.3,4,5 B.1,3,4 C.5,6,7 D.4,5, 6
3.通过算法让计算机解决问题时,算法的要素包括( ) 。
A.信息、运算、控制转移 B.数据、运算、控制转移
C.信息、数据、运算 D.信息、数据、控制转移
4.有如下python程序段:
a,b=4,3
if a%2==0:
if b%3!=0:
c=a*b
else:
c=a**b
else:
c=a+b
print(c)
该程序段运行后,变量c的值为( )
A.64 B.12 C.7 D.81
5.下列程序的运行结果是( )
word=["my","apple","Label","Name","nose","nice"]
n=0
for ch in word:
if ch[1]=="a":
n=n+1
print(ch,end=" ")
print(n)
A. B. C.apple 1 D.Label Name 2
6.下列代码的输出结果是(  )
for i in range(1,10,2):
print(i,end=” ”)
A.1 3 5 7 9 B.3 5 7 9 C.1 3 5 7 9 10 D.1 3 5 7 9 11
7.有如下Python程序段:
import random
c=0
s=0
for i in range(0,10):
n=random. randint(1,101)
if n%2==0 :
s+=i
c+=l
该程序段被执行后,下列说法不正确的是:( )
A.把程序s+=i改为s=s+i后,得到的结果是一样的。
B.i=10
C.语句c+=1可能执行了10次
D.变量s中存储的生成的10个随机数中偶数对应i相加的和
8.有如下VB 程序段:
For i = 1 To 7
a(i) = Int(Rnd * 9) + 1
Next i
s = 0
For i = 1 To 6
If a(i) < a(i + 1) Then
f(i) = 1
ElseIf a(i) > a(i + 1) Then
f(i) = -1
Else
f(i) = 0
End If
s = s + f(i)
Next i
执行该程序段后,变量s的值为0,则数组a各元素的值可能是( )
A.9 8 4 1 3 3 9 B.1 2 3 6 5 3 0
C.1 8 6 2 4 3 8 D.6 4 4 5 6 7 1
二、判断题
9.王军同学编写程序解决“韩信点兵”问题后,总结出计算机解决问题的过程分为分析问题-设计算法-编写程序-调试运行程序等步骤。 (_____)
10.分析问题就是从具体的问题中,明确条件和需求,找出条件和需求之间的关系,并尽量用数学的语言加以描述。(_____)
11.U 盘中删除的文件可从“回收站”中找回来。(______)
12.有些计算机的 USB 接口是蓝色标记,表示这个接口是厂家特定接口。(______)
13.在循环中continue语句的作用是跳出循环的执行。(_____)
14.CPU的主要指标是主频,主频越大CPU运行速度越快。(_____)
三、填空题
15.阅读下列程序,写出运行结果。
def fib(m): n1=1 n2=1 for i in range(3,m +1): t = nl + n2 n1 = n2 n2 = t return t Print(fib(5))
运行结果是:_______________
16.程序设计的一般过程是分析题、设计算法、_________、运行调试。
17.阅读下列程序,写出运行结果
警察抓小偷,有四个嫌疑人甲乙丙丁,其中一人是小偷。甲说“不是我”,乙说“是丙”,丙说“是丁”,丁说“丙在冤枉人”。他们中只有一人说了假话,编程判断谁是小偷。(注:在Python运算中,True的值为1,False的值为0)
persons=[’甲’,’乙’,’丙’,’丁’] for thief in persons: flag =(thief!=’甲’)+(thief==’丙’)+(thief ==’丁’)+(thief!=’丁’) if flag == 3: print(thief)
运行结果是:____________
18.调试程序,修改代码。
要判断一个正整数n(n>=3)是否为素数,一种方法是:统计2到n-1之间所有能整除n的整数个数s,若s等于0,则n是素数,否则就不是素数,为了实现这一算法,编写代码如下,运行程序时出现错误提示
源程序 print("请输入一个大于等于3的正整数n:") n = input() s = 0 for i in range (2,n): if n % i==0: s = s + 1 if s == 0: print(n,"是素数") else: print(n,"不是素数")
运行时错误提示 请输入一个大于等于3的正整数n: 7 Traceback (most recent call last): File "D:\素数. py",line 4,in 根据错误提示,一种修改方法是:只需修改图中源程序的第2行代码,就可以使程序正常运行,则第2行应修改为:__________
19.如图所示,这是打印九九乘法表的程序,请你完善程序。
Private Sub Form_click()
Dim i As Integer, j As Integer
For i = 1 To ①________
For j = 1 To ②_________
Print j; "*"; i; "="; i * j;
Next j
Print ‘换行
Next i
End Sub
20.分析完普程序
2005年10月9日,国家测绘局正式宣布珠穆朗玛蜂的高度是8844. 43米,并停用之前的数据。
现有一张白纸,其厚度是0. 08毫米,对折一次,厚度变为0. 16毫米,再对折一次,厚度变为0. 32毫米,…,每对折一次,其厚度均变为对折前的两倍。
假设这张纸足够大,可对折任意次,那么这张纸至少对折多少次后,其厚度将超过珠穆朗玛峰的高度
以下是求解该问题的VB程序片段。请你补全代码:
四、简答题
21.编写程序。一辆动车即将穿越隧道,已知隧道全长a米,动车车长为300米,动车的速度为b米/秒。请编写一个程序,根据用户输入的数值,计算并输出动车完全通过隧道需要花费的时间。
要求:屏幕提示用户输入隧道长度和动车的行驶速度(输入时大于0 的浮点数),输出火车完全通过隧道需要花费的时间。 提示:时间=(隧道长度+动车长度) 动车速度,单位为秒。
22.定义函数的基本格式是: ______。
五、操作题
23.某著名景点在七月份收到若干旅游公司的通告,通告中包括该公司旅游的起始时间和终止时间, 如[6,10]表示该旅行团 6 号早上到,10 号早上回。疫情期间为避免人员扎堆,公司在时间段[start, ending]进行限流操作,要求在该时间段内景点每天都接待游客,且接待的旅行团越少越好。若景点收到的旅行团的数据是[3,8]、[3,6]、[8,15]、[18,25]、[14,20]、[5,10],[10,18]、[13,18]限流时间是[4,19]。工作人员对旅行团的数据做了如下处理:
①将旅行团的旅行时间按照“到达时间”为主要关键字,“返回时间”为次要关键字升序排序。排好序的时间段是[3,6]、[3,8]、[5,10]、[8,15]、[10,18]、[13,18],[14,20]、[18,25].
②从前往后遍历时间段,选择“到达时间”不大于“限流开始时间”的时间段,若有多个时间段满足条件,且时间段未超出限流时间,应选择“返回时间”最大的时间段,选择的时间段是[3,8]。
③缩小限流时间[8,19],重复步骤 2,选择满足条件的时间段是[8,15],缩小限流时间[15,19],重复步骤 2,选择满足条件的时间段是[14,20],结束时间已超过限流终止时间,结束。
④若在遍历时间过程中出现“到达时间”大于“限流开始时间”,景点不能每天接待旅客,则没有满足条件的旅行社。
小王编写 VB 程序,程序界面如下所示,单击“排序”按钮,将旅行团的时间按照“到达时间”为主要关键字,“返回时间”为次要关键字升序排序,在 Text1 和 Text2 中输入限流的起始时间和终止时间,单击“满足条件的旅行团”按钮,在列表框输出满足条件的旅行团的时间,若没有满足条件的旅行社,则在列表框输出“没有满足条件的旅行团!”
回答下列问题:
(1)若景点接收到的旅行社的起始时间和终止时间分别为[5,17]、[7,18]、[4,12]、[3,8]、[2,10], 限流时间是[3,15],筛选出的旅行团的时间是_________________
(2)请在横线处填入合适的代码
Dim i As Integer, j As Integer, n As Integer, t As Integer Dim a(100) As Integer, b(100) As Integer
Private Sub Command1_Click()
' 将旅行团个数存入 n,加载 n 个旅行团的起始时间、终止时间并分别放在数组 a 和数组 b 中,代码略
For i = n to 2 step -1
j=1
Do while ①_________
If a(j) > a(j + 1) Or a(j) = a(j + 1) And b(j) > b(j + 1) Then
t = a(j): a(j) = a(j + 1): a(j + 1) = t
t = b(j): b(j) = b(j + 1): b(j + 1) = t
End If
j=j+1
Loop
Next i
' 输出排好序的时间段,代码略
End Sub
Private Sub Command2_Click()
Dim arrivetime As Integer, leavetime As Integer
start = Val(Text1.Text): ending = Val(Text2.Text)
For i = 1 To n
arrivetime = start
If a(i) <= arrivetime Then
If b(i) > leavetime Then leavetime = b(i):t=i
If②________Then
List2.AddItem Str(a(t)) & "---" & Str(b(t)) Exit For
End If
Else
If start < arrivetime or i = 1 Then
List2.Clear
List2.AddItem "没有满足条件的旅行团!"
Exit For
End If
List2.AddItem Str(a(t)) & "---" & Str(b(t))
③________
i = i – 1
End If
Next i
End Sub
试卷第2页,共3页
试卷第1页,共1页
参考答案
1.D
2.A
3.B
4.A
5.D
6.A
7.B
8.C
9.对
10.对
11.错
12.错
13.错
14.√
15.5
16.编写程序
17.丙
18.n = int(input())
19.9 i
20.0,h*2或2*h或h+h
21.a=float(input("请输入隧道长度(米):"))
b=float(input("请输入动车速度(米/秒):"))
if a>0 and b>0:
c=(300+a)/b
print("火车完全通过隧道需要的时间为",c,"秒")
22.def 函数名(参数):
#函数说明
语句或语句组
return 返回值
23.[2, 10], [5, 17] j=ending start= leavetime
答案第1页,共2页
答案第1页,共2页