资源简介 金华一中2023学年第一学期期中考试高二 信息技术 试题卷命题、校对:高二信息技术教研组一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分。)1. 有字符串s="6t88yw",则下列表达式及其值对应正确的是( )A. "tyw" in s 的值为True B. s[0]的值为6C. s[0]+s[2:4]的值为"74" D. len(s)的值为6【答案】D【解析】【详解】本题考查字符串相关内容。A选项,“tyw”并不是s的子串,其值应为False,选项错误;B选项,s[0]的值为字符‘6’,不是整数6,选项错误;C选项,s[0]+s[2:4]的值为“688”,选项错误;D选项,字符串s的长度为6,选项正确。故本题答案是D选项。2. 下列选项中,对变量flag的赋值与其它三项不等价的是( )A. B. C. D.A. A B. B C. C D. D【答案】A【解析】【详解】本题考查Python选择结构相关内容。分析4个选项,A选项,无论a、b的大小关系如何,flag的终值为False;B选项,flag的值由a、b大小关系决定,True、False均有可能;C选项,flag的值由a、b大小关系决定,True、False均有可能;D选项,flag初值为False,若a>b成立,flag值为True,即flag的值由a、b大小关系决定。BCD选项等价。故本题答案是A选项。3. 有如下Python程序段,运行该程序段后变量a的值为( )a=4;b=3if a >= 4:if b <2:a=a+2if b > 2:a=a+3a=a+2elif a >= 9:a=a+4else:a=a+bA 13 B. 9 C. 16 D. 8【答案】B【解析】【详解】本题考查的是Python选择语句。a=4,b=3满足a >= 4,满足b > 2,故执行a=a+3=4+3=7和a=a+2=7+2=9。故本题应选B。4. 某算法的部分流程图如图所示,变量c的初值为空,输入变量x的值为100,执行这部分流程后,下列说法正确的是( )A. “x>0”语句共执行4次 B. 循环体语句执行次数4次C. 变量c的终值为“144” D. 变量x的终值可能小于0【答案】A【解析】【详解】本题考查流程图相关内容。分析流程图可知,A选项,“x>0”语句共执行4次,分别是:100、12、1、0,选项正确;B选项,由于x可取4个值,其中,x=0时,不满足循环条件,循环体不执行,循环体共执行3次,选项错误;C选项,通过循环的执行,变量c的终值为:“441”,选项错误;D选项,x的终值为0,不可能小于0,选项错误。故本题答案是A选项。5. 有如下Python 程序段:n=int(input( ))s=0;i=1while i*i<=n:if i==n//i:s+=1elif n%i==0:s+=2i+=1print(s)若输入"16",该程序段执行后,输出的结果是( )A. 3 B. 4 C. 5 D. 6【答案】C【解析】【详解】本题主要考查Python程序的执行。n=16,s=0,i=1第一次循环,满足i*i<=n,满足n%i==0,s=s+2=2,i=i+1=2;第二次循环,满足i*i<=n,满足n%i==0,s=s+2=4,i=i+1=3;第三次循环,满足i*i<=n,不满足if判断条件,i=i+1=4;第四次循环,满足i*i<=n,满足i==n//i,s=s+1=5,i=i+1=5,循环结束,输出的结果是5,故本题选C选项。6. 某Python程序段如下:a=[28,32,79,14,24,43]m = int(input("请输入一个整数:"))pos=-1for i in range(len(a)):if a[i]> m:if pos == -1 or a[i]< pos:pos= a[i]运行该程序段,若输入30,变量pos的值是( )A. -1 B. 14 C. 79 D. 32【答案】D【解析】【详解】本题考查Python程序设计相关内容。分析程序段,输入30,则m=30,当i=0时,不满足第1个if判断条件,pos值不变;当i=1时,满足2个if判断条件,pos=a[i]=32;当i=2、5时,满足第1个if判断条件,但不满足第2个if条件,不执行pos=a[i];当i=3、4时,不满足第1个if判断条件,pos值不变。循环结束时,pos值为32。故本题答案是D选项。7 有如下Python 程序段:a=[]b=[1,5,4,1,5]c={1:3,2:4,3:5,4:1,5:2}for i in b:if i not in a:a.append(c[i])print(a)运行该程序段后,列表 a 的值是( )A. [1,5,4] B. [3,2,1] C. [3,2,1,2] D. [3,2,1,3]【答案】C【解析】【详解】本题主要考查Python程序的执行。a、b是列表,c是字典,循环结构中,变量i依次从列表b中取数,如果i不在列表a中,则将c[i]添加到列表a中。前三轮循环,均满足if判断结构,i依次为1、5、4,a=[3,2,1];第四轮循环,i=1,不满足if判断跳过;第五轮循环,i=5,满足if判断,将c[5]=2添加到列表a中。故运行该程序段后,列表 a 的值是[3,2,1,2],选C选项。8. 某Python程序的部分代码如下:x=[8,9,7,3,2,7,1,4,2]a=[0]*10s=""for i in x:a[i]+=1for i in range(10):for j in range(a[i]):s=str(i)+s则执行该程序段后,变量s的值是( )A. “1234789” B. “122347789” C. “9874321” D. “987743221”【答案】D【解析】【详解】本题考查Python程序设计相关内容。分析程序段可知,该程序运行过程如下:经过第一个for循环后,列表a的值为:[0,1,2,1,1,0,0,2,1,1],第二个双重for循环的作用是:当列表元素值非0时,将其索引号转换为字符并连接在s的前面,连接次数由列表中对应元素值决定(元素值为1时,将该元素索引号进行1次转换为字符后连接在s的前面;元素值为2时,将该元素索引号进行2次转换,每次转换为字符后都连接在s的前面)。经过相关操作后,s的值为:“987743221”。故本题答案是D选项。9. 有如下Python程序段:s ="China"t=[1,3,2]res=""for i in range (1en(s)):m= t[i % len(t)]n= ord(s[i]) +mres = res + chr(n)print(res)运行该程序段后,输出的结果是( )A. Dkkod B. Ciknb C. DkjoD D. Cijob【答案】A【解析】【详解】本题考查的是Python循环语句。阅读程序可知程序的功能是对字符串s中的字符进行处理:s[0]、s[3]、s[6]……后移1位;s[1]、s[4]、s[7]……后移3位;s[2]、s[5]、s[8]……后移2位。s ="China",按上述处理规则处理完后字符应为:Dkkod,选项A正确。10 有如下Python程序段:m = "2a03b145c1"s=" ";x = 0;i=0while ich=m[i]if "a"<=ch<="z":s=ch+"="+str(x)+","+sx=0else:x=x*10+int(ch)i=i+1print(s)执行该程序段后,输出的结果为( )A. a=2,b=3,c=145, B. a=2,b=3,c=45, C. a=3,b=145,c=1, D. c=145,b=3,a=2,【答案】D【解析】【详解】本题考查Python程序设计相关内容。分析程序段可知,其功能是将输入字符串转换为多个表达式并用“,”隔开后逆序连接。若遇到数字字符按照“x=x*10+int(ch)”转换为十进制数;若遇到字母,则按照“s=ch+"="+str(x)+","+s”将字母放在赋值号左边,十进制数再转换为字符串放在赋值号右边后加上“,”作为分隔,再放在s的前面。推知,先转换的在s尾部,最后转换的在s前面。“2a03b145c1”转换后结果为:“c=145,b=3,a=2,”。故本题答案是D选项。11. 有如下python程序段,运行该程序段后,列表a中的值可能是( )import randoma =[]for i in range(6):t= random.randint(1,11)a.append(t+t%2)for i in range(1,6):j=i;k= a[j]while a[j-1]0:a[j]= a[j-1]j=j-1a[j]= kA. 11,8,7,6,5,5 B. 2,4,4,6,8,10 C. 12,10,2,2,2,2 D. 11,11,7,5,3,1【答案】C【解析】【详解】本题主要考查Python程序执行与调试。由 t= random.randint(1,11)可知t是1~11的整数,由a.append(t+t%2)可知a列表中的数字是2~12的偶数。由第二个for循环嵌套中条件a[j-1]0,可知实现的是降序排列。选项AD中含有奇数,不符合;选项B是升序排序,不符合。故本题应选C。12. 有如下Python程序段:def sp(a,i):if "a"<=a[i]<= "z":a=a[:i]+a[i+1:]elif "0"<=a[i]<= "9":a=a[:i]+str((int(a[i])+3)%10)+a[i+1:]return as="cfi3H8qwz4";i=0while is=sp(s,i)i+=1执行上述程序段后,s的值为( )A. "f3H1w4" B. "3H84" C. "6H17" D. "f6H1w7"【答案】A【解析】【详解】本题考查Python程序设计相关内容。分析程序段,可知,sp函数中,当字符s[i]是小写字母时,则在字符串s中跳过该字母,即删除该字符;当s[i]是数字时,该数字变为int(s[i])+3)%10,即循环后移3个单位。s="cfi3H8qwz4",当i=0时,s=sp(s, i)="fi3H8qwz4";当i=1时,s=sp(s, i)="f3H8qwz4";当i=2时,s=sp(s, i)="f3H8qwz4";当i=3时,s=sp(s, i)="f3H1qwz4";当i=4时,s=sp(s, i)="f3H1wz4";当i=5时,s=sp(s, i)="f3H1w4";当i=6时,循环结束。此时,s的值为:"f3H1w4"。故本题答案是A选项。二、非选择题(共3大题,第13题6分,第14题10分,第15题10分,共26分。)13. 点阵图(图1)是计算机中保存汉字字形码的一种形式,黑白点阵图可以转换为由“0”和“1”组成的数字点阵图(图2)。我们可以依照以下规则对数字点阵图进行压缩:第一个数表示有连续几个0,第二个数表示有连续几个1,第三个数表示有连续几个0,以此类推……,汉字“计”的数字点阵图压缩后如图3所示。图1 图2 图3编写程序读取压缩码后还原并输出点阵图,请在划线处填入合适代码。import maths=open("压缩码.txt","r").read() #读取文件数据a=list(map(int,s.split(","))) #列表a=[9,1,8,1,6,1,…,15,1,6]n=0for i in a:n=_______p=math.sqrt(n);c=0;k=0;s="for i in a:for j in range(i):s+=str(c)k+=1if _______:print(s)s=""k=0_______【答案】 ①. n+i ②. k==p ③. c=abs(c-1)【解析】【详解】本题考查的是Python综合应用。n是“0”和“1”组成的数字点阵图数字个数,故第一空应为:n+i;由p=math.sqrt(n)可知p表示是行数和列数,但一行的数字个数写满,则换行输出,故第二空应为:k==p;c表示当前输出的数字,数字是“0”、“1”循环切换,故第三空应为:c=abs(c-1)。14. 小红收集了部分城市202l年全年每大PM2.5、PM10、CO浓度数据。每大的数据分别保存在以8位日期字符串命名的CSV文件中,部分文件如图a所示,每个文件记录了一天24小时的监测数据。示例如图b所示。为统计分析城市A全年各月份PM2.5的月平均浓度(当月的日平均浓度的平均值),编写Python程序。请回答下列问题:(l)定义pmday函数,功能为:读取某天的CSV文件,返回城市A当天PM2.5的日平均浓度。函数代码如下,划线处应填入的代码为<单选,填字母)。A.df['类型']= ='PM2.5 B.df['类型'=='PM2.5']C.df[df['类型']]= ='PM2.5' D.df[df['类型']=='PM2.5']import pandas as pddef pmday(dayfile):df=pd read_csv(dayfile) #读取文件dayfile中的数据df=____________return df['城市A'].mean() #返回城市A当天PM2.5的日平均浓度(2)统计城市A各月份PM2.5的月平均浓度并绘制线型图。部分Python程序如下,请在划线处填写合适的代码:import matplothb. pyplot as pltdef tstr(t):if tretrun '0'+str(t)else:retrun str(t)pm=[0]*12mdays=[31.28.31.30.31.30.31.31.30.31.30.31]for m in range(12):sm=0mstr=tstr(m+1)for d in range(①___________):dstr=tstr(d+l)day file='202l'+mstr+ dstr+'.csv'sd=pmday(dayfile)②_________pm[m]=sm/mdays[m]x=[1,2,3,4,5,6,7,8,9,10,11,12]y=③_______plt. plot(x,y) #绘制线型图#设置绘图参数,显示如图c所示线型图,代码略(3)城市A 2021年PM2.5年平均浓度为34.6微克/立方米。由图c可知,城市A 2021年PM2.5月平均浓度超过年平均浓度的月份共________个。【答案】 ①. D ②. mdays[m] ③. sm+=sd ④. pm ⑤. 5【解析】【详解】本题考查的是Python综合应用。(1)由图可知PM2.5存放在类型字段中,故本题应选D。(2)按月读取每天数据,并计算平均值,dstr表示日期,mstr表示月份,sm表示某月的总数据,由dstr=tstr(d+l)可知,第一空应为:mdays[m];某月每天的数据要累加至sm,故第二空应为:sm+=sd 或 sm=sm+sd;pm数列中存放的是1到12月的平均值,故第三空应为:pm。(3)由图中可知平均浓度超过年平均浓度的月份共有5个。15. 某考试的多选题有“A、B、C、D、E”5个答案选项。阅卷的评分标准为:“全部选对得2分,选对但不全得1分,不选或有选错的得0分”。例如:标准答案为“AC”,则对应的得分表如下表所示:得分选项 AC A C B DE AB ……对应二进制 10100 10000 00100 01000 00011 11000 ……十进制数X 20 16 4 8 3 24 ……score[x] 2 1 1 0 0 0 0请使用python编写程序,列出所有可得分的组合及其对应的分数,程序运行界面如下,请在划线处填入合适的代码。请输入标准答案:AC所有可能的答案组合:[ '','E', 'D', 'DE', 'C', 'CE', 'CD', 'CDE', 'B', 'BE', 'BD', 'BDE', 'BC', 'BCE', 'BCD', 'BCDE', 'A', 'AE', 'AD', 'ADE', 'AC', 'ACE', 'ACD', 'ACDE', 'AB', 'ABE', 'ABD', 'ABDE', 'ABC', 'ABCE', 'ABCD', 'ABCDE']可得分的答案组合:['C', 'A', 'AC']该答案的所有得分选项为:选项C的得分为:1选项A的得分为:1选项AC的得分为:2def subset(st): #求所有非空子集n=len(st); ss=[""]*2**nfor i in range(1,_______):t=ifor j in range(n):if t%2==1:ss[i]=_______+ss[i]t//=2return ssdef df(s): 1 #求下标rel=0for i in s:rel+=_______return rels=input("请输入标准答案:")score=[0]*32allans=subset("ABCDE")print("所有可能的答案组合:")print(allans)dfans=subset(s)[1:]print("可得分的答案组合:")print(dfans)for i in dfans[:len(dfans)-1]:_______score[df(s)]=2print("该题目的所有得分选项为:")for i in range(32):if _______:print("选项",allans[i],"的得分为:",score[i])【答案】 ①. 2**n ②. st[n-j-1] ③. 2**(ord("E")-ord(i)) 或 2**(69-ord(i)) 或其它等价答案 ④. score[df(i)]=1 ⑤. score[i]!=0 或 score[i]>0【解析】【详解】本题考查的是Python综合应用。①将“A、B、C、D、E”看成五位二进制数,有选选项用1表示,故最多有25种组合,故此处应填:2**n;②A是最高位,E是低位,将十进制数转二进制数采用除2取余,第一位余数是1的表示选项E,第二位余数是1表示选项D,以此类推,故此处应填:st[n-j-1];③求下标,即将二进制数转换为十进制数,A的权值是4,B的权值是3,以此类推,故此处应填:2**(ord("E")-ord(i)) 或 2**(69-ord(i)) 或其它等价答案;④选对但不全得1分,故此处应填:score[df(i)]=1;⑤得分列表中大于0的输出,故此处应填:score[i]!=0 或 score[i]>0。金华一中2023学年第一学期期中考试高二 信息技术 试题卷命题、校对:高二信息技术教研组一、选择题(本大题共12小题,每小题2分,共24分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分。)1. 有字符串s="6t88yw",则下列表达式及其值对应正确的是( )A. "tyw" in s 的值为True B. s[0]的值为6C. s[0]+s[2:4]的值为"74" D. len(s)的值为62. 下列选项中,对变量flag的赋值与其它三项不等价的是( )A. B. C. D.A. A B. B C. C D. D3. 有如下Python程序段,运行该程序段后变量a的值为( )a=4;b=3if a >= 4:if b <2:a=a+2if b > 2:a=a+3a=a+2elif a >= 9:a=a+4else:a=a+bA. 13 B. 9 C. 16 D. 84. 某算法的部分流程图如图所示,变量c的初值为空,输入变量x的值为100,执行这部分流程后,下列说法正确的是( )A. “x>0”语句共执行4次 B. 循环体语句执行次数为4次C. 变量c的终值为“144” D. 变量x的终值可能小于05. 有如下Python 程序段:n=int(input( ))s=0;i=1while i*i<=n:if i==n//i:s+=1elif n%i==0:s+=2i+=1print(s)若输入"16",该程序段执行后,输出的结果是( )A. 3 B. 4 C. 5 D. 66. 某Python程序段如下:a=[28,32,79,14,24,43]m = int(input("请输入一个整数:"))pos=-1for i in range(len(a)):if a[i]> m:if pos == -1 or a[i]< pos:pos= a[i]运行该程序段,若输入30,变量pos值是( )A. -1 B. 14 C. 79 D. 327. 有如下Python 程序段:a=[]b=[1,5,4,1,5]c={1:3,2:4,3:5,4:1,5:2}for i in b:if i not in a:a.append(c[i])print(a)运行该程序段后,列表 a 的值是( )A. [1,5,4] B. [3,2,1] C. [3,2,1,2] D. [3,2,1,3]8. 某Python程序部分代码如下:x=[8,9,7,3,2,7,1,4,2]a=[0]*10s=""for i in x:a[i]+=1for i in range(10):for j in range(a[i]):s=str(i)+s则执行该程序段后,变量s的值是( )A. “1234789” B. “122347789” C. “9874321” D. “987743221”9. 有如下Python程序段:s ="China"t=[1,3,2]res=""for i in range (1en(s)):m= t[i % len(t)]n= ord(s[i]) +mres = res + chr(n)print(res)运行该程序段后,输出的结果是( )A. Dkkod B. Ciknb C. DkjoD D. Cijob10 有如下Python程序段:m = "2a03b145c1"s=" ";x = 0;i=0while ich=m[i]if "a"<=ch<="z":s=ch+"="+str(x)+","+sx=0else:x=x*10+int(ch)i=i+1print(s)执行该程序段后,输出的结果为( )A. a=2,b=3,c=145, B. a=2,b=3,c=45, C. a=3,b=145,c=1, D. c=145,b=3,a=2,11. 有如下python程序段,运行该程序段后,列表a中的值可能是( )import randoma =[]for i in range(6):t= random.randint(1,11)a.append(t+t%2)for i in range(16):j=i;k= a[j]while a[j-1]0:a[j]= a[j-1]j=j-1a[j]= kA. 11,8,7,6,5,5 B. 2,4,4,6,8,10 C. 12,10,2,2,2,2 D. 11,11,7,5,3,112. 有如下Python程序段:def sp(a,i):if "a"<=a[i]<= "z":a=a[:i]+a[i+1:]elif "0"<=a[i]<= "9":a=a[:i]+str((int(a[i])+3)%10)+a[i+1:]return as="cfi3H8qwz4";i=0while is=sp(s,i)i+=1执行上述程序段后,s的值为( )A. "f3H1w4" B. "3H84" C. "6H17" D. "f6H1w7"二、非选择题(共3大题,第13题6分,第14题10分,第15题10分,共26分。)13. 点阵图(图1)是计算机中保存汉字字形码的一种形式,黑白点阵图可以转换为由“0”和“1”组成的数字点阵图(图2)。我们可以依照以下规则对数字点阵图进行压缩:第一个数表示有连续几个0,第二个数表示有连续几个1,第三个数表示有连续几个0,以此类推……,汉字“计”的数字点阵图压缩后如图3所示。图1 图2 图3编写程序读取压缩码后还原并输出点阵图,请在划线处填入合适代码。import maths=open("压缩码.txt","r").read() #读取文件数据a=list(map(int,s.split(","))) #列表a=[9,1,8,1,6,1,…,15,1,6]n=0for i in a:n=_______p=math.sqrt(n);c=0;k=0;s="for i in a:for j in range(i):s+=str(c)k+=1if _______:print(s)s=""k=0_______14. 小红收集了部分城市202l年全年每大PM2.5、PM10、CO浓度数据。每大的数据分别保存在以8位日期字符串命名的CSV文件中,部分文件如图a所示,每个文件记录了一天24小时的监测数据。示例如图b所示。为统计分析城市A全年各月份PM2.5的月平均浓度(当月的日平均浓度的平均值),编写Python程序。请回答下列问题:(l)定义pmday函数,功能为:读取某天的CSV文件,返回城市A当天PM2.5的日平均浓度。函数代码如下,划线处应填入的代码为<单选,填字母)。A.df['类型']= ='PM2.5 B.df['类型'=='PM2.5']C.df[df['类型']]= ='PM2.5' D.df[df['类型']=='PM2.5']import pandas as pddef pmday(dayfile):df=pd read_csv(dayfile) #读取文件dayfile中的数据df=____________return df['城市A'].mean() #返回城市A当天PM2.5的日平均浓度(2)统计城市A各月份PM2.5的月平均浓度并绘制线型图。部分Python程序如下,请在划线处填写合适的代码:import matplothb. pyplot as pltdef tstr(t):if tretrun '0'+str(t)else:retrun str(t)pm=[0]*12mdays=[31.28.31.30.31.30.31.31.30.31.30.31]for m in range(12):sm=0mstr=tstr(m+1)for d in range(①___________):dstr=tstr(d+l)day file='202l'+mstr+ dstr+'.csv'sd=pmday(dayfile)②_________pm[m]=sm/mdays[m]x=[1,2,3,4,5,6,7,8,9,10,11,12]y=③_______plt. plot(x,y) #绘制线型图#设置绘图参数,显示如图c所示线型图,代码略(3)城市A 2021年PM2.5年平均浓度为34.6微克/立方米。由图c可知,城市A 2021年PM2.5月平均浓度超过年平均浓度的月份共________个。15. 某考试的多选题有“A、B、C、D、E”5个答案选项。阅卷的评分标准为:“全部选对得2分,选对但不全得1分,不选或有选错的得0分”。例如:标准答案为“AC”,则对应的得分表如下表所示:得分选项 AC A C B DE AB ……对应二进制 10100 10000 00100 01000 00011 11000 ……十进制数X 20 16 4 8 3 24 ……score[x] 2 1 1 0 0 0 0请使用python编写程序,列出所有可得分的组合及其对应的分数,程序运行界面如下,请在划线处填入合适的代码。请输入标准答案:AC所有可能的答案组合:[ '','E', 'D', 'DE', 'C', 'CE', 'CD', 'CDE', 'B', 'BE', 'BD', 'BDE', 'BC', 'BCE', 'BCD', 'BCDE', 'A', 'AE', 'AD', 'ADE', 'AC', 'ACE', 'ACD', 'ACDE', 'AB', 'ABE', 'ABD', 'ABDE', 'ABC', 'ABCE', 'ABCD', 'ABCDE']可得分的答案组合:['C', 'A', 'AC']该答案的所有得分选项为:选项C的得分为:1选项A的得分为:1选项AC的得分为:2def subset(st): #求所有非空子集n=len(st); ss=[""]*2**nfor i in range(1,_______):t=ifor j in range(n):if t%2==1:ss[i]=_______+ss[i]t//=2return ssdef df(s): 1 #求下标rel=0for i in s:rel+=_______return rels=input("请输入标准答案:")score=[0]*32allans=subset("ABCDE")print("所有可能的答案组合:")print(allans)dfans=subset(s)[1:]print("可得分答案组合:")print(dfans)for i in dfans[:len(dfans)-1]:_______score[df(s)]=2print("该题目的所有得分选项为:")for i in range(32):if _______:print("选项",allans[i],"的得分为:",score[i]) 展开更多...... 收起↑ 资源列表 浙江金华第一中学2023-2024学年高二上学期11月期中考试技术试题 Word版含解析 .docx 浙江金华第一中学2023-2024学年高二上学期11月期中考试技术试题 Word版无答案 .docx