相关试卷
- 上海市浦东新区上海师范大学附属中学2024-2025学年高一上学期10月期中信息技术试题
- 海南省临高县第二中学2024-2025学年高一上学期期中考试信息技术试题
- 浙江省衢州市2024-2025学年高一下学期6月教学质量检测(期末)技术试题-高中信息技术
- 浙江省宁波市2024-2025学年高二下学期期末考试技术试题-高中信息技术
- 浙江省舟山市2024-2025学年高二下学期6月期末技术试题-高中信息技术
- 浙江省丽水市2024-2025学年高二下学期期末教学质量监控技术试题-高中信息技术
- 浙江省浙南名校联盟2024-2025学年高二下学期期末联考技术试题-高中信息技术
- 浙江省宁波市九校2024-2025学年高二下学期期末考试技术试题-高中信息技术
- 2025届浙江省Z20联盟(名校新高考研究联盟)高三下学期第三次联考技术试题-高中信息技术
- 2025届浙江省强基联盟高三下学期三模技术试题-高中信息技术
-
1、有如下Python程序:
import random
s1="AsiaGames"; s2=[]; s3=""
n=len(s1); i=0
while i<n:
if random. randint (0, 1)==0:
if len(s2)==0 or s1[i]>s2[-1]:
s2. append(s1[i])
i+=1
else:
if len(s2) >0:
s3+=s2. pop(-1)
while len(s2)>0:
s3+=s2. pop(-1)
print (s3)
执行该程序,则输出结果不可能是( )
A、saAsm B、sAise C、sAiaGmsea D、AsiaGames -
2、将有序数组nums中的重复项删除,编写的Python程序段如下:
n=len (nums);i=1
while i<n:
if nums[i]!=nums[i-1]:
k+=l1
i+=1
nums=nums [:k]
上述程序段中方框处可选代码为:①k=0 ②k=1③nrums[k]=nums[i] ④nums [i-1]=nums[i]
则(1)、(2)处代码依次为( )
A、①③ B、①④ C、②③ D、②④ -
3、用二叉树构造某表达式树,其前序遍历结果为*/a+bc*+ -defg,中序遍历结果为a/b+c*d-e+f*g,则该表达式树的后序遍历结果为( )A、abc+/de- f+g** B、ab/cd*+e-fg+* C、abcd*+/e- +fg* D、abcd*+e-/fg+*
-
4、下列关于数据结构与算法效率的描述,不正确的是( )A、队列和栈都是一种线性表,但两者有不相同的特性 B、采用相同公式求解n!,使用迭代算法比递归算法的算法效率高 C、使用数组结构在进行数据插入和删除操作时,一定会引起数据移动 D、某单向链表(节点数>2)设有头尾指针,在删除该链表尾节点时需要遍历多个节点
-
5、在信息传递的过程中,通常会将一些敏感信 息进行加密,以下是实现加密功能的Python程序段
s=input("明文: ")
p="" ; key=2
for ch in s:
if "0"<=ch and ch<="9":
p+=str((int (ch) +key) %10)
else:
p=ch+p
print("密文:", p)
若输入明文为“ym587”,则输出密文为( )
A、ym785 B、ym709 C、my709 D、my907 -
6、某创客小组模拟设计了货物装箱控制系统。使用智能终端连接传感器,检测装满一箱后传感器反馈值为1,否则值为0,当装完n箱时,则关闭输送带。实现上述功能的Python程序代码如下:
n=100; sumn=0 #①处
pin14. write_digital(1) #打开输送带控制开关
while True:
d=pin2. read_ digital ( ) #返回装箱状态
if d==1: #②处
sumn=sumn+1
if sumn= =n:
pin14. write_ digital (0) #关闭输送带控制开关
break
sleep (1000) #等待1秒
下列关于上述代码及系统功能描述不正确的是( )
A、智能终端pin14引脚连接了执行器 B、智能终端pin2引脚连接了传感器 C、若将程序②处代码中的d==1修改为d!=0,则该系统的功能发生变化 D、若将程序①处代码中的n=100修改为n=200,则输送带连续运行的时间会变长 -
7、阅读下列材料,回答问题。
校园一卡通系统,采用RFID技术采集校园卡的信息,实现用餐管理、图书借阅等功能,系统部分框架图如下。
(1)、下列关于该校园一卡通系统描述正确的是( )A、该系统的用户仅是使用校园卡的学生 B、该系统只需存储持卡学生的个人信息 C、实现该系统各项功能的软件属于系统软件 D、防火墙用于保护该系统免受外部入侵(2)、基于RFID技术采集数据的过程主要包括以下步骤:①读写器向校园卡发送射频信号;②读写器采集校园卡的数据并解码;③读写器将相关数据传输到服务器;④校园卡向读写器发送编码信息。上述步骤顺序正确的是( )A、①②③④ B、①④②③ C、④①③② D、④②①③ -
8、下列关于人工智能的说法,正确的是( )A、视频聊天是常见的人工智能技术应用 B、深度学习是数据驱动的人工智能方法之一 C、符号主义是问题引导下的试错学习的典型代表 D、人工智能技术推动社会进步,不可能威胁人类安全
-
9、用Python语句描述城市主干道中机动车平均行驶速度“不低于30为畅通,小于20为堵塞,其余为拥挤”,设v为机动车平均行驶速度(单位:km/h) ,则下列选项正确的是( )A、
B、
C、
D、
-
10、下列关于进制与信息编码的说法,不正确的是( )A、十六进制数10转换为二进制数是10000 B、16色位图的每个像素至少用8位二进制数进行编码 C、模拟声音数字化需经过采样、量化与编码 D、生成个人健康码是一个编码的过程
-
11、下列关于数据与大数据的说法,正确的是( )A、自然界中的数据是指以十进制记数法表示的数字 B、搜索引擎数据库中存储的某条数据即是大数据 C、电子计算机中的数据以二进制形式存储 D、大数据要分析的是抽样数据
-
12、哈夫曼编码是一种可变长度编码方式,其编码总体思路为对于使用频率高的字母分配较短的编码,对于使用使用频率较低的字符分配较长的编码,从而提高压缩效率。现用以下实例说明其编码思想:
现有一串字符串只包含A、B、C、D、E共5种字母,先统计出5个字母在字符串中的使用频率,现假定频率如表格所示。
字符
A
B
C
D
E
频率
35%
17%
26%
13%
9%
然后,开始以频率作为权值构造哈夫曼树,方法如下:
①将每个字符排成一排,并标注权值,每个字符都是一个叶子节点。
②找出权值最小的两个节点,其中权值较小的节点作为左分支,较大的作为右分支,把它们合并成一个父节点,就产生了一颗二叉树。父节点的权值是合成它的两个节点的权值之和,并为其左分支节点分配编码“0”,右分支节点分配编码“1”。该父节点可以与其余未被合成过的节点继续合并。
③重复步骤②,直至所有节点合并完成一颗二叉树如下图a所示。
④一个字母的编码就是从根节点开始沿着各分支到达该字母所经过路径上各编码的顺序排列,如图b所示。
小明在学习了数据结构相关知识后编写python程序模拟哈夫曼编码过程,程序运行结果如图C所示。请回答以下问题:
(1)、若某段仅包含a、b、c、d、e的字符串中各字母的出现频率依次为23,20,36,9,12,则用哈夫曼编码字母d的代码为。(2)、实现上述功能的python程序如下,请在划线处填入合适的代码。zfp1={"A'":0,"B":0,"C":0,"D":0,"E":0} #存储字符频率
zfbm={"A'":" ",":""" "C":"" ":*".*"} #存储字符编码
def getminode(st,top):
min=top
while st[min][2]!=-1:
min=min-1
for i in range(0, min+1):
if st[i][2]= -1 and st[j][1]<st[min][1]:
min=i
return min
s=input("输入字符串: ")
st=[]
top=-1
for i in s:
zfpI[i]+=1
for i in zfp1:
zfpl[i]=round( ① )
top+=1
st.append([i, zfpl[i], -1])
print("各字母频率:",zfpl)
while len(st[top][0])<len(zfpI):
node 1=getminnode(st, top)
st[node1][2]="0"
node 2=getminnode(st, top)
st[node2][2] "1"
top+= 1
st.append( ② )
print("各个节点:", st)
top=top-1
while top>=0:
for i in ③
zfbm[i]=zfbm[i]+st[top][2]
top-1
print("各字母编码:", zfbm)
①②③
-
13、某APP为增加用户活跃度,采用“签到得积分换奖品”的形式来吸引用户。签到积分的规则与玩法如下:
①第-天签到得1分,第二天签到得2分,第三天签到得3分,……第7天及7天以上签到得7分:一旦中途漏签,签到积分从1分开始重新计算:积分每年最后一-天结束时清零。现在用“1”和“0”表示签到和未签到,如某用户下载APP后第一天到第九天的签到记录为“10111011”,则这9天共获得14个积分。
②APP每年会给用户一次补签一天的机会,补签之后积分的连续性可以持续,例如上面的9天中如果补签第七天增加积分最多,补签后9天的签到记录将变为“10111111”,积分将达到29分。为了找出一年中最佳的补签日,设计如下程序:从文件中读取一年365天 (2月以28天计)的签到记录并以字符串形式输出,然后统计出全年的积分,并分析出补签增加积分最多那天的日期及将这一天补签后可增加积分数,程序输出效果如下图所示。
(1)、若第1天到到第18天的签到记录为“111110111”,则补签第天可增加积分最多。(2)、请在划线处填入合适的代码。def tongji(s): #统计字符串中的积分
sum, pre= =0, 0
for i in range(en()):
if s[i]=="1":
if pre<7:
pre+=1
sum+=pre
else:
①
return sum
def check(ss):
month={1:31,2:28,3:31,4:30,5:31,6:30,7:31,8:31 ,9:30,10:31,11:30,12:31}
max, index=0, 0
for i in range(len(ss)):
if ss[i]= ="0":
head= i-1
tail= i+1
while head>=0 and ss[head]= ="1":
head-=1
while tail<=len(ss)-1 and ss[tai]=- ="1":
tail+=1
s1=ss[head+1:tail]
②
jfzj=tongji(s2)- tongji(s1)
if jfzj>max:
max= jfzj
index=i
k=1
day=index+1
while ③
day=day-montb[k]
k+=1
result="补签" + str(k) +"月" + str(day) + "日增加积分最多!可增加" +str(max)+"分。"
return result
#将全年记录以字符串的形式保存到变量j1中并输出,代码略。
print("年积分:"tongji(il))
res=check(i1)
print(res)
①②③
-
14、小明打算搭建一个大棚温度报警控制系统,传感器获取的温度数据经智能终端和IOT模块发送到服务器,服务器端程序采用Flask Web框架编写,网站的功能页面规划如下表所示:
序号
访问地址
功能说明
1
/
主页,显示历史温度列表
2
/input?id=1&temp=25
提交传感器id和温度数据,并返回提示
3
/execute
分析统计温度数据
……
……
……
实现上述系统的服务器端程序部分代码如下:
import sqlite3
import datetime
from flask import Flask, render. _template, request
DATABASE = 'data.db'
app= Flask(_name_ )
@app.route("/")
#视图函数代码略
aproute(" ① ", methods-=[' ② ']) #提交数据功能页面的路由
def input_ data():
id = intrequest.args. get(id))
value = float_( ③ )
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(id, value, updatetime)
VALUES(%d, %f, %s")" %(id, value, nowtime))
db.commit()
cur.close()
db.Close()
if 16< value < 25:
return "当前温度适宜"
elif value <= 16:
return'当前温度较低'
elif value >= 25:
returm '当前温度较高'
if__ name__= "main_":
app.run(host=" 10.235.0.1", port= =5000, debug=True)
(1)、由以上代码可知访问主页的地址是http://(2)、阅读代码可知提交的数据保存在数据表中。(3)、①处路由为 , ②处的请求方式为(GET/POST二选地)(4)、③处应填写的代码为 -
15、期中考试结束后,学生的姓名、班级、信息、通用成绩保存在“成绩.xlsx”文件中,部分数据截图如下图a所示。为了得到技术平均分前3名的班级信息,小李同学利用pandas模块进行数据分析,分析结果如图b所示。数据分析代码如下,请回答以下问题。(1)、加框处代码有误,请修改成正确代码。
import pandas as pd
df= pd.read_ excel("成绩xlsx")
#读取数据,每行包括学生的姓名、班级、信息成缋、通用成绩
df.drop("姓名", axis=1, inplace=True) #删除无关数据列
#计算技术分数
df[技术]= ①
#计算每班的技术平均分
dfmean = df.groupby(班级';as_ index =False)[技术].mean( )
#排序
dfsort =
import matplotlib.pyplot as plt
pltrc('font', family ='simsun') #设置中文字体
pl.title("技术成绩平均分前3名的班级")
plt.xlabel("班级")
plt.ylabel("技术")
plt.bar( dfsort["班级"], dfsort["技术"], ② ) #设置图例名称
plt.ylim(0, 80)
plt.legend( )
plt.show( )
(2)、请将划线处代码补充完整。①②
-
16、有如下python程序段,实现输入key的值,输出列表a中大于key的第一个数的索引。
a=[1,1,2,2,2, 3]
Print(a)
key = int(input('请输入一个整数:))
i= 0
while i<j:
if key >= a[m]:
else:
if j=len(a):
print(f">{key}的数不存在")
else:
print(f"> {key}的第一个数的索引是{j}")
加框处代码有( )处错误,修改后得到正确的运行结果如下:
A、4 B、3 C、2 D、1 -
17、有如下python程序段,实现两个升序数组合并为一个升序数组。
from random import randint
a, b= [10], [10]
for i in range(5):
a. append(a[-1] + randint(1, 10))
for i in range(9):
b. append(b[-1] + randint(1, 10))
c= [ ]
while ⑴
if ⑵ :
c. append(b. pop(0))
elif ⑶
c. append(a. pop(0))
elif ⑷
c. append(a. pop(0))
else:
c. append(b. pop(0))
prim(c)
①Dlen(a)> 0 and len(b)> 0 ②len(a)>0 or len()>0 ③len(a)>0 ④len(a)=0 ⑤len(b)>0 ⑥len(b)= 0 ⑦b[0]<a[0] ⑧a[0]<b[0]
划线部分依次填入的代码是( )
A、③⑤④⑧ B、②⑤③⑧ C、①④⑧⑤ D、②④⑥⑧ -
18、现用链表1b存储了-批会员信息,链表每个节点中的数据依次为会员名、手机号、会员积分和节点指针,数据存储形式如[[“张三”,“13282825678”, 280, 1],[“小明”, “132567878”, 500, 3], …]。现要实现删除某个手机号的会员节点,已知链表头指针head与要删除会员手机号phone,实现删除节点的代码如下:
p=head
q=P
while p!=1:
if lb[p][1]= phone:
if p==head:
⑴
else:
⑵
q=p
⑶
划线处的代码由以下代码组成:
①head=lb[p][3] ②p=Ib[p][3] ③)lb[p][3]=lb[q][3] ④Ib[q][3]=lb[p][3]
下列选项中顺序正确的是( )
A、①③② B、②④① C、①④② D、③④② -
19、现有一颗二叉树的前序遍历为ABCDEF中序遍历为BCADFE,则该二叉树的后序遍历为( )A、CBFEDA B、BCFEDA C、CBDFEA D、BCEFDA
-
20、有如下python程序段:
s ="01234"
ans =""
for I in s:
if i in "02468":
ans=ans+i
else:
ans= i + ans
print(ans)
上述程序运行的结果为( )
A、10 B、31024 C、42013 D、43210