浙江省嘉兴市2023届高三上学期信息技术9月联考试卷

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

浙江省嘉兴市2023届高三上学期信息技术9月联考试卷

资源简介

登录二一教育在线组卷平台 助您教考全无忧
浙江省嘉兴市2023届高三上学期信息技术9月联考试卷
一、选择题(本大题共12小题,每小题2分,共24分。)
1.(2023高三上·嘉兴月考)“东数西算”工程是通过在西部构建数据中心、云计算、大数据一体化的新型算力网络体系,将东部算力需求有序引导到西部。下列说法不正确的是(  )
A.“东数西算”只涉及海量数据的传输及其传输效率的问题
B.云计算是分布式计算的一种,其软件与服务是统一部署、统一管理的
C.“东数西算”中的“数”是指数据,“算”是指算力,即对数据的处理能力
D.“东数西算”工程需要硬件、软件、通信网络、数据、人员等要素共同参与,互相配合
2.(2023高三上·嘉兴月考)某购物网站采集了用户浏览和购物过程中产生的数据,针对产生的数据进行精准推送广告。下列说法正确的是(  )
A.该网站数据处理采用了图计算模式
B.该网站中的个人用户敏感数据无需加密处理
C.随着数据采集量的增加,购物网站会变得越来越智慧
D.要实现精准推送广告,需要知道用户浏览或购买商品的原因
3.(2023高三上·嘉兴月考)2016年3月人工智能软件AlphaGo战胜了九段棋手李世石,下列说法正确的是(  )
A.AlphaGo是以符号主义表达与推理的人工智能
B.AlphaGo采用了深度学习和蒙特卡洛树搜索算法
C.AlphaGo在下棋过程中不依赖于人类棋手对弈的历史数据
D.AlphaGo从围棋人工智能应用到电力控制领域,属于混合增强人工智能
4.(2023高三上·嘉兴月考)阅读下列材料,回答下面小题。
小明使用Flask Web框架搭建了一个家庭监控报警系统。 智能终端通过摄像头、红外线传感器、烟雾传感器收集数据,当烟雾数据达到一定值,或者红外线传感器检测到有人入侵时,均会向用户手机发送短信预警信息,用户使用手机浏览器查看监控信息。系统结构示意图如图所示。
(1)下列有关该信息系统的说法不正确的是(  )
A.该信息系统采用了C/S模式架构
B.各类传感器的作用是采集数据
C.用户使用手机浏览器可查看实时监控信息
D.智能终端通过Wi- Fi连接网络并将数据传输到服务器
(2)当有人经过红外检测区时,传感器的反馈值会由1变为0。部分代码如下:
while True:
va1 = pin1.read_ digital () #采集红外传感器信号
#处理采集到的信号,代码略
sleep (500)
下列说法正确的是(  )
A.智能终端每500秒采集一次数据
B.从传感器获取的数据为“0”时,用户会收到预警信息
C.红外传感器采集的是环境中的声音信号
D.红外传感器采集到的数据使用RFID传输到服务器
5.(2023高三上·嘉兴月考)下列有关信息安全的说法正确的是(  )
A.身份认证解决的是用户对各类数据操作的权限问题
B.访问控制解决的是用户能否正确进入系统的权限问题
C.防火墙一般是由硬件和软件组成的复杂系统,也可以仅软件系统
D.用户名+口令的认证技术必须添加能发送动态口令的专用设备
6.(2023高三上·嘉兴月考)某算法的流程图如图所示,执行该流程,若初始时s="",输入x的初值为整数26,则下列说法正确的是(  )
A.变量x的终值可能为负数 B.循环体部分语句执行次数为5次
C.“x>0”语句共执行5次 D.变量s的终值为“11010”
7.(2023高三上·嘉兴月考)有如下Python程序段:
s = "China'
t =[1,3,2]
res =“”
for i in range (len(s)):
m = t[i % len(t)]
n = ord(s[i]) + m
res=res+chr(n)
print (res)
运行该程序段后,输出的结果是(  )
A.Dkkod B.Ciknb C.DkjoD D.Cijob
8.(2023高三上·嘉兴月考)下列关于数据结构的说法,正确的是(  )
A.常见的线性关系数据结构有数组、队列、栈、树和图等
B.数组和链表在操作时,其存储空间固定不变
C.链表在访问、插入和删除元素时,算法效率比数组高
D.栈是一种先进后出的线性表结构
9.(2023高三上·嘉兴月考)某队列的数据结构如图所示,hed和tail分别是队列的头指针和尾指针。现对该队列进行下列操作:①队首元素出队后再入队②队首元素出队井输出,重复①②操作直到队列为空。
若队列的数据元素为“Python”,则输出的顺序是(  )
A.Python B.Ptoynh C.yhntPo D.YhntoP
10.(2023高三上·嘉兴月考)下列Python程序段用于定义判断回文字符串的自定义函数。(注:回文字符串是一个正读和反读都一样的字符串,如“12321”或者“noon”等是回文字符串,而“1232”则不是。)
def pal(s): # 判断回文字符串
st=[“”]*100
top=.-1
k=len(s)//2
for i in range (k) :
top += 1
st [top] = s[i]
if len(s)%2=1:
for i in range(k,len(s)):
tmp = st[top]
top -= 1
if
return False
return True
上述程序段中方框处可选语句为:
①k=k+1
②k=k-1
③tmp=s[i]
④tmp!=s[i]
则程序中(1)、(2)处的语句依次可为(  )
A.①③ B.②④ C.②③ D.①④
11.(2023高三上·嘉兴月考)有如下Python程序段:
import random
nums =[0] *6
for i in range (6):
nums [i] = random.randint(1, 10)
i=0
j = len(nums) - 1
while i< j:
if nums[i]%2==0 and nums[j]%2==1:
nums[i],nums[j] = nums[j], nums[i]
elif nums[i] % 2 == 1:
i=i+1
elif nums[j] % 2 == 0:
j=j-1
print (nums)
执行该程序段后,下列输出结果中不可能的是(  )
A.[1,3,1,5,1,7] B.[1,4,3,6,5,8]
C.[1,3,5,7,9,10] D.[6,4,2,8,2,10]
二、非选择题(本大题共3小题,共26分)
12.(2023高三上·嘉兴月考)某次模拟考试成绩存储在“Scores.xlsx"数据文件中(如图a所示),现利用Excel软件与Python程序对这些数据进行统计分析并可视化,请根据要求回答下列问题。
(1)在Excel软件中计算每位学生的成绩总分。选择M2单元格输入公式,然后利用自动填充功能完成区域M3:M651的计算,则M2单元格的公式为=SUM   。
(2)利用Pandas模块读取数据,统计出各选科组合的选择人数,部分程序代码如下,请在划线处填入合适的代码。
df = pd. read_ excel ("Scores. xlsx")
df1 = df. groupby("选科", as_ index=False)
df2 = df1. 学号.    #统计各选科组合的人数
df2 = df2. rename (columns={"学号":"人数"})
(3)为了获取选科人数最多的期8个组合,结果如图b所示,都分程序代码如下,则程序划线处的代码可行的(  )(多选:填字母)。
A.df3=df2.sort_values("人数").tai1(8)
B.df3=df2.sort_values("人数").head(8)
C.df3=df2.sort._values("人数", ascending-False) [0:8]
D.df3=df2.sort_ valus("人数", ascending=False).head(  )
(4)对处理后的数据进行可视化操作,结果如图c所示,部分程序代码如下,请在划线处填入合适的代码。
plt. bar(   ) #绘制柱形图
plt. title("选科人数最多的前8个组合") #设置图表标题
plt. show()
13.(2023高三上·嘉兴月考)小明用Flask Web架构开发了一个简易空调控制系统,系统结构示意图如图所示。功能如下:智能终端把采集的数据通过Wi-Fi网络提交给服务器,服务器将数据存入数据库,根据传感器检测到的温度控制空调的开关。
空调自动管理系统程序包含Web服务蹈哺程序和智能终雄程序部分组成。具体程序代码如下,请根据要求回答以下问题。
Web服务器端程序部分:
From flask import Tlask, render_template request #导入Flask库函数
DATABASE = 'tdata.db'
app = Flask(_name_)
@app.route("/")
def index(  ):
#代码略
@app.route("/input")
def add_ data():
sid = int (request.args.get("id"))
svalue = float (request. args. get("val"))
#打开数据库,并将接收的数据存储到数据库中,代码略
if_ name_ =="_main_":
app. run (host="192.168.0.100", port=80)
智能终端程序部分:
#设置连接服务器参数并与智能终端建立无线连接,代码略
while True:
va1 = pin0. read_ analog(  )
temp = round(va, / 1024 * 3000 / 10.24, 1)
errno, resp =0b1oq. get("input id=1&val=" + str (temp), 10000)
#根据errno和resp的返回值控制执行器,每5秒采集一次数据,代码略
(1)由上述材料可知,服务器端程序用于存储数据的数据库文件为    。
(2)若要新增一个查询统计预警次数的子页面,则新增访问路由cx的命令为   。
(3)若某时刻温度值为30,则传输数据时使用的URL是(  )(单选:填字母)。
A.http://192.168.0.100/post id=1,val=30
B.http://192.168.0.100/input id=1&val=30
C.http://192.168.0.100:8080/ input=30
D.http://192.168.0.100/ get =1&val=30
(4)若检测到室内温度达到30℃及以上且持续时间长达5分钟,则服务器返回“on”字符,空调开启制冷系统;若温度降至28℃以下,则服务器返回“off”字符串,空调关闭制冷系统。自定义函数control的功能是从数据库中读取最后60条检测数据,将温度存储在列表1st中,当前控制开关状态存储在变量flag中,根据检测的温度值svalue控制空调的开关。请在程序划线处填入合适的代码。
def control (  ):
#lst存储最后60条数据中的温度(最后5分钟的数据)
#svalue为当前温度
cnt=0
if svalue<28 and flag="on":
return "off"
for i in range(len(1st)):
if lst[i]>=30:
cnt+=1
else:
break
if    :
return "on"
14.(2023高三上·嘉兴月考)机器人移动路线管理。机器人在一平面内按照程序预置数据来完成移动操作(如图a所示),规则如下:①只能水平或垂直方向移动,方向取值:上:U、下:D、左:L.右:R,不能走斜线;每次移动1-5单位距离;②从起点出发,经过若干步后,尽可能返回到起点,如不能自动返回,则计算剩余移动次数。
(1)解决上述问题的主程序如下:
bp=startpos (  ) #输入起点坐标
dirt = [] #移动方向
step =[] #移动距离
readdata () #从data. csv文件中读取移动数据
pos=[bp] #从起点开始存储所有经过点的x、y坐标
for i in range (0, 1en (dirt)): #利用预置数据移动
tmp = move (pos[i], dirt[i],
step[i])
pos. append (tmp)
print ("经过的位置点如下所示: ","\n", pos)
if tmp ==    #判断能否返回起点
print("可以直接返回起点位置!")
else:
print("不能直接返回起点位置!", end=")
stpx=gettimes (pos[0] [0],
pos[-1][0])
stpy=gettimes (pos[0][1],
pos[-1][1])
print("至少需要移动"+ str(stpx+stpy) +"次才能返回起点位置!")
(2)编写函数startpos(  ),功能为输入起点坐标,返回坐标的值,返回值类型为列表。代码如下:
def startpos(  ):
x=int(input('输入起点的x坐标:'))
y=int(input('输入起点的y坐标:'))
return   
(3)编写readdata()过程,功能为从CSV文件中读取预置的移动数据。代码如下:
def readdata(  ):
import csv
f=open(" data. csv",
"r", encoding="utf-8 ")
f_ csv = csv.reader (f)
title = next(f_csv) #标题行
for line in f_csv:
dirt. append (1ine[0])
step.appnd(   )
f.close(  )
(4)编写位置移动函数move(  ),实现计算移动到的新位置。代码如下:
def move(pos, dr, lg): #位置移动
new_
pos = [0, 0]
if dr == "U":
x =0; y=1
elif dr = "D":
x=0; y=-1
elif dr = "L":
x =-1; y=0
elif dr="R":
x=1; y=0
new_ pos[0] = pos[0]+x*lg
   ,
return new_ pos
(5)编写函数gettimes(  ),计算剩余移动次数。代码如下:
def gettimes(p1, p2) :
p=abs(p1-p2)//5
if abs(p1-p2)%5!=0:
   
return p
答案解析部分
1.【答案】A
【知识点】物联网的应用与影响;信息系统的组成及功能
2.【答案】C
【知识点】信息系统安全防护;大数据处理类型与计算方式
3.【答案】B
【知识点】人工智能的发展与现状
4.【答案】(1)A
(2)B
【知识点】网络应用模式;信息系统的工作过程;传感器信息的获取
5.【答案】C
【知识点】信息系统安全防护
6.【答案】B
【知识点】流程图识读
7.【答案】A
【知识点】循环结构语句及程序实现
8.【答案】D
【知识点】基本数据结构
9.【答案】C
【知识点】基本数据结构
10.【答案】D
【知识点】过程与自定义函数;循环结构语句及程序实现
11.【答案】B
【知识点】运算符、基本运算与表达式;循环结构语句及程序实现
12.【答案】(1)(C2:L2)
(2)count(  )
(3)C;D
(4)df3.选科,df3.人数或df3["选科"], df3[人数]
【知识点】表格数据的处理与计算;编程处理数据与可视化
13.【答案】(1)tdata.Db
(2)@app.route(“/cx”)
(3)B
(4)cnt>=60 and fag="off"或[cnt==60 cnt>59]
【知识点】过程与自定义函数;程序访问数据库;分支结构语句及程序实现;循环结构语句及程序实现
14.【答案】(1)pos[0]或bp
(2)[x,y]
(3)int(line[1])
(4)new_pos[1]= pos[1] + y*lg
(5)p=p+1
【知识点】过程与自定义函数;分支结构语句及程序实现;循环结构语句及程序实现
二一教育在线组卷平台(zujuan.21cnjy.com)自动生成 1 / 1登录二一教育在线组卷平台 助您教考全无忧
浙江省嘉兴市2023届高三上学期信息技术9月联考试卷
一、选择题(本大题共12小题,每小题2分,共24分。)
1.(2023高三上·嘉兴月考)“东数西算”工程是通过在西部构建数据中心、云计算、大数据一体化的新型算力网络体系,将东部算力需求有序引导到西部。下列说法不正确的是(  )
A.“东数西算”只涉及海量数据的传输及其传输效率的问题
B.云计算是分布式计算的一种,其软件与服务是统一部署、统一管理的
C.“东数西算”中的“数”是指数据,“算”是指算力,即对数据的处理能力
D.“东数西算”工程需要硬件、软件、通信网络、数据、人员等要素共同参与,互相配合
【答案】A
【知识点】物联网的应用与影响;信息系统的组成及功能
2.(2023高三上·嘉兴月考)某购物网站采集了用户浏览和购物过程中产生的数据,针对产生的数据进行精准推送广告。下列说法正确的是(  )
A.该网站数据处理采用了图计算模式
B.该网站中的个人用户敏感数据无需加密处理
C.随着数据采集量的增加,购物网站会变得越来越智慧
D.要实现精准推送广告,需要知道用户浏览或购买商品的原因
【答案】C
【知识点】信息系统安全防护;大数据处理类型与计算方式
3.(2023高三上·嘉兴月考)2016年3月人工智能软件AlphaGo战胜了九段棋手李世石,下列说法正确的是(  )
A.AlphaGo是以符号主义表达与推理的人工智能
B.AlphaGo采用了深度学习和蒙特卡洛树搜索算法
C.AlphaGo在下棋过程中不依赖于人类棋手对弈的历史数据
D.AlphaGo从围棋人工智能应用到电力控制领域,属于混合增强人工智能
【答案】B
【知识点】人工智能的发展与现状
4.(2023高三上·嘉兴月考)阅读下列材料,回答下面小题。
小明使用Flask Web框架搭建了一个家庭监控报警系统。 智能终端通过摄像头、红外线传感器、烟雾传感器收集数据,当烟雾数据达到一定值,或者红外线传感器检测到有人入侵时,均会向用户手机发送短信预警信息,用户使用手机浏览器查看监控信息。系统结构示意图如图所示。
(1)下列有关该信息系统的说法不正确的是(  )
A.该信息系统采用了C/S模式架构
B.各类传感器的作用是采集数据
C.用户使用手机浏览器可查看实时监控信息
D.智能终端通过Wi- Fi连接网络并将数据传输到服务器
(2)当有人经过红外检测区时,传感器的反馈值会由1变为0。部分代码如下:
while True:
va1 = pin1.read_ digital () #采集红外传感器信号
#处理采集到的信号,代码略
sleep (500)
下列说法正确的是(  )
A.智能终端每500秒采集一次数据
B.从传感器获取的数据为“0”时,用户会收到预警信息
C.红外传感器采集的是环境中的声音信号
D.红外传感器采集到的数据使用RFID传输到服务器
【答案】(1)A
(2)B
【知识点】网络应用模式;信息系统的工作过程;传感器信息的获取
5.(2023高三上·嘉兴月考)下列有关信息安全的说法正确的是(  )
A.身份认证解决的是用户对各类数据操作的权限问题
B.访问控制解决的是用户能否正确进入系统的权限问题
C.防火墙一般是由硬件和软件组成的复杂系统,也可以仅软件系统
D.用户名+口令的认证技术必须添加能发送动态口令的专用设备
【答案】C
【知识点】信息系统安全防护
6.(2023高三上·嘉兴月考)某算法的流程图如图所示,执行该流程,若初始时s="",输入x的初值为整数26,则下列说法正确的是(  )
A.变量x的终值可能为负数 B.循环体部分语句执行次数为5次
C.“x>0”语句共执行5次 D.变量s的终值为“11010”
【答案】B
【知识点】流程图识读
7.(2023高三上·嘉兴月考)有如下Python程序段:
s = "China'
t =[1,3,2]
res =“”
for i in range (len(s)):
m = t[i % len(t)]
n = ord(s[i]) + m
res=res+chr(n)
print (res)
运行该程序段后,输出的结果是(  )
A.Dkkod B.Ciknb C.DkjoD D.Cijob
【答案】A
【知识点】循环结构语句及程序实现
8.(2023高三上·嘉兴月考)下列关于数据结构的说法,正确的是(  )
A.常见的线性关系数据结构有数组、队列、栈、树和图等
B.数组和链表在操作时,其存储空间固定不变
C.链表在访问、插入和删除元素时,算法效率比数组高
D.栈是一种先进后出的线性表结构
【答案】D
【知识点】基本数据结构
9.(2023高三上·嘉兴月考)某队列的数据结构如图所示,hed和tail分别是队列的头指针和尾指针。现对该队列进行下列操作:①队首元素出队后再入队②队首元素出队井输出,重复①②操作直到队列为空。
若队列的数据元素为“Python”,则输出的顺序是(  )
A.Python B.Ptoynh C.yhntPo D.YhntoP
【答案】C
【知识点】基本数据结构
10.(2023高三上·嘉兴月考)下列Python程序段用于定义判断回文字符串的自定义函数。(注:回文字符串是一个正读和反读都一样的字符串,如“12321”或者“noon”等是回文字符串,而“1232”则不是。)
def pal(s): # 判断回文字符串
st=[“”]*100
top=.-1
k=len(s)//2
for i in range (k) :
top += 1
st [top] = s[i]
if len(s)%2=1:
for i in range(k,len(s)):
tmp = st[top]
top -= 1
if
return False
return True
上述程序段中方框处可选语句为:
①k=k+1
②k=k-1
③tmp=s[i]
④tmp!=s[i]
则程序中(1)、(2)处的语句依次可为(  )
A.①③ B.②④ C.②③ D.①④
【答案】D
【知识点】过程与自定义函数;循环结构语句及程序实现
11.(2023高三上·嘉兴月考)有如下Python程序段:
import random
nums =[0] *6
for i in range (6):
nums [i] = random.randint(1, 10)
i=0
j = len(nums) - 1
while i< j:
if nums[i]%2==0 and nums[j]%2==1:
nums[i],nums[j] = nums[j], nums[i]
elif nums[i] % 2 == 1:
i=i+1
elif nums[j] % 2 == 0:
j=j-1
print (nums)
执行该程序段后,下列输出结果中不可能的是(  )
A.[1,3,1,5,1,7] B.[1,4,3,6,5,8]
C.[1,3,5,7,9,10] D.[6,4,2,8,2,10]
【答案】B
【知识点】运算符、基本运算与表达式;循环结构语句及程序实现
二、非选择题(本大题共3小题,共26分)
12.(2023高三上·嘉兴月考)某次模拟考试成绩存储在“Scores.xlsx"数据文件中(如图a所示),现利用Excel软件与Python程序对这些数据进行统计分析并可视化,请根据要求回答下列问题。
(1)在Excel软件中计算每位学生的成绩总分。选择M2单元格输入公式,然后利用自动填充功能完成区域M3:M651的计算,则M2单元格的公式为=SUM   。
(2)利用Pandas模块读取数据,统计出各选科组合的选择人数,部分程序代码如下,请在划线处填入合适的代码。
df = pd. read_ excel ("Scores. xlsx")
df1 = df. groupby("选科", as_ index=False)
df2 = df1. 学号.    #统计各选科组合的人数
df2 = df2. rename (columns={"学号":"人数"})
(3)为了获取选科人数最多的期8个组合,结果如图b所示,都分程序代码如下,则程序划线处的代码可行的(  )(多选:填字母)。
A.df3=df2.sort_values("人数").tai1(8)
B.df3=df2.sort_values("人数").head(8)
C.df3=df2.sort._values("人数", ascending-False) [0:8]
D.df3=df2.sort_ valus("人数", ascending=False).head(  )
(4)对处理后的数据进行可视化操作,结果如图c所示,部分程序代码如下,请在划线处填入合适的代码。
plt. bar(   ) #绘制柱形图
plt. title("选科人数最多的前8个组合") #设置图表标题
plt. show()
【答案】(1)(C2:L2)
(2)count(  )
(3)C;D
(4)df3.选科,df3.人数或df3["选科"], df3[人数]
【知识点】表格数据的处理与计算;编程处理数据与可视化
13.(2023高三上·嘉兴月考)小明用Flask Web架构开发了一个简易空调控制系统,系统结构示意图如图所示。功能如下:智能终端把采集的数据通过Wi-Fi网络提交给服务器,服务器将数据存入数据库,根据传感器检测到的温度控制空调的开关。
空调自动管理系统程序包含Web服务蹈哺程序和智能终雄程序部分组成。具体程序代码如下,请根据要求回答以下问题。
Web服务器端程序部分:
From flask import Tlask, render_template request #导入Flask库函数
DATABASE = 'tdata.db'
app = Flask(_name_)
@app.route("/")
def index(  ):
#代码略
@app.route("/input")
def add_ data():
sid = int (request.args.get("id"))
svalue = float (request. args. get("val"))
#打开数据库,并将接收的数据存储到数据库中,代码略
if_ name_ =="_main_":
app. run (host="192.168.0.100", port=80)
智能终端程序部分:
#设置连接服务器参数并与智能终端建立无线连接,代码略
while True:
va1 = pin0. read_ analog(  )
temp = round(va, / 1024 * 3000 / 10.24, 1)
errno, resp =0b1oq. get("input id=1&val=" + str (temp), 10000)
#根据errno和resp的返回值控制执行器,每5秒采集一次数据,代码略
(1)由上述材料可知,服务器端程序用于存储数据的数据库文件为    。
(2)若要新增一个查询统计预警次数的子页面,则新增访问路由cx的命令为   。
(3)若某时刻温度值为30,则传输数据时使用的URL是(  )(单选:填字母)。
A.http://192.168.0.100/post id=1,val=30
B.http://192.168.0.100/input id=1&val=30
C.http://192.168.0.100:8080/ input=30
D.http://192.168.0.100/ get =1&val=30
(4)若检测到室内温度达到30℃及以上且持续时间长达5分钟,则服务器返回“on”字符,空调开启制冷系统;若温度降至28℃以下,则服务器返回“off”字符串,空调关闭制冷系统。自定义函数control的功能是从数据库中读取最后60条检测数据,将温度存储在列表1st中,当前控制开关状态存储在变量flag中,根据检测的温度值svalue控制空调的开关。请在程序划线处填入合适的代码。
def control (  ):
#lst存储最后60条数据中的温度(最后5分钟的数据)
#svalue为当前温度
cnt=0
if svalue<28 and flag="on":
return "off"
for i in range(len(1st)):
if lst[i]>=30:
cnt+=1
else:
break
if    :
return "on"
【答案】(1)tdata.Db
(2)@app.route(“/cx”)
(3)B
(4)cnt>=60 and fag="off"或[cnt==60 cnt>59]
【知识点】过程与自定义函数;程序访问数据库;分支结构语句及程序实现;循环结构语句及程序实现
14.(2023高三上·嘉兴月考)机器人移动路线管理。机器人在一平面内按照程序预置数据来完成移动操作(如图a所示),规则如下:①只能水平或垂直方向移动,方向取值:上:U、下:D、左:L.右:R,不能走斜线;每次移动1-5单位距离;②从起点出发,经过若干步后,尽可能返回到起点,如不能自动返回,则计算剩余移动次数。
(1)解决上述问题的主程序如下:
bp=startpos (  ) #输入起点坐标
dirt = [] #移动方向
step =[] #移动距离
readdata () #从data. csv文件中读取移动数据
pos=[bp] #从起点开始存储所有经过点的x、y坐标
for i in range (0, 1en (dirt)): #利用预置数据移动
tmp = move (pos[i], dirt[i],
step[i])
pos. append (tmp)
print ("经过的位置点如下所示: ","\n", pos)
if tmp ==    #判断能否返回起点
print("可以直接返回起点位置!")
else:
print("不能直接返回起点位置!", end=")
stpx=gettimes (pos[0] [0],
pos[-1][0])
stpy=gettimes (pos[0][1],
pos[-1][1])
print("至少需要移动"+ str(stpx+stpy) +"次才能返回起点位置!")
(2)编写函数startpos(  ),功能为输入起点坐标,返回坐标的值,返回值类型为列表。代码如下:
def startpos(  ):
x=int(input('输入起点的x坐标:'))
y=int(input('输入起点的y坐标:'))
return   
(3)编写readdata()过程,功能为从CSV文件中读取预置的移动数据。代码如下:
def readdata(  ):
import csv
f=open(" data. csv",
"r", encoding="utf-8 ")
f_ csv = csv.reader (f)
title = next(f_csv) #标题行
for line in f_csv:
dirt. append (1ine[0])
step.appnd(   )
f.close(  )
(4)编写位置移动函数move(  ),实现计算移动到的新位置。代码如下:
def move(pos, dr, lg): #位置移动
new_
pos = [0, 0]
if dr == "U":
x =0; y=1
elif dr = "D":
x=0; y=-1
elif dr = "L":
x =-1; y=0
elif dr="R":
x=1; y=0
new_ pos[0] = pos[0]+x*lg
   ,
return new_ pos
(5)编写函数gettimes(  ),计算剩余移动次数。代码如下:
def gettimes(p1, p2) :
p=abs(p1-p2)//5
if abs(p1-p2)%5!=0:
   
return p
【答案】(1)pos[0]或bp
(2)[x,y]
(3)int(line[1])
(4)new_pos[1]= pos[1] + y*lg
(5)p=p+1
【知识点】过程与自定义函数;分支结构语句及程序实现;循环结构语句及程序实现
二一教育在线组卷平台(zujuan.21cnjy.com)自动生成 1 / 1

展开更多......

收起↑

资源列表