浙江省北斗星盟2022年12月高三信息技术联考试卷
试卷更新日期:2023-02-17 类型:高考模拟
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、错选、多选均不得分)
-
1. 阅读下列材料,请回答第1~2题:
某大型超市使用自助收银系统,方便顾客自助结账,特别是遇到营业高峰期大大缩短了顾客排队结账的等候时间。顾客使用自助收银系统时,先逐个将商品条形码对准扫码口扫描,商品的名称、单价和数量在屏幕上显示,然后再选择扫码或人脸识别完成支付,随即,移动支付APP会发来扣款消息。
(1)、关于该自助收银系统,以下说法不正确的是( )A、除了顾客以外,超市收银员、系统分析员等也是自助收银系统的用户 B、商品的名称、单价和数量属于自助收银系统的数据 C、只要不断电, 自助收银系统就可以正常使用 D、自助收银系统的使用体现了“规范工作流程,提高工作效率”的优势(2)、关于该自助收银系统的工作过程和支付方式,以下说法不正确的是( )A、扫描商品条形码属于信息的采集 B、扫码识别的支付方式采用了 RFID 技术 C、人脸识别的认证方式具有防伪性能好、随时随地可用等优点 D、系统可以通过刷脸支付,说明人脸也是信息的载体2. 下列有关信息和信息编码的说法, 正确的是( )A、计算机中的汉字是使用二进制进行编码的 B、根据不同的编码方式,数字图像可分为多种格式,如BMP、JPG、WAV等 C、16色未压缩的位图图像位深度为16位 D、声音数字化过程中,量化位数越大,量化精度越低3. 某智能设备部分参数如下表所示:屏幕尺寸
1.5 英寸
WiFi、蓝牙
都支持
操作系统
Ticwear OS
传感器
光学心率传感器、加速度传感器、陀螺仪、电子罗盘
匹配系统
Android 4.3 及以上,iOS 8.0 及以上
控制类型
触控:多点电容式触摸屏
屏幕分辨率
320*320
运行内存
512MB
处理器
联发科 MT2601,
1.2GHz 双核
机身存储
4GB
下列有关该智能设备的说法中, 不正确的是( )
A、该设备可以监测心率和记录运动数据 B、该设备使用的是四核处理器 C、该设备支持触屏控制 D、该设备可以通过蓝牙传输数据4. 以下有关数据和大数据的说法,不正确的是( )A、大数据中价值密度的高低与数据总量的大小成正比 B、基于用户购买行为的大数据, 网站对其进行深度挖掘实现个性化推荐 C、大数据给生活带来便利的同时也会带来信息泄露、数据安全等社会问题 D、数据可视化可以使用户通过直观的方式浏览和观察数据5. 为了保障个人信息安全,下列做法不可取的是( )A、不同的社交账号尽量设置不同的密码 B、重要的数据经常备份或加密后存放在云盘上 C、个人计算机安装并开启防火墙 D、公共场所的免费 Wi-Fi 用起来很方便, 可以随意连接6. 下列Python表达式中,与表达式 abs(int(-4.62))的值不相等的是( )A、len([True,4, ”score”,[3,2.7]]) B、int(”324”[1])*2 C、round(24/7,0) D、[”red”,True,4][-1]7. 某算法的部分流程图如图所示:执行该部分流程,若依次输入的数据为2、-3、5、-1、2、1、-3、0,则输出m的值为( )
A、7 B、6 C、5 D、48. 有二叉树用数组表示如下表所示:0
1
2
3
4
5
6
7
8
9
10
11
12
D
A
H
F
G
C
M
则关于该二叉树的说法正确的是( )
A、该二叉树是完全二叉树 B、该二叉树的叶子节点有3个,分别是 C、H、MC.该二叉树的后序遍历序列为C-F-A-M-G-H-D
D、该二叉树的层数为3,节点F在第3层9. 有如下Python程序段:def sp(a,i):
if "a"<=a[i]<= "z" :
a=a[:i]+a[i+1:]
elif "0"<=a[i]<= "9":
a=a[:i]+str((int(a[i])+3)%10)+a[i+1:]
return a
s="cfi3H8qwz4";i=0
while i<len(s):
s=sp(s,i)
i+=1
执行上述程序段后,s的值为( )
A、”f3H1w4” B、”3H84” C、”6H17” D、”f6H1w7”10. 生成一个元素个数为6、元素的值在1~9之间且不重复的数组a,Python代码如下:import random
n=9
b=[[1,1],[2,2],[3,3],[4,4],[5,5],[6,6],[7,7],[8,8],[9,-1]]
head=0
a=[]
for i in range(6):
k=random.randint(0,n-i-1)
if k==0:
a.append(b[head][0])
①
else:
p=head
for j in range(k):
pre=p
p=b[p][1]
a.append(b[p][0])
②
划线处应填入的代码为( )
A、①head=b[head][1] ②b[pre][1]=p B、①head=b[0][1] ②b[pre][1]=p C、①head=b[0][1] ②b[pre][1]=b[p][1] D、①head=b[head][1] ②b[pre][1]=b[p][1]11. 有如下Python程序段:#随机产生 n 个两位正整数存入数组a 中
q=[-1]*n;top=-1
for i in range(n):
if a[i]%3==0 :
top+=1
q[top]=a[i]
elif a[i]>q[top] and a[i]%2==0:
top+=1
q[top]=a[i]
while top>-1:
print(q[top],end=',')
top-=1
执行上述程序段后, 输出结果不可能是( )A、48,57, B、74,80,76, C、74,68,62,33,44, D、98,45,78,88,二、非选择题(本大题共3小题,8+10+8,共26分)
-
12. 小明为学校搭建一个信息技术知识竞赛的信息系统,服务器网站基于Python的FlaskWeb框架编写,考生信息存储在数据库文件“data.db”的“user”数据表中,如图a所示;考生通过浏览器访问网站,登录页面如图b所示;登录成功后网站自动跳转到答题页面,如图c所示。
请回答下列问题。
(1)、考生登录系统采用的身份认证技术是 (填字母:A .用户名+口令 B .依靠生物 特征识别 C .USB-Key),该信息系统采用的架构为 (填字母:A .B/S 模式 B .C/S 模式)(2)、服务器端的部分程序如下, 请在划线处填入合适的代码。 import sqlite3from flask import Flask,render_template,request,redirect
ip="192.168.1.100"
port="8080"
app=Flask(__name__)
@app.route("/")
def index():
return render_template("index.html")
@app.route("/",methods=['POST'])
def login():
sid=request.form.get("sid")
psw=request.form.get("psw")
conn=sqlite3.connect("data/data.db")
cur=conn.cursor()
cur.execute("SELECT * FROM where sid='%s' and psw='%s'"%(sid,psw)) res=cur.fetchall()
cur.close()
conn.close()
if len(res)==1:
return redirect("/test?sid="+sid+"&name="+ )
#redirect 表示跳转指定的 URL
else:
return "用户名或密码错误,请检查后重新登录!"
@app.route(" ")
def test():
#显示答题页面,代码略。
if __name__=="__main__":
app.run ( )
(3)、图b所示的登录页面渲染的网页模板文件为 ,考生填写了考号和密码后,点击“登录”按钮,浏览器将考号和密码提交给服务器,服务器端执行的视图函数名为; 登录成功后,网站跳转到答题页面。13. 知识竞赛结束后,小明从信息系统中导出参赛学生的成绩,存储在“知识竞赛.xlsx”文件中,如图a所示,并编写Python程序,按总分降序排序,分别输入一二三等奖的获奖比例,计算获奖人数和分数线,程序运行结果如图b所示。由于同分人数较多,计算奖次时按最接近规定比例的人数划定分数线,若按两个相邻分数线划定的人数与规定比例的人数同样接近,则取较低的分数线。例如:总人数100人,应有10人获一等奖,若98分及以上有9人,97分及以上有15人,则一等奖分数线为98分;若98分及以上有9人,97分及以上有11人,则一等奖分数线为97分。Python程序如下,请回答下列问题。图 a
图 b
def find(now,step):
i=now
while score[i][2]==score[now][2]:
①
return i
import pandas as pd
df=pd.read_excel ("知识竞赛.xlsx")
df= ②
score=df.values #二维数组 score 存储所有参赛学生的考号、班级和总分,按总分降序排列
n=len(score)
prize=["一等奖","二等奖","三等奖"]
print("总人数:"+str(n))
s=input("请分别输入一二三等奖的比例: ")
percent=list(map(float,s.split(","))) #一二三等奖比例转换成实数存储在列表 percent 中 nums=[0,0,0]
nums[0]=round( ③ )
for i in range(1,3):
nums[i]=nums[i-1]+round(n*percent[i])
pre=0;res=[""]*n #res 存储学生的奖次
for i in range(3):
now=nums[i]-1
k1=find(now,-1)
k2=find(now,1)
if k2-now<=now-k1:
now=k2-1
line=score[k2-1][2]
else:
now=k1
line=score[k1][2]
print(prize[i],"人数:",now-pre+1,"分数线:",line)
for j in range(pre,now+1):
res[j]=prize[i]
④
(1)、请在划线处填入合适的代码。①②③④
(2)、加框处代码有误, 请改正。14. 小明所在的班级共有 20 名男生,要参加学校举办的拔河比赛,赛前根据体重分成 AB 两组进行训练,要求每组 10 人, 且每组男生的体重之和尽量接近。小明设计了如下算法:①初步分组:将所有男生按体重从高到低排序,并以 ABAB…进行初步分组;
②计算体重差: 计算每组对应两个男生的体重差;
③交换学生:按体重差从高到低判断是否交换学生。
例如 20 名男生的体重(单位: kg)从高到低为:
95, 93, 93, 90, 90, 90, 84, 83, 83, 78, 77, 75, 74, 69, 64, 61, 61, 60, 56, 55。
步骤
体重
体重和
初步分组
A 组
95
93
90
84
83
77
74
64
61
56
777
B 组
93
90
90
83
78
75
69
61
60
55
754
体重差
2
3
0
1
5
2
5
3
1
1
23
交换学生
否
否
否
是
是
否
是
否
否
否
最终分组
A 组
95
93
90
83
78
77
69
64
61
56
766
B 组
93
90
90
84
83
75
74
61
60
55
765
小明按照以上算法编写Python程序如下,请在划线处填入合适的代码。
def group(student): #初步分组
a=[];b=[]
i=0
while i<len(student):
a.append(student[i])
b.append(student[i+1])
return a,b
def cal_diff(a,b): #计算体重差并降序排序
d=[]
for i in range(len(a)):
d.append([i,a[i]-b[i]])
for i in range(len(d)-1):
for j in range(0,len(d)-i-1):
if :
d[j],d[j+1]=d[j+1],d[j]
return d
def change(d,a,b): #标记是否交换
k=(sum(a)-sum(b))//2
f=[0]*len(d)
ssum=0
for i in range(len(d)):
ssum+=d[i][1]
if ssum>k:
ssum-=d[i][1]
else:
if ssum==k:
break
return f
student=[95, 93, 93, 90, 90, 90, 84, 83, 83, 78, 77, 75, 74, 69, 64, 61, 61, 60, 56, 55]
qA,qB=group(student)
print("初步分组后 A 组体重: ",qA,"和为:",sum(qA))
print("初步分组后 B 组体重: ",qB,"和为:",sum(qB))
diff=cal_diff(qA,qB)
flag=
for i in range(len(flag)): #交换
if flag[i]==1:
qA[i],qB[i]=qB[i],qA[i]
print("交换后 A 组体重:",qA,"和为:",sum(qA))
print("交换后 B 组体重:",qB,"和为: ",sum(qB))