相关试卷
-
1、地图染色问题可以根据四色定理来解决。所谓四色定理,就是指可以用不多于四种的颜色对地图着色,使相邻的行政区域不重色,因此我们可以用四色定理的结论,用回溯算法对一幅给定的地图染色。
算法的基本思想是:从第(1)号行政区域开始染色,每个区域逐次用颜色 1#、2#、3#、4#进行试探,若当前所取的颜色与周围已染色的行政区域不重色,则用栈记下该区域的颜色序号,否则依次用下一颜色进行试探;若出现用 1#到 4#颜色均与相邻区域的颜色重色,则需退栈回溯,修改当前栈顶的颜色序号,再进行试探。直到所有行政区域都已分配合适的颜色。某县行政地图如图所示:
(1)、若邻接矩阵 adjamat=[[0,1,1,1,1],[1,0,1,1,0],[1,1,0,1,1],[1,1,1,0,1],[1,0,1,1,0]],则下列涂色方案中可行的是( )(单选,填字母)A、1->1,2->2,3->3,4->4,5->2 B、1->1,2->2,3->3,4->1,5->2 C、1->1,2->2,3->3,4->2,5->4(2)、实现上述功能的Python程序如下,请在划线处填入合适的代码。def mapcolor(adjamat): #自定义填色函数部分
signcolor=[0]*N
color = 1
signcolor[0] = 1
area = 1
while area < N:
while color <= 4:
if area >= N:
break
k = 0
# 以下代码判断区域是否重色
while (k < area) and (signcolor[k] * adjamat[area][k] != color):
k += 1
if (k < area):
color += 1
else:
#给该区域上色
area += 1
color = 1
if color > 4: # 没有找到合适的颜色,需要进行回溯
color = signcolor[area] + 1
return signcolor
#主程序部分
city = {1: '海游街道', 2: '海润街道', 3: '沙柳街道', 4: '亭旁镇', 5: '珠岙镇', 6: '横渡镇', 7: '蛇蟠乡', 8: '健跳镇', 9: '花桥镇', 10: '浦坝港镇'}
N =
colordict = {1: '红色', 2: '橙色', 3: '黄色', 4: '青色'}
adjamat = [[0 , 1 , 1 , 1 , 1 , 0 , 0 , 0 , 0 , 0]
[1 , 0 , 1 , 1 , 0 , 1 , 0 , 1 , 0 , 0]
[1 , 1 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0]
[1 , 1 , 0 , 0 , 1 , 1 , 0 , 0 , 0 , 0]
[1 , 0 , 0 , 1 , 0 , 0 , 0 , 0 , 0 , 0]
[0 , 1 , 0 , 1 , 0 , 0 , 0 , 0 , 1 , 1]
[0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0 , 0]
[0 , 1 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 0]
[0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 0 , 1]
[0 , 0 , 0 , 0 , 0 , 1 , 0 , 0 , 1 , 0]]
signcolor1 = mapcolor(adjamat)
print(signcolor1)
# zip 函数可以将多个序列,如列表、元组、字典、集合压缩成一个对象。
for key1,key2 in zip(city,signcolor1): #将相对应的区域与地图颜色输出
print(city[key1] + ":" + colordict[key2])
-
2、小明打算搭建一个教室温度报警控制系统,使用Microbit开发板自带的温度传感器获取的温度数据经IOT模块发送到服务器。系统结构如图所示。(1)、要搭建“教室温度报警控制系统”需要做一些前期准备,以下都是前期准备要完成的步骤:
①需求分析②详细设计③概要设计④开发模式选择⑤可行性分析
其正确的顺序是(填序号)。
(2)、根据信息系统的功能要求,图中①处的设备名称是(单选,填字母:A .交换机/B .温度传感器/C .智能终端)(3)、服务器端程序采用 Flask Web 框架编写, 网站的功能页面规划如下表所示:实现上述系统的服务器端程序部分代码如下:
import sqlite3
import datetime
from flask import Flask,render_template, request
DATABASE = 'data.db'
app = Flask(__name__)
@app.route("/")
#视图函数代码略
@app.route(" ⑴ ",methods=[' ⑵ ']) #提交数据功能页面的路由
def input_data():
value = float(request.args.get('temp'))
nowtime = datetime.datetime.now()
nowtime = nowtime.strftime('%Y-%m-%d %H:%M:%S')
db = sqlite3.connect(DATABASE)
cur = db.cursor()
cur.execute("INSERT INTO tempdata(value,updatetime)
VALUES(%f,'%s')" %(value,nowtime))
db.commit()
cur.close()
db.close()
if 16< value < 25:
return "当前温度适宜"
elif value <= 16:
return '当前温度较低'
elif value >= 25:
return '当前温度较高'
if __name__ == "__main__":
app.run(host="60.91.134.21", port=8080,debug=True)
①由以上代码可知访问主页的地址是。
②阅读代码可知提交的数据保存在文件中。
③要实现表中的功能,⑴处路由为 , ⑵处的请求方式为(填:GET 或 POST)
-
3、某校高二年级2022年12月的物理学考模拟考试成绩如图a所示,等级赋分标准如图b所示。
编写Python程序,统计各班的等第人数并进行可视化。
(1)、主程序。读取 xls 数据文件,简化班级名称,并按赋分标准填入等第数据(如图c)。请在程序划线处填入合适的代码。import pandas as pd
import matplotlib as plt
df=pd.read_excel("xkmn.xls")
df.insert(5,"等第","") #在数据表最后位置插入一列
df.drop(["准考证号","自定义考号"],axis=1,inplace=True) #删除数据表前二列数据
def dengdi(fs): #根据等第赋分标准获取相应等第
if fs>=76:d="A"
elif fs>=56:d="B"
elif fs>=41:d="C"
elif fs>=22:d="D"
else: d="E"
return d
for i in df.index:
if df.得分[i]=="未扫描":
#删除缺考考生数据
else:
df.班级[i]=df.班级[i][-2:]
df.等第[i]= #调用赋分函数填入相应等第数据
#相应成绩查询系统代码略
(2)、程序加框处的语句实现数据整理,删除缺考的考生,以下选项中可以实现的有( )(多选)。A、df=df.drop(i) B、df.drop(i,inplace=True) C、del df[i] D、df.pop(i)(3)、根据结定班级,分析该班的等第数据并可视化,可视化结果如图d所示。请在程序划线处填入合适的代码。bj=input("请输入班级号(1~6):")+ "班"
df1=df[df.班级==bj]
print(df1)
dd={"A":"A","B":"B","C":"C","D":"D","E":"E"}
for i in dd:
#统计各等第相应的人数
dd[i]=list(df1.等第).count(i)
dd=list(dd.values())
#获取字典中各等级的值并转换为列表
df2=pd.DataFrame(dd,columns=["人数"], )
plt.title(f"高二{bj}学考等第分布情况图")
plt.xlabel("等级")
plt.ylabel("人数")
plt.bar()
plt.show( )
-
4、用二分查找的方法求不等式 2x+3x-4<=n(n>=0)的最大正整数解,编写的程序如下:
n=int(input("请输入 n:"))
L,R=1,n+1
while L<R:
x=(L+R+1)//2
if 2**x+3*x-4<=n:
①
else:
②
print(f"方程 2^x+3*x-4<={n}的最大正整数解为:",R)
要使程序实现上述功能,则缺失的代码是( )
A、①L=x+1 ②R=x-1 B、①L=x②R=x-1 C、①R=x-1 ②L=x+1 -
5、用>表示进栈操作,<表示出栈操作,若元素进栈的顺序为“+ / * \ %”,出栈顺序为“+ \ * %/”,则由 > 和 < 表示的操作串是( )A、><>>><<><< B、><>><><<>< C、>>>><<><<< D、><>>>><<<<
-
6、一颗二叉树的前序遍历是“知心几见曾来往”,中序遍历是“往来几曾见知心”,则以下说法正确的是( )A、这颗树的叶子结点比非叶子结果多 1 B、这是一颗完全二叉树 C、其后序遍历为“往来曾见几心知” D、这颗树有3层
-
7、有如下Python程序段:
code="0123456789ABCDEF"
RGB=(255,96,128)
ans="#"
for c in RGB:
t=[]
for i in range(2):
t.append(code[c%16])
c//=16
ans+=''.join(t[::-1])
print(ans)
执行程序后,输出的结果为( )
A、#FF607E B、#FF6080 C、#8060FF D、#6E60FF -
8、使用列表生成式创建数组的Python代码如下:
a=[i*i for i in range(10) if i%2==0]
则执行语句 print(sum(a[1:-1]))后输出的结果为( )
A、20 B、52 C、56 D、116 -
9、已知单向链表的节点类的Python代码定义如下:
Class LinkNode:
Def __init__(self,data_,next_=None):
self.data=data_
self.next=next_
链表结构如图所示,已知原链表各节点值分别为“上->山->打->老->虎”。
已知pre,p和r分别指向3个连续的节点,现在想要调整链表中某些节点的顺序,编写了如下的Python代码段:
pre.next=r
p.next=r.next
r.next=p
则程序执行后,该链表的结构可以表示为( )
A、上->山->打->老->虎 B、上->山->老->打->虎 C、山->上->打->老->虎 D、山->上->老->打->虎 -
10、某排序算法排序过程如图所示,由图可知,该算法的时间复杂度为( )A、O(n) B、O(n2) C、O(log2n) D、O(2n)
-
11、下列Python表达式运算后,结果不为“C”是( )A、ord("A"+2) B、chr(ord("B")+1) C、"China"[0:1] D、{1:"B",2:"C"}[2]
-
12、某声音文件经过MP3格式压缩后的属性如图所示:
以下说法不正确的是( )
A、将选中部分声音进行“裁剪”操作后,声音的总时间将被减少到2秒 B、该声音文件的大小约为315KB C、若未压缩前该文件小大为1.35MB,则该声音的量化位数为16位 D、将该文件还原为WAVE格式,可得到无损的原文件 -
13、使用UltraEdit软件观察某字符串内码如图所示:
下列说法正确的是( )
A、该字符串中所有的ASCII码占用了10个字节的空间 B、将字符“1”的内码与字符“a”内码进行异域运算后可得到字符“n”的内码 C、由“1”的内码是31H,可得“10”的内码是3AH D、由图可知,计算机内部使用的是十六进制编码 -
14、阅读下列材料,请回答问题。
2022卡塔尔世界杯将首次正式使用半自动越位识别(SAOT)系统。该系统使用 12 个专用摄像头来跟踪每名球员的29个数据点位,以此计算每一个球员的确切位置。同时,世界杯还使用了传感器足球,球内放置有惯性测量单元(IMU)传感器,其以每秒500次的频率将足球数据发送到视频操作室,从而可以非常精确地检测踢球点。该系统可为视频裁判快速提供自动越位警报,当视频裁判与现场裁判确认越位后,系统将生成3D动画,以最佳视角将越位画面在赛场大屏上进行播放。
(1)、关于半自动越位识别(SAOT)系统,下列说法正确的是( )A、该系统属于符号主义人工智能 B、该系统使用的摄像头属于输入设备 C、该系统生成的 3D 动画属于模拟数据 D、该系统使用的网络属于局域网(2)、关于该系统中相关的足球数据,下列说法正确的是( )A、足球数据是已经产生的不可改变的数据,属于静态数据 B、视频裁判根据足球数据分析越位产生的原因告诫运动员避免越位再次发生 C、系统根据足球数据生成 3D 动画,这使用了 VR 技术 D、IMU 以每秒 500 频次将足球数据传到视频操作室,这说明大数据产生的速度非常快(3)、下列做法不利于该信息系统安全的是( )A、将系统生成的3D动画在互联网上发布 B、对系统中的视频裁判开放所有权限以便他们能观察到所有数据 C、给每一位视频操作室人员分配一个绑定的“人脸识别”帐号 D、系统后台管理员注销某位“提前透露世界杯比赛结果”的内部操作人员帐号 -
15、一款智力玩具,有x种颜色的n个不同直径的同心圆盘(x<n)。将圆盘串在倒T字型支架上,垂直俯视,直径不大于上方的圆盘将被遮挡,现从上方依次取走一片圆盘,记下能看到的颜色。最后说出取走几片圆盘后看到颜色种数最多,并说出颜色。某人取了6片5种颜色的圆盘随机叠放,如图a所示。他编写了如下程序来验证自己的结果是否正确,程序运行结果如图b所示。
请回答下列问题:
(1)、函数pop的功能是。(2)、实现上述功能的部分程序如下页所示、请在划线处填入合适的代码。随机选取n个圆盘,其半径与颜色分别存储在列表r和color中并输出,如图b所示,
r = [9,3,6,4,8,5], color = ['红','紫','蓝','绿','橙','红']。
n = 1en(r)
f= { } # f中键为颜色,值为该颜色的可见数量,如: {" 蓝":2}
def pop(top, cnum, rad):
while top!= -1 and rad >= r[z[top]]:
f[color[z[top]]] -= 1
if ①
cnum -= 1
top -= 1
return top, cnum
z=[-1]*n
top = -1
cnum=cmax=0
for i in range(n):
top, cnum = pop(top, cnum, p[i])
top += 1
②
if color[z[top]] not in f:
if[color[z[top]]= 1
cnum+= 1
else :
f[color[z[top]] += 1
if cnum >= cmax:
cmax = cnum
res = dict(f) #将此时的f另存到res中
m= ③
s=""
for i in res:
if res[i] > 0:
s +=i
print("拿走", m, "片后,可看到圆盘的颜色种数最多,分别为: ", s)
①②③
-
16、为鼓励绿色出行,某市推出了优惠方案:乘一次地铁后可以获得一张优惠券,在有效期45分钟内(含)可免费搭乘一次公交车。 有效期指乘公交车与乘地铁的开始时刻之差。搭乘公交车时,可以使用优惠券则一定会使用,如果有多张优惠券满足条件,则优先消费获得最早的优惠券。有人用Python编写程序计算出行的费用。他的某次出行过程如图a所示,程序运行结果如图b所示。
请回答下列问题:
(1)、请在划线处填入合适的代码。def Ctime(t):
#自定义函数Ctime功能为将时间转为分钟计存入变量s,代码略。
return S
读取出行记录,存储在列表a中,a[i][0]、a[i][1]、a[i][2]依次存储交通工具类型、票价、乘坐开始时刻。交通工具类型a[i][0]值为0表示地铁,1表示公交车。代码略。
n = len(a)
for i in range(n):
a[i][2] = Ctime(a[i][2])
for i in range(n - 1):
for j in range(n - 1, i, -1):
if
:
a[j], a[j - 1] = a[j - 1],a[j]
#输出出行记录,代码略。
total = 0
head=tail=0
q = [-1]*n
for i in range(n)
if a[i][0]==0
total+= a[i][1]
①
tail+= 1
else:
while head < tail and q[head] < a[i][2] - 45:
head += 1
if ②
total += a[i][1]
else:
print(a[i][2], "时刻使用了优惠券")
③
print("总共花费为:", total)
①②③
(2)、程序中加框处代码有错,请改正。(3)、该程序主要应用的数据结构类型是(选填:队列/栈/链表/二叉树)。 -
17、有一个24小时自助图书馆的图书管理系统,该系统分为借书还书、读者管理和查询三个模块,为读者提供自助借还图书、申办借阅卡、图书查询等服务。(1)、在搭建图书管理系统前,需确定该系统采用以上三个模块以及相应的软硬件配置和数据存储管理方式等。这一过程属于(单选,填字母: A .需求分析/B .概要设计/C .详细设计/D .系统调试Y。)(2)、图书管理系统采用RFID技术采集借阅卡的信息,所使用到的设备如图a所示。
其过程包括以下步骤:①读写器向电子标签发送射频信号;②读写器采集电子标签的信息并解码;③读写器将相关信息传输到服务器;④电子标签向读写器发送编码信息。上述步骤正确的顺序是。
(3)、将图书管理系统数据库中各书籍类别的借阅数据导出为文件“books.xlsx",部分界面如图b所示。输入年龄,现需统计该年龄读者阅读最多的书籍类别(输出前三种)。程序运行结果如图c所示。实现上述功能的程序代码如下,请补充方框处的代码(可以使用一条或多条语句)。
import pandas as pd
age = int(input("请输入要查询的年龄: "))
age_ list = [[1, 12], [13, 18], [19, 45], [46, 59],[60,150]]
for i in range(len(age_ list)):
if age_ list[i][0] <= age <= age_ 1ist[1][1]:/
break
df = pd. read_ excel("books. xlsx")
age_ col = df. columns[i + 2] #获取年龄age对应的列名
df = df. drop("月份",axis=1)
print(age,"岁看得最多的前三类为: \n", list(res . index))
-
18、有如下程序段:
from random import randint
s ="python"
k = randint(1, 4)
for i in range(k):
j=i+1
while j < len(s) and s[j] > s[i]:
j+=1
if j < len(s):
s=s[:j]+s[j+1:]
else:
s = s[:1en(s) - 1]
print(s)
执行该程序段后,s的值不可能是( )
A、"py” B、"pyo" C、”pytn" D、"pyton" -
19、将链表中的奇数节点和偶数节点分别排在一起,奇数节点和偶数节点的相对顺序不变。如原始链表为
, 新链表为
。部分程序如下:
#读入链表,存储在列表a中,head存储链表的头节点
odd = head
even = a[odd][1]
tmp = even
while a[odd][1] != -1 and a[even][1] != -1:
a[odd][1] = tmp
上述程序段中方框处可选的语句为:
①odd = a[odd][1]
②even = a[even][1]
③a[odd][1] = a[even][1]
④a[even][1] = a[odd][1]
则方框处语句依次为( )
A、①③②④ B、①②③④ C、③②④① D、③①④② -
20、丑数是指不能被2、3、5以外的质数整除的数。判断丑数的自定义函数程序如下:
def ugly(n):
for i in[2,3,5]:
while n % i==0:
n=n//i
return n == 1
若调用执行自定义函数ugly(30),下列说法正确的是( )
A、函数返回值为False B、方框处程序应用了迭代算法 C、该程序的时间复杂度为为0(n2) D、条件语句n%i==0执行了3次