3.3 简单算法及其程序实现 2024-2025学年高中信息技术浙教版(2019)必修一

2024-08-07
| 12页
| 51人阅读
| 0人下载

内容正文:

3.3 简单算法及其程序实现 学校:___________姓名:___________班级:___________考号:___________ 一、选择题 1.在Python中,下列程序段执行后,输出的结果是(    ) s=1 n=4 for i in range(1,n):     s=s*i print(s) A.2 B.4 C.6 D.8 2.哈希表在非数值计算中的应用主要是(   ) A.加快数值计算速度 B.实现数据快速查找 C.优化数据存储结构 D.增强数据安全性 3.某算法的部分流程图如图所示,输入a的值为26,若用Python语言描述,则下列正确的是() A. B. C. D. 4.在Python中,运行以下代码后,变量i的值是(   ) i=6 while i>=1:     print(i)     i=i-1 A.1 B.0 C.6 D.5 5.以下哪个Python代码片段可以正确实现死循环(   ) A.while True: pass B.for i in range(5): pass C.while False: pass D.for i in range(-1, 5): pass 6.某产品质量检测综合指标x,当0≤x<6为不合格,6≤x<8为合格,8≤x≤10为优秀。设计Python程序段,输入x(O≤x≤10),输出质检等级,则能实现该功能的是(   ) A. x =int (input ()) s=" " if 0<=x:     s= "不及格" elif 6<=x:     s ="及格" else:     s="优秀" print (s) B. x =int (input ()) s=" " if 8<=x:     s= "优秀" elif 6<=x:     s="及格" else:     s ="不及格" print (s) C. x=int (input ()) s=" " if 0<=x:     s="不及格" if 6<=x:     s ="及格" else:     s = "优秀" print (s) D. x=int (input ()) s =" " if 8<=x:     s= "优秀" if 6<=x:     s ="及格" if 0<=x:     s = "不及格" print (s) A.A B.B C.C D.D 7.小明要编写一个程序,能实现对用户输入的数据,判断其为奇数还是偶数,请你帮他完成以下代码:在“if( )”处补充代码(  ) n=int(input("请输入一个数: ")) if( ): print("这是一个偶数")else: print("这是一个奇数") A.n/2==0 B.n//2==0 C.n%2==0 D.n%10==0 8.经过中国国家登山队的测量,2020年12月8日,中尼两国共同宣布了珠穆朗玛峰的最新高度为海拔8848.86米。现有一张白纸的厚度大约是0.08毫米,对折一次,厚度变0.16毫米,再对折一次,厚度变为0.32毫米,……,每对折一次,其厚度均变为对折前的两倍,假设这张纸足够大,可以对折任意次,那么这张纸至少对折多少次后,其厚度将超过珠穆朗玛峰的高度?以下是求解以上问题的程序片段,请你补全代码: 请选择适当的代码填入程序①处。(    ) A.while B.for C.output D.input 9.某算法的流程图如图所示,执行该流程后,输出sum,n的值分别是(   ) A.28,10 B.280,10 C.280,13 D.28,13 10.以下哪个算法常用于探索数据的潜在模式?(   ) A.排序算法 B.搜索算法 C.聚类算法 D.加密算法 11.在Python语言中,运行以下代码,运行结果是(   ) sum= 1 for j in range(1,5):      sum= sum *j print(sum,j) A.24,5 B.120, 5 C.24 ,4 D.120, 4 12.非数值计算主要涉及以下哪类问题?(   ) A.数学公式计算 B.统计数据分析 C.逻辑推理问题 D.图形图像处理 13.以下程序段运行结果是(    ) s = 0 for i in range(11): if i % 2==0: s = s + ielse: s = s - iprint(s) A.55 B.-5 C.5 D.-55 14.桶排序并非常规的排序算法,它实际上是一种分治思想的实践。桶排序的过程可以分为4步:1-根据数据的特征将数据分为若干的桶,给每个桶规定可以存储的值的范围;2-将原数列的数据放入各个桶中;3-对每个桶都进行排序;4-按照桶的顺序将桶内数据重新链接。有如下Python程序段: def bucket_sort(a):     bucket=[]     b=[]     bucketnum=(max(a)-min(a))//len(a)+1    #根据数据特征确定桶数量     for i in range(bucketnum):    #建桶         ①     for x in a:        #入桶         num=(x-min(a))//len(a)         ②     for i in range(bucketnum):         bucket[i].sort()        #详见“注意”         b+=bucket[i]     return b a=[77,7,26,14,11,21,60,51,30,78] print(bucket_sort(a)) #运行结果 [[7,11,14],[21,26],[30],[],[51],[60],[],[77,78]] 注意:桶排序更多适用与数据值域较大但分别较均匀的情况,其本质也只是用于分段,对于桶内数据一般不会再使用桶排序递归,而是采用更高效的排序算法。故在桶内排序时也直接使用了sort()方法加以区分和说明。 根据题意,划线处①、②两个空分别填入的代码为(   ) A.①bucket.append([]) ②bucket[num].append([]) B.①bucket.append(i)  ②bucket[num].append(x) C.①bucket.append(i)  ②bucket[num].append([]) D.①bucket.append([])  ②bucket[num].append(x) 15.某算法的部分流程图如图所示,若n的值为8,key的值为40,数组元素a[0]至a[n-1]依次存放10,20,30,40,50,60,70,80,执行这部分流程后,输出c的值为(   ) A.-2 B.-1 C.0 D.1 16.周文设计了如图所示的程序,对班上同学的英语成绩进行判断,周华的英语成绩为84分,此时输出结果为(  ) A.您的成绩等级为: A B.您的成绩等级为: B C.您的成绩等级为: C D.您的成绩等级为: D 17.函数range(6,10)生成的序列中元素的个数是(   ) A.3 B.4 C.5 D.6 18.有如下Python 程序段 s="Li20An24K04ao";     i=0 while i<len(s): if"A"<=s[i]<="Z": s=s[:i]+s[i+1:] elif"0"<=s[i]<="9": s=s[:i]+str((int(s[i])+8)%10)+s[i+1:] else: s=s[:i]+chr((ord(s[i])-95)%26+97)+s[i+1:] i=i+1 执行上述程序后,s 的值为(      ) A.k08p0202co B.i08n0202cq C.i08p0202cq D.h28w22g82o 19.数组元素a[0]至 a[n-1]依次存放着n个数据,现需要将下标为 x(0≤x≤n-1)元素在逻辑上删除,例如:n为5,数组a为[1,3,5,7,9] ,x为2,删除操作后输出[1,3,7,9]。实现该功能的程序段如下,横线中应填入的正确代码为(   ) a=[1,3,5,7,9] n=len(a) x=2 for i in range(① ):     ② print(a[:-1]) A.①x,n ②a[i-1]=a[i] B.①n-x    ②a[i-1]=a[i] C.①x,n ②a[i]=a[i+1] D.①x-n,-1 ②a[i]=a[i+1] 20.有如下 Python 程序段: from random import random i=0 a=[0]*6 while i<=5:     a[i]=(int(random()*6+5))*(i%2+1)     for j in range(i):         if a[j]==a[i]:             i=i-l             break     i=i+1 程序执行后,数组a各元素的数据可能是(   ) A.[5,16,12,18,9,10] B.[7,18,10,10,6,12] C.[8,15,6,16,7,12] D.[6,12,5,18,8,10] 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.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正确。 2.B 【详解】本题考查哈希表的描述。哈希表的主要特点是通过哈希函数将键值映射到表中的一个位置,从而实现快速查找。因此,哈希表在非数值计算中的主要应用是实现数据的快速查找。选项A、C和D虽然也涉及数据处理,但并不是哈希表在非数值计算中的主要应用。故选B。 3.A 【详解】本题考查的是流程图及Python语言。由流程图可知,循环的条件是a!=b,故排除BD,b=b-3这个语句不管a是否大于b都要执行,故排除C。本题应选A。 4.B 【详解】本题主要考查Python循环语句。变量i的初值是6,循环条件是i>=1,每次i递减1,当i=0时,循环结束,故本题选B选项。 5.A 【详解】本题考查Python循环。死循环是指永远不会自行结束的循环。A选项中,while True: pass,由于条件True始终为真,所以会一直执行循环体中的代码,形成死循环。B选项for i in range(5): pass,range(5)会产生0到4的序列,循环会在遍历完这个序列后自动结束,不是死循环。C选项while False: pass,条件False始终为假,不会执行循环体,不是死循环。D选项for i in range(-1, 5): pass,range(-1, 5)会产生-1到4的序列,循环会在遍历完这个序列后自动结束,不是死循环。故答案为:A。 6.B 【详解】本题考查分支结构。A选项错误,0<=x这个条件始终为真,所以s总是被设置为"不及格",不会执行后面的elif和else。C选项错误,当x在[8,10]之间,if 0<=x仍然会执行,s被先设置为"不及格",然后设置为"及格",这与题目不符合。D选项错误,所有if条件都是独立判断的,最后s都会被if 0<=x覆盖为"不及格"。故答案为:B。 7.C 【详解】本题考查Python分支结构。在这段程序中,我们需要判断输入的正整数x是否为偶数。根据整数的奇偶性质,一个整数除以2的余数为0时,它就是偶数。因此,我们可以使用取余运算符(%)来判断x是否能被2整除,如果余数为0,则x是偶数,否则是奇数。C选项正确。 8.A 【详解】本题考查的是Python的while循环。while语句格式: 当表达式的值为真时,执行循环体语句;当表达式值为假时,退出循环,执行循环体外的下一条语句(即while后面没有缩进的第一条语句)。当高度h小于珠穆朗玛峰的高度height,则继续对折,故本题应选A。 9.C 【详解】本题考查程序分析。该程序运行过程: 初始:sum=1,n=1 1<100成立,执行sum=sum*n=1*1=1,n=n+3=1+3=4; 1<100成立,执行sum=sum*n=1*4=4,n=n+3=4+3=7; 4<100成立,执行sum=sum*n=4*7=28,n=n+3=7+3=10; 28<100成立,执行sum=sum*n=28*10=280,n=n+3=710+3=13; 280<100不成立,输出sum为280,n为13 故正确答案为选项C。 10.C 【详解】本题考查算法。排序算法主要用于对数据进行有序排列;搜索算法用于在数据中查找特定的元素;加密算法用于对数据进行加密保护,以确保数据的安全性和保密性。而聚类算法能够将数据集中相似的数据点分组在一起,从而发现数据中的潜在模式和结构。故答案为:C。 11.C 【详解】本题考查的是Python循环语句。range(1,5)生成1、2、3、4序列数,故sum=1*1*2*3*4=24,j的终值是4。选项C正确。 12.C 【详解】本题考查算法的描述。非数值计算主要涉及的是逻辑推理问题。数学公式计算和统计数据分析都属于数值计算的范畴,而图形图像处理则属于图像处理领域。因此,逻辑推理问题是非数值计算的主要内容。故选C。 13.C 【详解】本题考查的是Python循环及选择语句。range(11)是生成[0,1,2,3,4,5,6,7,8,9,10]的列表,结合if语句可知,当i为偶数用加,为奇数时则用减。故s=0-1+2-3+4-5+6-7+8-9+10=5。故本题应选C。 14.D 【详解】本题考查Python程序分析。根据代码中注释可知,需要新建空列表作为桶,空列表个数存储在bucketnum中,故需要在列表bucket追加bucketnum个列表。代码为bucket.append([]) 。根据注释提示可知,需要遍历列表a,将元素追加到相应的桶中,故代码为bucket[num].append(x)。故选D。 15.D 【详解】本题考查程序分析。程序运行过程: i=0,j=7,i<=j, m=3,不满足a[m]<key,则i=0, j=2, c=-1 i=0,j=2,i<=j, m=1,满足a[m]<key,则i=2, j=2, c=0 i=2,j=2,i<=j,m=2, 满足a[m]<key,则i=3, j=2, c=1 i=3, j=2,i<=j,不满足循环条件,退出循环,c=1,故选择D。 16.B 【详解】本题考查的是Python多分支语句。84满足70<=score<85条件,故执行level='B',故最后输出的结果为:您的成绩等级为: B,选项B正确。 17.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。 18.B 【详解】本题考查的是Python循环及多分支语句应用。由if语句可知,如果是大写字母,直接删除;由elif语句可知,如果是数字,0~9构成环,后移8位;由else语句可知,如果是小写字母,a~z构成环,后移2位。需要注意的是删除大写字母时,由于字符串s字符变少,会跳过大写字母后一个字符的处理。初始s="Li20An24K04ao",依据上述原则,处理后s="i08n0202cp",故选B。 19.D 【详解】本题考查程序分析。需要指定range的参数,确定遍历的下标。range的参数可是使用负数索引,故从x-n到-1。每次遍历后一个数覆盖前一个数,实现删除,故a[i]=a[i+1]。正确答案为选项D。 20.D 【详解】本题考查的是循环嵌套语句及随机函数。由a[i]=(int(random()*6+5))*(i%2+1)可知列表a的取值范围,索引号为偶数其值为:[5,11),索引号为奇数其值为:[10,22)的偶整数,选项A中,a[2]=12超出11,不可能;由for语句可知,列表a中的元素不重复,选项B,有重复元素10,不可能;选项C中,a[1]=15不是偶数,不可能,故本题应选D。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

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