1、中国电子学会青少年软件编程等级考试标准python二级图文程序填空阅读填空程序试题中国电子学会青少年软件编程等级考试标准python二级图文程序填空阅读填空程序试题一、程序填空1辗转相除法,又称欧几里德算法,用于计算两个正整数m、n的最大公约数。它是已知最古老的算法,其可追溯至公元前300年前。辗转相除法的算法步骤是,对于给定的两个正整数m、n(mn),用m除以n得到余数r,若余数r不为0,就将n和r构成新的一对数(m=n,n=r),继续上面的除法,直到余数为0,这时m就是原来两个数的最大公约数。因为这个算法需要反复进行除法运算,故被形象地命名为“辗转相除法”。小曲设计了辗转相除法的算法,请根
2、据下面算法回答问题。描述一描述二描述三输入两个正整数m,n(mn);计算m除以n所得的余数r;m=n,n=r;若r=0,则m,n的最大公约数等于m;否则转到步骤;输出最大公约数m;结束。(1)描述一是_描述法;描述二是流程图描述法;描述三是计算机程序语言描述法。(2)在描述三中代码4到6行作用是_。(3)在描述三程序设计中,补充代码第8行划线处为_。2冠军在A、B、C、D四位同学中。A说:“不是我”,B说:“是C”,C说:“是D”, D说:“C说的不对”,已知四人中有一人说了假话。判断出到底谁是冠军。请在空格处填写正确的代码,使程序完善。champion=A,B,C,D #设置选手列表for
3、i in_: #循环读取选手编号 cond=(i!=A) +(i=C) + (i=D)+(i!=D) #查找符合条件的选手 if cond= _: #说真话是否是3人 print(冠军是:,_) #输出冠军input(运行完毕,请按回车键退出.)3请在空格处填写正确的代码,使程序完善。实现功能:绘制y=x2-2x+ 1的图像#加载numpy模块并限简洁的别名为npimport numpy as np #加载matplotlib.pyplot模块并限简洁的别名为pltimport matplotlib.pyplot as plt #x在-7到9之间,每隔0.1取一个点x=np.arange(-7
4、,9,0.1) _ = x*2-2*x+1plt.plot(x,_)plt.title(y=x*x-2*x+1)plt.xlabel(x)plt.ylabel(y)plt._4编写程序。信息社团的三个同学和Bruce一起做游戏,他们的游戏规则很简单,从1开始依次报数,每当一个数能被7整除或者十位是7就要跳过这个数,现在给出一个数N,请输入从1到N(包含N)中要跳过的数。5分析完善程序背景知识为了保障空气质量,减少雾霾,某市决定当空气污染严重时,实行汽车单双号限行,违反规定的车辆将予以处罚。如何让高清摄像头自动判断车牌的单双号,交警犯了愁,他需要编程高手的你帮忙,完善下面的程序。( 提示:所有车
5、牌号中都含有数字,并且车牌号的长度都是6;以车牌中最后一位阿拉伯数字的奇、偶来决定单双号。)如:请根据上述算法描述补全代码 s=input(车牌号s=) n=6x=sn-1:nwhile x.isdigit()= False: x=sn-1:nif =0: print(“双号”)else: print(“单号”)(提示: sn:m的功能:从字符串s的下标为n的元素开始,截取到下标为m-1的元素。例如: s= 12345 ,s2:4= 34 。s.isdigit) :判断是否为数字。)(1)根据题意,程序中空白处应填写:_(2)根据题意,程序中空白处应填写:_(填: A/B/C/D )。Aint
6、(x)/2=0 Bint(x)%2 =0 Cint(x)%2=0 Dint(x)%2!=06分析完善程序某市出租车收费标准如下:(1)3公里内(含3公里),收费8元(2)超过3公里但未超过6公里部分,按1.5元/公里收费(3)超过6公里部分,按2.25元/公里收费。根据以上标准,输入出租车行驶的公里数,请计算顾客需付费多少元?算法分析假设总费用为p,则可以分段计算p=8 (s3)p=1.5*(s-3)+8 (36)参考代码a=float(input(“s=”)if s 6 : p=2.25*(s-6)+1.5*3+8print( p)根据上述回答如下问题:(1)本题采用的算法是_(填:解析法/
7、枚举法/排序法/递归法)。(2)程序代码中空白处应填写的条件是_(填: A/B/C/D)。A3s=6 B3=s3 and s3 Or s=67小明设计了一个可以输入日期得到当天是年度第几天的程序,请阅读程序,完成填空(闰年判断规则:能被4整除但不能被100整除或能被400整除,闰年的2月为29天)day=input(请输入年月日(格式举例:2000-01-05):)year=int(day:4) month=_ sun=int(day8:10) print(year,month,sun)f_run=31,28,31,30,31,30,31,31,30,31,30,31 tall_day=0if
8、 _: for i in range(month-1): tall_day +=f_runi _ else: for i in range(month-1): tall_day +=f_runitall_day += sunprint(day+是当年的第+str(tall_day)+天)(1)将程序横线处补充完整(2)如输入“2020-4-19”为当年的第_天。8编写程序,找到并输出100以内的偶数个数。9求1100内奇数之和(使用range函数)10操作说明:打开文件“Y:/2/2.py”,在代码窗口指定位置、处修改完善程序代码,不得增加、删除语句或改变程序原有结构,操作结束后保存。以下程序
9、段的功能是:输入一个正整数n(1至100),输出它的约数的个数。s=0n=int(input(“请输入一个正整数:”)if n100: exit #输入的数不符合要求,退出for i in range(1,n+1): if n/i=0:_ s=s+i print(“约数的个数是:”,s)11程序设计:键盘输入任意的正整数,程序输出与其相应的二进制数。代码如下:nint(input(请输入一个十进制数:)resultwhile n0:result.append( )n result.reverse()for i in result:print(i,end”)(1)程序代码中处正确的代码是(_)。
10、An%2 Bn/2 Cn/2 Dn*2(2)程序代码中处可能的代码是(_)。An%2 Bn/2 Cn/2 Dn*212程序设计:在舞会上,男生、女生各自排成一队。舞会开始时,依次从男队和女队的队头各出一人配成舞伴。跳完后的两人重新回到队尾。例如:boyAlex,Steven,Jack,girlAda*,Babs.,Danla,Jane输出:Turn1:(Alex,Ada)Turn2:(Steven,Babs)Turn3:(Jack,Danla)Turn4:(Alex,jane)Turn12:(Jack,jane)代码如下:boyAlex,Steven,JackgirlAda,Babs,Danl
11、a,Janefor i in range(12):x,y #出队 print(“Turn:2):(,).format(i1,x,y) boy.append( ) #再进队 girl.append( ) #再进队(1)程序代码中处正确的代码是(_)。Aboy.pop(l).girl.pop(l) Bgirl.pop(l),boy.pop(l)Cboy.pop(0),girl.pop(0) Dgirl.pop(0),boy.pop(0)(2)程序代码中处正确的代码是(_)。Ax By Ci Di1(3)程序代码中处正确的代码是(_)。Ax By Ci Di113已知圆柱体的底面半径为r,高为h,(
12、均为正整数),小张编写了一个程序计算圆柱体的地面周长和面积,圆柱体侧面积以及圆柱体体积,其中圆周率定义为:3.14,请根据下列代码回答问题:r=int(input(“请输入半径r:”)h=int(input(“请输入高h:”)_c=2*pi*rs=pi*r*2S=c*hV=s*hprint(c,s,S,V)(1)解决问题的程序用到的控制结构有:_(填:顺序结构、分支结构、循环结构)(2)请将程序补充完整。(3)请找出程序中的错误代码,并改正。_14“百鸡百钱”问题是一个有名的数学问题,出自张丘建算经。其内容是:公鸡5文钱1只,母鸡3文钱1只,小鸡3只1文钱,用100文钱买100只鸡,其中公鸡、
13、母鸡和小鸡都必须要有,问公鸡、母鸡和小鸡各多少只?(1)请在空格处填写正确的代码,使程序完善实现以下功能。money=100 #一共100文钱num=100 #一共100只鸡cock_price=5 #公鸡价格5文hen_price=3 #母鸡价格3文threechick_price=1 #3只小鸡1文for cock_num in range(1,_): #公鸡只数可能为1-20 for hen_num in range(1,_): #母鸡只数可能为1-33 for chick_num in range(1,101): #(3小鸡)只数可能为1-100 money1=cock_num*coc
14、k_price+hen_num*hen_price+chick_num/threechick_price num1=cock_num+hen_num+chick_num if money1=money and num1=num: print (cock_num,hen_num,_)input(运行完毕,请按回车键退出.)(2)运行程序,运行结果如图所示。15小敏有10万元本金,想要购买银行保证收益型理财产品。每年到期后连本带利仍购买此种理财。请你帮助小敏分析,在年收益率不变的情况下,多少年后小敏的累计收益能超过本金,请完成程序填空。(例如输人:5.15%,输出:14年后收益超过本金。)1 s=
15、input(请输入年利率:)2 rate=float(s:-1)*0.013 money=1000004 year=05 while money=200000:6 money=round( ),2)7 year=year+18 print(year,年后收益超过本金。”)(1)程序第6行下划线处应填入_。(2)程序第2行的作用是_,并赋值给变量 rate。(3)该程序主要是通过while实现_结构。16请编写Python程序,实现如下功能需求:1)程序运行后,给出文字提示:“请输入一个正整数:”2)输入一个整数n按回车后,程序输出从1-n所有整数中既是3的倍数又是5的倍数的数。3)不要超过5行
16、代码。程序运行举例:17密码强度检测。编写python程序,实现如下功能:输入要检测的密码,输出密码强度结果。密码字符分为数字字符、字母和其他符号三类。密码强度的检测方法为:若密码位数少于8位,则不进行强度检测,给出提示“密码位数不能少于8位,请重新输入!”。若密码位数在8位及以上,则进行强度检测:若密码字符属于同一类字符,则密码强度为“弱”;若密码字符属于不同的二类字符,则密码强度为“中等”;若密码字符属于不同的三类字符,则密码强度为“强”。(1)若输入“12abcd5!”,则输出结果为_(选填,选字母:A密码位数不能少于8位,请重新输入! / B弱 / C中等 / D强)(2)实现上述功能
17、的程序如下,请在划线处填入合适的代码。password=input(“请输入要检测的密码:”)_if n8: print(“密码位数不能少于8位,请重新输入!”)else: n1=0 n2=0 n3=0 for i in range(0,n,1): _ if “0”=ch=“9”: n1=1 elif “a”=ch=“z” or “A”=ch=5:n=_ #取字符串的前5个字符else:n=n+ *(5-len(n)return nr=1000;x=100;y=15;z=0.8 #从系统中分别获取消费额度、满和减以及打折的数值dis=红烧排骨,香炸刀鱼,虾仁,菜心,米饭 #某顾客所点菜品名称n
18、um=1,1,1,1,3 #某顾客所点菜品数量mon=46,45,68,16,1 #某顾客所点菜品单价print(菜品名称,数量,小计)_for i in range(len(dis):print(gs(disi),numi, ,numi*moni)s=s+numi*moniif s=r:total=s*zelse:_print(消费合计:,s)print(应收现金:,total)21若两个素数之差为 2,则该对素数称为双胞胎数,如 3,5 就是一对双胞胎数。编写 python 程序,实现如下功能:输入 n 的值,统计显示 n 以内的所有双胞胎数。程序运行界面如图所示: 实现上述功能的程序如下
19、,请在划线处填入合适的代码。 import mathdef isprime(x): _ for i in range(2,int(math.sqrt(x)+1): if x % i = = 0 : f=False return f n=int(input(请输入一个正整数 n:)c=0 k=3 while k = n-2: if isprime( k ) and_ : c + = 1 print(第+ str( c ) +对双胞胎数:, k ,和,k+2) _print(共有+str(c)+对双胞胎数)划线处处应该填入的语句为: ;划线处处应该填入的语句为: ;划线处处应该填入的语句为: 。2
20、2某企业开展“运动打卡 动动有奖”活动:若员工在本月累计运动时间30小时以下,奖励0元;达到30但不足45小时奖励300元;达到45但不足60小时奖励450元;60小时及以上奖励500元。小强用python编写程序实现相关功能:输入某员工本月累计运动时间(时),输出其能获得的奖励金额。(1)实现上述功能的程序如下,请在划线处填入合适的代码。t=int(input(“请输入您本月累计运动时间(时):”)if t0: print(“输入错误”)else: if t30: _ elif t45: m=300 _ m=450 else: m=500print(“您的奖励是:”,m)(2)当输入“-1”
21、时,输出信息为_(选填,填字母:A输入错误 / B您的奖励是:0 / C您的奖励是:500)23奇偶校验码是一种增加二进制传输系统可靠性的简单且广泛采用的方法,该方法通过增加一个校验位使得传输的二进制码中“1”的个数恒为奇数或偶数,因此该校验码也分为“奇校验”和“偶校验”。“奇校验”的原理:在发送端发送的每个字节二进制码后增加一个校验位(0或1),使得“1”的个数为奇数;接收端接收并统计每个字节及其校验位中“1”的个数,若为偶数,则意味着传输过程中存在差错。例如:接收到的每个字节及校验码1的个数传输正误1001010014错误0110101015正确1010110105正确根据以上原理,小强编
22、写了一个Python程序,对接收到的9位二进制编码进行“奇校验”,判断其传输的正误,若判断正确则将前一个字节的编码转成十六进制并输出。请回答下列问题:(1)若接收到的二进制码为“101011011”,传输过程_(选填:是/否)存在差错。(2)实现上述功能的Python程序如下,请在划线处填入合适的代码。s=input(请输入9位二进制编码:)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
23、 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(字节编码用十六进制表示:,_24“枚举算法”又称为“穷举法”,其基本思想是:一一列举出所有可能的解,并验证每个可能的解是否是真正的解,若是,就采纳,否则,就抛弃。小明利用枚举算法解决“百元买百鸡”问题。用100元钱买100只鸡,公鸡,母鸡,小鸡都要有。公鸡5元1只,母鸡3元1只,小鸡1元3只。请问公鸡,母鸡,小鸡各应该买多少只?假设公鸡有X只,母鸡有Y只,小鸡有Z只。以下Python程序段实现了“百元买百鸡”的功能,请补全处代码。c = 0for x in _ : for y in range(1,33): z = 100-x-y if _ : print(公鸡:,x,母鸡:,y,小鸡:,z)_ p