python软件编程等级考试(二级)编程实操题03程序填空阅读填空程序试题_第1页
python软件编程等级考试(二级)编程实操题03程序填空阅读填空程序试题_第2页
python软件编程等级考试(二级)编程实操题03程序填空阅读填空程序试题_第3页
python软件编程等级考试(二级)编程实操题03程序填空阅读填空程序试题_第4页
python软件编程等级考试(二级)编程实操题03程序填空阅读填空程序试题_第5页
已阅读5页,还剩16页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、ython 软件编等级考 二级)程实操 03 程序空阅读空程序试题 一、程填空1有如下程序段:sum=0for i in range(1,20,3) :sum+=iprint(”,sum)(1)循变量 的值为,值为:_,长为_。(2)该序执行后,输出的结果为。2请在空格处填写正确的代码使程序完善。实现功能:用辗转相除法求解两个正整数的最大公约数。x = 请输入第一个正整数y 请入第二正整:)m max(x,y) 找 x,y 中最大值n = min(x,y) 找出 x,y 中的最小值r m%n 求最大值除以最小值后的余数while r!=0: 如果余数不等 0,则行以下循环m =_ 把小值赋给

2、n =_ 把数赋给 r m%n 求得最大值除以最小值后的余这个数的最大公约数为,_)运行完请按任意键退出.)3阅读程序。分析下列切片相程序并回答问题。list2=5,6,7,8,9print(list2:)print(list22:)print(list2:2)print(list21:3)print(list22:4)(1)程第一个 print 的出结果是。 (2)程第二个 print 的出结果是_。 (3)程第三个 print 的出结果是。 (4)程第四个 print 的出结果是_。(5)程第五个 print 的出结果是。 4阅读程序。for in range(1,10):for in r

3、ange(1,i+1):print(%d %d=%2d%(j,i,j*i),end= )print()()第一行序中,变量 i 的数据范围为到。()第二行程序中,变量 的据范围_到_。()果”表示十进制数,那%2d 则表_ 位宽的十进制数。()三行程改为 print(%d X %d=%2d%(i,j,i*j),end= ,则本题的输应该是 _。()果最后行的 print()表换行,那么 end=的功能_ 。5分析完善程序已知包含 25 项的数列 , 。问题 写出该数列的通项公式 () _问题 以下是计算 S=1+ . + 的序,请补全代:s=0for in range(1,26):s=s+ p

4、rint(“s=”,s)补充完成上述通项公式和程序:()=_6利用 for 循,分别计算 中数的和、偶数的和。7猴子吃桃问题:猴子第一天下若干个桃子,当即吃了一半,还不瘾,又多吃了一个第 二天早上又将剩下的桃子吃掉一半,又多吃了一个。以后每天早上都吃了前一天剩下的一 半零一个。到第 天上想再吃时,见只剩下一个桃子了。求第一天共摘了多少。 8求 100 以内素数。9求 100 内数之和(使用 range 函)10写一个程序,实现九九乘口诀表。11最大公约数)用辗转相除求两个正整数的最大公约数。代码如下:def gcd (m,n):rwhile mnreturna请输入 a 的b请输入 的:)pr

5、int(最公约数: )填空:_ _ _ _ _12善程序实现以下功能并保。输入一元二次方程的系数 a,c 的值,求解一元二次方程 ax+bx+c=0(a0)#请不要更改源程序的结构,删原题里的、。填写正确的代码,使程序完善 import matha=float(input(请输入方程系 a(!=0):)b=float(input(请输入方程系 b:)c=float(input(请输入方程系 c:)delta=b*b-4*a*cif _:x1=(-b+math.sqrt(delta)/(2*a)x2=(-b-math.sqrt(delta)/(2*a)方有两个不同的,elif delta=0:x

