《浙教版(2020)信息技术八上 第10课 循环结构——while循环 同步练习(含解析).docx》由会员分享,可在线阅读,更多相关《浙教版(2020)信息技术八上 第10课 循环结构——while循环 同步练习(含解析).docx(13页珍藏版)》请在taowenge.com淘文阁网|工程机械CAD图纸|机械工程制图|CAD装配图下载|SolidWorks_CaTia_CAD_UG_PROE_设计图分享下载上搜索。
1、第10课循环结构-while循环一、选择题1.某Python程序代码如下:s=,tlHr2a3,sl=n; s2-*; i = 0while i len(s):if O=si=9:si = si + sielifav=si=z:s2 = si + s21 = i + 1ans = s2 + siprint(ans)程序执行后,输出的结果是()A. 12art3B. art 123C. rta 123D. art321.如下Python程序段x = 0while x 50:X = (X 4- 2) * (x + 3)运行后,X的值为()A. 0B. 72C. 50D. 1683.在一次比赛中,需
2、要随机给10名选手各编一个。9范围内的唯一序号,对应的Python 程序段如下:a,b=0*10,False*10i=0while i=9:if not br:ai=rRandomizeFor i=l TokA2b(i)=Int(Rnd*9)+ltmp=tmp 十 Str(b(i)If i Mod k=0 ThenList 2. Additem tmpEnd IfNext ilens=Len(s):n=lensFor i= 1 To ntmp=Mid(s,i, 1)Listl. Additem Str(a(i)Next iDo While n Mod k0n二n 十 1a(n)=0Listl.
3、 Additem Str(a(n)LoopFor i= 1 To nm=(il)Mod k+1t=lFoij=c(i)=a(j) * b(m-l) * k+t)+ct=t+1Next jNext iFor i= 1 To nList 3. Additem Str(c(i)Next i s=For i= 1 To lenss=s+Chr(t+64)Next iText 3.Text=s在Text 3中输出转置后的字符串End Sub参考答案1. B【详解】此题主要考查Python程序的执行。分析程序可知,变量si取出字符串s中的数字,依次放 到si中,sl=123;变量s2取出字符串s中的小写字
4、母,倒序放到s2中,s2=,arf, ans=s2+sl=,artl23,故程序执行后,输出的结果是artl23,故此题选B选项。2. B【详解】此题主要考查Python程序的执行。第一遍循环,x=(0 + 2) * (0 + 3) =6;第二遍循环 x=(6 + 2) * (6 + 3) =72,不满足x50,退出循环,故运行后,x的值为72,故此题 选B选项。3. B【详解】此题主要考查Python程序的综合应用。使用随机函数需要首先导入随机函数库,故第一空 填from random import randinto random。方法返回随机生成的一个实数,它在。1)范围内。 random
5、.randint(a,b)用于生成一个指定范围内的整数。其中参数a是下限,参数b是上限,生 成的随机数n:a=n3,循环体是。5+、故程序执行后, n=n+i=0+l+2+3=6,故此题选C选项。5. for【详解】此题主要考查Python循环结构。Python语言用于实现循环结构的语句有for语句和while语 句。6. for循环结构的基本格式:for循环变量in列表: 语句或语句组 While循环格式:While (表达式):语句或者语句组【详解】此题考查循环结构的基本格式7. a*b b ! =03【详解】此题主要考查Python程序的综合应用。求最小公倍数的做法为:先算出数a和数b的
6、最 大公约数k,那么最小公倍数就为数a乘数b再除以数k,此处先将a*b赋给变量c保存, 故填a*b。通过while循环求a和b的最大公约数,条件是除数b不为0,故填b ! =0。 第一遍循环r=27%15=12;第二遍循环,15%12=3;第三遍12%3=0,循环结束,故加框 处语句共执行了 3次。8. 309 myRank.append (Ai) j len (B) klen (A) +len (B) -1 Ai Bj 【详解】此题主要考查python编程。根据表格所示,列表B中第5个元素为309,因此处为309; 时,将列表末尾添加Ai,因此处为myRank.append (Ai);当列表
7、未结束时,列表末尾添加相应元素,因此处为jlen (B);算法二中引入变量k,用以记录i与j的 和,当k小于len (A) +len (B) -1说明两列表未结束,因此处为klen (A) +len (B) -1;假设那么先将Ai添加至列表末尾,因此处为Ai0或其他等价答案【详解】此题主要考查Python程序的执行与调试。在程序1中,i+=l这句话的含义是仁i+1 (即i 递增1)。i的初值为1, while循环条件ivlOl为真,会一直执行循环体,无法跳出循环体 执行i+=l,故把这句话打印100遍实际输出了无数遍。在程序2中,i的初值是100。 i=100, while i (即while
8、 100) 一直为真,会一直执行循环体,无法跳出循环体执行i=i-2, 故把这句话打印1。0遍实际输出了无数遍。在程序2中,while i的含义是i!=0 或i0或其他等价答案10. x%i=0 或 x/i=x/i 或其他等价表达式 isprime(k+2)或 isprime(k+2)=True c=c+l或 c+=l【详解】此题主要考查Python程序的执行与调试。isprime(x)函数判断x是不是素数,此处通过for 循环判断(用x依次除i,看能不能整除,i的范围时从2x),故填x%i=0或x/i=x/i。 此处判断相差2的两个数是不是素数,假设是,那么输出这两个数,故此处填isprim
9、e(k+2)或 isprime(k+2)=Trueoc用来统计双胞胎数的对数,假设满足是双胞胎数的条件,故此处填 c=c+l 或 c+=l。11. f = True isprime(k+2)k=k+1 或 k+=l 或 k=k+2 或 k+=2【详解】此题主要考查Python程序的执行与调试。isprime(x)用来判断x是不是素数,通过用x 整除2血(math.sqrt(x),如果余数为。那么说明该数不是素数,赋值f为假退出循环,f的初 值为True,故第一空填f = Trueo假设两个素数之差为2,那么该对素数称为双胞胎数,此 处判断相差为2的两个数是不是素数,故第二空填isprime(k
10、+2)。素数都是奇数,此处 需要更新k的值继续循环判断,可以将k的值递增1或递增2,故填k=k+l或k+3或k=k+2 或 k+=2o12. 89a6=Asc(tmp)-64 或 a(i)=Asc(tmp)-Asc(nA,)+1im+1 To i-m+kt=(cl)Mod 26+1【详解】此题考查乘法运算规那么的理解以及转置矩阵中行列数据的读取。(1)根据算法描述,图中(1) 处的值为15x5+14x1+0x2+0x9=89。(2)程序先随机生成数组b,其下标为1到kxk,并 以行列的形式显示在列表框list2中(即为转置矩阵),然后读取大写字符串s中的每个字符, 并将每个字符转换成相应字母表
11、中的位置存储在数组a中。代码处为字符转成相应的字母 表中位置值,下方代码将a (i)输出在列表框listl中,故此处应获取a (i)的值。根据题干 描述“字符AZ对应数值126”,此处为将tmp获取的字符通过Asc函数进行转换,语 句为句(i) =Asc (tmp) -64,还可以是句(i) =Asc (tmp) -Asc 句 A” ) +1”。代 码处为循环变量j的取值范围,根据乘法规那么,变量j的范围是每一段中的1到k之间的 值,需要获取每一段的起始位置下标,结合上文得到的m值,可得循环变量的范围是“i-m + lToi-m + k”。代码处是将计算结果c (i)按原长度转换成相应大写字符
12、,计算结果 要求除以26取余,假设直接写成c(i) Mod 26,那么导致数值26的结果为0,因此需要先减1, Mod后再加1这样的处理技巧,因此答案为“(c (i) -1) Mod 26+1 oi=i+lprint(a)那么划线处的代码依次是() r=random.randint(0,10) br=Trueimport random bi=Truefrom random import randint r=random.randint(0,9)A.B.C.D.4 .执行以下Python程序段后,变量n的值是()n=0for i in range(l,4):n+=iA. 4B. 3C. 6D.
13、1二、填空题5 . Python语言用于实现循环结构的语句有 语句和while语句。三、简答题6 .列举Python程序设计语言中,for循环和while循环的基本的格式。四、操作题7 .编写Python程序,实现以下功能:输入两个正整数a, b,输出他们的最小公倍数。 求最小公倍数的做法为:先算出数a和数b的最大公约数k,那么最小公倍数就为数a 乘数b再除以数k。而求最大公约数的方法一般为辗转相除法。它的具体做法是:用较 大数除以较小数,再用出现的余数(第一余数)去除除数,再用出现的余数(第二余数) 去除第一余数,如此反复,直到最后余数是e为止。如果是求两个数的最大公约数,那 么最后的除数就
14、是这两个数的最大公约数。例如:123456和7890的最大公因数是6, 这可由以下步骤(其中,“a%b”是指取a:b的余数)看出:aba%b12345678905106789051062784510627842322278423224622322462124621261260程序如下:a = int (input (输入第一个数:”) b=int (input (输入第二个数:”) c二 while (2):print (它们的最小公倍数是:,ca)(1)在划线处填入合适的代码、(2)如果输入的数分别为:27和15,那么加框处语句共执行了 次。8 .现今信息化时代,信息的传输十分迅速,足不出户
15、便知天下事。许多社交平台都有设置本平台的热点排行榜,方便用户了解正在发生的热门事件。但社交平台数量众多, 平台用户种类和数量也大不相同,导致不同平台热点的实际热度大小也不同。小钟为了 确保自己知道的热点是真正的热点,于是打算用功能强大的python把各个平台的热点 排行榜进行合并,形成自己的热点排行榜。为了热点之间比拟方便,小钟设置了一个热度值来衡量一个热点的热度大小,热度值越 大说明这个热点的热度越高。现在小钟已经获得了如下两个平台的热度值从小到大的排 行榜,正当他打算将之合并为一个从小到大的排行榜时,却被老师叫走了。于是他决定 把这个小功能交给他的好朋友一一你来实现,你想到2种算法,请把以
16、下程序填写完整。AP10P9P8P7P6P5P4P3P2Pl1166116329438582652714756925BE10E9E8E7E6E5E4E3E2El35116215271309428576772806950Python程序如下:A=ll, 66, 116, 329, 438, 582, 652, 714, 756, 925B =35, 116, 215, 271,(5)_, 428, 576, 772, 806, 950算法一:myRank =i = 0j =owhile (i len(A) and j len(B):if(AiBU):(6) += 1else:myRank.app
17、end(Bj)j+= 1while (i = len(A):myRankk = Bjj+= 1elif (j = len(B):myRankk= Aii += 1elif (9):myRankk = Aii += 1else:myRankk = Bjj += 1print(myRank)9阅读程序。观察使用随机数求解百钱白鸡问题的代码并回答以下问题。百千白鸡问题是经典的数学问题,原题为“鸡翁一,值钱五;鸡母一,值钱三;鸡雏三,值钱一;百钱买百鸡,那么翁、母、雏各几何? ”翻译过来,意思是公鸡一个五块钱,母 鸡一个三块钱,小鸡三个一块钱,现在要用一百块钱买一百只鸡,问公鸡、母鸡、小鸡各多少只?i
18、mport randomwhile True:x=random.randrange(0,20)y=random.randrange(0,33)z=random.randrange(0,100)if 5*x+3*y+z/3=100 and x+y+z=100:print。公鸡:x)print,母鸡:y).鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡鸡m一小公母小公母小公母小公母小小print,小鸡: z)4 1 18 8 18 4import random while True:x= random, randrange (0, 20)0O 00 1A 1A 11 11 今178188181y= random, ra
19、ndrange (0, 33) z= random, randrange (0, 100) if 5*x+3*y+z/3=100 and x4y+z=100: print (公鸡,x) print &母鸡 print (小鸡Zz)(1) Python中导入库文件的命令是(2) random.randrange(0,20)生成的随机数的范围是。(3)如果不想写类似random.randrange(0,20)这么长的句子,可以修改程序中的第一行(4) while True 的作用是。(5)如果while True造成程序无法停止,我们可以在程序中添加一行 10.阅读程序。分析以下两段Python程
20、序并回答以下问题。#程序1i=lprint,把这句话打印100遍)i+=l#程序2i=100while i:print。把这句话打印100遍) 一 _ _ A把这句话打印1。0遍把这句话打印1。0遍把这句话打印100遍把这句话打印1。0遍 巴这句话打印遍把这句话打印100遍 巴这句话打印遍把这句话打印1。0通 % . 一 一i=i-2#程序ii=lwhile i101:print (把这句话打印1。口遍) i+=l#程序2i=100while i:print C把这句话打印100遍) i=i-2把这句话打E把这句话打E把这句话打E把这句话打E1100遍1口口遍1100遍把这句话打E把这句话打E
21、把这句话打E1100 遍1100遍1100 遍1100遍杷议句话打印100遍(1)在程序1中,i+=l这句话的含义是(2)在程序1中,把这句话打印100遍实际输出了 遍。(3)在程序2中,i的初值是o(4)在程序2中,把这句话打印100遍实际输出了 遍。(5)在程序2中,while i的含义是。11.假设两个素数之差为2,那么该对素数称为双胞胎数,如3, 5就是一对双胞胎数。编写 python程序,实现如下功能:输入n的值,统计显示n以内的所有双胞胎数。程序运行 界面如下图:请输入一个正整数n:503 55 711 1317 1929 3141 43共有6对双胞胎数实现上述功能的程序如下,请在
22、划线处填入合适的代码。defisprime (x):for i in range (2, x):if:return Falsereturn Truen=int (input (“请输入一个正整数n: ” )c=0k=3while k实现上述功能的程序如下,请在划线处填入合适的代码。import mathdef isprime(x):for i in range(2,int(math.sqrt(x)+1):if x % i = = 0 :f=Falsereturn fn=int(input(请输入一个正整数n:*)c=0k=3while k KWK:I1一一二jPrivate Sub Comma
23、ndl_CIick()Dim a(l To 100)As Integer 存储字符串,长度不超过100个字符Dim b(l To 100)As Integer存储转置矩阵,长度不超过10*10Dim c(l To 100)As LongDim s As String, tmp As StringDim k As Integer, t As Integer, i As Integer, j As IntegerDim n As Integer, m As Integer, lens As Integers=Textl. Text在Text1中输入原始字符串k=Val(Text 2.Text)在Text 2中输入区块大小K