2022宁波三锋教研联盟高二下学期期中联考试题信息技术含解析
展开2021 学年第二学期宁波三锋教研联盟期中联考
高二年级信息技术学科试题
一、选择题(本大题共 12 小题,每小题 2 分,共 24 分,每小题列出的四个备选项中只有一个是符合题目要求的,不选、错选、多选均不得分。)
1. 下列关于数据、信息和知识说法正确是( )
A. 信息的存储必须依附于某种载体,但信息的表示不需要依附于某种载体
B. 数据的生成过程一定需要人的参与
C. 面对同样的信息,不同的理解会形成不同的知识
D. “学富五车”和“才高八斗”都是对智慧的形容
2. 下列关于人工智能说法错误的是( )
A. 人工智能是一门多学科广泛交叉的前沿科学
B. AlphaGo Zero 不依赖人类棋手数据而在自我博弈中不断提升棋力是行为主义的体现
C. AlphaGo 于 2016 年战胜围棋九段棋手李世石,是符号主义应用
D. 机器学习主要研究计算机如何自动获取知识和技能,实现自我完善
3. 下列选项中,哪个不是大数据的典型应用( )
A. 基于交易大数据分析用户的购买习惯
B. 基于搜索引擎的搜索关键词分析社会热点
C. 基于道路摄像头、地感线圈等数据分析城市交通情况
D. 基于科技文献数据库检索某一领域研究进展
4. 下列关于中文分词方法的描述中,属于基于统计的分词方法的是( )
A. 在分析句子时与词典中词语进行对比,词典中出现的就划分为词
B. 依据上下文中相邻字出现的频率统计,同时出现的次数越高就越可能组成一个词
C. 让计算机模拟人的理解方式,根据大量的现有资料和规则进行学习,然后分词
D. 依据词语与词语之间的空格进行分词
5. 使用 UltraEdit 软件查看字符内码,部分界面如图所示:
下列说法正确的是( )
A. 字符“之旅”是汉字,在计算机中存储时占 4 位
B. “10”的内码用十六进制表示为 3AH
C. 图中除“之旅”之外,其他字符内码的十进制值均小于 128
D. 字符“P”的 ASCII 码值是 50H,则字符“N”的 ASCII 值是 48H
6. 一张大小为 1024×768、颜色模式为 16 位色的未压缩 BMP 格式照片,将大小改成 512×384,颜色模式改成 256 级灰度的未压缩 BMP 格式照片,则处理前后的照片存储容量比约为( )
A. 12:1 B. 8:1 C. 3:8 D. 1:8
7. 某算法的部分流程图如图所示。执行这部分流程后,则输出 ret 的值为( )
A. 16 B. 32 C. 64 D. 256
8. 一个序列的入栈顺序为 a,b,c,d,e,则该序列的出栈顺序不可能为( )
A. b,a,d,c,e B. d,c,b,a,e C. d,c,e,a,b D. c,b,a,e,d
9. 有如下程序代码:
import pandas as pd
data={ '姓名':['李商隐','欧阳修','李白',杜甫'],'借阅次数': [ 32,16,30,26]}
df1=pd. DataFrame (data, columns=[ '姓名','借阅次数'])
c = 0
for i in range ( len (df1 ['姓名'])):
if df1.at [i,'姓名'][0]= ='李':
c+= df1.at [i,'借阅次数']
print (c)
该程序运行后,输出的内容为( )
A. 46 B. 48 C. 58 D. 62
10. 有如下 Python 程序段:
a=input('请输入一串英文字符串:')
s=''
sum=0
for ch in a:
s=s+str(ord(ch)-ord(‘A’)-1)
for ch in s:
sum+=int(ch)
print(sum)
若输入字符串为‘ZBIX’(不包含前后引号),则输出结果为( )
A. 8 B. 13 C. 17 D. 4
11. 有如下 Python 程序段:
n=10
m=0
d=[False]*10
for i in range(1,int(n**0.5)+1):
j=3*i
while j<n:
d[j]=not d[j]
j=j+3
for i in range(n):
if d[i]:
m=m+1
print(m)
执行该程序段后,变量 m 的值为( )
A. 2 B. 1 C. 3 D. 0
12. 执行该程序段后,输出的结果为 4,则应输入的内容为( )
n=int(input("请输入一个正整数"))
d={}
c=0
m=0
while n>0:
x=n % 10
if x not in d:
d[x]=1
else:
d[x]=d[x]+1
if d[x]==1:
c=c+1
n=n // 10
print(c)
A. 135798 B. 232458 C. 20220320 D. 24686482
二、非选择题(本大题共 4 小题, 其中第 13 小题 5 分, 第 14 小题 8 分, 第 15 小题 6 分, 第 16 题 7 分,共 26 分)
13. 现有一关于 2021 年某酒店线上销售业绩源数据清单,包括客服、月份、订单金额等相关数据的Excel 文件“销售.xlsx”,如“图a”所示。
(1) 使用 Python 读取表格中的数据,代码如下,根据题意填写划线部分:
import pandas as pd
df=pd.read_excel("销售.xlsx")
print( ) #筛选出商品原价大于等于 1000 的记录。
df1=df.groupby("客服",as_index=False)["订单金额"].sum()
df1.rename(columns={"订单金额":"订单总额"},inplace=True)
df2=_____
print( df2 ) #按“订单总额”降序排序后输出前 10 条记录
#以下代码功能为:绘制“各月份销售额”的折线图,结果如图 b 所示。
import matplotlib.pyplot as plt
df3=df.groupby("月份",as_index=False)["订单金额"].sum() plt.figure(figsize=(10,5))
plt.title('各月份销售额')
plt._________(df3["月份"],df3["订单金额"])
plt.xlabel('各月份')
plt.ylabel("订单金额")
plt.show( )
14. 大写英文字母加密:
步骤一、输入大写字母 A-F 字符串,通过随机生成的 keys 列表进行匹配,找到相应的 key, 进行第 1 轮加密,得到相应的数字列表 a。
步骤二、根据上述结果对加密后列表中元素按偏移量 K(K 为正整数)发生偏移,每个元素从右往左向前移动 K 位,将偏移后结果存储在列表 b 中。
例如:
列表 a
(当输入 K=3 时,元素值向左移动 3 位)
列表 b
整体运行结果如下图所示:
(1)现有加密列表 keys[4,5,7,1,3,9],需加密字母为“ABED”,则一轮加密后得到的数字列表 a为:[___],若偏移量为 3,则二次加密后的列表 b 结果为:[____]。
(2)请在划线处填入合适的代码。
import random
#随机生成 keys 列表
n=6
i=0
keys=[ ]
while i<n:
key=random.randint(1,9)
if key not in keys:
keys.append(key)
_____
print("随机生成加密列表 keys:",keys)
#第 1 重加密:将输入的字母经过 keys 列表加密转换为 a 列表
a=[ ]
s=input("输入您要加密的字母(A-F):")
for i in s:
a.append(keys[_________])
print("经过第 1 轮 keys 列表加密后:",a) #第 2 重加密:偏移加密
k=int(input("请输入偏移量 K:"))
b=[0]*len(a)
for i in range(len(a)):
b[i]=a[_________]
print("经过第 2 轮加密后:",b)
15. 星期天小明来到动物园游玩,园内共有 n 个景点,每个景点序号为 0,1,2,3……至 n-1。现在只知道每个景点有一条路连接下一个景点。小明想寻找能游玩景点个数最多的一种方案并且从其中一个景点出发,最后能够回到出发景点。如果游玩的景点个数一样,则优先考虑景点序号小的。例如,共有 n=5 个景点,每个景点连接的下个景点分别是 1,3,4,4,1
方案一:从 0 号景点出发,则游玩线路为:0 号→1 号→3 号→4 号→1 号,由于此方案无法回到出发点,则不考虑;
方案二:从 1 号景点出发,则游玩线路为:1 号→3 号→4 号→1 号,然后回到 1 号景点。最多可以玩 3 个景点。
现用 Python 程序模拟这个问题:
先输入景点总数:n ;则对应的景点为[0,1,2,3,4]
然后随机产生各景点所连接的下一个景点的序号,如:[1,3,4,4,1];
接着产生一个列表,如上表的信息则产生的列表 s 为:[[0,1],[1,3],[2,4],[3,4],[4,1]], 最后利用链表的方式来分析解决问题。
程序如下:
import random
# 产 生 信 息 列 表 s
n=int(input("景点总数 "))
tt=[ ]; s=[ ];
c=0
while c < n :
t=random.randint(0,n-1)
if t !=c :
s.append([①])
c+=1
print(s)
#枚举所有方案,寻找正确方案。
max=0
for head in range(n):
p=head
k=1
while k<=n and s[p][1]!=head:
k+=1
p=s[p][1]
if k > max ②:
max = k
maxp = head
print("小明最多能访问 %d 个景点"%(max)) #输出正确线路
p=maxp
while s[p][1]!=maxp:
print(s[p][0],end="→")
p=s[p][1]
print(③)
(1)①处填写代码_____
(2)②处修改代码 _____
(3)③处填写代码____
16. 某程序功能如下: 输入 n,生成 n*n 的方阵,存于列表 a,内容为 1 至 9 的随机整数。再对以(x0,y0)和(x1, y1)为对角顶点的矩形区域中的数据进行水平翻转,并将变换后的二维数组以矩阵形式输出。再输入小于 n 的四个数字(如 a,b,c,d,四者关系必须满足 a<c,b<d),用逗号间隔: 2,1,6,5 则左上角为 a[1][2] ,右下角为 a[5][6],则运行程序后,运行界面如图所示。
(1)以上图为例,如果输入左上角+右下角的坐标为:2,3,7,5 。水平翻转后,则元素 a[3][4]的值在新数组保存在元素 a[_______][_____](填写下标)中。
(2)代码如下并完成填空。#生成 n*n 的矩阵
import random
n=int(input(‘输入 n,产生 n*n 的方阵:’ ))
a=[[random.randint(1,9) for i in range(n)] for j in range(n)]
for i in a:
print(i)
print()
x,y=[],[]
xy=input("请输入左上角+右下角坐标:") #输入左上角坐标+右下角坐标,用逗号分隔数字。如:"2,1,14,13"
xy=xy+","
c,j=0,0
for i in range(len(xy)):
if xy[i]==",":
if_____________:
x.append(int(xy[j:i]))
else:
y.append(int(xy[j:i]))
_________
c=c+1
for i in range(y[0],y[1]+1,1):
for j in range(x[0],(x[0]+x[1])//2+1,1):
a[i][j],a[i][_____]=a[i][_________],a[i][j]
for i in range(len(a)):
print(a[i])