1、信息技术专项训练七程序部分(时间:30分钟满分:50分)一、选择题(本大题共9小题,每小题3分,共27分。每小题列出的四个备选项中只有一个是符合题目要求的,不选、多选、错选均不得分)1.下列可以作为Python变量名的是()A.520_mmB.NoC.n bD.and2.程序中的表达式是按照一定的规则组合而成的,代数式r1r1+r2u对应的Python表达式是()A.r1r1+r2uB.r1/(r1+r2)uC.r1/(r1+r2)uD.r1/(r1+r2)* u3.表达式len(range(1,10)的值是()A.9B.10C.1D.24.利用Python编程处理数据的时
2、候,经常会用到pandas库,以下程序运行后的结果是()import pandas as pds=pd.Series(1,2,3,4)print(s.sum()A.2B.3C.24D.105.有如下Python程序段:import randomfor i in range(1,6):a=int(random.random()* 5)+1if i % 2=1 and a* 25:a/=2print(a)执行该程序段后,以下选项中a的循环结果不可能的是()A.2 1 2 5 2B.1 3 3 4 2C.2 5 1 5 2D.1 4 1 3 16.有如下Python程序段:import mathan
3、s=0i=1n=81while iint(math.sqrt(n):if n/i=int(n/i) and n/i%2=1:ans+=1i+=2print(ans)执行该程序段后,变量ans的值为()A.2B.3C.4D.57.某市实施交通管制,早晚高峰根据车牌号单双号限行。车牌尾号为单号的双号日限行,车牌尾号为双号的单号日限行。若车牌尾号不是数字,则从车牌号中取最后一位数字。实现上述功能的Python程序代码如下:chepai=input(请输入您的车牌:浙A)for i in range(,-1):if 0 =chepaii = RESTART:C:/Users/Administrator
4、/Desktop/j.py=公鸡:4母鸡:18小鸡:78公鸡:8母鸡:11小鸡:81公鸡:12母鸡:4小鸡:84共有买法3种|以下Python程序段实现了“百元买百鸡”的功能,请补全处代码。c=0for x in :for y in range(1,33):z=100-x-yif :print(公鸡:,x,母鸡:,y,小鸡:,z)print(共有买法,c,种)11.奇偶校验码是一种增加二进制传输系统可靠性的简单且广泛采用的方法,该方法通过增加一个校验位使得传输的二进制码中“1”的个数恒为奇数或偶数,因此该校验码也分为“奇校验”和“偶校验”。“奇校验”的原理:在发送端发送的每个字节二进制码后增加
5、一个校验位(0或1),使得“1”的个数为奇数;接收端接收并统计每个字节及其校验位中“1”的个数,若为偶数,则意味着传输过程中存在差错。例如:接收到的每个字节及校验码1的个数传输正误1001010014错误0110101015正确1010110105正确根据以上原理,小强编写了一个Python程序,对接收到的9位二进制编码进行“奇校验”,判断其传输的正误,若判断正确则将前一个字节的编码转成十六进制并输出。请回答下列问题:(1)若接收到的二进制码为“101011011”,传输过程(选填:是/否)存在差错。(2)实现上述功能的Python程序如下,请在划线处填入合适的代码。s=input(请输入9位
6、二进制编码:)code=10:A,11:B,12:C,13:D,14:E,15:Fk=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=p5时执行a=a/2,即i=1、3、5时,a的值小于3,故a的循环结果不可能是13342,故本题选B选项。6.A解析本题主要考查Python程序的执行。ans=0,i=1,n=81,int(ma
7、th.sqrt(n)=9,第一遍循环,满足if判断条件,ans=ans+1=1,i=i+2=3;第二遍循环,满足if判断条件,ans=ans+1=2,i=i+2=5;第三遍循环,不满足if判断条件,i=i+2=7;第四遍循环,不满足if判断条件,i=i+2=9,循环结束,故本题选A选项。7.A解析本题考查的是range函数。range(len(chepai)-1,-1,-1)函数的第三个参数值是-1,表示每次取值按降序,步长为1。若车牌是“12345”,先取“5”,字符串索引值为4,最后取“1”,字符串索引值为0,range()函数是左闭右开区间,故选项A正确。8.B解析本题主要考查Pytho
8、n程序的调试。第一处错误:import是用来导入模块,从键盘上接收字符串应使用input函数;第二处错误:for格式后面需要加冒号,即“foriinrange(100):”;第三处错误:print所在语句需要缩进;第四处错误:字符串拼接应使用+连接,即“print(name+爱技术)”,故本题选B选项。9.B解析本题主要考查Python表达式。12345674:6:1值为字符串类型56,abs(-55)+1的值为56,math.sqrt(56)为求56的开方,结果约为7.48,len函数为计算字符串长度,len(55)+1结果为3,因此B选项正确。10.range(1,20)5* x+3* y
9、+z/3=100c=c+1解析本题考查的是Python编程。x代表的是公鸡,公鸡5元一只,所以此处的range函数为range(1,20),左闭右开区间。if条件是满足三种鸡的总价格为100元的条件,故答案为5* x+3* y+z/3=100,注意这里是一个判断条件,用=表示。c代表的是有几种购买方案,当if条件满足时,即满足一种方案,执行方案数加1,c=c+1。11.是k%2=0或(k+1)%2=1或(k-1)%2=1ans+codepans解析本题主要考查Python程序的执行与调试。(1)若接收到的二进制码为“101011011”,1的个数有6个,则传输过程存在差错。(2)变量k统计1的
10、个数,若k是偶数则表明传输错误,否则传输正确,故第一处填k%2=0或(k+1)%2=1或(k-1)%2=1。如果p是19之间的数字,则直接将p拼接到ans中,否则从字典code中取对应的字母,故第二处填ans+codep。变量ans保存转换后的十六进制,故第三处填ans。12.141day=int(s8:)或day=int(s-2:)0,month-1isleap and month2year%4=0 and year%100!=0 or year%400=0解析本题主要考查Python程序的执行与调试。(1)2020年是闰年,2月是29天,故“2020-05-20”这一天是这一年的第31+29+31+30+20=141天。(2)变量s是字符串型,下标从0开始,处是将输入日期中的天取出来放到变量day中,可以使用切片操作:从左边开始截取,也可以从右边截取,故此处填day=int(s8:)或day=int(s-2:)。通过循环将前month-1个月的天数加起来,故变量i的范围是0到month-1,故处填0,month-1。变量isleap标记是不是闰年,如果isleap值为真且month2,则sum需要递增1,故处填isleapandmonth2。(3)由题干闰年判断条件,可知加框处应改为year%4=0andyear%100!=0oryear%400=0。