内容正文:
绝密★考试结束前
苍南中学高一下期末考
技术学科 试题
考生须知:
1.本卷共12页满分100分,考试时间90分钟;
2.答题前,在答题卷指定区域填写班级、姓名、考场号、座位号及准考证号并填涂相应数字.
3.所有答案必须写在答题纸上,写在试卷上无效;
4.考试结束后,只需上交答题纸。
第一部分 信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1. 有下列说法:
①解不等式x2-4>0的全部实数根
②利用公式s=∏r2计算半径为4cm圆的面积为16∏cm2
③从温州到上海,可以先乘飞机到北京,再坐高铁抵达上海
④计算宇宙的面积
其中属于算法的是( )
A. ①② B. ②③ C. ③④ D. ①④
2. 设计一个算法,验证冰雹猜想,即对于任意一个正整数n,如果n是偶数,则除以2;如果n是奇数,则乘3加1。按照这个方式运算下去,最终必然得到1。
验证上述猜想的算法流程图如图所示,虚线框①处的算法控制结构是( )
A. 顺序结构 B. 分支结构 C. 循环结构 D. 树形结构
3. 设计一个算法,验证冰雹猜想,即对于任意一个正整数n,如果n是偶数,则除以2;如果n是奇数,则乘3加1。按照这个方式运算下去,最终必然得到1。
用Python程序实现虚线框②处的描述,下列选项不正确的是( )
A. B. C. D.
4. 有100位同学排成一列,从第1位同学开始按1至100的序号进行报数,所报序号含有6的同学需要出列。则判断序号x是否出列的Python表达式是( )
A. x%10==6 B. x//10==6
C. x%10==6 and x//10==6 D. x%10==6 or x//10==6
5. 有如下 Python 程序段:
foods = ['milk','eggs','bread','oats','waffle','sandwich']
print(foods[2:-1][2][-1])
输出结果是( )
A. waffle B. bread C. e D. d
6. 某研究所为研究疾病与年龄的关系,对50个病人的诊断记录进行整理和分析,部分数据如图所示。
图中所示数据,年龄列的数据格式不一致,为了便于数据分析,下列操作合适的是( )
A 删除“年龄”列数据
B. 将“年龄”列含有中文的记录删除
C. 将“年龄”列数据转为文本类型
D. 将“年龄”列含有汉字记录修改为只包含阿拉伯数字的年龄
7. 某研究所为研究疾病与年龄的关系,对50个病人的诊断记录进行整理和分析,部分数据如图所示。
已知COUNTIF函数用于对指定区域中符合指定条件的单元格计数。如:=COUNTIF(C2:C51,F1),表示计算C2:C51区域中疾病为“疾病A”的人数。为统计五种疾病的患者人数,选中单元格F2输入公式,然后利用自动填充完成G2:J2的人数计算,则F2单元格的计算公式是( )
A. =COUNTIF(C2:C51,F1) B. =COUNTIF($C2:$C51,F1) C. =COUNTIF(C2:C51,$F1) D. =COUNTIF($C2:$C51,$F1)
8. 有如下 Python 程序段:
money=float(input("购物总额:"))
if money >1000:
pay=(money-1000)*09+950
else:
pay=money*0.95
print('应付款:',pay)
若要测试所有分支结构的程序代码是否正确,下列测试数据中最恰当的是( )
A. 500,800 B. 800,1000 C. 1000,1200 D. 1200,1500
9. 有如下 Python 程序段:
s=0
n=1
while s<n*2:
s=s+n
n=n+1
print(s,n)
执行程序后,输出结果是( )
A. 6 4 B. 9 4 C. 10 5 D. 15 6
10. 编写Python程序,求调和级数的前n项之和有一分数序列,即求1+1/2+1/3+…+1/n的和,部分代码如下:
n=10
total=0
for i in range( ):
total+=1/i
print(total)
划线处代码是( )
A. 1,n+1 B. 1,n C. 2,n+1 D. 2,n
11. 下列程序的功能是:列表a中存放的是无重复的非负整数,找出其中的最大值max1和次大值max2。
max1=max2=0
for i in range(len(a)):
if a[i]>max1:
(1)
(2)
elif a[i]>max2:
(3)
print('最大值为:'+str(max1)+',次大值为:'+str(max2))
上述程序段中划线处可选语句为:
①max1 = a[i] ②max2 = a[i] ③max2 = max1 ④max1 = max2
则(1)、(2)、(3)处语句依次可为( )
A. ①④② B. ③①② C. ①②③ D. ①②④
12. 有如下Python程序:
dic = {"2":"ABC","3":"DEF","4":"GHI","5":"JKL","6":"MNO","7":"PQRS","8":"TUV","9":"WXYZ"}
s = input()
m = ""
t = 1
for i in range(1, len(s)):
if s[i] == s[i - 1]:
t += 1
elif s[i] == "#":
m = m + dic[s[i - 1]][t - 1]
t = 1
print(m)
执行该程序后输出“GET”,则输入的内容可能是( )
A. 5#44#9# B. 4#33#8# C. 3#22#7# D. 4#3#8#
二、非选择题(本大题共3小题,共26分,其中第13小题10分,第14小题8分,第15小题8分)
13. 某平台对新用户注册密码做如下限制:
Ⅰ.长度是8到20位,如果不符合会给出相应提示;
Ⅱ.逐一判断密码数字,如果是纯数字就给出错误提示。
回答下列问题:
(1)用Python编写检测密码是否符合要求的程序段如下:请在划线处填入合适代码。
def pure(s):
①____:
if not "0"<=ch<="9":
return False
②____
pwd=input("密码:")
if not 8<=len(pwd)<=20:
print("密码长度应为8到20位!")
▲ ③____:
print("密码不可以是纯数字")
else:
print("密码符合要求")
(2)▲处代码应填____(A.if/B.elif,单选,填字母)
(3)简述自定义函数pure的功能____
14. 为了凸显图像的轮廓与特征,可以对图像进行二值化处理。图像二值化是将图像上的像素的灰度值设置为0或1(0表示黑色,1表示白色)。小明设计图像二值化算法如下:
输入数据:将原图转换为灰度图,将每个像素的灰度值存入二维数组img中;
处理数据:如果一个像素的灰度值大于或等于阈值,则将该像素灰度值设置为1,否则设置为0;
输出数据:将处理后的数据以图像的形式呈现。
例如:部分图像二值化过程如图1所示。
图1
回答下列问题:
(1)根据题意,若阈值为100,则图1中第一行(虚线框处),二值化处理后的编码是____
(2)实现图像二值化的Python程序段如下,请在划线处填入合适的代码。
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
img=nparray(Image.open('①____').convert('L'))
key=int(input('请输入设定阈值:'))
rows,cols=img.shape
for i in range(rows):
for j in range(cols):
if ②____: #每个像素灰度值与阈值进行比较
img[i,j]=1
else:
img[i,j]=0
#图像输出程序略
(3)阈值为100的运行结果如图2所示,若输入阈值为50,运行程序后输出的图像有可能是▲____(单选,填字母)。
图2 A. B. C.
15. 小温编写了一个程序:输入一段英语短文,求该短文中出现次数最多的字母及次数(字母不区分大小写,结果以大写形式输出;若有多个字母,则全部输出)。程序运行结果如图所示:
(1)实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
wz=input("请输入一段英文:")
wz=wz.upper() #小写字母转换为大写字母
zf=[0]*26
for i in range(len(wz));
①____
if"A"<=ch<="Z":
n=ord(ch) - ord("A")
②____
maxzf=[]
maxn=0
for i in range(26):
if :
maxn=zf[i]
for i in range(26):
if zf[i]=maxn:
maxzf.append(③____)
print("出现次数最多的字母是",maxzf)
print("共出现",maxn,"次")
(2)代码中加框处语句“zf[i]>maxn”若改为“zf[i]>=maxn”,则对输出结果____(填:会/不会)产生影响。
第1页/共1页
学科网(北京)股份有限公司
$$
绝密★考试结束前
苍南中学高一下期末考
技术学科 试题
考生须知:
1.本卷共12页满分100分,考试时间90分钟;
2.答题前,在答题卷指定区域填写班级、姓名、考场号、座位号及准考证号并填涂相应数字.
3.所有答案必须写在答题纸上,写在试卷上无效;
4.考试结束后,只需上交答题纸。
第一部分 信息技术(共50分)
一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)
1. 有下列说法:
①解不等式x2-4>0的全部实数根
②利用公式s=∏r2计算半径为4cm的圆的面积为16∏cm2
③从温州到上海,可以先乘飞机到北京,再坐高铁抵达上海
④计算宇宙的面积
其中属于算法的是( )
A. ①② B. ②③ C. ③④ D. ①④
【答案】B
【解析】
【详解】本题考查算法相关内容。算法是指为解决某个问题而采取的有限个方法或步骤。算法的特征有:有穷性、确定性、可行性、有零个或多个输入、有一个或多个输出。①④不是算法,也不符合算法的特性。②③给出了解决相关问题的方法和步骤且符合算法的特性,是算法。故本题答案是B选项。
2. 设计一个算法,验证冰雹猜想,即对于任意一个正整数n,如果n是偶数,则除以2;如果n是奇数,则乘3加1。按照这个方式运算下去,最终必然得到1。
验证上述猜想的算法流程图如图所示,虚线框①处的算法控制结构是( )
A. 顺序结构 B. 分支结构 C. 循环结构 D. 树形结构
【答案】C
【解析】
【详解】本题考查算法流程图相关内容。常用的算法控制结构有:顺序结构、选择结构(分支结构)、循环结构。结合题目内容,分析流程图,虚线框①处:当n>1成立时,先执行执行虚线框②处、s<-s+str(n)+",",完成后再返回n>1判断框处执行,由此可知,该结构为循环结构。故本题答案是C选项。
3. 设计一个算法,验证冰雹猜想,即对于任意一个正整数n,如果n是偶数,则除以2;如果n是奇数,则乘3加1。按照这个方式运算下去,最终必然得到1。
用Python程序实现虚线框②处的描述,下列选项不正确的是( )
A. B. C. D.
【答案】A
【解析】
【详解】本题考查程序分析。
选项A,n%2!=1不能判断n是奇数,判断奇数的条件是n%2==1,故错误。其它选项均正确,故正确答案为:选项A。
4. 有100位同学排成一列,从第1位同学开始按1至100的序号进行报数,所报序号含有6的同学需要出列。则判断序号x是否出列的Python表达式是( )
A. x%10==6 B. x//10==6
C. x%10==6 and x//10==6 D. x%10==6 or x//10==6
【答案】D
【解析】
【详解】本题考查Python表达式相关内容。1至100的序号是否含有6,即个位数为6或十位数为6,其表达式为:x%10==6 or x//10==6。故本题答案是D选项。
5. 有如下 Python 程序段:
foods = ['milk''eggs','bread','oats','waffle','sandwich']
print(foods[2:-1][2][-1])
输出结果是( )
A. waffle B. bread C. e D. d
【答案】C
【解析】
【详解】本题考查Python程序设计相关内容。foods为列表,foods[2:-1]值为['bread', 'oats', 'waffle'],foods[2:-1][2]值为'waffle',则foods[2:-1][2][-1]值为'e',故本题答案是C选项。
6. 某研究所为研究疾病与年龄的关系,对50个病人的诊断记录进行整理和分析,部分数据如图所示。
图中所示数据,年龄列的数据格式不一致,为了便于数据分析,下列操作合适的是( )
A. 删除“年龄”列数据
B. 将“年龄”列含有中文的记录删除
C. 将“年龄”列数据转为文本类型
D. 将“年龄”列含有汉字的记录修改为只包含阿拉伯数字的年龄
【答案】D
【解析】
【详解】本题考查电子表格操作相关内容。分析题目内容,诊断记录中病人的年龄可以作为研究疾病的参照数据,是十分必要的,不应删除,而应按照规范格式进行修改,可以修改为只包含阿拉伯数字的年龄。故本题答案是D选项。
7. 某研究所为研究疾病与年龄的关系,对50个病人的诊断记录进行整理和分析,部分数据如图所示。
已知COUNTIF函数用于对指定区域中符合指定条件的单元格计数。如:=COUNTIF(C2:C51,F1),表示计算C2:C51区域中疾病为“疾病A”的人数。为统计五种疾病的患者人数,选中单元格F2输入公式,然后利用自动填充完成G2:J2的人数计算,则F2单元格的计算公式是( )
A. =COUNTIF(C2:C51,F1) B. =COUNTIF($C2:$C51,F1) C. =COUNTIF(C2:C51,$F1) D. =COUNTIF($C2:$C51,$F1)
【答案】B
【解析】
【详解】本题考查Excel应用。
需要保证公式填充时,数据区域列值不能随着填充位置发生变化,故要固定数据区域C2:C51的列,要使用列的绝对引用。函数中参数F1,要随着填充的位置变化而统计不同的疾病数量,故需要相对引用。故正确答案为:选项B。
8. 有如下 Python 程序段:
money=float(input("购物总额:"))
if money >1000:
pay=(money-1000)*0.9+950
else:
pay=money*095
print('应付款:',pay)
若要测试所有分支结构的程序代码是否正确,下列测试数据中最恰当的是( )
A. 500,800 B. 800,1000 C. 1000,1200 D. 1200,1500
【答案】C
【解析】
【详解】本题考查Python程序设计相关内容。若要测试所有分支结构的程序代码是否正确,则应在两个范围内分别取值,即大于1000的值和小于等于1000的值,四个选项中,只有C选项(1000,1200)符合要求。故本题答案是C选项。
9 有如下 Python 程序段:
s=0
n=1
while s<n*2:
s=s+n
n=n+1
print(s,n)
执行程序后,输出结果是( )
A. 6 4 B. 9 4 C. 10 5 D. 15 6
【答案】C
【解析】
【详解】本题考查程序分析。
初始化s=0,n=1。每次循环n累加1,s累加n。当累加n到s结果为10时,故s=1+2+3+4,此时n为5,退出循环。故正确答案为:选项C。
10. 编写Python程序,求调和级数的前n项之和有一分数序列,即求1+1/2+1/3+…+1/n的和,部分代码如下:
n=10
total=0
for i in range( ):
total+=1/i
print(total)
划线处代码是( )
A. 1,n+1 B. 1,n C. 2,n+1 D. 2,n
【答案】A
【解析】
【详解】本题考查Python程序设计相关内容。分析程序段,其功能是计算1+1/2+1/3+…+1/n的和,由“total+=1/i”知,变量i的作用有:(1)作为计数器控制循环;(2)作为加数的分母参与计算。下划线处缺少变量i的取值范围[1,n],结合range函数特点,此处应填写:1,n+1,故本题答案是A选项。
11. 下列程序的功能是:列表a中存放的是无重复的非负整数,找出其中的最大值max1和次大值max2。
max1=max2=0
for i in range(len(a)):
if a[i]>max1:
(1)
(2)
elif a[i]>max2:
(3)
print('最大值为:'+str(max1)+',次大值为:'+str(max2))
上述程序段中划线处可选语句为:
①max1 = a[i] ②max2 = a[i] ③max2 = max1 ④max1 = max2
则(1)、(2)、(3)处语句依次可为( )
A ①④② B. ③①② C. ①②③ D. ①②④
【答案】B
【解析】
【详解】本题考查程序分析。
当a[i]>最大值max1,则需要更新最大值,此时的最大值转变成次大值。在更新最大值之前,需要更新次大值。故(1)处为max2 = max1。排除选项A、C、D。故正确答案为:选项B。
12. 有如下Python程序:
dic = {"2":"ABC","3":"DEF","4":"GHI","5":"JKL","6":"MNO","7":"PQRS","8":"TUV","9":"WXYZ"}
s = input()
m = ""
t = 1
for i in range(1, len(s)):
if s[i] == s[i - 1]:
t += 1
elif s[i] == "#":
m = m + dic[s[i - 1]][t - 1]
t = 1
print(m)
执行该程序后输出“GET”,则输入的内容可能是( )
A. 5#44#9# B. 4#33#8# C. 3#22#7# D. 4#3#8#
【答案】B
【解析】
【详解】本题考查Python程序。给定了一个字典dic,将数字映射到相应的字母组合。输入一个字符串s。初始化空字符串m和计数变量t。使用for循环遍历字符串s的每个字符(从第二个字符开始):如果当前字符与前一个字符相同,增加计数变量t。如果当前字符是#,将dic中前一个字符对应的字母组合的第t-1个字母添加到结果字符串m中,并重置计数变量t为1。输出最终的字符串m。根据输出"GET",我们可以逆向推导输入字符串。具体地:G对应dic["4"][0],表示第4个键("4")对应的字母组合中的第1个字母。E对应dic["3"][1],表示第3个键("3")对应的字母组合中的第2个字母。T对应dic["8"][0],表示第8个键("8")对应的字母组合中的第1个字母。因此,输入字符串应为"4#33#8#"。故答案为:B。
二、非选择题(本大题共3小题,共26分,其中第13小题10分,第14小题8分,第15小题8分)
13. 某平台对新用户注册密码做如下限制:
Ⅰ.长度是8到20位,如果不符合会给出相应提示;
Ⅱ.逐一判断密码数字,如果是纯数字就给出错误提示。
回答下列问题:
(1)用Python编写检测密码是否符合要求的程序段如下:请在划线处填入合适代码。
def pure(s):
①____:
if not "0"<=ch<="9":
return False
②____
pwd=input("密码:")
if not 8<=len(pwd)<=20:
print("密码长度应为8到20位!")
▲ ③____:
print("密码不可以是纯数字")
else:
print("密码符合要求")
(2)▲处代码应填____(A.if/B.elif,单选,填字母)
(3)简述自定义函数pure的功能____
【答案】 ①. for ch in s ②. return True ③. pure(pwd) ④. B ⑤. 判断密码是否是纯数字,如果是的话返回True,不是的话返回False
【解析】
【详解】本题考查Python程序设计相关内容。分析程序段,推知:
(1)①处,结合下文,此处需要通过循环获取用户密码的每一位字符ch,去判断其是否符合要求,故此处答案是:for ch in s。②处,上文在判断出某个字符为非数字时返回False,反之,若所有字符均为数字时,应返回True,故此处答案是:return True。③结合上下文,若所有字符均为数字时,应给出错误提示,而判断密码是否为纯数字由函数pure实现,则此处应调用pure函数,故此处答案是:pure(pwd)。
(2)▲处上文出现if语句,下文出现else语句,由Python选择结构语法知识可以确定,此处缺少elif部分关键字,故本题答案是:B。
(3)结合题目内容及程序段,可知函数pure的功能是:判断密码是否是纯数字,如果是的话返回True,不是的话返回False。如答案所示。
14. 为了凸显图像的轮廓与特征,可以对图像进行二值化处理。图像二值化是将图像上的像素的灰度值设置为0或1(0表示黑色,1表示白色)。小明设计图像二值化算法如下:
输入数据:将原图转换为灰度图,将每个像素的灰度值存入二维数组img中;
处理数据:如果一个像素的灰度值大于或等于阈值,则将该像素灰度值设置为1,否则设置为0;
输出数据:将处理后的数据以图像的形式呈现。
例如:部分图像二值化过程如图1所示。
图1
回答下列问题:
(1)根据题意,若阈值为100,则图1中第一行(虚线框处),二值化处理后的编码是____
(2)实现图像二值化的Python程序段如下,请在划线处填入合适的代码。
from PIL import Image
import numpy as np
import matplotlib.pyplot as plt
img=np.array(Image.open('①____').convert('L'))
key=int(input('请输入设定阈值:'))
rows,cols=img.shape
for i in range(rows):
for j in range(cols):
if ②____: #每个像素灰度值与阈值进行比较
img[i,j]=1
else:
img[i,j]=0
#图像输出程序略
(3)阈值为100的运行结果如图2所示,若输入阈值为50,运行程序后输出的图像有可能是▲____(单选,填字母)。
图2 A. B. C.
【答案】 ①. 10011111 ②. deer.jpg ③. img[i,j]>=key ④. B
【解析】
【详解】本题考查Python程序设计相关内容。结合题目内容,分析程序段,推知:
(1)图1中第一行(虚线框处)8个数值中,只有第二、三个小于阈值100,其余均大于阈值,则二值化处理后的编码是:10011111,故本题答案是:10011111。
(2)②处,Python中的image.open函数是一个用于打开图像文件的函数。它可以打开多种格式的图像文件,包括JPEG、PNG、BMP等。此处需要调用open函数打开图片“deer.jpg”,故此处答案是:deer.jpg。③处,此处需要将每个像素灰度值与阈值进行比较,若大于等于阈值key,则编码img[i,j]为1,否则为0,故此处答案是:img[i,j]>=key。
(3)阈值是100时运行结果为图2,现在阈值是50,由于50小于100,图像将会有更多的部分为白色,选项中只有B图更白,故本题答案是:B。
15. 小温编写了一个程序:输入一段英语短文,求该短文中出现次数最多的字母及次数(字母不区分大小写,结果以大写形式输出;若有多个字母,则全部输出)。程序运行结果如图所示:
(1)实现上述功能的部分Python程序如下,请在划线处填入合适的代码。
wz=input("请输入一段英文:")
wz=wz.upper() #小写字母转换为大写字母
zf=[0]*26
for i in range(len(wz));
①____
if"A"<=ch<="Z":
n=ord(ch) - ord("A")
②____
maxzf=[]
maxn=0
for i in range(26):
if :
maxn=zf[i]
for i in range(26):
if zf[i]=maxn:
maxzf.append(③____)
print("出现次数最多字母是",maxzf)
print("共出现",maxn,"次")
(2)代码中加框处语句“zf[i]>maxn”若改为“zf[i]>=maxn”,则对输出结果____(填:会/不会)产生影响。
【答案】 ①. ch=wz[i] ②. zf[n]+=1 ③. chr(i+65) ④. 不会
【解析】
【详解】本题考查Python程序设计相关内容。结合题目内容,分析程序段,推知:
(1)①处,结合上下文,此处需要获取短文中的每个字符wz[i]并赋值给变量ch,故此处答案是:ch=wz[i]。②处,由“n=ord(ch) - ord("A")”知,n为大写字母对应的索引号,zf列表统计每个大写字母出现的次数,故此处答案是:zf[n]+=1。③处,上文第二个for循环以统计出字符出现的最多次数,此处所在循环的作用是将出现最多次数的字符添加到maxzf中,即:maxzf.append(chr(i+65)),故此处答案是:chr(i+65)。
(2)分析程序段,可知zf[i]>maxn与zf[i]>=maxn作用是相同的,都可以统计出字符出现的最多次数,故本题答案是:不会。
第1页/共1页
学科网(北京)股份有限公司
$$