内容正文:
北仑中学2023学年第二学期高一年级期中考试技术试卷
(全年级+外高班使用)
命题:高一技术备课组 审题:高一技术备课组
第一部分:信息技术(50分)
一、选择题(本大题共12小题,每题2分,共24分。每题只有一个正确答案,多选不选错选均不给分)
1. 下列有关数据与信息的说法,不正确的是( )
A. 数据是对客观事物的符号表示 B. 数据可作为信息的载体
C. 数据经过解释后产生的意义就是信息 D. 计算机中保存的数据可以是未经数字化的
2. 下列有关大数据的说法,不正确的是( )
A. 大数据要分析的是抽样数据,而不是全体数据
B. 大数据的速度快不仅指数据产生的速度快,还指数据处理的速度快
C. 大数据不再追求个别数据的精确性,允许数据混杂
D. 大数据价值密度高低与数据总量的大小成反比
3. 下列有关人工智能的说法不正确的是( )
A. 目前性能表现优越的深度学习是联结主义方法的典型代表
B. IBM将“沃森”的智能能力从益智游戏领域移植到了医疗领域,属于混合增强智能
C. 人工智能技术推动人类社会进步的同时,也可能威胁人类安全
D. 图灵机是一个理论上的计算模型
4. 有两幅BMP格式图像,A图像参数为800×600像素,24位真彩色,B图像参数为400×300像素,256级灰度,则图像A和B的存储容量之比为( )
A. 6:1 B. 12:1 C. 3:4 D. 3:8
5. 使用UltraEdit软件查看“Hello,北仑中学!”的内码,部分界面如图所示。下列说法正确的是( )
A. 小写字母“o”的二进制内码是01101111
B. 使用不同输入法输入“北仑中学”,其内码可能不同
C. 字符“!”的内码占1个字节
D. 大写字母“H”的内码值为48H,可推得大写字母“J”的内码值为50H
6. 某声音模拟信号的采样及量化函数模型如题图所示,下列说法正确的是( )
A. 图中纵坐标划分得越细表示采样频率越高,保真度越高
B. 图中整个幅度分为0~7级,其量化位数至少为8位
C. 图中各采样点的量化值不同,但其量化位数相同
D. 声音数字化过程是将离散的模拟信号转换成连续的数字信号
7. 自然数n转换为二进制数为4位数,且该二进制的末位为“0”,下列说法正确的是( )
A. 无法确定n是奇数还是偶数 B. n的值一定大于14
C. (n+1)%2的结果一定是1 D. n转化为十六进制一定大于AH
8. 下列Python表达式的值为整数6的是( )
A. float(6) B. str(6) C. 17%3**9//2-2 D. abs(int(-5.8))
9. 已知变量s="2024china",则表达式s[-1]+s[2]*2的值是( )
A. "a4" B. "a22" C. "n22" D. "a0"
10. 有下列Python程序段:
dict={1:"p",2:"y",3:"t",4:"h",5:"o",6:"n"}
num=[4,2,1,5]
result=""
for i in num:
result+=dict[i]
print(result)
执行该程序段后,result的值为是( )
A. "hypo" B. "opyh" C. "nyto" D. "otyn"
11. 有下列Python程序段:
import random
s=input("请输入字符串:")
x=random.randint(3,6)
n=len(s)
if len(s[0:x])<len(s[x:n]):
r=s[x:n]+s[0:x]
else:
r=s[0:x]+s[x:n]
print(r)
执行该程序段,若输入“helloworld”(不包含双引号),则输出的结果不可能的是( )
A. loworldhel B. oworldhell C. helloworld D. worldhello
12. 有下列Python程序段:
a=[3,7,8,2,19,10,16,12]
n=len(a)
for i in range(2):
k=i
for j in range(i+1,n):
if a[k]<a[j]:
k=j
if i!=k:
a[i],a[k]=a[k],a[i]
下列说法不正确的是( )
A. 程序段执行后,列表a中的元素为[19,16,8,2,3,10,7,12]
B. 代码“for i in range(2):”等价于“for i in range(0,2):”
C. 程序段执行后,变量k值为7
D. 将代码“if i!=k:”修改为“if k>i:”,不会影响程序的运行结果
二、非选择题(本大题共3小题,其中第13题10分,第14题8分,第15题8分,共26分)
13. 编写一个查找替换功能的 Python程序,功能如下:输入原文、查找内容和替换内容,对原文进行检索,若找到,则进行替换并统计替换的次数,最后输出替换后的结果;若找不到,则输出“查找内容不存在!”。程序运行界面如下图所示:
实现上述功能的Python程序如下,请回答下列问题:
(1)若原文内容为“We put the bed in the bedroom.”(不包含引号),若查找内容为bed,替换内容为chair,则替换的次数为____。
(2)请在划线处填入合适的代码。
text=input("请输入原文:")
key=input("请输入查找内容:")
rep=input("请输入替换内容:")
result=""; count=i=0; n=len(text)
while i<n-len(key)+1:
s=text[i:i+len(key)]
if ①____:
result+=rep
count+= 1
②____
else:
result+=text[i]
i+=1
result+= ③____
if count>0:
print("替换的次数为:", ④____ )
print("替换后的结果为:"+result)
else:
print("查找内容不存在!")
14. 用英文字母A~D数字字符0~9进行编码,编码规则如下表所示:
数字字符
0
1
…
7
8
9
二进制值
0
0
0
0
0
0
0
1
…
0
1
1
1
1
0
0
0
1
0
0
1
对应编码
A
A
A
B
…
B
D
C
A
C
B
例如,数字字符串“179”的编码为“ABBDCB”。
用Python程序实现上述编码,功能如下:输入待编码的一串数字字符,输出编码结果,程序运行界面如图所示。
实现上述功能的 Python程序如下,请回答下列问题:
(1)运行该程序,若输入的数字字符串为“536”,则输出的编码结果为____
(2)请在程序划线处填入合适的代码。
def dtob(x):
st=""
for i in range(4):
r=x%2
①____
x=x//2
return st
code={'00':'A','01':'B','10':'C','11':'D'}
s=input('请输入数字字符串:')
result=""
for i in range(len(s)):
②____
if '0'<=ch<='9':
ans=dtob(int(ch))
③____
else:
break
if result!="":
print('编码结果为:',result)
else:
print('输入有误!')
15. 答题卡的准考证填涂区域如图1所示,将该图以行的方式进行编码,未填涂的地方用0表示,填涂的地方用1表示,则第1行编码是:000110000,第2行编码是:000000001,……,最后1行(第10行)编码是:100000000。由于每一行的编码都是9位二进制,所以,将每一行编码前后连接起来,可以得到一个长度为90的二进制字符串。
图1 图2
在文件codes.txt(如图2所示)中,保存了某班所有同学的姓名和准考证的90位长度二进制编码,请设计算法,解析出每一位同学的准考证号,并将解析结果保存在文件zkzh.txt(如图3所示)文件中(注:由于填涂错误,可能导致某些同学的编码无法解析出对应的准考证号)。实现上述功能的python代码如下,请回答下列问题:
图3
def jiexi(code): #将二进制编码字符串解析准考证号字符串
n=len(code)
if n!=90:
return 'Error!'
else:
s,t='',0
for i in range(n-1,①____,-1):
c=0
for j in range(i,-1,-9):
if code[j]=='1':
c+=1
②____
if :
return 'Error!'
else:
s=str(t)+s
return s
#主程序
fin=open('codes.txt','r')
fout=open('zkzh.txt','w')
for info in fin:
info=info.strip() #strip()清除字符串末尾的换行标记
info_list=info.split(',') #split()将字符串分割为字符串列表
fout.write(info_list[0]+',')
fout.write (③____+'
') #'
'表示换行
fin.close()
fout.close()
(1)请划线处填入合适代码。
(2)加框处代码有误,应修改为____。
第1页/共1页
学科网(北京)股份有限公司
$$
北仑中学2023学年第二学期高一年级期中考试技术试卷
(全年级+外高班使用)
命题:高一技术备课组 审题:高一技术备课组
第一部分:信息技术(50分)
一、选择题(本大题共12小题,每题2分,共24分。每题只有一个正确答案,多选不选错选均不给分)
1. 下列有关数据与信息的说法,不正确的是( )
A. 数据是对客观事物的符号表示 B. 数据可作为信息的载体
C. 数据经过解释后产生的意义就是信息 D. 计算机中保存的数据可以是未经数字化的
【答案】D
【解析】
【详解】本题考查的是数据与信息相关知识。计算机处理和存储的信息都是以数字化形式存在的,即经过数字化过程的数据。未经数字化的数据不能直接存储在计算机中。因此,选项D的说法不正确。选项A、B、C描述了数据和信息之间的关系和处理过程,均属于正确的表述。故本题应选D。
2. 下列有关大数据的说法,不正确的是( )
A. 大数据要分析的是抽样数据,而不是全体数据
B. 大数据的速度快不仅指数据产生的速度快,还指数据处理的速度快
C. 大数据不再追求个别数据的精确性,允许数据混杂
D. 大数据价值密度的高低与数据总量的大小成反比
【答案】A
【解析】
【详解】本题考查的是大数据特征。大数据的特征:(1)从互联网产生大数据的角度来看,大数据具有“4V”特征:大量(Volume)、多样(Variety)、低价值密度(Value)、高速(Velocity)(2)从互联网思维的角度来看,大数据具有三个特征:样本渐趋于总体,精确让位于模糊,相关性重于因果。(3)从大数据存储与计算的角度来看,大数据具有两个特征:分布式存储和分布式并行计算。故本题应选A。
3. 下列有关人工智能的说法不正确的是( )
A. 目前性能表现优越的深度学习是联结主义方法的典型代表
B. IBM将“沃森”的智能能力从益智游戏领域移植到了医疗领域,属于混合增强智能
C. 人工智能技术推动人类社会进步的同时,也可能威胁人类安全
D. 图灵机是一个理论上的计算模型
【答案】B
【解析】
【详解】本题考查的是人工智能。将“沃森”的智能能力从益智游戏移植到医疗领域,属于跨领域人工智能的应用,故本题选B选项。
4. 有两幅BMP格式图像,A图像参数为800×600像素,24位真彩色,B图像参数为400×300像素,256级灰度,则图像A和B的存储容量之比为( )
A. 6:1 B. 12:1 C. 3:4 D. 3:8
【答案】B
【解析】
【分析】
【详解】本题考查的是图像容量的计算。图像的容量=分辨率*色彩位数。图像A和B的容量比=(800*600*24)/(400*300*8)=12/1,故答案为B。
5. 使用UltraEdit软件查看“Hello,北仑中学!”的内码,部分界面如图所示。下列说法正确的是( )
A. 小写字母“o”的二进制内码是01101111
B. 使用不同的输入法输入“北仑中学”,其内码可能不同
C. 字符“!”内码占1个字节
D. 大写字母“H”的内码值为48H,可推得大写字母“J”的内码值为50H
【答案】A
【解析】
【详解】本题考查的是编码。A. 小写字母“o”的内码是6F,转换为二进制是01101111,正确。B. “北仑中学”使用不同输入法输入,其在文件中实际存储的编码是相同的,通常是UTF-8或GBK等,内码保持一致,错误。C. 字符“!”的内码是A3 A1,占2个字节,错误。D. 大写字母“H”的内码值确实是48H,但大写字母是按连续顺序排列,“I”是49H,而“J”是4AH,不是50H,错误。故本题应选A。
6. 某声音模拟信号的采样及量化函数模型如题图所示,下列说法正确的是( )
A. 图中纵坐标划分得越细表示采样频率越高,保真度越高
B. 图中整个幅度分为0~7级,其量化位数至少为8位
C. 图中各采样点的量化值不同,但其量化位数相同
D. 声音数字化过程是将离散的模拟信号转换成连续的数字信号
【答案】C
【解析】
【详解】本题主要考查声音数字化。图中横坐标划分得越细表示采样频率越高,保真度越高;图中整个幅度分为0~7级,其量化位数至少为3位;图中各采样点的量化值不同,但其量化位数相同;声音数字化过程是将连续的模拟信号转换成离散的数字信号,故本题选C选项。
7. 自然数n转换为二进制数为4位数,且该二进制的末位为“0”,下列说法正确的是( )
A. 无法确定n是奇数还是偶数 B. n的值一定大于14
C. (n+1)%2的结果一定是1 D. n转化为十六进制一定大于AH
【答案】C
【解析】
【详解】本题考查的是进制数。该二进制的末位为“0”,故可以确定n是偶数,选项A说法错误;n+1是奇数,故(n+1)%2的结果一定是1,选项C正确;最小4位二进制数为:1000,故n最小是8,故选项BD说法错误。
8. 下列Python表达式的值为整数6的是( )
A. float(6) B. str(6) C. 17%3**9//2-2 D. abs(int(-5.8))
【答案】C
【解析】
【详解】本题考查的是Python表达式。float(6) 的值为浮点数 6.0,因此不是整数6;str(6) 的值为字符串 ‘6’,因此不是整数6;17%3**9//2-2 通过计算得:3**9 是 19683,17%19683 是 17,17//2 是 8,然后 8-2 是 6。因此结果为整数6;abs(int(-5.8)) 先将 -5.8 转换为整数 -5,然后取绝对值为 5,不是整数6。故本题应选C。
9. 已知变量s="2024china",则表达式s[-1]+s[2]*2的值是( )
A. "a4" B. "a22" C. "n22" D. "a0"
【答案】B
【解析】
【详解】本题考查的是Python表达式。变量s="2024china",s[-1]表示字符串中最后一个字符,即’a’。s[2]表示字符串中索引为2的字符,即’2’。s[2]*2表示将字符’2’重复两次,得到’22’。因此,s[-1]+s[2]*2的值是’a22’。故选B。
10. 有下列Python程序段:
dict={1:"p",2:"y",3:"t",4:"h",5:"o",6:"n"}
num=[4,2,1,5]
result=""
for i in num:
result+=dict[i]
print(result)
执行该程序段后,result的值为是( )
A. "hypo" B. "opyh" C. "nyto" D. "otyn"
【答案】A
【解析】
【详解】本题主要考查Python程序的执行。分析程序可知,通过循环按照num中的数在字典dict中取对应的键值,4、2、1、5分别对应的键值是"h"、"y"、"p"、"o",故执行该程序段后,result的值为是"hypo",故本题选A选项。
11. 有下列Python程序段:
import random
s=input("请输入字符串:")
x=random.randint(3,6)
n=len(s)
if len(s[0:x])<len(s[x:n]):
r=s[x:n]+s[0:x]
else:
r=s[0:x]+s[x:n]
print(r)
执行该程序段,若输入“helloworld”(不包含双引号),则输出的结果不可能的是( )
A. loworldhel B. oworldhell C. helloworld D. worldhello
【答案】D
【解析】
【详解】本题考查的是python程序的运行。由运行结果可以看出选项D符合题意。
random.randint(参数1,参数2),参数1、参数2必须是整数,函数返回参数1和参数2之间的任意整数。列表中的冒号和相关参数list[start:end:step],start是起始位置,end是结束位置,step是步长。当x=3时,输出的是loworldhel,当x=4时,输出的是oworldhell,当x=5时,输出的是helloworld。
12. 有下列Python程序段:
a=[3,7,8,2,19,10,16,12]
n=len(a)
for i in range(2):
k=i
for j in range(i+1,n):
if a[k]<a[j]:
k=j
if i!=k:
a[i],a[k]=a[k],a[i]
下列说法不正确的是( )
A. 程序段执行后,列表a中的元素为[19,16,8,2,3,10,7,12]
B. 代码“for i in range(2):”等价于“for i in range(0,2):”
C. 程序段执行后,变量k的值为7
D. 将代码“if i!=k:”修改为“if k>i:”,不会影响程序的运行结果
【答案】C
【解析】
【详解】本题考查的是Python循环语句。本题是选择排序的变式,只比较两趟,最大的值放在最左边,故程序段执行后,列表a中的元素为[19,16,8,2,3,10,7,12],选项A说法正确;range(2),默认的起始值为0,故选项B说法正确;第二大数字是16,在列表的第6位,故程序段执行后,变量k的值为6,选项C说法错误;从左到右进行比较,如果找到比i位置大的数,则进行交换,故产生交换的条件也可以是k>i,选项D说法正确。
二、非选择题(本大题共3小题,其中第13题10分,第14题8分,第15题8分,共26分)
13. 编写一个查找替换功能的 Python程序,功能如下:输入原文、查找内容和替换内容,对原文进行检索,若找到,则进行替换并统计替换的次数,最后输出替换后的结果;若找不到,则输出“查找内容不存在!”。程序运行界面如下图所示:
实现上述功能Python程序如下,请回答下列问题:
(1)若原文内容为“We put the bed in the bedroom.”(不包含引号),若查找内容为bed,替换内容为chair,则替换次数为____。
(2)请在划线处填入合适的代码。
text=input("请输入原文:")
key=input("请输入查找内容:")
rep=input("请输入替换内容:")
result=""; count=i=0; n=len(text)
while i<n-len(key)+1:
s=text[i:i+len(key)]
if ①____:
result+=rep
count+= 1
②____
else:
result+=text[i]
i+=1
result+= ③____
if count>0:
print("替换的次数为:", ④____ )
print("替换后的结果为:"+result)
else:
print("查找内容不存在!")
【答案】 ①. 2 ②. s==key ③. i=i+len(key) ④. text[i::] 或 text[i:n] 或其它等价答案 ⑤. count
【解析】
【详解】本题考查Python程序设计相关内容。
(1)把bed和bedroom中的bed都替换成chair,则替换次数为2,故本题答案是:2。
(2)①处,由 result+=rep可知这里进行替换,即条件出是找到查找内容,故此处应为:s==key;②处,获取下一个字符串的位置,即i+len(key),故此处答案是:i=i+len(key);③处,将剩下的字符连接到新字符串中,故此处应为:text[i::] 或 text[i:n] 或其它等价答案;④处,变量count统计替换次数,故此处应为:count。
14. 用英文字母A~D数字字符0~9进行编码,编码规则如下表所示:
数字字符
0
1
…
7
8
9
二进制值
0
0
0
0
0
0
0
1
…
0
1
1
1
1
0
0
0
1
0
0
1
对应编码
A
A
A
B
…
B
D
C
A
C
B
例如,数字字符串“179”的编码为“ABBDCB”。
用Python程序实现上述编码,功能如下:输入待编码的一串数字字符,输出编码结果,程序运行界面如图所示。
实现上述功能的 Python程序如下,请回答下列问题:
(1)运行该程序,若输入的数字字符串为“536”,则输出的编码结果为____
(2)请在程序划线处填入合适的代码。
def dtob(x):
st=""
for i in range(4):
r=x%2
①____
x=x//2
return st
code={'00':'A','01':'B','10':'C','11':'D'}
s=input('请输入数字字符串:')
result=""
for i in range(len(s)):
②____
if '0'<=ch<='9':
ans=dtob(int(ch))
③____
else:
break
if result!="":
print('编码结果为:',result)
else:
print('输入有误!')
【答案】 ①. BBADBC ②. st=str(r)+st ③. ch=s[i] ④. result=result+code[ans[0:2]]+code[ans[2:4]] 或 result=result+code[ans[0:2]]+code[ans[-2:4]] 或其它等价答案
【解析】
【详解】本题考查的是Python综合应用。
(1)根据编码规律可知输入的数字字符串为“536”,则输出的编码结果为BBADBC。
(2)dtob是自定义一个十进制数转换为二进制数的功能。采用除2取余,倒序输出。故第一空应为:st=str(r)+st;由if '9'>=ch>='0'可知,上一步应该是逐个取输入的字符串,故第二空为:ch=s[i];将每个数字转换为四位二进制数,每两位二进制数转换为字母,故第三空应为:result=result+code[ans[0:2]]+code[ans[2:4]] 或 result=result+code[ans[0:2]]+code[ans[-2:4]] 或其它等价答案。
15. 答题卡的准考证填涂区域如图1所示,将该图以行的方式进行编码,未填涂的地方用0表示,填涂的地方用1表示,则第1行编码是:000110000,第2行编码是:000000001,……,最后1行(第10行)编码是:100000000。由于每一行的编码都是9位二进制,所以,将每一行编码前后连接起来,可以得到一个长度为90的二进制字符串。
图1 图2
在文件codes.txt(如图2所示)中,保存了某班所有同学的姓名和准考证的90位长度二进制编码,请设计算法,解析出每一位同学的准考证号,并将解析结果保存在文件zkzh.txt(如图3所示)文件中(注:由于填涂错误,可能导致某些同学的编码无法解析出对应的准考证号)。实现上述功能的python代码如下,请回答下列问题:
图3
def jiexi(code): #将二进制编码字符串解析为准考证号字符串
n=len(code)
if n!=90:
return 'Error!'
else:
s,t='',0
for i in range(n-1,①____,-1):
c=0
for j in range(i-1,-9):
if code[j]=='1':
c+=1
②____
if :
return 'Error!'
else:
s=str(t)+s
return s
#主程序
fin=open('codes.txt','r')
fout=open('zkzh.txt','w')
for info in fin:
info=info.strip() #strip()清除字符串末尾的换行标记
info_list=info.split(',') #split()将字符串分割字符串列表
fout.write(info_list[0]+',')
fout.write (③____+'
') #'
'表示换行
fin.close()
fout.close()
(1)请在划线处填入合适代码。
(2)加框处代码有误,应修改为____。
【答案】 ①. n-10 ②. t=j//9 ③. jiexi(info_list[1]) ④. c!=1
【解析】
【详解】本题考查简单算法的程序实现。
①处答案为n-10,在函数 jiexi 中,内层循环是通过步长为-9,逐个向前取同一列中的10个编码数据,由于一共有9列数据,所以需要通过外层循环从二进制编码字符串的末尾开始,一位一位往前遍历完九列数据的最末尾字符为止(也就是往前遍历到九个字符为止),以便于内层循环解析出每一列对应的准考证号数字。
②处答案为t=j//9;通过s=str(t)+s可知,t是对应的每一列编码的数字,而这个数字与准考证编码的索引存在联系,由于每一行编码都有九个,所以,若该数字为0,那么这个准考证号编码的索引一定位于第一行,索引即0到8;同理可得若这个数字为9,则这个准考证号编码的索引一定位于第十行,索引即81到89。
③处答案为jiexi(info_list[1]),在主程序中,由于已经从文件 codes.txt 中读取了每一条同学信息)并且已经被分割为字符串列表保存在info_list中,首先将姓名写入到输出文件zkzh.txt 中,然后需要调用jiexi 函数解析出该同学的准考证号,并将其写入到文件中。所以此处应该调用 jiexi 函数并传入当前同学的二进制编码(即 info_list[1])来获取解析后的准考证号。
④处答案为c!=1,此处判断准考证编码是否填涂错误,若填涂错误,即每一列填涂的方块数量c会不等于1(多涂或者没涂)。
第1页/共1页
学科网(北京)股份有限公司
$$