6、1=_方有两个相同的,x1)else:方无)运行完毕,请按回车键退.)13善程序实现如下功能并保:有 个坐一起,第 5 个人说他比第 4 个小 3 岁第 4 个说他比第 个小 岁 第 个说比第 个小 岁;第 个人又说他比第 1 个小 3 岁第 1 个人说他是 38 岁。编写程序,计算出第 5 个的年龄并显示。def age(n): n = c = _else: c = age(n - - 3return _第 5 人年:,运行完毕,请按回车键退.)14百鸡百钱”问题是一个有的数学问题,出自张丘建算经。其内容:公鸡 5 文 钱 1 只母鸡 3 文钱 1 只小鸡 3 只 钱,用 文钱买 100 只

7、鸡,其中公鸡、母鸡和 小鸡都必须要有,问公鸡、母鸡和小鸡各多少?()在空格填写正确的代码,使程序完善实现以下功能。money=100 一 文钱 一共 100 只鸡cock_price=5 公鸡价格 5 文hen_price=3 母鸡价格 3 文threechick_price=1 #3 只鸡 1 文for in range(1,_): 公鸡只数可能为 1-20for in range(1,_): 母鸡只数可能为 for chick_num range(1,101): ( 小鸡)只数可能为 1-100 money1=cock_num*cock_price+hen_num*hen_price+ch

