资源简介 第六节 Python循环结构的程序实现1. 运行如下程序,s的值为( D )s=0for i in range(5): if i==3: break s=s+iprint(s)A. 15 B. 10C. 7 D. 3【解析】 本题主要考查Python程序的执行。i依次取0、1、2、3、4,当i=3时,退出循环,此时s=s+i=0+1+2=3,故运行完成后s的值为3。2. 运行如下程序,输出的结果是( A )sum=0for i in range(2,11,4): sum=sum+iprint(sum,i)A. 18 10 B. 17 11C. 54 10 D. 65 10【解析】 本题主要考查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)。sum=0,变量i依次取2、6、10,故sum=0+2+6+10=18,故输出的结果是18,10。3. 某Python程序如下:a=[18,2,-1,-7,16,-2,12,8]k1,k2=1,1for i in range(len(a)): if a[i]>a[k1]: k2=k1;k1=i elif a[i]>a[k2]: k2=i程序运行后,变量k1,k2的值分别为( D )A. 2,5 B. 4,0C. 5,2 D. 0,4【解析】 本题考查for语句及程序代码的分析理解能力。分析代码,可知k1是最大数的下标,k2是第二大数的下标,D正确。4. 某Python程序如下:s=0n=100while s<300: s+=n n-=10程序运行后,n和s的值分别是( A )A. 60,340 B. 70,400C. 60,400 D. 70,340【解析】 第一次循环,s=0,满足s<300这一条件,执行s+=n和n-=10,此时s和n的值分别为100、90;第二次循环,s=100,满足s<300这一条件,执行s+=n和n-=10,此时s和n的值分别为190、80;第三次循环,s=190,满足s<300这一条件,执行s+=n和n-=10,此时s和n的值分别为270、70;第四次循环,s=270,满足s<300这一条件,执行s+=n和n-=10,此时s和n的值分别为340、60;最后s=340不满足s<300这一条件,循环不执行,此时s和n的值分别为340、60。5. 若k为整型,下列while循环执行的次数为( A )k=1000while k > 1: print(k) k=k//2A. 9 B. 10C. 11 D. 100【解析】 本题主要考查Python程序的执行。循环条件是k>1,循环体k=k//2,因此1000//2=500,500//2=250,250//2=125,125//2=62,62//2=31,31//2=15,15//2=7,7//2=3,3//2=1,循环结束,一共循环了9次。6. 阅读程序代码,若依次输入"p""y""t""h""o""n"" ",则输出的结果是( C )s=""x=input("请输入一个字符:")while x!="": s=x+s x=input("请输入一个字符:")print(s)A. python B. p+y+t+h+o+nC. nohtyp D. n+o+h+t+y+p【解析】 本题主要考查Python程序的执行。分析程序可知,该程序将输入的字符逆向输出,因此若依次输入“p”“y”“t”“h”“o”“n”,则输出结果是nohtyp。7. 运行如下程序,输出的结果是( A )i=0while i<10: print(i,end= ) i=i+1A. 0123456789 B. 123456789C. 12345678910 D. 012345678【解析】 本题主要考查Python程序的执行。循环结构中,先输出i,再执行i递增1。i的初始值为0,循环条件是i<10,故输出结果为0123456789。8. 某Python程序如下:s = "1010/1100/1111"ans,t = 0,0for i in s: if "0" <= i <= "1": t = t * 2 + int(i) else: ans += t t = 0print(ans)程序运行后,输出的结果是( C )A. 12 B. 15C. 22 D. 37【解析】 本题考查循环语句的知识。由程序可知,将二进制数转换为十进制数,但是最后一组数“1111”由于后面没有其他符号,不能进入else分支,因此不能累加。故答案是10+12=22。9. 输入数字1234,以下程序的输出结果是( C )x=int(input())s=0while x !=0: t=x%10 s+=t x//=10print(s)A. 1234 B. 123C. 10 D. 12【解析】 本题主要考查Python程序的执行。分析程序可知,该程序实现将输入的整数x的各个数位上的数字进行求和,x=1234,则s=1+2+3+4=10。10. 下列Python程序可以实现统计某种递增序列的功能:a=[3, 7, 2, 5, 8, 9, 4, 6, 1]m, c=1, 1for i in range(1, len(a)): if a[i]>=a[i-1]: c+=1 m=max(m, c) else: c=1程序运行后,变量c和m的值分别是( B )A. 1和1 B. 1和4C. 2和4 D. 3和4【解析】 该程序的作用是求最长连续递增子序列的长度。其中c用来存储当前连续递增子序列的长度,m用来存储最长连续递增子序列的长度。观察列表a可以知道最长连续递增子序列为2,5,8,9,故m的值为4;变量i最后取8,a[8]=1,a[7]=6,所以a[i]>=a[i-1]不成立,执行else语句,所以最后c的值为1。11. 某Python程序如下:s=0x="0123456789"i=0while i<=len(x) -2: t=int(x[i:i+2]) if t%3==0: s+=t i+=1程序运行后,变量i和s的值分别为( B )A. 8和135 B. 9和135C. 8和144 D. 9和144【解析】 程序运行过程如表所示,程序运行结束后,i=9,t=89,s=135。i 0 1 2 3 4 5 6 7 8 9t 1 12 23 34 45 56 67 78 89 退出循环s 0 12 12 12 57 57 57 135 13512. 小明用Python编写了一个找最大值的程序,程序功能如下:用户输入数字串,数据间用逗号分隔,最后以逗号结尾,程序执行后输出最大的数值。横线上应填入的代码为( B )s=input("请输入数字串:")i=j=max=0c=t=""while j c=s[j] if c==",": t=s[i:j] if int(t)>max: max=int(t) ① ② print(max)A. ①i=i+1 ②j=j+1 B. ①i=j+1 ②j=j+1C. ①j=j+1 ②i=i+1 D. ①j=i+1 ②i=i+1【解析】 本题主要考查Python程序的调试。分析程序可知,若满足int(t)>max,则说明产生了最大值,则需要更新i的值为j+1,继续取下一个数字,i为该数字的起点;同时j递增1,继续下一轮的循环。13. 运行如下程序,输出的结果是( A )for s in "HelloWorld": if s=="W": break print(s, end="")A. Hello B. WorldC. HelloWorld D. Helloorld【解析】 本题主要考查Python程序的执行。分析程序可知,当s等于字符W时,循环结束,因此输出的结果是Hello。14. 运行如下程序,输出的结果是( A )x=10while x>=0: x-=1 if x%2==0: print(x, end="")A. 86420 B. 97531C. 1097531 D. 1086420【解析】 本题主要考查Python程序的执行。分析程序可知,该程序实现输出0和9之间的所有偶数,满足条件的数有8、6、4、2、0。(共20张PPT)第六节 Python循环结构的程序实现信息技术 必修1 数据与计算算法的程序实现第三章必备知识练1. 运行如下程序,s的值为( )s=0for i in range(5): if i==3: break s=s+iprint(s)A. 15 B. 10C. 7 D. 3【解析】 本题主要考查Python程序的执行。i依次取0、1、2、3、4,当i=3时,退出循环,此时s=s+i=0+1+2=3,故运行完成后s的值为3。D2. 运行如下程序,输出的结果是( )sum=0for i in range(2,11,4): sum=sum+iprint(sum,i)A. 18 10 B. 17 11C. 54 10 D. 65 10【解析】 本题主要考查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)。sum=0,变量i依次取2、6、10,故sum=0+2+6+10=18,故输出的结果是18,10。A3. 某Python程序如下:a=[18,2,-1,-7,16,-2,12,8]k1,k2=1,1for i in range(len(a)): if a[i]>a[k1]: k2=k1;k1=i elif a[i]>a[k2]: k2=i程序运行后,变量k1,k2的值分别为( )A. 2,5 B. 4,0C. 5,2 D. 0,4【解析】 本题考查for语句及程序代码的分析理解能力。分析代码,可知k1是最大数的下标,k2是第二大数的下标,D正确。D4. 某Python程序如下:s=0n=100while s<300: s+=n n-=10程序运行后,n和s的值分别是( )A. 60,340 B. 70,400C. 60,400 D. 70,340【解析】 第一次循环,s=0,满足s<300这一条件,执行s+=n和n-=10,此时s和n的值分别为100、90;第二次循环,s=100,满足s<300这一条件,执行s+=n和n-=10,此时s和n的值分别为190、80;第三次循环,s=190,满足s<300这一条件,执行s+=n和n-=10,此时s和n的值分别为270、70;第四次循环,s=270,满足s<300这一条件,执行s+=n和n-=10,此时s和n的值分别为340、60;最后s=340不满足s<300这一条件,循环不执行,此时s和n的值分别为340、60。A5. 若k为整型,下列while循环执行的次数为 ( )k=1000while k > 1: print(k) k=k//2A. 9 B. 10C. 11 D. 100【解析】 本题主要考查Python程序的执行。循环条件是k>1,循环体k=k//2,因此1000//2=500,500//2=250,250//2=125,125//2=62,62//2=31,31//2=15,15//2=7,7//2=3,3//2=1,循环结束,一共循环了9次。A6. 阅读程序代码,若依次输入"p""y""t""h""o""n"" ",则输出的结果是( )s=""x=input("请输入一个字符:")while x!="": s=x+s x=input("请输入一个字符:")print(s)A. python B. p+y+t+h+o+nC. nohtyp D. n+o+h+t+y+p【解析】 本题主要考查Python程序的执行。分析程序可知,该程序将输入的字符逆向输出,因此若依次输入“p”“y”“t”“h”“o”“n”,则输出结果是nohtyp。C7. 运行如下程序,输出的结果是( )i=0while i<10: print(i,end= ) i=i+1A. 0123456789 B. 123456789C. 12345678910 D. 012345678【解析】 本题主要考查Python程序的执行。循环结构中,先输出i,再执行i递增1。i的初始值为0,循环条件是i<10,故输出结果为0123456789。A8. 某Python程序如下:s = "1010/1100/1111"ans,t = 0,0for i in s: if "0" <= i <= "1": t = t * 2 + int(i) else: ans += t t = 0print(ans)程序运行后,输出的结果是( )A. 12 B. 15C. 22 D. 37【解析】 本题考查循环语句的知识。由程序可知,将二进制数转换为十进制数,但是最后一组数“1111”由于后面没有其他符号,不能进入else分支,因此不能累加。故答案是10+12=22。C9. 输入数字1234,以下程序的输出结果是( )x=int(input())s=0while x !=0: t=x%10 s+=t x//=10print(s)A. 1234 B. 123C. 10 D. 12【解析】 本题主要考查Python程序的执行。分析程序可知,该程序实现将输入的整数x的各个数位上的数字进行求和,x=1234,则s=1+2+3+4=10。C10. 下列Python程序可以实现统计某种递增序列的功能:a=[3, 7, 2, 5, 8, 9, 4, 6, 1]m, c=1, 1for i in range(1, len(a)) : if a[i]>=a[i-1]: c+=1 m=max(m, c) else: c=1程序运行后,变量c和m的值分别是( )A. 1和1 B. 1和4C. 2和4 D. 3和4B【解析】 该程序的作用是求最长连续递增子序列的长度。其中c用来存储当前连续递增子序列的长度,m用来存储最长连续递增子序列的长度。观察列表a可以知道最长连续递增子序列为2,5,8,9,故m的值为4;变量i最后取8,a[8]=1,a[7]=6,所以a[i]>=a[i-1]不成立,执行else语句,所以最后c的值为1。11. 某Python程序如下:s=0x="0123456789"i=0while i<=len(x) -2: t=int(x[i:i+2]) if t%3==0: s+=t i+=1程序运行后,变量i和s的值分别为( )A. 8和135 B. 9和135C. 8和144 D. 9和144B【解析】 程序运行过程如表所示,程序运行结束后,i=9,t=89,s=135。i 0 1 2 3 4 5 6 7 8 9t 1 12 23 34 45 56 67 78 89 退出循环s 0 12 12 12 57 57 57 135 135关键能力练12. 小明用Python编写了一个找最大值的程序,程序功能如下:用户输入数字串,数据间用逗号分隔,最后以逗号结尾,程序执行后输出最大的数值。横线上应填入的代码为( )s=input("请输入数字串:")i=j=max=0c=t=""while j c=s[j] if c==",": t=s[i:j] if int(t)>max: max=int(t) ① ② print(max)A. ①i=i+1 ②j=j+1 B. ①i=j+1 ②j=j+1C. ①j=j+1 ②i=i+1 D. ①j=i+1 ②i=i+1B【解析】 本题主要考查Python程序的调试。分析程序可知,若满足int(t)>max,则说明产生了最大值,则需要更新i的值为j+1,继续取下一个数字,i为该数字的起点;同时j递增1,继续下一轮的循环。13. 运行如下程序,输出的结果是( )for s in "HelloWorld": if s=="W": break print(s, end="")A. Hello B. WorldC. HelloWorld D. Helloorld【解析】 本题主要考查Python程序的执行。分析程序可知,当s等于字符W时,循环结束,因此输出的结果是Hello。A14. 运行如下程序,输出的结果是( )x=10while x>=0: x-=1 if x%2==0: print(x, end="")A. 86420 B. 97531C. 1097531 D. 1086420【解析】 本题主要考查Python程序的执行。分析程序可知,该程序实现输出0和9之间的所有偶数,满足条件的数有8、6、4、2、0。A 展开更多...... 收起↑ 资源列表 第六节 Python循环结构的程序实现.docx 第六节 Python循环结构的程序实现.pptx