2024-2025学年高中信息技术教科版(2019) 必修一 2.3 周而复始的循环

2024-08-09
| 13页
| 116人阅读
| 0人下载

内容正文:

2.3 周而复始的循环 一、选择题 1.有如下 VB 程序段: s=0 : t=0 For i = 0 To 10 If i Mod 5 = 0 Then s=s+1 t=t+i Next i 该程序段运行后,s,t 和 i 的值分别是(   ) A.3  55  11 B.3 15  11 C.2  55 10 D.2  15  10 2.程序代码如下: x = l while  x < 10:         x = x+3        print(x) 屏幕显示结果是(  ) A.4,7,10 B.3,6,9 C.3,6,9,12 D.1,4,7,10 3.下列括号中填入什么值时,能显示0-10的数(   ) for  i   in   range():        print( i )​ A.9 B.10 C.11 D.12 4.“猜数游戏”中,计算机随机生成一个0~10之间的整数,用户输入一个整数进行猜测,计算机根据用户输入的数据进行比对,直到用户猜中为止。为了实现“猜数游戏”,补充完善下列 Python程序第5行下划线处的代码(   ) 1    #猜数游戏 2    import random 3    number=random.randint(0,10) 4    guess=int(input(“请输入猜测的数:”)) 5    while _____________: 6        guess=int(input(“猜错了,继续猜一猜:”)) 7    print(“恭喜你,猜对了!”) A.guess!=number B.guess=!number C.guess==number D.guess=number 5.阅读下列程序,选出运行结果(  ) def fib(m):    n1=1    n2=1    for i in range(3,m+1):       t=n1+n2       n1=n2       n2=t     return t print(fib(5)) A.5 B.8 C.3 D.13 6.在下图中,<3>处应该填入的正确代码是(    ) A.i B.s C.s+i D.不用填 7.以下问题中,适合利用循环结构解决的是(    ) A.统计100以内素数的个数 B.判断一个数是否是奇数 C.求一个学生三科成绩的平均分 D.求两个数中的较小值 8.使用Nilakantha级数可用于计算Pi(π)的无穷级数,它的计算机结果比莱布尼茨公式更快地接近Pi(π)的近似值。,有下列代码,通过前n项的计算,求Pi近似值,下列选项中正确的是(    ) s=0;n=0;i=0 n=int(input("请输入 n 的值")) for i in range(2,2*n+1, ① ): s=s+ ② print (s) pi = 3 + s * 4 print(pi) A.①1   ② (-1)**(i//2+1)/(i*(i+1)*(i+2)) B.①2     ② (-1)**(i//2+1)/(i*(i+1)*(i+2)) C.①1   ② (-1)**(i//2)/(i*(i+1)*(i+2)) D.①2     ② (-1)**(i//2)/(i*(i+1)*(i+2)) 9.有5万元资金存入银行,由于银行利率是不断变化的,这5年利率分别是3.25%、3%、3%、2%、1.75%。5年后会有多少收益呢?(money=50000,rate表示年利率),用for循环计算收益,下列选择正确的是(   ) A、 for rate in [0.0325,0.03,0.03,0.02,0.0175]: money=money*(1+rate) B、 for year in range(0.0325,0.03,0.03,0.02,0.0175): money=money*(1+rate) C、 for year in (0.0325,0.03,0.03,0.02,0.0175): money=money*(1+rate) D、 for rate in range[0.0325,0.03,0.03,0.02,0.0175]:    money=money*(1+rate) A.A B.B C.C D.D 10.函数range(6,10)生成的序列中元素的个数是(   ) A.3 B.4 C.5 D.6 11.有如下Python程序段 head=4 item=[[5,2],[7,3],[9,5],[2,-1],[1,0],[3,1]] p=head str1='' while p!=-1:     str1+=str(item[p][0])+"->"     p=item[p][1] print(str1[:-2]) 运行上述程序,结果为(   ) A.1->5->9->3->7->2 B.1->5->9->3->7->2-> C.1->5->9->3->7 D.1->5->9->3->7-> 12.在 Python语言中,运行以下程序,屏幕打印“*”的个数是(  ) for i in range(0,10,2): print("* ") A.10 B.5 C.6 D.9 13.在Python语言中,程序运行结果如下所示,应在以下横线处填写(  ) * * * for i in range(1, ,1): print("* ") A.6 B.5 C.4 D.1 14.居民身份证号码由6位地址码、8位出生日期码、3位顺序码和1位校验码组成。倒数第2位是性别代码,奇数代表男,偶数代表女。其格式如图所示: 列表IDlist存储了某校所有学生身份证号码,如要分别统计1-12月份出生的人数,Python程序代码如下: count=[0] * 12 for i in ______:    mon=int(i[10:12])            #从身份证中提取月份    ______ for i in range(12):    print(i+1,“月份人数为”,count[i]) 为实现上述功能,划线处自上而下依次填入的代码是: ①IDlist ②range(len(IDlist)) ③count[mon-1]+=1 ④count[mon]+=1 代码顺序正确的是(    ) A.②③ B.②④ C.①④ D.①③ 15.输入345,输出结果正确的是(    ) n=int(input("请输入一个整数:")) s=0 while n!=0:     s=s+n%10     n=n//10 print(s) A.14 B.13 C.12 D.11 16.在 Python 语言中,在 while 语句后面的条件不满足时就退出循环,但是,如果我们想在循环的过程中直接退出循环体,使用的命令是(  ) A.len B.end C.break D.del 17.求5~30所有能被5整除的数的积,在<1>、<2>、<3>处填入的正确代码是(    ) A.0  1  i+1 B.1  5  i C.0  2  (i+1) D.1  3  i-1 二、填空题 18.Python语言用于实现循环结构的语句有 语句和while语句。 19.分析完善程序 2005年10月9日,国家测绘局正式宣布珠穆朗玛峰的高度是8844. 43米,并停用之前的数据。 现有一张白纸,其厚度是0. 08毫米,对折一次,厚度变为0. 16毫米,再对折一次,厚度变为0. 32毫米,…,每对折一次,其厚度均变为对折前的两倍。 假设这张纸足够大,可对折任意次,那么这张纸至少对折多少次后,其厚度将超过珠穆朗玛峰的高度? 以下是求解该问题的VB程序片段。请你补全代码: 20.下面程序的运行结果为: , s=0 for  i  in  range(1,101):     s+=i     if  i == 50:         print(s)         break 21.用Python表达式补充完成如下程序,统计四位奇数中满足能被23和19整除的总数。 s=0 for i in range(1001,10000,2): :     s=s+1 print(s) 22.阅读以下程序,写出程序运行结果。 def jc(n): s=1 for i in range(2,n+1): s=s*i return s total=jc(4)    #调用jc函数 print(total) 程序运行后,其输出结果为 三、判断题 23.While循环语句的循环体中必须有改变条件表达式值的语句,否则会形成死循环。   ( ) 24.for循环与while循环任何时候都不可以相互替换。( ) 25.在循环中continue语句的作用是跳出循环的执行。( ) 26.下列程序段中,赋值语句s=s+i被重复执行了4次。 s=0 For i in range(3,10,2):        s=s+i   ( ) 27.下列Python程序段运行结束后,赋值语句sum=sum+i共被执行了9次。( ) 四、操作题 28.通过擂台法求解列表中的最大数。 a = [2345, 5421, 1254, 23, 5621] maxx = a[0] for k in :              # k在列表a中依次取值     if maxx < k:                  # 比较maxx和当前数          print( )                  # 输出结果 29.万达商场举行抽奖活动,具体方案:每人可抽取3个幸运数字(0~9)。抽到的数字依次作为个.十、百位组成一个三位数。若该三位数能同时被3、7、23整除,则为一等奖;若能同时被7、23整除则为二等奖;若只能被23整除,则为三等奖;否则没中奖。请你完善程序实现对中奖结果的自动分析。 [操作要求] (1)补充完善下划线处的内容使程序语句完整; (2)找出程序中的三处错误并改正; (3)运行程序,依次输入幸运数字5、0、8时,检查输出结果是否为“二等奖"。 num= 0 for i in range(1,3):#输入三个幸运数字 luck = input("请输入幸运数字:") if num%3==0 and num%7==0 and num%23==0: print("一等奖") elif num%7==0 and num%23= = 0: print("二等奖") elif : print("三等奖") elif: print("很遗憾,没有中奖") 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.A 【详解】本题考查VB程序设计。i从0到10进行循环,对i进行判断,所能被5整除,则累加s。通过计算得知,选项A正确。 2.A 【详解】本题主要考查Python程序的执行。x的初值为1,x每次递增3,循环条件是x<10,故x依次取1、4、7、10,因为先x递增3,再显示x,故屏幕显示结果是4、7、10,故本题选A选项。 3.C 【详解】本题考查Python程序设计相关内容。range函数用于生成一个整数序列,其语法是range(start, stop[, step])。其中start是序列的起始值,stop是序列的结束值(不包括),step是步长,默认为1,即序列中相邻两个数的差。当只传入一个参数时,表示生成从0开始、小于该参数的整数序列;当传入两个参数时,表示生成从start开始、小于stop的整数序列;当传入三个参数时,表示生成从start开始、每次增加step、小于stop的整数序列。结合四个选项,此处只需要传入一个参数去实现显示0-10的数,则应传入11,故本题答案是C选项。 4.A 【详解】本题主要考查Python程序调试。分析程序,由while循环体可知,当guess与number不相等时进入循环体,故填guess!=number,故本题选A选项。 5.A 【详解】本题主要考查Python程序的执行。分析程序可知,函数fib(m)用于求斐波那契数列的第m项,斐波那契数列是1、1、2、3、5、8……,因此fib(5)=5,故本题选A选项。 6.A 【详解】本题主要考查Python程序的调试。该程序通过for循环实现求3~200所有能被3整除个数,其中变量s统计满足数的和,即s=s+i,故<3>处应该填入的正确代码是i,故本题选A选项。 7.A 【详解】本题考查循环结构。适合利用循环结构解决的问题通常是需要重复执行某些操作的情况。在本题中,要统计100以内的素数个数,需要遍历每个数字,判断它是否是素数,然后计数。由于需要遍历多个数字并执行相似的操作,因此适合使用循环结构,如for循环,来处理。其他选项中,B选项只涉及单个数的判断,不需要循环;C选项只需要对三个成绩求和并计算平均分,不需要循环;D选项只需要比较两个数的大小,也不需要循环。故答案为A选项。 8.B 【详解】本题主要考查Python程序的调试。由莱布尼茨公式可以发现,分母中的后一项必前一项中的每个数都大2,可知变量i每次递增2,故①处填2,对比公式可知,②处填 (-1)**(i//2+1)/(i*(i+1)*(i+2)),故本题选B选项。 9.A 【详解】本题考查的是循环语句的应用。由循环体money=money*(1+rate)可知利率存储在rate中,故循环变量应为rate而不是year,选项B、C错误;range()是函数,故选项D错误。本题应选A。 10.B 【详解】本题考查Python函数的应用。range(start, stop,[step]),start: 计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0,5);stop: 计数到 stop 结束,但不包括 stop。例如:range(0,5) 是[0,1,2,3,4]没有5;step:步长,默认为1。range(6,10)生成:6、7、8、9共4个。故选B。 11.A 【详解】本题考查程序分析。这段代码的功能是根据给定的索引链表item和起始索引head,沿着索引链表依次输出对应的数字,直到遇到索引值为-1为止。最后,我们打印输出了str1[:-2],这里使用[:-2]是为了去掉最后的"->”。故正确答案为选项A。 12.B 【详解】本题考查Python程序的执行。range(start, stop, [step]),start:计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);stop:计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5;step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)。range(0,10,2)生成0,2,4,6,8序列,故打印出5个“*”。选项B正确。 13.C 【详解】本题主要考查Python程序的执行。range(start, stop, [step]),start:计数从 start 开始。默认是从 0 开始。例如range(5)等价于range(0, 5);stop:计数到 stop 结束,但不包括 stop。例如:range(0, 5) 是[0, 1, 2, 3, 4]没有5;step:步长,默认为1。例如:range(0, 5) 等价于 range(0, 5, 1)。输出了三个*,range要生成3个数的序列。故本题应选C。 14.C 【详解】本题主要考查Python程序的执行与调试。列表IDlist存储了某校所有学生身份证号码,第一空依次遍历列表IDlist,故填IDlist。由第二个for循环可知,count[i]中保存的是i+i月份的人数,因此第二空填count[mon-1]+=1,故本题选C选项。 15.C 【详解】本题考查的是Python循环语句。由循环体中代码s=s+n%10、 n=n//10可知,这是计算一个数的每位上数字之和,故输入345,则输出结果为:3+4+5=12,选项C正确。 16.C 【详解】本题考查的知识点是Python循环语句。在Python中,可以使用break语句退出循环。continue语句用于跳过当前循环的剩余部分并进入下一次循环,故本题应选C。 17.B 【详解】本题考查的是Python循环应用。求5~30所有能被5整除的数的积,可将初始s设为1,循环步长为5,每次进入循环乘i。故本题应选B。 18.for 【详解】本题主要考查Python循环结构。Python语言用于实现循环结构的语句有for语句和while语句。 19.0,h*2或2*h或h+h 【详解】本题主要考查循环结构和常见表达式。变量cnt用于定义对折次数,初始为0,即未对折;当纸张厚度h小于等于珠峰高度height时,执行Do循环,循环体中对折次数cnt累加1,纸张厚度为对折前两倍,即h=h*2或2*h或h+h。 【点睛】 20.1275 【详解】本题主要考查Python程序的执行。变量i的范围是1~100,每次循环执行s=s+i,当i==50时,输出s的值并退出循环,此时s=s+i=0+1+2+3+...+50=1275。 21.if i %23==0 and i %19 ==0 【详解】本题考查的是Python循环与选择语句。通过循环变量i遍历所有四位数的奇数,判断能否被23和19整除,只要看除完后的余数是否为0,故画线处代码为:if i %23 == 0 and i %19== 0。 22.24 【详解】本题考查的是Python函数及循环语句。由s=s*i及 range(2,n+1)可知返回值是s=1*2*3*……n,total=jc(4)=1*2*3*4=24。 23.正确 【详解】本题考查while循环语句。while循环中如果缺少条件判断,循环会无限制地执行下去,形成死循环,造成电脑内存空间占用,严重时可能造成电脑卡顿甚至死机。故本题判断正确。 24.错误 【详解】本题考查循环。for 循环和 while 循环是两种不同类型的循环结构,它们用于不同的情况,但它们通常可以相互替换。for 循环通常用于已知循环次数的情况,例如遍历一个列表或迭代器中的元素。while 循环通常用于未知循环次数的情况,即当某个条件为真时继续执行循环。在某些情况下,可以使用 for 循环来模拟 while 循环,反之亦然,但这通常需要额外的控制语句。故说法错误。 25.错 【详解】本题主要考查continue语句的作用。break是跳出循环的执行,continue是用于终止本次循环,故表述错误。 26.正确 【详解】本题考查的是Python的range函数。range(start, stop [,step]) ;start 指的是计数起始值,默认是 0;stop 指的是计数结束值,但不包括 stop ;step 是步长,默认为 1,不可以为 0 。range() 方法生成一段左闭右开的整数范围。range(3,10,2)生成的列表为[3,5,7,9],故题干中的说法正确。 27.正确 【详解】本题考查的是Python循环与选择语句。range(1,20)生成1~19的整数,阅读程序可知,只有i为1~19的偶数,才执行赋值语句sum=sum+i。故一共被执行了9次。题干中说法正确。 【点睛】 28. a maxx=k maxx 【详解】本题考查的是Python的for循环。①k在列表a中依次取值,故此处应为a。②如果找到一个比maxx值还大,则更新maxx值为k,故此处应为:maxx=k。③循环执行完后,最大值存储在maxx,故此处应为:maxx。 29.(1)num=num+int(luck)*10**i (2)① range(1,3)应改为: range(0,3);②print语句应缩进;③最后一个elif应改为:else 【详解】本题考查的是Python综合应用。 (1)依次输入的数字是字符类型,要转换为数字的三位数,故下划线处代码应为:num=num+int(luck)*10**i。 (2)for循环需要循环3次,依次输入个、十、百位数,则需要将for i in range(1,3) 改为 for i in range(0,3);满足判断条件才输出对应的奖项,故print语句应缩进;根据多分支语句格式可知,最后一个elif应改为:else。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

2024-2025学年高中信息技术教科版(2019) 必修一 2.3 周而复始的循环
1
2024-2025学年高中信息技术教科版(2019) 必修一 2.3 周而复始的循环
2
2024-2025学年高中信息技术教科版(2019) 必修一 2.3 周而复始的循环
3
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。