
青少年编程等级考试∶Python编程二级试卷4精品程序填空阅读填空程序试题.doc
26页青少年编程等级考试∶Python编程二级试卷4精品程序填空阅读填空程序试题一、程序填空1.小王编写了“字符串缩写”程序,实现如下功能:1.输入一串由英文字母和数字组成的字符串,2.如果字符串有连续字符构成的升序段(后面字符的ASCII值比前面的字符的ASCII值大1),则把升序段缩写成由第一个字符加上“ — ”和最后一个字符组成的新字符段,3.例如:字符串为“abcdf12345becomexy”,则缩写成“a-df1-5becomex-y”程序运行时,输入一串字符,输出缩写的字符串,程序运行效果如下图所示: 实现上述功能的程序如下,请在程序划线处填入合适的代码s=input("请输入字符串s:")_______flag = Falseresult=" "for i in range( 0 , k-1): if ___________________ : result=result+s[i]+"-" flag = True elif ord(s[i]) ! = ord(s[i+1])-1: result=result+s[i] _____result=result + s[i+1]print("缩写后的字符串为:",result)划线处①处应该填入的语句为: ;划线处②处应该填入的语句为: ;划线处③处应该填入的语句为: 。
2.请在空格处填写正确的代码,使程序完善实现功能:用辗转相除法求解两个正整数的最大公约数x = int(input('请输入第一个正整数:'))y = int(input('请输入第二个正整数:'))m = max(x,y) #找出x,y中的最大值n = min(x,y) #找出x,y中的最小值r = m%n #求得最大值除以最小值后的余数while r!=0: #如果余数不等0,则进行以下循环 m =________ #把最小值赋给m n =_________ #把余数赋给n r = m%n #求得最大值除以最小值后的余数print('这两个数的最大公约数为:',______)input("运行完毕,请按任意键退出....")3.程序补充:(1)有5万元资金存入银行,选择“1年定期.自动转存”的存款方式,由于银行利率是不断变化的,这5年利率分别是3.25%.3%.3%.2%.1.75%,5年后会有多少收益呢?调用round()函数,保留结果两位小数。
money =_______________________________ rate=_________________________________ for___________________________________ ____________________________________ print(“5年以后存款总额:”,money,“元”) (2) 某投资者购买了10万元一年期收益率3.7%的银行保证收益型理财产品每年理财赎回后,他会提取2万元用作生活所需,余下资金仍购买此种理财在收益率不变的情况下,多少年后本金被全部取出? money= ________________________________ year= __________________________________ while _________________________________ _________________________________ ________________________________ print(year,“年后资金被全部取出”)4.阅读程序。
阅读求水仙花数的代码并回答问题水仙花数”是指一个三位数,其各位数字立方和等于该数本身例如:153是一个“水仙花数”,因为153=13+53+33,请计算并输出所有三位数的水仙花数for n in range(100,1000): i=n//100 j=n//100%10 k=n%10 if n==i*i*i+j*j*j+k*k*k:print(n)(1)//的符号作用是 _____ 2)%的符号作用是 _____ 3)==的符号作用是 _____ 4)在代码中,变量i表示的是三位数中的 ______ 位5)在代码中,变量j 表示的是三位数中的 ______ 位6)在代码中,变量k表示的是三位数中的 ______ 位7)在range(100,1000)这个区域内,变量n无法取到的数值是________5.完善程序以下是计算S=1+6+11+…+101的程序代码请你在处填写正确的语句s=0k=1while(k<=101)__s=0k=1while(k<101): k=k+5 s=s+kprint(s+1)6.以下是计算s = 1+6+11+...+ 101的程序代码,请补全程序。
s=0for i in range(1,102, ):s= print( s)请补充完成上述程序①_________ ②_________7.程序分析题学校举行校园歌手大赛,评委由6人组成评分方法:去掉一个最高分和一 个最低分,计算其余4位评委的平均分,作为选手的最终得分max记录最高分; min记录最低分; s记录六位评委的总分; aver记录最终得分第1步:从文本框中分别读入6位评委的打分并依次存入到a(1)至a(6)中第2步:将第1位评委的打分a(1)分别赋给最高分max ,最低分min和总分S第3步:利用循环结构把另外5位评委的打分累加给s从而求出6位评委的总分s ,同时把5位评委的打分与max和min进行比较,得出6位评委中的最高分max和最低分min第4步:从总分中s中去掉最高分max和最低分min,求出其他4位评委的平均分aver作为选手的最终得分max=a[0]min=a[0]s=0for i in range(6) :s=s+a[i]if a[i]>max:max=a[ i]if a[i] A.Entry B.Label C.Frame D.Button(2)题目中算法描述采用的是__________A、自然语言B、伪代码 C、流程图 D、.N-S图(3)下列程序代码片段对应于算法描述中的第2步至第4步请填写片段中空白处的表达式填写完整________8.分析完善程序已知包含25项的数列: 1,2/3,3/5,....,24/47,25/49问题1 :写出该数列的通项公式f(n)= _①问题2 :以下是计算S=1+ 2/3+3/5+ ... + 24/47+ 25/49的程序,请补全代码:s=0for i in range(1,26): s=s+ ② print(“s=”,s)补充完成上述通项公式和程序:①f(n)=_________②___________9.约瑟夫问题是个有名的问题:N个人围成一圈,顺序为0,1,2,3,4,5,从0号这个人开始报数,报到2的将被杀掉,接下去重新开始报数,报到3的将被杀掉...以此类推,最后剩下一个,其余人都将被杀掉例如N=6,被杀掉的顺序是:1,4,3,0,5;最后只剩下2这个人llist=n=int(input(“请输入参与人数:”))for i in range(0,n-1):llist.append([i,i+1])______________________long=nk=headi=1p=2while(____ ): if i==p-1: t=llist[k][1] print(llist[t][0])#索引为t的删除 __________________ if t==head: ___________________ i=1 p+=1 long=long-1 k=llist[k][1] ______________ i+=1print(llist[head][0])10.哥德巴赫在1742年提出了以下猜想:任何一个大于2的偶数都可以写成两个质数之和,请完善代码帮助哥德巴赫验证他的猜想。 import mathdef ss(n):Flag=Truei=2while i <= int(math.sqrt(n))and Flag: if _____________ Flag = False _____________ return Flagn=int(input(“输入一个大于2的偶数”))for i in rang(2,n//2+1):if____________print(str(n)+"="+str(i)+"+"+str(n-i))如果输入“8”则结果显示_____11.编写一个程序,判定用户输入的两个数 a和 b,如果用户输入的第一个数大,则两数互换,否则原样输出12.求1~100内奇数之和(使用range函数)13.编写一个程序,实现九九乘法口诀表14.“百鸡百钱”问题是一个有名的数学问题,出自《张丘建算经》其内容是:公鸡5文钱1只,母鸡3文钱1只,小鸡3只1文钱,用100文钱买100只鸡,其中公鸡、母鸡和小鸡都必须要有,问公鸡、母鸡和小鸡各多少只?(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*co。
