浙江省余姚名校2023-2024学年高二上学期期中考试信息技术(选考)试题(Word版含答案)

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

浙江省余姚名校2023-2024学年高二上学期期中考试信息技术(选考)试题(Word版含答案)

资源简介

余姚中学2023学年第一学期期中考试高二技术(选考)试卷
信息技术部分答案
一、选择题(每题2分,共24分)
1 2 3 4 5 6 7 8 9 10 11 12
A D A B C C B B D B D B
二、非选择题(本大题共3小题,第13题6分,第14题8分,第15题12分,共26分)
13. ① num1*10+int(s[i]) (2分)
② s[j:] (2分)
③ num1+num2*x (2分)
14. (1) 删除标题行 (2分)
(2)① n=len(name_list) (2分)
② 0 (1分)
③ n-1 (1分)
④ grade[bj-1]-=1 (2分)
15. (1) 1 (2分)
(2)① x -sqrt(d * d - y * y) (2分)
② qj[k][0]>qj[j][0] or qj[k][0]==qj[j][0] and qj[k][1]>qj[j][1] (2分)
③ cur(3) D (2分)
(4) n-1 (2分)2023 学年
余姚中学 期中考试高二技术选考试卷 第一学期
第一部分:信息技术(共 50 分)
一、选择题(本大题共 12 小题, 每小题 2 分,共 24 分。在每小题给出的四个选项中, 只有一个符 合题目要求)
1. 下列关于人工智能的说法,不正确的是
A. 深度学习方法一般脱离数据进行学习
B. 采用行为主义方法的智能体通过与环境的交互学习提升智能
C. 符号主义人工智能的实现依赖对符号的推理和运算
D. 人工智能促进社会发展的同时也会带来一定的社会担忧
2. 下列有关大数据的说法,不正确的是
A. 处理大数据时, 一般采用分治思想
B. 社交网络数据可采用图计算进行处理
C. 利用大数据,可以对天气情况进行预测
D. 随着时间的流逝,流数据的价值一般会随之提高
3. 关于数据的说法,正确的是
A. 数字和数值属于数据
B. 数值包含数字,数字就是数值
C. 数字可以直接进行算术运算
D. 在计算机领域参与运算的数据都是数字
4. 数据类型可以分为
A.基本数据类型和原子数据类型 B.基本数据类型和结构数据类型
C.原子数据类型和编程数据类型 D.应用数据类型和结构数据类型
5. 在二维数组 a 中, a[3][1]表示的是第几行第几列的数据
A.第 1 行 3 列 B.第 3 行 1 列
C.第 4 行 2 列 D.第 2 行 4 列
6. 有如下Python程序段:
1
下列关于两个程序段的说法,正确的是
A. 程序1和程序2都使用了递归算法
B. 若问题规模为n,程序1和程序2的时间复杂度不同
C. 若程序1中问题规模为n,则n的值就是其循环执行的次数
D. 若程序2中自定义函数内的代码只保留①处语句,也能获取到目标值
7. 定义如下函数:
def move(n,a,b,c):
if n==1:
print(a,”->”,c)
return
move(n- 1,a,c,b)
move(1,a,b,c)
move(n- 1,b,a,c)
执行语句move(3,”A”,”B”,”C”),输出的第一行内容是
A .B->C B.A->C C.C->A D.A->B
8. 有如下Python程序段:
import random
def find(x,y):
m=(x+y+1)//2
if a[m]==key:
return m
if a[m]>key:
y=m- 1
else:
x=m+1
return find(x,y)
a=[2,4,6,8,10,12,14,16]
key=random.choice(a)
i=0;j=len(a)- 1
xb=find(i,j)
print(xb,key)
上述程序执行结束后,函数find被调用的最多次数是
A.3 B.4 C.5 D.6
9. 数组 a 中 存 储 着 全 校 学 生 的 学 号 和 BMI 信息,格式为 [[“0101”,19.2], [“0102”,18.5], [“0103”,20.1],…..]。其中每条数据的第一项为学号, 第二项为BMI值。数组a已经按学号升序
2
排序, 现要求按照BMI值进行降序排序, BMI相同的情况下仍然按照学号保持升序。则下列 程序段可以实现该功能的是
10. 有如下Python程序:
import random
a=[2,4,5,6,6,6,8,8,10,12]
key=int(random.random()*5+5)
i=0;j=9;s=0
while i<=j:
m=(i+j)//2
if a[m]<=key:
i=m+1
else:
j=m- 1
s+=m
程序运行后, s的值不可能是
A.10 B.14 C.19 D.22
11. 有如下Python程序段:
import random
a=[0]*6
i=0
while i<6:
a[i]=random.randint(1,5)*2
if a[i]==i*2:
a[i]=0
i+=1
elif a[i]%2==i%2:
a[i]=a[i]- 1
i+=1
3
print(a)
执行该程序后,输出的结果可能是
A.[11,0,3,0,0,0] B.[0,0,1,0,3,0]
C.[1,0,5,0,4,0] D.[3,0,5,0,5,0]
12. 有如下Python程序段:
a=[[1,1],[2,2],[3,3],[4,- 1]]
head=0
cur=a[head][1]
a[head][1]=- 1
while cur!=- 1:
p=a[cur][1]
a[cur][1]=head
head,cur=cur,p
则程序运行后, a的值为
A. [[1,1],[2,2],[3,3],[4,- 1]] B. [[1,- 1],[2,0],[3,1],[4,2]]
C. [[4,1],[3,2],[2,3],[1,- 1]] D. [[4,- 1],[3,0],[2,1],[1,2]]
二、非选择题(本大题共 3 小题, 其中第 13 题 6 分, 第 14 题 8 分, 第 15 题 12 分, 共 26 分。 )
13. 如下自定义函数实现一个加减法算式的运算, 要求输入一个只包含运算符“+”和运算符“- ” 的合法算式,输出算式的运算结果。具体程序如下,请在划线处填入合适的代码。
def fun(s):
num1=i=0
while iif s[i]>=“0 ” and s[i]<=“9”:
num1= ①
i+=1
elif s[i]==“+ ” or s[i]<=“- ”:
x=1
if s[i]==“-”:
x=- 1
num2=0;j=i+1
while jif s[j]>=“0 ” and s[j]<=“9”:
num2=mum2*10+int(s[j])
j+=1
elif s[j]==“+ ”or s[j]==“-”:
4
(

a
)return fun(str(num1+x*num2)+ ② )
if j==len(s):
return ③
14. 已知某年级有6个班级,所有学生名单存储在文件“name.csv”中(如图a所示),学校举行 某趣味活动项目中,需要每个班级抽3名代表参加比赛, 请编写一个随机抽取程序,执行效
果如图b。请回答以下问题:
(1) 加框处代码的作用是
(2) 实现上述功能的部分Python程序如下,请在划线处填写合适的代码。
import csv
import random
f=open(“name.csv” ,“r ”)
flines=csv.reader(f)
name_list=[]
m=6 #班级总数
total=18 #参赛总人数
for line in lines:
if line[0]== “班级”:
continue
name_list.append(line)

