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

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

内容正文:

3.3 简单算法及其程序实现 学校:___________姓名:___________班级:___________考号:___________ 一、选择题 1.小明要编写一个程序,能实现对用户输入的数据,判断其为奇数还是偶数,请你帮他完成以下代码:在“if( )”处补充代码(  ) n=int(input("请输入一个数: ")) if( ): print("这是一个偶数")else: print("这是一个奇数") A.n/2==0 B.n//2==0 C.n%2==0 D.n%10==0 2.有如下 Python 程序段: a=[2,2,6,1,8,5,3,6,4,3,6,4,9,5,3] dic={} for i in a: if i not in dic: dic[i]=0 else: dic[i]+=1 执行该程序段后,dic[3]的值为(   ) A.1 B.2 C.3 D.4 3.下面Python程序运行后,变量m,n的值分别是(   )     n,m=7,4     if n>m:         n=m         m=n A.4,4 B.7,7 C.7,4 D.4,7 4.有如下程序段 mw = input('请输入:') res='' i=0; j=0; n=len(mw) while j<n:     if i%2==0:         mw+=mw[i]     else:         res+=mw[i]         j+=1     i+=1 print(res) 若输入的内容为python,输出的结果为(   ) A.pto B.yhn C.ptoynh D.yhntpo 5.某算法的流程图如图所示,若输入的n值为10987654321,则下列说法正确的是(   ) A.该算法中包含两个循环结构 B.执行该流程后,输出的s值为30 C.语句“n>0?”与“r%2=0?”执行的次数相同 D.执行该流程后,变量r的值为1 6.运行Python程序的过程中出现了如下图错误提示,原因是()。 A.变量名51study太长 B.应该写成"chinese" =51study C.“chinese”应该写成“chinaˈs” D.变量名51study不符合python语言规范,变量名不能以数字开头 7.有如下 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] 8.已知如下Python函数: def f(x, n):     if n==1:         return x     else:         return x*f(x-1, n-1) 下面表达式值最大的为(   ) A.f(5,6) B.f(5,7) C.f(-5,6) D.f(-5,7) 9.有如下 python程序: md=[["男",1],["女",2],["男",3],["女",4],["女",5],["男",-1]] xb=["男","女"] f=1 head=0 r=head while md[r][1]!=-1:         p=r         q=md[p][1]     while md[q][0]!=xb[f] and q!=-1:         p=q         q=md[q][1]     if q==-1:         break md[p][1]=md[q][1] md[q][1]=md[r][1] md[r][1]=q r=q f=1-f p=head while md[p][1]!=-1:     print(md[p][0], end="→")     p=md[p][1]     print(md[p][0]) 其运行结果为(   ) A.男→男→男→女→女→女 B.女→女→女→男→男→男 C.女→男→女→男→女→男 D.男→女→男→女→男→女 10.编程输出1到100之间所有的偶数,下列算法最合适的是(  ) A.穷举法 B.冒泡排序法 C.二分查找法 D.插入排序法 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中,以下哪个选项能正确实现查找一个列表中是否存在某个特定元素8,并输出其索引 lst = [3,4,8,1] target = 8 for i in ① :     if ② :         print(i) A.①range(len(lst))  ②lst[i] == target B.①lst    ②lst[i] == target C.①lst    ②i == target D.①range(len(lst))    ②i == target 13.有如下Python程序段: def js(s):     c=0     for i in range(len(s)):         if"0"<=s[i]<="9"             c+=1     return c s=input() c=js(s)    #调用函数 if c==len(s):     print("yes") else:     print("no") 执行该程序段后,输出结果为“yes”,则变量s的值是(   ) A.2024xxjs B.Actionism C.20240623 D.SHA-1 14.有Python程序段如下: s="I2024!";s1="" for i in range(len(s)):     c=s[i]     if "A"<=c<="Z":         c=chr(ord(c)-ord("A")+ord("a"))     elif "a"<=c<"2":         c=chr(ord(c)-ord("a")+ord("A"))     sl=c+sl print(sl) 程序运行后,输出的值是(   ) A.!4202Ti B.It2024! C.iT2024! D.4202Ti 15.以下哪个Python代码片段实现了一个简单的条件分支结构(   ) A.if x > 10: print("x is big") B.for i in range(10): print(i) C.while x < 10: print(x) D.print("Hello World") 16.用Python程序处理字符串,程序如下: s="b2-c1-2" t=0;sum=0 for ch in s:     if "0"<=ch<="9":         t=t*10+int(ch)     elif "a"<=ch<="z":         t=ord(ch)-ord("a")#函数ord计算字符的ASCII值     else:         sum+=t         t=0 执行该程序段后,sum的值是(   ) A.12 B.35 C.33 D.21 17.某算法的部分流程图如图所示。执行这部分流程,若输入x的值为21,则输出s和k的值分别为(    ) A.4,7 B.-5,11 C.4,9 D.-5,9 18.在Python中,以下代码执行后输出的结果是(   ) x=1 for i in range(5):     x=x*i print(x) A.0 B.15 C.24 D.120 19.数组元素a[0]至a[n-1]依次存放着n个不重复的正整数。现要在数组a中按顺序找出一组升序子序列,可以是不连续,但要求长度最长(若有多个长度相等的最长子序列时,输出第一个)。 例如:数组a的值为[2,11,4,13,5,17],其中最长的升序子序列是[2,11,13,17]。实现该功能的程序段如下。 a=[2,11,4,13,5,7] n=len(a);ans=[] d=[[1,-1]for i in range(n)] #d[i]包含2个数据项,d[i][0]记录i位置结尾的最长升序子序列的长度 #d[i][1]记录i结尾的最长升序子序列前一数据的索引位置 for i in range(1,n):     for j in range(i):         if  a[j]< a[i]and :                          d[i][1]=j maxlen=0;k=-1 for i in range(n):     if d[i][0]>maxlen:         maxlen=d[i][0]         k=i while k!=-1:     ans.append(a[k])     k=d[k][1] print(ans[::-1]) ①d[i][0]<d[j][0]    ②d[j][0]>=d[i][0]    ③d[i][0]=d[i][0]+1    ④d[i][0]=d[j][0]+1 划线处应填的合适代码依次为(   ) A.①③ B.①④ C.②③ D.②④ 20.非数值计算主要涉及以下哪类问题?(   ) A.数学公式计算 B.统计数据分析 C.逻辑推理问题 D.图形图像处理 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.C 【详解】本题考查Python分支结构。在这段程序中,我们需要判断输入的正整数x是否为偶数。根据整数的奇偶性质,一个整数除以2的余数为0时,它就是偶数。因此,我们可以使用取余运算符(%)来判断x是否能被2整除,如果余数为0,则x是偶数,否则是奇数。C选项正确。 2.B 【详解】本题考查的是Python字典及循环语句。阅读程序可知,依次读取列表a中的值,如果读取的值是第一次出现,则创建以该值为键,值为0的字典,否则以该值为键的值加1。3在列表中出现3次,第一次出现字典中值为0,执行两次加1,故最后值为2。选B。 3.A 【详解】本题考查的是Python选择语句。初始n=7,m=4。n>m成立,执行n=m=4,m=n=4。故选A。 4.D 【详解】本题考查的是Python循环与分支语句。阅读程序可知,如果索引为偶数,则将该索引对应的字符加入mw,否则将该索引对应的字符拼接在res后面,直到拼接的字符res与原字符长度一样。若输入的内容为python,将索引为偶数,扩展到原字符中:pythonptopoo,将奇数索引字符取出:yhntpo。故选D。 5.D 【详解】本题考查的是流程图识读。该算法中包含一个循环结构;该算法的功能是将输入的n值中,数位上为偶数累加到s中,n值为10987654321,s=2+4+6+8+0=20;语句“n>0?”比“r%2=0?”执行多执行1次;r表示是n值中个位、十位……的数字,故执行该流程后,变量r的值为1。本题应选D。 6.D 【详解】本题考查的是程序调试。报错内容是“语法错误:无效语法”,变量名51study,数字不能作为变量名的开头,故D项正确。 7.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。 8.C 【详解】本题考查程序分析。程序为递归算法。故可知f(5,6)=0,f(5,7)=0,f(-5,6)=151200,f(-5,7)=-1663200。故选择C选项。 9.D 【详解】本题考查Python程序分析能力。使用while循环遍历列表md,直到找到一个元素的第二个值为-1(表示链表的结束)。在循环内部,首先将当前索引r赋值给p,然后获取p指向的元素的第二个值,即下一个相同性别元素的索引,赋值给q。使用while循环寻找下一个相同性别的元素,或者直到链表结束。如果找到的q为-1,表示没有找到下一个相同性别的元素,跳出循环。如果找到了下一个相同性别的元素,就更新链表的链接,使得p指向的元素的第二个值更新为q指向的元素的第二个值,q指向的元素的第二个值更新为r指向的元素的第二个值,r指向的元素的第二个值更新为q。更新r为q,即移动到下一个元素。切换性别标志f,以便在下一次循环中寻找另一种性别的元素。这段代码通过改变列表md中元素的第二个值(即链接)来实现交替排序。每次循环都会将当前性别的元素与下一个相同性别的元素进行交换,并更新链表的链接,从而实现性别的交替排列,故本题选项D为正确选项。 10.A 【详解】本题考查算法相关内容。穷举法是指在算法中采用搜索的方法,把各种可能的情况都考虑到,并对所得的结果逐一进行判断,过滤掉那些不符合要求的结果,保留那些符合要求的结果。冒泡算法是通过对待排序的序列从前向后依次比较相邻元素的值,如果发现逆序则交换。二分查找法是一种在有序数组中查找某一特定元素的搜索算法。插入排序法的基本思想是将一个记录插入到已经排好序的有序表中,从而一个新的、记录数增1的有序表。分析题意,穷举法可以解决该问题。故本题答案是A选项。 11.A 【详解】本题考查程序分析。这段代码的功能是根据给定的索引链表item和起始索引head,沿着索引链表依次输出对应的数字,直到遇到索引值为-1为止。最后,我们打印输出了str1[:-2],这里使用[:-2]是为了去掉最后的"->”。故正确答案为选项A。 12.A 【详解】本题考查程序分析。B选项,直接遍历列表lst,变量i直接存储的是列表元素,非索引。C选项,变量i存储的是列表元素值,非索引。D选项,if条件判断错误,不能用索引等于目标值。故正确答案为A选项。 13.C 【详解】本题考查的是自定义函数。自定义函数js是统计字符串s中的数字个数,如果数字个数与字符串的长度相等(即全为数字),则输出“yes”,结合选项可知,只有C选项符合。故选C。 14.A 【详解】本题考查字符串处理及选择语句应用知识。由代码可知,将大写字母转化为相应的小写字母,而将小写字母转换为相应的大写字母,然后按照逆序进行连接。故可以排除C、D。由于最后的字符“!”未经if语句处理,但该字符也会被逆序连接到sl中。故选A。 15.A 【详解】本题考查分支结构。条件分支结构是根据给定的条件来决定执行不同的代码块。选项A中的if x > 10: print("x is big")是一个典型的条件分支结构,它根据变量x与10的大小比较来决定是否执行print("x is big")这部分代码。选项B中的for i in range(10): print(i)是一个循环结构,用于按特定范围重复执行代码。选项C中的while x < 10: print(x)是一个while循环结构,根据条件决定是否循环执行代码。选项D中的print("Hello World")只是简单的输出语句,没有涉及条件判断。故答案为:A。 16.C 【详解】本题考查字符串的应用,根据代码,运行如下表,最后各部分逆序连接。 分组字符 t sum “b2” 12 12 “cl” 21 33 “2” 2 不参加运算 故选择C。 17.B 【详解】本题考查流程图分析。 根据题意执行过程如下表所示,则输出s和k的值分别为-5,11。 项目 x s k 初值 21 0 1 1 10 -1 3 2 5 2 5 3 2 -3 7 4 1 4 9 5 0 -5 11 故选择B。 18.A 【详解】本题考查的是Python循环语句。range(5)生成0,1,2,3,4序列数, x=x*i将i累乘到x中,即x=1*0*1*2*3*4=0,故选A。 19.D 【详解】本题考查程序分析。if语句判断条件不完整,根据题意该语句要判断当i的前面位置序列长度大于等于i位置上的长度,则i位置上的序列更新为前面位置序列长度加1。故符合条件的选项为D。 20.C 【详解】本题考查算法的描述。非数值计算主要涉及的是逻辑推理问题。数学公式计算和统计数据分析都属于数值计算的范畴,而图形图像处理则属于图像处理领域。因此,逻辑推理问题是非数值计算的主要内容。故选C。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

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