8、ick_num/threechick_pricenum1=cock_num+hen_num+chick_num money1=money and num1=num:print (cock_num,hen_num,_)运行完毕,请按回车键退.)()行程序运行结果如图所示。15知圆柱体的底面半径为 ,为 均为正整,张编写了一个程序计算圆柱体的 地面周长和面积,圆柱体侧面积以及圆柱体体积,其中圆周率定义为3.14请根据下列 代码回答问题:r=int(input(请入半径 r:h=int(input(请入高 ”)_c=2*pi*rs=pi*r*2S=c*hV=s*hprint(c,s,S,V)(1)解

9、问题的程序用到的控制结构有(:顺序结构、分支结构、 循环结构)(2)请程序补充完整。(3)请出程序中的错误代码,并改正。_16家商场在降价促销,如果买金额不高于 元,会给 10%的折,如果购买金额 高于 200 元会给 20%的扣。编写一个 Python 程序,输入消费额(整数),显示折扣后 的应付金额。17知 6 月份 10 位技术考试成绩:17828838949058367677589891001065技术老师想统计出 80 分(含 )上的人数,请完善程序,代码如下: a=78,88,89,90,83,76,75,98,100,65_sum=0for in range(n): ai=80:

10、_print(sum)执行上述程序段后,输出的内容_18解 到 内包 a 和 b)所有的质数,并对每个质数的每一位数字求和。请完善 程序。程序如下:import mathdef IsPrime(i): i=1:return Falsefor in range(2,int(math.sqrt(i)+1):if_:return Falsereturn Truea=int(input(请入 a:)b=int(input(输入 b:)for in range(a,b+1): IsPrime(i):_while t0:_数和:19种数据加密方法描述如下加密前数据是 ASCII 字符):以 个据为一段,将

11、 n 个待加密数据依次分割成若干个数据,剩余数据(个数小于 8)为独立数据段。数加密规则:数据个数等于 8 的数据段,对各个字符进行位置变;数据个数小于 的数据段,不进行位置变换。位置变换:用位置变换密钥数组 c,数据段每个字符进行位置变换,方法如下:加密后某数据段的第 i 个素对应原数据段的第 c(i)个素,其中 i=12,。数值变换:位置变换后,依次取出各个字符进行数值变换:把该字符的 ASCII 码二制,然后与密钥 m 对的二进制数m 为 到 255 之间的整数)按位异或运算。异或运算 ()规则:如果 、 两个值不相同,则 ab 结果为 ;如果 a、 两个值相同,则a 结为 0,即:0=

12、0,。把述处理的得到二进制数依次拼接,即构成最后的加密数据例如,待加密数为“,数组 c 各元素的值依次是数组 3 6 1 5 2 8 4 7 则数据位置变换如下:如值变换密钥 m 为 35(进制表示是 00100011)则字符”ASCII 码是 116二进 制表示是 )数值变换过程如下:变换前密钥 变换后000101110101000101011011()知“” ASCII 码是 ,“”值变换后的结果_(二进 制数据)。()李根据述算法,设计了一个数据加密程序,其 VB 代如下,请在划线处填入合 适的代码。Const = Dim c(1 To IntegerPrivate _ Load()产位

13、置变换密钥数组 ,代码略End SubFunction convert(c Integer)As String程功能:把整数 转成 8 位二进制数,代码略End FunctionPrivate Command1_Click()Dim s As String,st As String,ss As String,res As StringDim Integer,j As Integer start As IntegerDim a(1 n) String,b(1 To n) As Strings = Text1. Textst convert(Val(Text2. Text)For = To Len

14、(s)a(i) = Mid(s,i,1)Next i = 1:start = -8Do _ i 8 1 start = start + b(i)=_ = i + 1LoopFor = i Len(s)b(j) = a(j)Next jFor = To Len(s)For = To 8 Mid(ss,j,1)= Mid(st,j,1)Thenres res + 0 res = res + 按位异或Next jNext iText3. Text = resEnd Sub20码强度检测。编写 python 程序,实现如下功能:输入要检测的密码输出密码强度 结果。密码字符分为数字字符、字母和其他符号三

15、类。密码强度的检测方法为:若密码位 数少于 位则不进行强度检测,给出提示“密码位数不能少于 8 位请重新输入!”。 若密码位数在 8 位及以上,则进行强度检测:若密码字属于同一类字符,则密码强度为 “弱”;若密码字符属于不同的二类字符,则密码强度为“中等”;若密码字符属于不同 的三类字符,则密码强度为“强”。()输入“”,则输出结果_(填选字母:密码位数不能 少于 位请重新输入! / B弱 C中等 D强)()现上述能的程序如下,请在划线处填入合适的代码。(请输入要检的密码:”)_ n8:(密码位数不能少 8 位请重新输入!”)elsen1=0n2=0n3=0for in (,)_ 0“ ”n1

16、=1elif “”“” or “”=ch=”n2=1else:n3=1 :(强”)elif :(中等”)else(弱”)21读程序。观察使用随机数解百钱白鸡问题的代码并回答问题。百千白鸡问题是经典的数学问题,原题为“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三, 值钱一;百钱买百鸡,则翁、母、雏各几何?”翻译过来,意思是公鸡一个五块钱,母鸡 一个三块钱,小鸡三个一块钱,现在要用一百块钱买一百只鸡,问公鸡、母鸡、小鸡各多 少只?import randomwhile True:x=random.randrange(0,20)y=random.randrange(0,33)z=random.randran

17、ge(0,100) 5*x+3*y+z/3=100 and x+y+z=100:print(公,x)print(母,y)print(小,z)() 中入库文件的命令_。()random.randrange(0,20)生的随机数的范围_。()果不想类似 random.randrange(0,20)这长的句子,可以修改程序中的第一行为 _() True 的作用是_ 。()果 while True 造程序无法停止,我们可以在程序中添加一行 _。 22项目情境)递归就是自己用自己,它是设计和描述算法的一种有力工具,常常用 来解决比较复杂的问题。为求解规模为 的问题,设法将它分解成规模较小的问题,从小 问

18、题的解容易构造出大问题的解,并且这些规模问题较小的问题也能采用同样的分解方 法,分解成规模更小的问题,并能从这些更小问题的解构造出规模较大问题的解。一般情 况下,规模 时问题的解是已知的。已知:从 1 到 的续自然数相乘的积、叫做 乘、用符号 表示。如 5!=15,定 。我们用递归算可以较容易求 n 的 阶乘。求 的乘算法可以描述如下:n!=n*(n-1)! (n-1)!=(n-1)*(n-2)! (n-2)!=(n-2)*(n-3)!2!=2*1! 1!=0! 0!=1如果把 n!写函数形式,即 f(n)=n*f(n-1)。 f(5)是表示 ,求 5!的程可以写成 如下形式:f(5)=5*f

19、(4) f(4)=4*f(3) f(3)=3*f(2) f(2)=2*f(1) f(1)=1(问题求解)在 python 中递归算法求 1!+n!( 的为整数,从键盘输 入)。请阅读如下程序,在空白处填写适当的表达式或语句,使程序完整。def f(n): n=0:return 1else:return _s=0n=int(input(输入 nfor in_:s=_print(s)23习了 Python 绘制图形操作后,信息小组接到了编程演的任务。为此,小组同学编 写了一段代码,绘制出多个不同颜色的圆形。代码如下:import turtleturtle. (colors=red, green,

20、blue, yellowfor ()turtle. pencolor()turtle. ()turtle. left()请分析任务,完成下列题目。()序中应填写_) 。Aprint input in colors ()序中 x%4 的用是()A计算 x 乘 的果B计算 x 除 4 的数部分C计算 除 4 的数部分计 除 4 的数()行此程,绘制出圆形的总颜色数是) A1 5 100()行此程,绘制出圆形的总个数是_) A1 99 100()程序属程序设计结构中的_)。A顺序结构 C循环结构分结构 跳结构24两个素数之差为 ,则该对素数称为双胎数,如 35 就是一对双胞胎数。编写 python

21、程,现如下功能:输入 n 的,统计显示 以的所有双胞胎数。程序运行界 面如图所示:实现上述功能的程序如下,请在划线处填入合适的代码。 import mathdef isprime(x):_for in range(2,int(math.sqrt(x)+1): x % i = = 0 f=Falsereturn fn=int(input(输入一个正整数 n:)c=0k=3while k = n-2: isprime( k ) and_ :c = print(第+ c ) 对胞胎数, k ,和,k+2) _共+str(c)+对胞胎数划线处处该填入的语句为: ;划线处处该填入的语句为: ;划线处处该

22、填入的语句为: 。25企业开展“运动打卡 动有奖”活动:若员工在本月累计运动时间 30 小以下, 奖励 元达到 但不足 45 小奖励 300 元达到 45 但足 60 小时奖励 450 元60 小 时及以上奖励 元小强用 python 编程序实现相关功能:输入某员工本月累计运动时 间(时),输出其能获得的奖励金额。()现上述能的程序如下,请在划线处填入合适的代码。t=int(请输入您本月累计运动时间(时):”) t0:(输入错误”)else :_elif t45:else:print(您的奖励是:”)()输入“”时,输出信息为_(填,填字母入错误 B您的奖 励是: / 的奖励是:)26两个素数

23、之差为 ,则该对素数称为双胞胎数,如 , 就是一对双胞胎数。编写 python 程序,实现如下能:输入 n 的,统计显示 以内的有双胞胎数。程序运行界 面如图所示:实现上述功能的程序如下,请在划线处填入合适的代码。 def ():for in (,)_:return Falsereturn Truen=int(“请输入一个正整数 n:)c=0k=3while k max1 : max1 = _最值:, _)运行完毕,请按回车键退.)【参考答案】*试处理标记,请不要删除一程填1初值为 终为:20 步为3 sum=70【详解】本题主要考查 Python 循环结构。由代码 for in range(

24、1,20,3) ,知循环变量 i 的值为 1,终值为 20步长为 3该程序执行后,输出的结果为。2 r n【详解】本题考查的是 Python 循环语句。辗转相除法:用较大数除以较小数,再用出现的余数(第 一余数)去除除数,再用出现的余数(第二余数)去除第一余数,如此反复,直到最后余 数是 为。如果是求两个数的最大公约,那么最后的除数就是这两个数的最大公约 数。 由 n = min(x,y) 可最小值为 n,故处为 ,由 = 可余数为 r,故处为 r,后的除数是 (即最大公约数为 n)故处 。35,6,7,8,9 7,8,9 5,6 6,7 7,8【详解】本题主要考查 Python 列表截取。P

25、ython 列表的正向索引下标是从零开始,不是 1;只有 冒号,表示全部元素;只有头下标 和号(代表的是从该头下标 的元素开始截取,一直 到最后);只有冒号尾下标 (表的是从开始一截取到 i-1 的素);头下标 i,号和 尾下标 j 都(代表是从 i 一截取到 j-1 的素),因此5,6,7,8,97,8,95,66,7【点睛】4 1 i 2末尾不换行,添加空格【详解】本题主要考查 Python 程序的执行与调试。()第一行程序中( in range(1,10):), 变量 的据范围为 到 9。(同理,在第二行的程序中for j in range(1,i+1):)变量 j 的数据范围为 1 到

26、 。3如果表示十进制数,那么 则示 n 位宽的十进制 数, 则示 2 位的十进制数。(4)三行程序改为 print(%dX %d=%2d%(i,j,i*j),end= ,本题的输出应该是, 与 j 的置进行了交换,如 变为 2X1=2。(5)果最后一行的 表换行,那么 ”的能是末 尾不换行,添加空格。52*n-1n 2*i-1 i/【详解】本题主要考查 Python 程序的执行与调试分数列可知,分子第 项 n,分母第 n 项是 2*n-1故该数列的通项公式 f()=n/)或 ()此是对前 项 进行求和,变量是 ,用语句 s=s+i/() 或 s=s+ ()故此处填 i/() 或 (i*2-1)

27、6sum1=0sum2=0for in range(1,101): i%2=0 sum1+=ielse:sum2+=iprint(sum1,sum2)【详解】本题主要考查程序设计。可以使用 Python 程设计语实现题干要求,通过 if 条件分支结 构可以实现分别计算奇数的和、偶数的和,具体代码如下:sum1=0sum2=0for in range(1,101): i%2=0 sum1+=ielse:sum2+=iprint(sum1,sum2)7s=1for in range(9):s=(s+1)*2print(s)【详解】本题主要考查 Python 程序设计。第 10 天,只剩下一个桃子

28、s=1,题每天早上都吃了 前一天剩下的一半零一个,则第 9 天剩下的桃子(,以通过 for 循环求得第一天 共摘了多少个桃子,具体代码如下:s=1for in range(9):s=(s+1)*2print(s)8for in range(1,100): 1:for in range(2,i): (i % j) 0:breakelse:print(i)【详解】本题主要考查 Python 程序设计。可以通过 for 循找出 100 以的素数,用 i 依整数 2i-1,果能整除表明 i 不是素数,否则 为质数,具体代码如下:for in range(1,100): 1:for in range(2

29、,i): (i % j) 0:breakelse:print(i)9Sum=0for in range(1,101,2):Sum+=iprint(Sum)【详解】本题主要考查 Python 程序设计。求 1 内数之和,用 来求和,变量 范围是1 到 100,每次递增 2,可以使 range 函数,具体代码如下:Sum=0for in range(1,101,2):Sum+=iprint(Sum)10for in range(1,10):for in range(1,i+1):print(str(j)+*+str(i)+=+str(i*j),end= )print()【详解】本题主要考查 Pyt

30、hon 程序的执行。九九乘法口诀表可以通过嵌套 for 环实现,内层循环 完一次,执行 换行,具体代码如下:for in range(1,10):for in range(1,i+1):print(str(j)+*+str(i)+=+str(i*j),end= )print()11m%n r n (,)【详解】本题主要考查 Python 程序设计。首先对 m 和 n 求得到 ,断 是否为 0,故此处填 m%n。如果 r 为 0 则束,否则更新 m 值为 ,n 值为 r。此处用更新的 m 和 n 继续求 ,继续判断,故填 。循环结束后当 时,n 即为最大公约数,故填 n输入 a 的,使用函数 g

31、cd 求 和 b 的大公约数,故填 gcd(,)12-b/(2*a)【详解】本题主要考查 Python 程序执行与调试。delta 大 ,方程有两个不同的解delta 等 0,方程有两个相同的解delta 小 0,方程无解,故第一空填 delta=0,则方程有 两个相同的根,x=-b/(2*a),故第二空-b/(2*a)。13c 5【详解】本题主要考查 Python 程序执行与调试。第个人 38 岁n 标记第几个人,变量 c 保 年龄,当 n=1 时,第一空填 38。后面的人都比前一个人小 3 岁故当 n 不 于 时调递归函数 age, age(n - 1) - ,最后返回第 个的年龄 ,第二

32、空填 。 此是返回第 5 个人的年龄,即 , 5。14 chick_num【详解】本题主要考查 Python 程序的执行。公数量的范围 , cock_num in 表 示变量 cock_num 的围是 1-20,故此处填 21鸡的数量可能为 ,同理,故此处 填 34。此是按顺序使用 函输出公鸡数量、母鸡数量、小鸡数量,故此处填 chick_num。15序结构 pi=3.14 r=float(input(“输入半径 r:”) 整和实数型不能直接运算,结果会有误差 h=float(input(“输入高 h:”)【详解】本题主要考查 Python 程序执行与调试。分析程序可知,解决问题的程序用到的控

33、制结构 有:顺序结构。圆周率定义为3.14,第二空填 pi=3.14r=float(input(“请输入 半径 ”) 整和实数型不能直接运算,结果会有误差 h=float(input(“请输入高 h:”)。16请入消费额(整数:) price 200:price=price-price*0.1 else:price=price-price*0.2 折后的应付金额是,price)【详解】本题主要考查 Python 程序的执行与调试。用键盘通过输入函数 input 输消费额,并用 函数将其转换为整数类型,通过 if 条件分支结构,判断如果购买金额不于 元会给 的折扣,如果购买金额高于 200 元会

34、给 的扣,最后用 print 输函数输出折扣 后的应付金额。17n=len(a) sum+=1 或 sum=sum+1 【详解】本题主要考查 Python 程序调试与执行。变 用来保存数组 的长度,使用 len 函, 故此处填 n=len(a)。使 for 循统计出 分(含 80)上的人数,用变量 sum 统 满足条件的人数,当满足 条时sum 变递增,故此处填 sum+=1 或 sum=sum+1 执行上述程序段后,sum=6,故输出的内容是 。18i%j=0 t=i t=t/10【详解】本题主要考查 Python 程序执行与调试。此处是处理从 2 开始到 i 开方加 1若能整除 i 则表明

35、 i 不素数,否则直到环结束,表明 i 是数,故此处填 。若 是素数, 则将变量 i 赋变量 t,通 while 循环将 t 的每一位取出来并加到 中故此处填 。同理此处取个位数后,更新 t 的值继续循环,故此处填 19 =(Len(s)8)*8 + c(i-1)Mod 8+1) = convert(Asc(b(i)【详解】()” ASCII 码值是 65,二进制表示为 ,m=35,用二进制表示为 0010001,做异或算,相同为 ,相异为 1,得:01100010。()以 8 个据为一段进行分段处,个数等于 8 的据段需进行位置变换,故需进行 位置变换的数据段有Len(s)8)个数据个数为

36、。位置变换方法:加密后数据段的第个元=原据段的第 c(i)个素,其中 , 2, 表示段内位置。代码Do i ”的 i 对段内位置可为 “1+(i-1)Mod8”,start 表该数据段第一个数据的前个位置,故数组 b 第 位元素是来 自数组 a 第 start + c(1+(i*-1)Mod 位,故处代码为a(start + ”位置变换后的数据需转二进制,再按位做异或运算,故处的代码是调用自定义函数 convert 把 b(i)中符的 ASCII 码二制后存入变量 ss,故此处代码为ss = convert(Asc(b(i)”。20D n=len(password) ch=passwordi

37、x=n1+n2+n3【详解】本题主要考查 Python 程序的执行与调试!含三类字符,输出结果为 强,选 选。此处取密码的长度,将其赋给变量 n,是回字符串的长度,故填 。ch 是取密码的每一位进行判断,故此处填 。当出现 数字时 n1=1,当出现字母时 ,当出现其他字符时 n3=1, 用统计有几类字符,故 此处填 。21import 019(括 0 和 19 import 让程序无限循环 break;【详解】本题主要考查 Python 程序的执行与调试Python 中导入库文件的命令是 , import random.randrange(0,20)成的随机数的范围是 019(包括 0 和 ) 如不想写类似 random.randrange(0,20)这长的句子,可以修改程序中的第一行为 import random as (给 r

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论