(

b
)flag=[False]*n
grade=[3]*m
i=0
while ip=random.randint( ② , ③ )
bj=int(name_list[p][0])
if flag[p]==False:
if grade[bj- 1]>0:
flag[p]=True

i+=1
print(“抽取名单为: ”)
print(“班级” ,“姓名”)
for i in range(n):
if flag[i]:
print(name_list[i][0],name_list[i][1])
f.close()
15. 某国计划在海岸线上安装雷达探测海上的岛屿。假设海岸线是一条无限的直线, 一边是陆地,
5
另一边是海洋。为了找到覆盖所有岛屿所需雷达装置的最小数量, 编写程序: 输入岛屿数量 n、雷达装置的覆盖距离d以及每个岛屿的位置(由x,y坐标值表示),若雷达能覆盖所有岛屿, 则输出所需雷达的最小数量;否则,输出“无法覆盖”。
第 15 题图
如第15题图所示海洋中有3个岛屿, 位置分别为(1,2) 、(-3,1) 、(2,1),雷达的覆盖距离为2,则 至少需要安装2个雷达装置,分别安装在(-2,0),(1,0)位置上。
(1)若上述雷达覆盖距离修改为3,则至少需要安装的雷达装置数为 (2)实现上述功能的Python程序如下,请在划线处填入合适的代码。
from math import sqrt
n = int(input('请输入岛屿的数量n:'))
d = int(input('请输入雷达的半径d:'))
# qj[i][0] 、qj[i][1]分别存储可以覆盖第i个岛屿的雷达,能安装的最左边和最右边位置 qj = [[0, 0] for i in range(n)]
flag = True
for i in range(n):
x = int(input('岛屿坐标x:'))
y = int(input('岛屿坐标y:'))
if y > d:
flag = False
break
qj[i][0] = ①
qj[i][1] = x + sqrt(d * d - y * y)
if flag == False:
print('无法覆盖')
else:
# 按左端点升序排序,左端点相同时按右端点升序排序
for i in range(n - 1):
k = i
for j in range(i + 1, n):
if ② :
k = j
ifk != i:
qj[k], qj[i] = qj[i], qj[k]
6
num = 1
cur = qj[0][1]
for i in range(1, n):
if cur > qj[i][1]:
cur = qj[i][1]
elif ③ :
num += 1
cur = qj[i][1]
print('安装的雷达数为: ', num)
(3)若将程序中加框处代码修改为 (单选:填字母),不影响的正确性。
A. i==n- 1 B. i==n C.id
(4)根据代码可知,对于n个岛屿,在进行排序时最多的交换次数为 。
7

展开更多......

收起↑

资源列表