高中信息技术学业水平考试专题复习--专项训练七 程序部分.docx
普通高中学业水平考试专题复习2022年浙江省普通高中学业水平考试信息技术专项训练七程序局部(时间:30分钟总分值:50分)一、选择题(本大题共9小题,每题3分,共27分。每题列出的四个备选项中只有一个是符合题 目要求的,不选、多项选择、错选均不得分).以下可以作为Python变量名的是()A.520_mmB.NoC.n bD.and.程序中的表达式是按照一定的规那么组合而成的,代数式七1)对应的Python表达式是() 1 JL | 1 乙7i+r2UB.rl/(rl+r2)uC.rl/(rl+r2) u D.rl/(rl+r2) * u.表达式 len(range(l,10)的值是()A.9B.10C.lD.2.利用Python编程处理数据的时候,经常会用到pandas库,以下程序运行后的结果是()import pandas as pds=pd.Series( 1,2,3,4)print(s.sum()A.2B.3C.24D.101 .有如下Python程序段:import randomfor i in range(l,6):a=int(random.random()* 5)+1if i % 2=1 and a* 2>5:a/=2print(a)执行该程序段后,以下选项中a的循环结果不可能的是()A.2 1 2 5 2B.1 3 342C.2 5 1 5 2D.1 4 1 3 12 .有如下Python程序段:import mathans=0i=ln=81while i<int(math.sqrt(n):if n/i=int(n/i) and n/i%2=l: ans+=li+=2print(ans)执行该程序段后,变量ans的值为()A.2B.3C.4D.5.某市实施交通管制,早晚高峰根据车牌号单双号限行。车牌尾号为单号的双号日限行,车牌尾号为 双号的单号日限行。假设车牌尾号不是数字,那么从车牌号中取最后一位数字。实现上述功能的Python程序代码如下:chepai=input('请输入您的车牌:浙A')for i in range(,-l):if 'O' <=chepaii <=9:Lastnum=int(chepaii)if lastnum % 2=0:print,车牌尾号为双号,单号日限行!)else:print。车牌尾号为单号,双号日限行!)break划线处应填入代码是()A.len(chepai)-1 ,-1 B.len(chepai),0 C.len(chepai)-l,0 D.l,len(chepai)+13 .输入名字福环输出100次爱技术,图中代码有几处错误:()name=import("输入你的名字:)for i in range(lOO)print(name n 爱技术”)A.3B.4C.5D.6.以下Python表达式的值等于56的是()A. 1234567 4:6:1B.abs(-55)+l C.math.sqrt(56) Den(" 55 )+1二、非选择题(本大题共3小题,其中第10小题6分,第11小题8分,第12小题9分,共23分)4 .“枚举算法”又称为“穷举法”,其基本思想是:一一列举出所有可能的解,并验证每个可能的解是否是 真正的解,假设是,就采纳,否那么,就抛弃。小明利用枚举算法解决“百元买百鸡”问题。用100元钱买100 只鸡,公鸡,母鸡,小鸡都要有。公鸡5元1只,母鸡3元1只,小鸡1元3只。请问公鸡,母鸡,小鸡各应 该买多少只?假设公鸡有X只,母鸡有Y只,小鸡有Z只。»>= RESTART:C:/Users/Administrator/Desktop/j.py=公鸡:4 母鸡:18 小鸡:78公鸡:8 母鸡小鸡:81公鸡:12 母鸡:4 小鸡:84共有买法3种>»1以下Python程序段实现了“百元买百鸡”的功能,请补全处代码。c=0for x in :for y in range。,33):z=100-x-yif :print-公鸡:,x, 母鸡:,y, 小鸡:",z)print(共有买法,c,种)5 .奇偶校验码是一种增加二进制传输系统可靠性的简单且广泛采用的方法,该方法通过增加一个校 验位使得传输的二进制码中“1”的个数恒为奇数或偶数,因此该校验码也分为“奇校验”和“偶校验”。 “奇校验”的原理:在发送端发送的每个字节二进制码后增加一个校验位(0或1),使得力”的个数为奇 数;接收端接收并统计每个字节及其校验位中“1”的个数,假设为偶数,那么意味着传输过程中存在过失。 例如:接收到的每个字节及校验码1的个数传输正误1001010014错误0110101015正确1010110105正确根据以上原理,小强编写了一个Python程序,对接收到的9位二进制编码进行“奇校验二判断其传输的 正误,假设判断正确那么将前一个字节的编码转成十六进制并输出。请回答以下问题:假设接收到的二进制码为“101011011”,传输过程(选填:是/否)存在过失。实现上述功能的Python程序如下,请在划线处填入合适的代码。s=input(”请输入9位二进制编码:")code=10: AB/2: C" ,13: D"4: E/5: F k=0;p=0;ans=" for i in s:#统计9位二进制编码中“1”的个数k=k+int(i)if:print("传输错误!”)else:print(传输正确!)for j in range(0,8,4):p=int(sj:j+4,2)# int(x,base):将x(字符串或者数字)按照base进制转换成整数if 0<=p<=9:ans=ans+str(p) else:ans=print(字节编码用十六进制表示:,)12.编写Python程序实现如下功能:输入年月日,输入格式如“2021-06-21二年月日之间用“分隔。判 断这一天是这一年的第几天。以2021-06-21为例,前面5个月总天数,加上21天即这一天是本年的 第几天。特殊情况,当输入的年份是闰年时,2月份有29天。闰年的判断方式如下: 能被4整除,但不能被100整除或能被400整除。(1)“2020-05-20”这一天是这一年的第 天。(2)编写Python代码如下,在划线处填入正确的代码。(3)加框处的代码有误,请改正。改正:mon=31,28,31,30,31,30,31,31,30,31,30,31 #mon 中存储 1-12 每个月的天数s=input(”请输入年月日:")year=int(s:4)month=int(s5:7)sum=0for i in range(® ): sum+=monisum+=dayif year4=0 and year100!=0|:isleap=Trueelse:isleap=Falseifsum+=lprint("这一天是当年的第"+str(sum)+"天")2022年浙江省普通高中学业水平考试信息技术专项训练七程序局部1.B 解析此题主要考查Python变量。变量的命名规那么有:只能以字母或下划线开头,不能包含特殊 符号,不能是关键字。故No可以作为Python变量名,故此题选B选项。2 .D 解析此题主要考查Python表达式。Python表达式中,乘运算用除运算用故该代数式对 应的Python表达式是rl/(rl+r2) * u,故此题选D选项。3 .A 解析此题主要考查Python表达式的运算。len()函数返回字符串、列表、字典、元组等长度。 range()函数:返回一个递增或递减的数字列表,列表的元素由三个参数决定江ange(start,stop,step),故 range。,10)返回1,2,3,4,5,6,7,8,9,故表达式 len(range(l,10)的值是 9,故此题选 A 选项。4 .D 解析此题主要考查Python库。Series是一维数组,变量s含有的元素有1、2、3、4,对这4个 元素使用sum求和函数进行求和并输出,故运行结果是10,选D选项。5 .B 解析 此题主要考查Python程序的执行与调试。random是随机生成0,1)之间的数,int(x)是返回 不大于x的最大整数,a=int(random.random()* 5)+1,随机生成1,5之间的整数,分析程序可知,假设i是 奇数且a* 2>5时执行a=a2,即i=l、3、5时算的值小于3,故a的循环结果不可能是1 3 3 4 2,故本 题选B选项。6 .A 解析 此题主要考查Python程序的执行。ans=0,i=l,n=81,int(math.sqrt(n)=9,第一遍循环,满足if 判断条件,ans=ans+1=1 ,i=i+2=3;第二遍循环,满足if判断条件,ans=ans+1 =2,i=i+2=5;第三遍循环,不满 足if判断条件产i+2=7;第四遍循环,不满足if判断条件,i=i+2=9,循环结束,故此题选A选项。7 .A 解析 此题考查的是range函数。range(len(chepai)-l,-1,-1)函数的第三个参数值是-1,表示每次取 值按降序,步长为lo假设车牌是“12345”,先取“5”,字符串索引值为4,最后取“1”,字符串索引值为0,range。函数是左闭右开区间,应选项A正确。8 .B 解析 此题主要考查Python程序的调试。第一处错误:import是用来导入模块,从键盘上接收字 符串应使用input函数;第二处错误:for格式后面需要加冒号和“for i in range(lOO):"第三处错误:print 所在语句需要缩进;第四处错误:字符串拼接应使用+连接,即“print(name+爱技术故此题选B选 项。9 .B 解析此题主要考查Python表达式。 1234567" 4:6:1值为字符串类型 56" ,abs(-55)+l的 值为56,math.sqrt(56)为求56的开方,结果约为7.48,len函数为计算字符串长度,len( 55)+ 1结果 为3,因此B选项正确。10 .range(l,20) 5* x+3* y+z/3=100 c=c+l解析 此题考查的是Python编程。x代表的是公鸡,公鸡5元一只,所以此处的range函数为 range。,20),左闭右开区间。if条件是满足三种鸡的总价格为100元的条件,故答案为5* x+3* y+z/3=100,注意这里是一个判断条件,用=表示。c代表的是有几种购买方案,当if条件满足时,即满 足一种方案,执行方案数加l,C=C+lo11 .是 k%2=0 或(k+l)%2=l 或(k-l)%2=l ans+codep ans解析 此题主要考查Python程序的执行与调试。(1)假设接收到的二进制码为“101011011”的个数有6 个,那么传输过程存在过失。(2)变量k统计1的个数,假设k是偶数那么说明传输错误,否那么传输正确,故第 一处填k%2=0或(k+l)%2=l或(k-l)%2=l。如果p是19之间的数字,那么直接将p拼接到ans中, 否那么从字典code中取对应的字母,故第二处填ans+codepo变量ans保存转换后的十六进制,故第三 处填anso12.141 day=int(s8:)或 day=int(s-2:) 0,month-1 isleap and month>2 year%4=0 and year%100!=0 or year%400=0解析 此题主要考查Python程序的执行与调试。(1)2020年是闰年,2月是29天,故“2020-0520”这一 天是这一年的第31+29+31+30+20=141天。(2)变量s是字符串型,下标从。开始,处是将输入日期 中的天取出来放到变量day中,可以使用切片操作:从左边开始截取,也可以从右边截取,故此处填 day=int(s8:)或day=int(s-2:)o通过循环将前month-1个月的天数加起来,故变量i的范围是。到 month-1,故处填0,month-1 o变量isle叩标记是不是闰年,如果isleap值为真且month>2,那么sum需 要递增1,故处填isleap and month>2o (3)由题干闰年判断条件,可知加框处应改为year%4=0 and year%100!=0 or year%400=0o