浙江省浙北G2联合体2021-2022学年高二上学期信息技术期中联考试卷
试卷更新日期:2021-11-25 类型:期中考试
一、选择题(本大题共15小题,每小题2分,共30分)
-
1. 以下关于信息的说法不正确的是( )A、报纸上的图片和文字都是信息 B、信息是数据经过储存、分析、解释后产生的意义 C、香农认为,信息是用来消除随机不确定性的东西 D、进超市查验健康码的过程体现了信息的共享性2. 关于计算机中各种类型的数据,以下说法正确的是( )A、用计算机录制并存储一段声音,需要经历“数模转换”的过程 B、由于编码方式不同,图像文件具有BMP、JPEG、GIF等不同格式 C、位图是用基于数学方程的几何图元描述的,放大后不会失真 D、由反射率相差很大的黑条和白条排成的平行线图案叫做二维码3. 用UltraEdit观察字符“Python很优雅!”内码,部分截图如图所示。
以下说法正确的是( )
A、图中内码表示的字符中共有7个ASCII字符 B、图中“雅”的内码为C5 A3 C、可以推测小写字母“p”的内码为70H D、图中“!”内码用二进制表示为101000014. 一段未经压缩的Wave格式立体声音频,时长为4分钟,采样频率为44.1KHz,量化位数为16位,现将其另存为相同时长,采样频率为22.05KHz,量化位数为8位的单声道Wave格式音频,则原文件与新文件的存储容量之比为( )A、16:1 B、8:1 C、6:1 D、4:15. 下列关于数制的说法正确的是( )A、4位二进制数能表示的最大十进制数为16 B、某十六进制数的末位是“0”,则该数转换成十进制末位也是“0” C、在某二进制数的末尾添加一个“1”,则形成的新数是原数的2倍 D、某八位二进制数最高位是“1”,则它在内存中不可能表示一个ASCII编码的字符6. 通过对历史交易记录这个庞大数据库的观察,沃尔玛注意到,每当美国季节性飓风来临之前,不仅手电筒销量增加,而且含糖蛋挞销量也增加了。因此每当季节性飓风来临时,沃尔玛就会把含糖蛋挞与飓风用品摆放在一起,能够增加销量。以上材料最能体现的是( )A、大数据时代不一定强调因果关系的探求,而更注重相关性 B、大数据的价值密度低,能发挥作用的是其中的一小部分 C、大数据给生活带来便利的同时,也带来一些社会问题 D、大数据时代要分析的是全体数据,而不是抽样数据7. 某算法部分流程图如图所示。执行这部分流程,依次输入12、-5、29、18、7,则输出值是( )A、12 B、-5 C、29 D、78. 某算法的部分流程图如图所示,输入a的值23,字符串s初始化为空,执行这部分流程后,变量s的值是( )A、1110 B、1011 C、10111 D、111019. 假设x的值为4、y的值为5,以下表达式的值为真(True)的是( )。A、not x==4 or y!=5 B、x!=4 or not y==5 C、x!=4 and y==5 D、not x!=4 and y==510. Python表达式len('Hello2021!')+ abs(3**2-10)的值为( )A、14 B、13 C、11 D、911. 一个班的学生排成一列,从第一位同学开始报数,按照1--5循环报数,能正确表示第n 位同学所报数字的Python表达式是( )A、n%5 B、n C、(n-1)%5+1 D、(n+1)%5-112. 使用Python编写一个输出门票价格的程序,代码如下:h = int(input("请输入您的身高: "))
if h <= 120 :
p = 0
elif h > 140:
p = 100
else:
p = 50
print("您需要支付的门票价格是: ",p)
要测试所有分支程序代码是否正确。以下测试数据中,最恰当的一组是( )
A、120,140 B、130,150 C、100,130,140 D、100,130,15013. 某同学想给老师们制作一个课堂随机抽学生回答问题的程序,据此回答下面小题。(1)、先要解决的问题是把全班50名同学的姓名输入到一个列表s中,以下能解决该问题的程序段是( )A、s=""s=input("请输入一个姓名并回车")*50
B、s=[]for x in range(50):
s=s+[input('请输入一个姓名并回车')]
C、s=""for x in range(50):
s+=input("请输入一个姓名并回车")
D、for x in range(50):s=[]
s=s+[input('请输入一个姓名并回车')]
(2)、名单输入后,下面解决抽名字的问题了,下列程序段能解决自动随机抽取一位同学姓名的是( )①import random
print(random.choice(s))
②import random
n=random.randint(0,49)
print(s[n])
③import random
for n in range(50):
print(s[n])
④import random
n=int(input("请输入0-49间任意整数:"))
print(s[n])
A、①② B、①③ C、②④ D、③④14. 某Python代码如下:import random
lst =[0]*8 #定义列表lst,lst[0]~lst[7]初始值均为0
i = 0
while i < 8:
if i % 2 == 0:
lst[i] = int(random.random()*10)
else:
lst[i] = int(random.randint(1,5))*2+1
i += 1
print(lst)
执行后程序后,列表lst[0]~lst[7]各元素值可能的是( )
A、[0, 10, 2, 9, 8, 3,4,5] B、[8, 5, 4, 7, 10, 3,6,9] C、[4, 11, 3, 5, 9, 6,1,7] D、[6, 3, 1, 11, 7, 3,5,9]二、非选择题(本大题共3小题,5+7+8,共20分)
-
15. 某种编码为4位二进制码,前2位表示方向,后2位表示距离。编写一个程序,将编码翻译成方向和距离。距离值为每组编码后两位二进制码转换为十进制数的值。
例如,输入“0110”,前两位的01代表方向为“西”,后两位的10转化为十进制,代表距离为2。请回答以下问题。
(1)、实现上述功能的Python代码如下,请在划线处填入合适的代码。a=input("请输入四位二进制码")
#获取方向码
fx_dict={"00":"东","01":"西","10":"南","11":"北"}
s=+int(a[3]) #根据后两位计算距离
print("方向为:",fx_dict[fx])
print("距离为:",s)
(2)、分析上述代码后可知,输入“0011”,则方向为 , 距离为。16. 在计算机进行加密或解密过程中,经常会对字符串进行移位等变换操作。某字符串的变换规则描述如下:①输入的字符为十六进制数(英文字母大写,确保输入的个数为3的倍数),如4AC
②字符串中的每个字符转成四位二进制,按序拼接,如010010101100
③二进制字符串每4位进行前后倒置(即4位数左右倒置)操作,如001001010011
④将倒置后的字符串每3位转换成1位十进制,按序拼接后输出该十进制串,如001001010011转为1123
根据该规则编写的程序如下,运行结果如图所示,请回答以下问题:
Hex={"0":"0000","1":"0001","2":"0010","3":"0011","4":"0100","5":"0101","6":"0110","7":"0111","8":"1000","9":"1001","A":"1010","B":"1011","C":"1100","D":"1101","E":"1110","F":"1111"}
sch=input("请输入一个十六进制数(字母大写):")
th=""
for k in sch:
if "0"<=k<="9" or "A"<=k<="F": #若k为数字字符或大写字母
① #每1位十六进制转成4位二进制
ts=""
for i in range(0, ② ): #每4位进行前后倒置
ts+=th[i+3]+th[i+2]+th[i+1]+th[i]
tob=""
tmp=0
for i in range(len(ts)): #二进制串转十进制
tmp=tmp*2+int(ts[i]) #累乘相加转换成十进制
if #每3个字符为一组进行转换后的拼接
tob=tob+str(tmp)
tmp=0
print("变换后的字符串为:",tob)
(1)、从代码中可知,当输入的值为4aC时,程序运行结果(填:是/否)和题图相同(2)、程序中加框处代码有误,请改正(3)、请在下划线处补充完整程序① ②
17. 某校为了响应双减政策每周加设了一节体育选修课程,为了便于学校师资安排及课程的开设,需要对学生选课需求进行摸排。学校可以开设的课程共9门,在前期选课时学生可以选择自己喜欢的3门课程,选课信息已保存在文本文件中(课程名称用数字1~9表示),最终每个学生只安排1门课程学习。为了统计每门课程的选课人数及同选最多的两门课程,编写了以下程序。所谓“同选”是指学生在3门课的选择中最喜欢一起选的两门课,比如A同学选了124,B同学选了134,则同选最多的两门课为14。请回答以下问题:
(1)、该程序先将文本文件的选课数据读取并保存到列表xk中,文本文件及读取到列表后部分数据如图所示,则该列表数据项的数据结构是(选填:字符串/列表/字典),数据项中的数据元素(如‘5’)的数据类型是(选填:整型/实型/字符串型)(2)、程序运行结果如图所示,补充完整划线处的代码course=["排球","篮球","足球","羽毛球","乒乓球","网球","健身操","游泳","太极"]
xk=[] #存储选课信息,用数字1~9表示9门课程
f=[0]*9 #存储9门课程的选课人数
d=[0]*100 #存储两门课程同选的次数,如d[26]=50表示篮球和网球被50个同学同选
def relation(y): #计算列表y中各数据项的同选次数
for i in range(1,10):
for j in range(i+1,10):
if str(i) in y and str(j) in y: #课程i,j均在列表y中出现
d[10*i+j]+=1 #第i和第j门课程同选次数加1存储在列表d中
file=open("xk.txt","r") #打开文件
line=file.readline()
while line: #读取文件数据到列表xk中,数据样式详见第(1)小题图所示
line=line.split()
xk.append(line)
line=file.readline()
file.close()
for y in xk: #对列表xk中的各数据项进行处理
relation(y) #调用定义函数统计y中各门课程同选次数,存储到列表d中
for x in y: #遍历数据项y中的元素,统计每门课程的选课人数
for i in range(9):
print(course[i],"选课人数:",,"人") #输出每门课程的选课人数
maxd=max(d)
print("同选最多的两门课程是:")
for k in range(100):
if d[k]==maxd:
print(course[k//10-1],) #根据列表d的索引计算两门同选课程索引