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

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

内容正文:

2.3 周而复始的循环 一、选择题 1.下面是一段循环结构的程序段,该程序段运行以后,循环体的执行次数是(   ) s=0 x=2 while x<=12:     s=s+1     x=x+3 A.3 B.4 C.10 D.12 2.某Python程序如下: s='A3B57e';sl=";i=0 while i<len(s):     if'A'<=s[i]<='Z':         sl=s1+chr(ord(s[i])+32)     elif'0'<=s[i]<='9':         sl=s[i]+s1     i=i+1 print(s1) 运行后输出的结果是(   ) A.753abe B.a3b57 C.753AB D.753ab 3.有如下 Python程序,实现求字符串中的最长连续上升子串的长度。例如:字符串“hellopython”中的最长连续上升子串是“lopy”,长度为 4。 s=input() n=len(s);c=1;max=1 for i in range(1,n):     if (1) :         c=c+1         if c>max:             max=c     else:          (2) print(max) 划线处可选代码为①c=1 ②c=0 ③s[i]<s[i+1] ④s[i]>s[i-1] 划线处正确的语句依次为(   ) A.③① B.③② C.④① D.④② 4.如下图所示的流程图: 算法执行时,若输入n的值为3,则输出s的值是(    ) A.6 B.8 C.9 D.15 5.有如下Python程序段: s="abaabcaab" st=s [0] i=1 while i<len (s):     if len (st)==0 or s[i] !=st [-1]:         st=s [i]+st     else:         st=st[0:len(st)-1]     i+=1 执行该段代码后,st的值为(   ) A.bca B.acb C.bac D.cab 6.某投资者购买了10万元一年期收益率3.7%的银行保证收益型理财产品。每年理财赎回后,他会提取2万元用作生活所需,余下资金仍购买此种理财。3年后还剩多少存款?用for循环计算收益,money=100000, rate=0.037,下列选择正确的是(   ) A、 for year in [3]: money=money*(1+rate)-20000 B、 for year in range(3): money=money*(1+rate) -20000 C、 for year in range(1,3): money=money*(1+rate) -20000 D、 以上都对 A.A B.B C.C D.D 7.字符串s由数字字符组成,且首位不为"0"。现需要在s中某一位置插入1位数字字符,得到新s,使新s的值最大。例如s串为"975463",插入字符"8"后,得到最大值"9875463"。实现该功能的程序段如下,方框中应填入的正确代码为(   ) #输入字符串s,长度为n;输入字符串ch,长度为1,代码略。 i=0 while i<n: st=s[0:i]+ch+s[i:n] A. if ch>=s[i]:     i+=1 else:     break B. if ch>=s[i]:     break else:     i+=1 C. if ch<s[i]:     break else:     i+=1 D. if ch>s[i]:     break else:     i+=1 A.A B.B C.C D.D 8.有下列Python程序段: s1="pytorch'';s2="python";s="" i=0;j=0 while i<len(s1)and j<len(s2):     if s1[i]>s2[j]:         s=s+s1[i]     else:         j+=1     i+=1 执行以上程序段后,s中的值是(   ) A."or" B."ch" C."on" D."to" 9.有如下Python程序段: s="第19届亚运会举办地:中国杭州,日期:2023.9.23-10.8" s1="";s2="" for i in range(len(s)): if "0"<=s[i]<="9": s1=s1+s[i] else: if s1>"20": s2=s1+s2 s1="" print(s2) 程序段运行完成后,显示的内容为(    ) A.2392023 B.20239 C.2592023 D.2047 10.以下Python程序段中循环体执行的次数是 (   ) s=i=0 while s<10:     i+=1     s+=i*i A.1 B.3 C.2 D.4 11.下列关于Python循环语句的说法错误的是(   ) A.for循环和while循环不能相互嵌套 B.所有的for循环都可以用while循环改写 C.for循环一般用于循环次数已知的情况 D.循环语句的结束条件设置不合理会造成无限循环 12.下列Python程序段中,循环体执行了(    )。 i=5 while i==0: i=i-1 A.0次 B.1次 C.21次 D.无数次 13.在Python语言 中,下面程序的屏幕输出结果是(   ) s=1 for i in range(1, 9,2): s=s*2 print (s) A.2 B.8 C.16 D.32 14.下列程序运行后结果是(   ) sum=0 for i in range(1,7,2):     sum = sum+i print(sum) A.4 B.7 C.9 D.16 15.有如下python 程序段: s = "1010/1100/1111" ans,t = 0,0 for i in s: if "0" <= i <= "1": t = t * 2 + int(i) else: ans += t t = 0 print(ans) 运行该程序段,输出结果是(   ) A.12 B.15 C.22 D.37 16.在 Python语言中,运行以下代码后,变量i的值是(   ) i=0 while i<=6:     print(i)     i=i+3 A.9 B.6 C.3 D.0 二、填空题 17.用Python表达式补充完成如下程序,统计四位奇数中满足能被23和19整除的总数。 s=0 for i in range(1001,10000,2): :     s=s+1 print(s) 18.有以下程序段: sum=0 for i in range(1,10):     if i%2==0:      sum=sum+i print(sum) 程序运行后,其输出结果为( )。 19.在 IDLE 编辑器中运行以下程序,依次输出的数字是 。 for i in range(1,5):    print(i,end="," ) 20.在 IDLE 编辑器中运行以下程序,屏幕打印 颗*。 for i in range(0,10,2):    print(" *" ) 21.下列程序的作用是 。 sum=0 for i in range( 2,101,2):    sum +=i print( sum) 三、判断题 22.下列Python程序段运行结束后,赋值语句sum=sum+i共被执行了9次。( ) 23.循环语句可以嵌套使用。( ) 24.如果循环以“while 1:”开头,在不加干预的情况下,程序会一直运行下去。( ) 25.for循环与while循环任何时候都不可以相互替换。( ) 四、操作题 26.用Python编辑器打开“439”下的文件“因子个数.py”,进行以下操作并保存结果。 (1)编写程序实现以下功能∶输入一个正整数,统计该数因子的个数。 (2)编写完成后原名保存并关闭应用软件。 x=int(input("请输入一个正整数:")) s= #存放因子的变量初始化 for i in range(1, ):     if( ): #判断是否是因子         s= print( ) 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.B 【详解】本题考查循环结构。初始时s=0,x=2。进入循环,第一次循环:s=0+1=1,x=2+3=5;第二次循环:s=1+1=2,x=5+3=8;第三次循环:s=2+1=3,x=8+3=11;第四次循环:s=3+1=4,x=11+3=14,此时x>12,循环条件不满足,循环结束。所以循环体共执行了4次。故答案为:B。 2.D 【详解】本题考查程序分析。根据代码if'A'<=s[i]<='Z':和'0'<=s[i]<='9':可知,该程序遍历字符串s,取出字母和数字,将大写字符转换成小写,将数字直接加到字符前面,存储在变量s1中,输出s1。故正确答案为选项D。 3.C 【详解】本题考查的是Python循环和选择语句应用。由 range(1,n),可知依次比较i处与i-1处的字符,若大于则c递增,如果c大于max,则更新max的值,如果i处字符不小于i-1处的字符,则c初始化为1,继续新一轮的查找,故(1)、(2)、处语句依次为 s[i]>s[i-1]、c=1,故本题选C选项。 4.C 【详解】本题考查流程图分析。 由下表可知,循环结束后,s的值为9。 m<n(n的值为3)? s=0 m=0 是 1 1 是 4 2 是 9 3 否 — — 故选择C。 5.C 【详解】本题考查Python程序设计相关内容。分析程序段,可知其功能是将字符串s中的字符逆序拼接在st中。拼接过程为:若字符串中当前字符s[i]与st中最后一个字符相同时,则将删除st中最后一个字符,否则将s[i]拼接在st最前面。根据拼接方法模拟可知,最终st中的内容为"bac"。故本题答案为C选项。 6.B 【详解】本题考查的是Python循环应用。每年理财赎回后,他会提取2万元用作生活所需,故循环体应为: money=money*(1+rate) -20000,求的是3年后还剩多少存款,故循环次数应为3次,选项A, [3]列表只有一个元素,循环次数只有一次;选项B, range(3)生成的是0、1、2序列数,循环次数3次;选项C,range(1,3)生成的是1、2序列数,循环次数2次。故本题应选B。 7.D 【详解】本题考查的是Python综合应用。要使新s的值最大,则要依次从高位往低位比较,如果找到一位比要插入的字符小,跳出循环,则插入在该位的前面。不能找相等,如果相等的话,后续有字符比要插入的字符大,则插入后组成的字符不会最大,例s串为"975463",插入字符"4",如果找到相等的话,插入则新字符为:"9754463",不是最大,选项A逻辑不对,应改为:ch<=s[i];选项B不能找相等,选项C逻辑不对。故本题应选D。 8.A 【详解】本题考查的是Python循环语句。阅读程序可知,将s1中字符与s2中字符逐个比较,如果s1中字符 比s2中字符大,将s1中字符拼接在字符串s后面,否则下个循环s1中下一字符与s2中下一字符比较,直到s1或s2所有字符比较完。 "p"="p"; "y"="y"; "t"="t"; "o">"h",将"o"字符拼接在字符串s后面,s="o" "r">"h",将"r"字符拼接在字符串s后面,s="or" "c"<"h"; "h"<"o"; 循环结束,故本题应选A。 9.A 【详解】本题考查的是Python循环语句。程序遍历数字字符串s,当s[i]是数字字符时连接到s1上,遇到非数字字符时将s1与“20”比较,s1比字符串“20”大则逆拼到字符串s2,随后s1清空准备下一段数字的连接。s中大于“20”的是“2023”“9”“23”“8”,但是最后一个字符串“8”取不到,因为没有结束字符。故最后s2=2392023,选项A正确。 10.B 【详解】本题考查的是Python循环语句。程序实现自然数平方的累加。s =1*1+2*2+3*3+……。 While循环在s大于等于10时结束,i=2时,s =1*1+2*2=5<10;i=3时,s =1*1+2*2+3*3=14>10,所以程序共循环了三次。故正确答案为B选项。 11.A 【详解】本题考查Python循环结构的描述。for循环和while循环可以相互嵌套。故选A。 12.A 【详解】本题考查Python循环。给定的代码段是一个while循环,其中的条件是 i == 0。然而,初始时 i 的值是5。由于条件不满足,循环体不会执行。故答案为:A。 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(1, 9,2)生成的序列数是:1,3,5,7,故s=1*2*2*2*2=16,选项C正确。 14.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)。变量i依次取1、3、5,因此sum=sum+i=0+1+3+5=9。故选C。 15.C 【详解】本题考查Python程序。这段 Python 程序的目标是将给定的字符串 s 中的二进制数值转换为十进制并将它们相加。让我们逐步分析程序:s = "1010/1100/1111" 定义了一个包含多个二进制数的字符串。ans,t = 0,0 初始化两个变量 ans 和 t,它们分别用于存储累加的结果和当前正在处理的二进制数。for i in s: 开始遍历字符串 s 中的每个字符。if "0" <= i <= "1": 检查当前字符是否是 '0' 或 '1'。如果是,执行 t = t * 2 + int(i) 将当前字符转换为整数并加到 t 上,模拟二进制数值的累积。如果不是,执行 ans += t 将累积的二进制数值添加到 ans 上,并将 t 重置为 0,以开始处理下一个二进制数。最后,程序输出 ans 的值。现在让我们按照程序的逻辑来计算结果:第一个二进制数是 "1010",其十进制值为 10。第二个二进制数是 "1100",其十进制值为 12。第三个二进制数是 "1111",其十进制值为 15,但最后并无/使其进入else分支,因此最后的结果为前两个数相加:10 + 12  = 22。故答案为:C。 16.A 【详解】本题考查的是Python循环语句。初始i=0。 i=0,满足i<=6,执行print(i), i=i+3=3; i=3,满足i<=6,执行print(i), i=i+3=6; i=6,满足i<=6,执行print(i), i=i+3=9; i=9,不满足i<=6,循环结束。 故代码执行完后,变量i的值为9,选项A正确。 17.if i %23==0 and i %19 ==0 【详解】本题考查的是Python循环与选择语句。通过循环变量i遍历所有四位数的奇数,判断能否被23和19整除,只要看除完后的余数是否为0,故画线处代码为:if i %23 == 0 and i %19== 0。 18.20 【详解】本题考查的是Python循环语句。sum=0,变量i的范围是1~9,如果是偶数,则执行sum=sum+i,故程序执行完,sum=sum+i=0+2+4+6+8=20。 19.1,2,3,4 【详解】本题考查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)。因此依次输出的数字是:1,2,3,4。 20.5 【详解】本题考查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)。i依次取0、2、4、6、8,因此循环5次,即屏幕打印5颗*。 21.求1~100(含100)的偶数之和 【详解】本题考查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)。分析程序可知,该程序实现求1~100(含100)的偶数之和。 22.正确 【详解】本题考查的是Python循环与选择语句。range(1,20)生成1~19的整数,阅读程序可知,只有i为1~19的偶数,才执行赋值语句sum=sum+i。故一共被执行了9次。题干中说法正确。 【点睛】 23.正确 【详解】本题考查的知识点是循环结构应用。循环语句可以嵌套使用。在一个循环的内部再使用另一个循环,这就是循环的嵌套。在大多数编程语言中,如Python,Java,C++等,都支持循环的嵌套。故答案为正确。 24.正确 【详解】本题考查Python循环结构的描述。如果循环以“while 1:”开头,while的条件是1,非零即为真,在不加干预的情况下,程序会一直运行下去,陷入死循环。表述正确。 25.错误 【详解】本题考查循环。for 循环和 while 循环是两种不同类型的循环结构,它们用于不同的情况,但它们通常可以相互替换。for 循环通常用于已知循环次数的情况,例如遍历一个列表或迭代器中的元素。while 循环通常用于未知循环次数的情况,即当某个条件为真时继续执行循环。在某些情况下,可以使用 for 循环来模拟 while 循环,反之亦然,但这通常需要额外的控制语句。故说法错误。 26. 0 x+1 x%i==0 s+1 s 【详解】本题考查的是Python循环语句。s存储因子个数,初始化为0,故①处应为:0。range(start, stop, [step]),stop:计数到stop 结束,但不包括stop,故②处应为:x+1。判断是否是因子,即判断能否被整除(可以通过余数来判断),故③处应为:x%i==0。找到因数,则个数加1,故④处应为:s+1。最后输出因子个数,故⑤处应为:s。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

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