第四章程序设计基础检测练习(含答案)2023-2024学年高一上学期信息技术粤教版(2019)必修1

资源下载
  1. 二一教育资源

第四章程序设计基础检测练习(含答案)2023-2024学年高一上学期信息技术粤教版(2019)必修1

资源简介

第四章 程序设计基础 检测练习
一、选择题
1.模拟飞行棋掷骰子操作,实现该功能的Python程序段如下:
import random
num=
print("您所掷骰子的点数为:"+str(num))
程序划线处应填入的代码为( )
A.random.randint(1,7) B.random.choice(range(1,6))
C.int(random.random( )*6)+1 D.int(random.random()*5)+1
2.下列Python表达式,值为False的是( )
A.14//6<14/6 B."20"<"8" C.len("18%4")<23%5 D.int(2.5)<2.1
3.有如下Python程序段:
from random import random
a=[1]*5
i=1
while i<=4:
a[i]=int(random()*10)+1
if a[i]==a[i-1]//2 or a[i]==a[i-1]*2:
i+=1
执行该程序段后,数组a的值可能是( )
A.[1,2,1,2,1] B.[1,2,4,8,16] C.[2,1,2,1,2,] D.[8,4,2,4,8]
4.lst1和lst2都是升序排序的列表,执行如下Python程序段:
result=[]
i=0#用于遍历1st1
j=0#用于遍历1st2
while i if lst1[i] result.append(lst1[i])
i+=1
else:
result.append(lst2[j])
j+=1
while i result.append(lst1[i])#②
i+=1
while j result.append(lst2[j])#③
j+=1
下列说法不正确的是( )
A.程序段①执行后,result可能与lst1相同 B.程序段①执行后,result可能与lst2相同
C.在一次程序运行中,②处代码和③处代码可能都被执行 D.程序执行后,列表result中的元素升序排序
5.有如下Python程序段:
n=int(input())
a=[0,0,0,0,0,0,0,0,0,0]
c=0
while n>0:
a[n%10]=a[n%10]+1
if a[n%10]==1:
c=c+1
n=n//10
print(c)
执行上述程序段,若输出c的值为4,则输入n的值可能为( )
A.1123 B.2373 C.14551 D.20045
6.运行下列Python程序后的结果为( )
colors=["red","yellow","blue"]
print(colors[2])
A.red B.yellow C.blue D.red yellow
7.在Python程序中,关系表达式a==b的运算结果是( )
A.整型 B.布尔值 C.浮点型 D.字符串
8.有如下Python程序段:
a=[3,4,7,9,12,17]
i = a[0];j =a[5];tar =20;ans =-1
while i <=j:
mid=(i + j)//2
tmp=0
for k in range(len(a)):
if a[k]>mid:
tmp += a[k] - mid
if tmp >= tar:
ans = mid;i = mid+1
else:
j = mid -1
执行该程序段后,变量ans的值为( )
A.-1 B.6 C.7 D.10
9.变量a=2;b=3,下列表达式正确的是( )
①a+b ②"a"+"b" ③a+"b" ④a*"b" ⑤"a"*"b" ⑥str(a)+"b" ⑦str(a)+str(b)
A.①②⑤⑥⑦ B.①②④⑥⑦
C.①②④⑤⑦ D.①②③⑥⑦
10.下列 Python 程序段的功能:统计出物化技组合成绩大于等于270分的人数。
# 某次测试七名学生的物理、化学、技术成绩被存储在变量 score 中
score={"物理":[87,85,83,90,85,88,91],"化学":[91,92,85,90,89,84,92],
"技术":[97,89,93,95,93,87,94]}
count=0
km=["物理","化学","技术"]
for i in range(7):
sum=0
for j in km:
__________
if sum>=270:
count+=1
print("成绩大于等于 270 分的人数",count)
为实现上述功能,划线处正确的 Python 表达式是( )
A.sum+=score[i][j] B.sum+=score[j][i] C.sum+=score[j] D.sum+=score[i]
11.下列表达式中,结果为True的是( )
A.len(["hello"])==5
B.not (4/2**3 <= 1)
C.3 >= 4 or not (3==2 and 3<=2)
D.11%2 != 0 and False
12.某Python程序如下:
s=″0923HangzhouYayunhui″; t=″″
for i in range(len(s)):
j=s[i]
if not j>=″a″ or j>″z″:
t=″″
t=j+t
print(t)
程序运行后,输出的内容是( )
A.ayunhui B.Yayunhui C.iuhnuya D.iuhnuyaY
13.某Python程序如下:
item={"竞技类":["铁人三项","电子竞技","霹雳舞"],"球类":["足球","篮球","乒乓球"],"对抗性":["拳击","跆拳道","卡巴迪","击剑"],"水上":["跳水","龙舟","帆船"]}
print(item["对抗性"][2][::-1])
执行该程序段后,输出的结果是( )
A.跆拳道 B.道拳跆 C.卡巴迪 D.迪巴卡
14.有如下Python程序段:
from PIL import Image
img=Image.open(″logo.jpg″)
i=0
while i<=2:
img.rotate(i*90)#rotate():逆时针旋转图片,参数为旋转角度
i+=1
img.show()
图logo.jpg原图如下图所示,运行该程序段后,图像显示为( )
A. B. C. D.
15.下列Python表达式的返回值为4的是( )
①16/len(″ab″)**2 ②abs(round(-1.7)*2)%8
③chr(ord(″0″)+4) ④int(str(1010+90)[1:4])//25
A.①② B.①③ C.②④ D.③④
16.如下Python程序运行结束时,变量i和s的值分别是( )
i=0
s=0
while i<5:
i+=1
s=s+i
print("i=",i,"s=",s)
A.i=5 s=10 B.i=4 s=10 C.i=5 s=15 D.i=4 s=15
17.在Python当中,可以使用( )语句退出循环。
A.continue B.break C.goto D.quilt
18.在Python程序设计语言当中,双分支语句通过使用( )实现。
A.if B.if...else C.if...elif...else D.case
19.顺序结构是最常用最简单的程序结构,其语句执行顺序是( )
A.自上而下 B.自下而上 C.由内到外 D.由外到内
20.在Python程序设计语言当中,如果x=12.357,执行语句print("%.2f"%x),则输出结果为( )
A.12.357 B.12.35 C.12.36 D.12.4
二、填空题
21.判断变量a是否能被4整除,书写成Python语言表达式为 。
22.小申根据如图1所示的七月份气象数据,编写程序绘制如图2所示的七月份日平均风速异常情况检测可视化图形。
小申编写的程序如下所示,请将程序填写完整。
import pandas as pd import matplotlib. pyplot as plt plt.rcParams['font.sans-serif']=['SimHei'] df=pd.read_csv('七月气象数据.csv',encoding='ansi') plt.title('2022年7月日平均风速异常情况检测') plt.boxplot( ) plt.show()
23.小申编写了run.py文件用于实现登录模块的业务逻辑。请协助小申把左侧内容拖动至右侧对应的虚线框中,将程序编写完整。
(1)处对应的字母是
(2)处对应的字母是
24.小申选用了Flask模块作为服务器端的服务框架。若如图交互界面中“提交”按钮的请求目标为”/create”,请在服务器端主控程序中与之关联的路由函数的横线处填空。
@app. route(" ", methods = ('GET', ‘POST') )
25.某Python程序代码如下:
list1=[2,3,4,5,6]
m1=1
m2=2
for n in list1:
if n%3==0:
m1*=n
print (m1-m2)
程序运行后,输出的结果为
三、判断题
26.自定义函数的参数是必不可少的。( )
27.高级语言通用性好,可读性强,便于修改维护,所以它是一种自然语言。( )
28.NAME、name、Name、NaMe是不同的变量。( )
29.在Python语言中,表达式(2>4)and(8>9)的结果是True。( )
30.不能用for 、in、if等关键字作为变量名。( )
四、操作题
31.某工程的A项目有n个任务组(编号为0~n-1),供料商每小时只提供1份原料,各组按到达时刻(到达时刻各不相同)陆续加入领料队列,领取1份原料后到队列末尾重新等待,直至领完所需原料,离开队列。若多组同时入队,则到达时刻早的优先入队。编写程序模拟领料过程,先筛选出属于A项目的任务组,再计算每个任务组完成领料的时刻(时间单位:小时),请回答下列问题:
任务组别 到达时刻 原料需求量
第0组 0 3
第1组 1 2
第2组 2 1
图a
时刻 领料队列 轮到领料的组别
0 0 0
1 0,1 0
2 1,0,2 1
3 0,2,1 0
4 ▲
5 1 1
注:领料队列中数字代表任务组编号
图b
(1)某项目任务组信息如图a所示,部分领料过程如图b所示,结合题意,第4时刻的领料队列是 (单选,填字母:A.2,1,0/B.2,1/C.2,0,1)。
(2)定义如下filte(task,st)函数。
def filte(task,st):
i=0;j=0;n=len(task)-1
while j<=n:
if task[j][0]==st:
task[i]= task[j]
i+=1
j+=1
return i
若task的值是[['A',0,3],['B',1,3],['B',2,6],['A',3,4],['A',4,5]],st的值是"A",执行语句m=filte(task,st)后,m的值是 。
(3)编写程序模拟任务组领料过程,输出每个任务组完成领料的时刻,部分Python程序如下,请在划线处填入合适的代码。
def proc(task,st):
m=filte(task,st)
for i in range(m):
task[i].append(-1)
order=[0]*m
i=0; ct = 0;t = 0
while i < m or t < m:
if i < m and task[i][1] <=ct:
if i==t:

task[p][3]=i
else:
task[i][3]=task[p][3]
task[p][3]=i
p=i
i+=1
if i>t:

task[k][2] = task[k][2] -1
if task[k][2]=0:
order[k]=ct

t+=1
else:
p=task[p][3]
ct+=1
return order
```所有任务组数据存入task列表,task[i]包含3项,task[i][0]为该任务组项目名称,task[i][1]为该任务组到达时刻,task[i][2]为该任务组原料需求量,数据按到达时刻升序排列,代码略```
st="A"
print(proc(task,st)) #输出该项目中每个任务组完成领料的时刻
32.小温为芦丁鸡饲养箱搭建了温度监测系统。该系统中已选择的硬件有IoT模块、智能终端、温度传感器、执行器(温度控制器)、服务器等。服务器通过无线网络与智能终端相连接,智能终端连接传感器和执行器。用户通过浏览器查看数据库中的数据。
请回答下列问题:
(1)若使用浏览器查询系统的历史数据,需向 发送查询指令(单选,填字母:A.智能终端/B.服务器/C.传感器)。
(2)下列功能需在智能终端程序中实现的有 (多选,填字母:A.采集温度传感上的数据/B.传输数据到服务器/C.发送指令到执行器/D.分析历史数据)。
(注:全部选对的得2分,选对但不全的得1分,不选或有选错的得0分)
(3)小温基于Flask Web框架编写服务器端的程序,实现在浏览器的地址栏中输入http://192.168.0.10:5050/query返回查询结果的功能。能实现上述功能的部分代码组合是 (单选,填字母:A.①③/B.②④/C.①④/D.②③)。
①@app.route('/')
def query():
#代码略
②@app.route('/query')
def index():
#代码略
③target = '192.168.0.10'
app.run(host = target,port = 5050)
④target ='192.168.0.10:5050'
app.run(host=target)
(4)为解决芦丁鸡某段生长期容易缺氧和脱水的问题,可以增设哪些硬件设备来改善饲养箱环境?请写出能解决其中一项问题的执行器和传感器,并描述其功能。
(5)小温将系统中10月份温度控制器开启和关闭的数据导出,部分数据如图a所示,分析10月21日至31日温度控制器每天平均工作时长(单位:分钟,保留整数位)。
图a 图b
部分Python 程序如下:
import pandas as pd
import matplotlib.pyplot as plt
df= pd.read_csv("data.csv")#读取数据
df.insert(3,"时长",")#插入新列“时长”
def timedif(t1,t2):
#计算并返回t1,t2两个时间的差值,代码略
for i in df.index:#调用 timedif 函数计算时长
df.at[i,"时长"]=timedif(df.at[i,"关闭"],df.at[i,"开启"])
dfa=df.groupby("① ",as_index=False)["时长"].mean()#分类计算平均值
dft = dfa.tail(11)#选取10月21日至31日数据,dft内容如图b所示
Ist=[]
for i in ② :
lst.append(int(dft.at[i,"时长"]))#将时长转为整数,存入1st
print(lst)#以列表的形式输出结果
33.求1到100之间能被3整除的数的个数。
(1)分析问题,完善程序流程图,补充程序流程图中2处缺少的内容。程序流程图中条件表达式的语法符合Python语言语法要求 ① ②
(2)打开“考生文件夹\Colligate\160"文件夹中的文件“个数. py”,按照流程图的顺序,逐条编写和完善相应的Python语句代码,保存并调试。
34.一个AABB形式的四位数,该数是另一个数的平方,问这个四位数是几?
(1)求一个3位数n十位上的数字a的值,判断下列表达式中哪一个是正确的( )
A、a=n%100 B、a=n-n//100%10 C、a=n%100//10 D、a=n//100
(2)当逻辑运算符两边表达式的值都为真时,该逻辑表达式才为真,这叫逻辑① 运算,python语言中相对应的逻辑运算符是②
(3)打开“考生文件夹\Colligate\138”文件夹中的文件“AABB.py”,对程序进行完善并运行调试,完成后保存文件。
35.哥德巴赫猜想提出,任何一个不小于6的偶数都可以表示成两个素数之和,请编写程序,输入任意一个大于等于6的偶数,输出所有其等于两个素数之和的式子。例如: 6=3+3; 18=5+13, 18=7+11。
打开“考生文件夹\Colligate\142”文件夹中的文件“验证哥德巴赫py”,对程序进行完善且不改变原程序的结构,在序号处填写正确的代码并把序号删除, 调试完成后保存文件 。
参考答案
1.C
2.C
3.A
4.C
5.D
6.C
7.B
8.B
9.B
10.B
11.C
12.D
13.D
14.B
15.C
16.C
17.B
18.B
19.A
20.C
21.a%4==0
22.df["日平均风速"]
23.B A
24./create
25.16
26.错误
27.错误
28.正确
29.错误
30.正确
31.B 3 p=i k=task[p][3] task[p][3]=task[k][3]
32. B ABC D 通过加湿器调节湿度,通过湿度传感器监测湿度数据。 日期 range(20,31)或dft.index
33.s+1 或1+s i+1 或1+i
34.C 与 and
35.本题为上机题,按题目要求操作。

展开更多......

收起↑

资源预览