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

2024-08-03
| 16页
| 75人阅读
| 0人下载

内容正文:

2.3 周而复始的循环 一、选择题 1.在Python中,运行以下程序后,变量i的值是(    ) i=0 while i<=40: print(i) i=i+8 A.40 B.48 C.32 D.56 2.某算法的部分流程图如图所示,执行这部分流程,若输入n的值为25,则输出a、b的值分别是(    ) A.15,14 B.10,14 C.10,7 D.15,7 3.有如下Python程序段: a=[4,3,1,2,3] m=0 s=0 for i in range(1,len(a)):     if a[i] < a[m]:         m=i     s=s+m print(s) 执行该程序段后,输出的结果是(   ) A.10 B.9 C.8 D.7 4.有如下程序段 a=[1,3,5,7,9] x=6 for i in range(3,1,-1):      a[i+1]=a[i] a[3]=x #则程序执行后,a 的值为(   ): A.[1,3,5,7,7] B.[1,3,5,5,7] C.[1,3,5,6,7] D.[1,3,5,6,9] 5.有如下Python程序段: s=["a","b","c","d"] i=0 for xx in s:     t=ord(xx)-ord("a")     i+=t print("i=",i) 执行该程序段后,输出 i 的值是(   ) A.4 B.5 C.6 D.10 6.有如下Python程序段,可以实现从班级学生中随机抽取五名学生参与班会活动。 名称 含义 random.randint(a,b) 随机生成一个[a,b]范围内的整数 random.random() 随机生成一个[0,1)范围内的实数 random.choice(seq) 从序列seq的元素中随机挑选一个元素 import random#random模块中的常用函数如上表所示 #导入学生名单到列表a中,a=["张*","李*",...,丁*"] name_list=[] #列表name list存放随机生成的学生名单 for i in range(5):     t=①     ②     a.pop(t)  #从列表a中删除已被抽取的学生,避免重复抽取 上述程序段中划线处依次可填入的语句是(   ) A.①random.randint(0,len(a)-1)  ②name_list+=a[t] B.①int(random.random()*len(a))  ②name_list+=a[t] C.①random.randint(0,len(a))  ②name_list.append(a[t]) D.①random.randint(0,len(a)-1)  ②name_list.append(a[t]) 7.有下列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" 8.下列Python程序段执行后,语句s=s+i执行的次数是(   ) s=0 i=1 while i<5:     s=s+i     i=i+1 print(s) A.2次 B.3次 C.4次 D.5次 9.为使下面左右框内的Python程序段实现相同的功能,则右框内划线处填写的代码应该是 (   ) s=t=0 for t in range(0,7,2):     s+=t s=t=0 while t<=6:     s+=t     ________ A.t+=2 B.s+=2 C.t+=s D.t=s+2 10.某Python程序如下: from random import random a=[0]*7 flag=[False]*10 i=1 while i<=6:     a[i]=int(random()*5)*2+1     if flag[a[i]]==False or a[i]>a[i-1]:         flag[a[i]]=True         i=i+1 该程序段运行后,列表 a的值可能为(   ) A.[0, 7, 5, 9, 7, 1, 7] B.[0, 1, 3, 5, 7, 9, 1] C.[0, 9, 2, 3, 5, 7, 9] D.[0, 9, 5, 9, 7, 9, 1] 11.有如下Python程序 s1="0312"; s2="ABCDEFGH" m=0; c="" for i in range(len(s2)): k=int(s1[i%4]) m=4*(i//4) c+=s2[k+m] 执行该程序段后,变量c的值是(    ) A."ADBCADBC" B."ABCDEFGH" C."AHBGCFDE" D."ADBCEHFG" 12.有如下Python程序段:    import random    i = 1;n = 5    res = []    while i <=n:        num = random.randint(1, 10)        if num not in res:            res += [num]            i += 1 执行该程序段后,res的值可能的是() A.[0, 4, 8, 1, 9] B.[3, 2, 4, 5, 5] C.[6, 5, 7, 8, 4] D.[6, 5, 1, 3, 8,7] 13.有如下Python程序段 from random import randint x=randint(2,4)*2 a=[9,2,5,1,3,4,8,7] n=len(a) for i in range(0,n-1): k=i for j in range(i+1,x): if a[k]>a[j]: k=j if i!=k: a[k],a[i]=a[i],a[k] print(a) 执行后,输出结果不可能是(    ) A.[1,2,3,4,5,7,8,9] B.[1,2,3,4,5,9,8,7] C.[1,2,5,9,3,4,8,7] D.[1,2,3,4,5,9,7,8] 14.循环次数未知的循环结构可以使用(    ) A.if语句 B.def语句 C.while语句 D.for语句 15.在Python中,下列程序段执行后,输出的结果是(    ) s=1 n=4 for i in range(1,n):     s=s*i print(s) A.2 B.4 C.6 D.8 16.有如下python 程序段: a = []     #创建一个空列表a for i in range(11,31,2):     flag = True     for j in range(2,i):         if i % j == 0:             flag = False             break     if flag == True:         a.append(i)      #把变量i的值添加到列表a 运行该程序后,列表a中的元素个数为(   ) A.5 B.6 C.7 D.10 二、填空题 17.有如下 Python 程序段: li=[["a",10],["b",20],["c",30]] dic={} for i in range(len(li)):     dic[li[i][0]]=li[i][1] print(dic) 运行该段程序后,输出内容为 18.下面代码段的运行结果为 。 for i in range(2,20,2): print i 19.程序有3种基本结构, 是最简单的程序结构。 20.实现循环控制的三要素是 、 和 。 21.写出运行结果。 s=0 while s<=30:     s=s+10 print(s) 结果: 三、判断题 22.下列Python程序段运行结束后,赋值语句sum=sum+i共被执行了9次。( ) 23.循环语句可以嵌套使用。( ) 24.如果循环以“while 1:”开头,在不加干预的情况下,程序会一直运行下去。( ) 25.for循环与while循环任何时候都不可以相互替换。( ) 四、操作题 26.小申所住的小区里新安装了一台具有“用户识别”“自动称重”“满溢提醒”等功能的智能垃圾回收站,如图1所示。居民投递的可回收物送到分拣工厂后经机器人精细分类,最终进入相应的再生产工厂变废为宝。 图1 (1)智能垃圾回收系统具有“满溢提醒”功能。一旦回收物满溢,系统会自动向管理员手机发送短信提醒信息,这主要体现的信息特征是 (选填:价值是相对的/具有时效性)。 (2)智能垃圾回收系统的“满溢提醒”功能是借助超声波传感器来获取相关数据。这种数据获取的方式属于( )。 A.智能识别         B.人工输入         C.自动控制         D.自动采集 (3)在设计垃圾分拣机器人算法模型的过程中,通过对已标记样本的学习,能够快速地对可回收物进行识别。这属于机器学习中的 (选填:监督学习/非监督学习)。 (4)在机器学习的过程中,有1000张各种各样的可回收物图片。某轮测试将其中80%作为训练集,20%作为测试集。测试数据中共有180张图片被正确分类,则该轮机器学习的识别正确率为 。 (5)垃圾分拣机器人判断某回收物是否为易拉罐的简要过程如图2所示,虚线框中算法的基本控制结构是 (选填:顺序结构/分支结构/循环结构)。 图2 (6)关于人工智能对社会发展的影响,以下表述正确的是( )。 A.人工智能将减少人类追求知识的热情,阻碍社会发展 B.人工智能的应用将人类从部分脑力劳动中解放出来 C.人工智能的发展应尊重隐私保护,防止数据滥用 D.人工智能正在改变着人类的学习和生活方式 27.小明在学习了数据加密与安全相关知识后,想给班里每个同学的姓名进行简单的加密,将学生姓名首字母(均为大写字母)转换成新的字符串。算法功能如下: 利用自定义加密函数encrypt()将输入的明文字符code用8位密钥key进行加密,生成密文new_code,加密前先将每个字符都转为8位二进制。例如,姓名字符串“CF”(用8位二进制码表示为01000011 01000110)可以用密钥10001001加密: 01000011 01000110 ⊕10001001 10001001 =11001010 11001111 部分程序代码如下: def encrypt(code,key): ① s="" while m>0: r=m%2 s=str(r)+s m=m//2 encode="" m=0 for i in range(8): if s[i]=="1" and key[i]=="1": encode="0"   elif s[i]=="0" and key[i]=="0": encode="0"   else: encode="1"   m= ② new_code=chr(m) return new_code def main(): key=input("请输入8位密钥:") code=input("请输入姓名首字母:")) new_code="" for i in code: new_code=new_code+ ③ print(new_code) if__name__=="__main__": main() (1)程序中所用的加密算法是 (单选,填字母:A.换位加密/B.异或加密/C.置换加密)。 (2)加框处代码的功能是 。 (3)请在画线处填入合适的代码① ② ③ 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.B 【详解】本题考查Python编程基础。分析程序段,其功能是在i<=40的条件下循环输出i的值,i的初始值是0,步长为8,即:0、8、16...,当i=48时,结束循环。故本题答案是B选项。 2.B 【详解】本题考查流程图分析能力。根据流程图显示,变量a,b,n经过以下过程: a=0,b=0,n=25 a=5,b=0,n=20 a=5,b=7,n=13 a=10,b=7,n=8 a=10,b=14,n=1 故选项B正确。 3.D 【详解】本题考查的是Python循环及选择语句。程序执行过程如下表: i a[i] a[m] m s 初始 0 0 1 3 4 1 1 2 1 3 2 3 3 2 1 2 5 4 3 1 2 7 结束 故执行该程序段后,输出的结果是7,选D。 4.C 【详解】本题考查的是Python循环语句。a=[1,3,5,7,9],x=6。range(3,1,-1)生成3、2系列数,故循环执行两次,a[4]=a[3]=7,a[3]=a[2]=5;跳出循环后,a[3]=x=6。故程序执行后,a的值为[1,3,5,6,7],故选C。 5.C 【详解】本题考查的是Python循环语句。for循环中,执行 t=ord(xx)-ord('a'),t的值依次是0、1、2、3,因此i=i+t=0+0+1+2+3=6,故本题选C选项。 6.D 【详解】本题考查的是列表综合应用。列表索引从0开始,故随机数应为0~len(a)-1的整数,列表元素添加用append。故本题应选D。 7.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。 8.C 【详解】本题考查Python程序调试。变量i初值是1,循环条件是i<5,因此i取1、2、3、4,即循环4次。故选C。 9.A 【详解】本题是循环结构程序 for语句和while语句之间的转换实现。for语句通过“range(1,7,2)”语句,按照步长来改变循环变量的值直至结束循环;而while语句则需要在其循环体(语句块)内编写改变循环变量的语句,直至 while 条件表达式的值为False,从而结束循环。由题中 for语句程序段可知循环变量t的步长为2,在循环体(语句块)其他语句保持不变的情况下,为了确保两程序段能实现计算“1+3+5”的相同功能,则右框内划线处填写的代码应该是:t+=2。故本题应选A。 10.D 【详解】本题考查的是Python循环语句。由int(random()*5)*2+1可知生成的是1~9的奇数,故选项C不可能。由flag[a[i]]==False or a[i]>a[i-1]可知如果生成了重复的数字,则 a[i]>a[i-1]。选项A:a[4]=7数字重复了,但a[4]=7不大于a[3]=9,不可能;选项B:a[6]=1数字重复了,但a[6]=1不大于a[5]=9,不可能。故本题应选D。 11.D 【详解】本题考查的是Python循环语句。由程序中c += s2[k+m]可知,从s2 中取值由k+m确定,k的取值依次为“03120312”,而m的取值依次为“00004444”,可知k+m的取值依次为“03124756”,所以答案为“ADBCEHFG”,故本题应选D。 12.C 【详解】本题考查的是Python随机函数及循环语句。 random.randint(1, 10)生成1~10的整数。由i=1;n=5、 while i <=n,可知生成的res列表元素是5个,故选项D错误,由代码可知列表中元素值不可能有0、及重复的数据,故选项AB错误。本题应选C。 13.D 【详解】本题考查Python程序。这是一个简单的选择排序算法实现。选择排序的目的是将数组按升序排列。在这个算法中,你选取列表中的最小元素并将其与第一个元素交换,然后选取第二小的元素并将其与第二个元素交换,以此类推,直到整个列表排好序。现在,让我们逐一分析选项:[1, 2, 3, 4, 5, 7, 8, 9]:这是选择排序的升序排列结果,是可能的输出。[1, 2, 3, 4, 5, 9, 8, 7]:这也是选择排序的一种可能结果,其中有一个逆序对在第6和第7位置(8和7之间)。虽然这不是最常见的排序结果,但仍然是可能的输出。[1, 2, 5, 9, 3, 4, 8, 7]:这是选择排序的一种可能结果,其中在第2和第3位置(2和5之间)有一个逆序对。虽然不太常见,但仍然是可能的输出。[1, 2, 3, 4, 5, 9, 7, 8]:这个选项中,数字7和8的顺序被颠倒了,这不是选择排序的结果。在选择排序中,从左到右,每次都会选择列表中的最小元素,并将其放在正确的位置。因此,选项D不是选择排序的可能输出,因为它没有按照升序排列。故答案为D选项。 14.C 【详解】本题考查循环结构。在编程中,循环次数未知的情况下通常会使用while语句。while语句的循环条件为真时,会一直执行循环体中的代码,直到循环条件变为假才停止循环。故答案为C选项。 15.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)。故程序输出的结果是:s=1*1*2*3=6。选项C正确。 16.B 【详解】本题考查Python程序。这段程序的目标是找出在范围从11到30的奇数中的素数,并将它们添加到列表a中。让我们逐步分析它:循环从11到30,步长为2,这意味着只有奇数会被考虑。对于每个奇数i,它的素数性质通过内部循环进行检查。内部循环从2到i-1迭代,检查i是否能被j整除。如果在内部循环中找到了i的因子,flag将被设置为False,表示i不是素数,并且内部循环将终止。如果在内部循环中没有找到i的因子,flag保持True,表示i是素数,然后i将被添加到列表a中。最终,程序将找到的素数添加到列表a中。现在我们来计算列表a中的元素个数:素数是:11, 13, 17, 19, 23, 29。故答案为B选项。 17. {'a': 10, 'b': 20, 'c': 30} 【详解】本题考查的是字典及循环语句。由dic[li[i][0]]=li[i][1]可知,程序的功能是将嵌套列表中,列表的第一个元素作为字典的键,第二个元素作为字典的值,li=[["a",10],["b",20],["c",30]],运行该段程序后,输出内容为: {'a': 10, 'b': 20, 'c': 30}。 18.2,4,6,8,10,12,14,16,18 【详解】本题考查Python程序设计相关内容。range函数用于生成一个整数序列,其语法是range(start, stop[, step])。其中start是序列的起始值,stop是序列的结束值(不包括),step是步长,默认为1,即序列中相邻两个数的差。分析程序段,i初始值为2,步长为2,20是序列的结束值(不包括),则输出结果为:2,4,6,8,10,12,14,16,18。 19.顺序结构 【详解】本题考查的知识点是程序基本结构。程序有三种基本结构:顺序结构、选择结构和循环结构。其中,顺序结构是最简单的程序结构。在顺序结构中,程序的各个操作按照它们在源代码中的排列顺序自上而下依次执行。这种结构相对直接明了,只需要按照逻辑顺序编写代码即可。故答案为:顺序结构。 20. 初值 终值 循环体 【详解】本题考查循环结构的描述。实现循环控制的三要素是:初值、终值和循环体。 21.40 【详解】本题考查循环结构。这段代码使用了一个while循环。循环开始时,s的值为0。然后,循环检查s是否小于或等于30。如果条件成立,循环体内的代码将被执行。在循环体内,s的值增加10,然后再次检查循环条件。这个过程会一直重复,直到s的值大于30。循环结束后,最后一次s增加10的操作也会执行,将s的值增加到40。所以,打印出的结果是40。故答案为:40。 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. 具有时效性 D 监督学习 90% 分支结构 BCD 【详解】本题考查信息技术综合。(1)“满溢提醒”功能自动发送短信提醒,需要管理员处理,强调时效性。故填写具有时效性。(2)传感器可以自动采集数据。故选择D。(3)学习已经标记的样本,属于监督学习。故填写监督学习。(4)200张图片,正确分类180张,故正确率90%。(5)是易拉罐吗,是则回收,不是则继续执行后续语句。故分支结构。(6)人工智能的发展恰恰能够为人类提供更多获取知识的工具和渠道,反而能够激发人类对知识的热情和追求。其它选项正确,故选择BCD。 27. B 字符对应的二进制位数不够8位,则高位补0 m=ord(code) m*2+int(encode) encrypt(i,key) 【详解】本题考查的是Python综合应用。 (1)依据题干加密的例子可知程序中所用的加密算法是异或加密。 (2)加密前先将每个字符都转为8位二进制,由if len(s)<8可知加框处代码的功能是:字符对应的二进制位数不够8位,则高位补0。 (3)①处,加密前先将每个字符都转为8位二进制,先加密字符转换为ASCII十进制数编码,然后转换为二进制数。故此处应为:m=ord(code);②处,转换成新的字符串,故此处是将二进制数转换为十进制数,故此处应为:m*2+int(encode);③处,对姓名首字母逐个加密,加密函数是encrypt,密钥key,加密的字符通过i来取,故此处应为:encrypt(i,key)。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

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