第二章 算法与程序实现 2024-2025学年高中信息技术华东师大版(2020) 必修1

2024-08-08
| 14页
| 41人阅读
| 0人下载

内容正文:

第二章 算法与程序实现 一、选择题 1.用Python语言实现“每满100减20,每满200减50,可以累计上不封顶”的优惠金额算法,设s为购买商品的原价,计算优惠金额t,下面选项正确的是(   ) A. t=s//100*20 if s//200>0:     t+=s//200*50 B. t=s//200*50 if s%200>=100;     t=t+20 C. if s>=200:     t=s//200*50 else:     t=s//100*20 D. if s>=100:     t=t//100*20 else:     t=t//200*50 A.A B.B C.C D.D 2.下列Python表达式的值为True的是(   ) A."12"*2>"2" B."a" in ["apple"] C.len(range(12))==12 D.3**2-7%5<int(6.8) 3.执行以下Python语句a="12";b="34";c="a"+"b"的值是(   ) A."1234" B.1234 C.46 D."ab" 4.下列Python程序所表示的算法,违反的算法特征是(   ) for i in range(12,39,2):     if i % 2 != 0:         print(i) A.可行性 B.至少有一个数据输出 C.确定性 D.有穷性 5.在Python语言中,运行下面程序后,变量m的值为(   ) a=8 b=16 c=32 if a>b:     m=a else:     m=b if c>m:     m=c print(m) A.1 B.8 C.16 D.32 6.有如下 Python 程序段: sl = input();n= len(s1) sl=sl + sl i,j=0,1 while i<n and j<n:     k=0     while k < n and s1[i+k] == sl[j+k]:         k+=1     if sl[i+k]>s1[j+k]:         i=i+k+1     else:         j=j+k+1     if i == j:j+=1 k=min(i,j) 执行该程序段后,下列说法正确的是(    ) A.变量i与变量j的和可能大于3*n B.程序执行过程中变量i一定小于变量j C.该算法时间复杂度为O(n2) D.若输入s1为“abaada”,执行该程序段后k为5 7.有Python程序代码如下: def swap(x,y):     x=x+y     y=x-y     x=x-y print(x,y) a=100;b=300 swap(a,b) print(a,b) 运行上面程序,输出结果正确的是(   ) A. 100 300 300 100 B. 100 300 100 300 C. 300 100 300 100 D. 300 100 100 300 A.A B.B C.C D.D 8.在生活和学习中,人们经常会运用到算法,以下关于算法的说法,错误的是(   ) A.算法就是数学表达式 B.算法的一个步骤可以被多次执行 C.算法的每一个步骤都确定、没有歧义 D.算法在有限个步骤后能够结束 9.有如下Python 程序段: #随机产生10个整型元素的非降序序列,依次存入列表:a(a[0]!=a[9]),代码略 key=int(input()) i=0;j=9 n=0 while i<=j: m=(i+j)//2 n+=1 if a[m]<key;      i=m+1 else:      j=m-1 执行上述程序段后,下列说法不正确的是(   ) A.a[i+1]可能等于key B.a[j]可能等于key C.i一定等于j+1 D.n的值一定大于2 10.在Python中,以下运行结果为真的是(    ) A.3*2>5 and 4//2>2 B.1+1!=2 or 2-1==1 C."python"<"C++" D.not 3>2 11.某算法的部分流程图如图所示。 输入x的值分别是20,5,11,7,12,0,最终k的值是(   ) A.2 B.3 C.4 D.5 12.在有限的步骤内解决某一问题的确切过程叫做算法。以下关于算法的描述中,错误的是(   ) A.《九章算术》中用“更相减损术”求最大公约数的记载属于算法的自然语言描述 B.算法必须有输入,也必须有输出,而且可以有多个输入输出 C.任何复杂的算法最终都可以用顺序、分支、循环结构来实现 D.同一问题选用不同的算法执行效率可能会有很大差别 13.有如下 Python 程序段: L=[21,12,13,17,16,15,20,28,11] def shengxu(a,b): for i in range(0,b-a); for j in range(   ): if   L[j]>L[j+1]: L[j],L[j+1]=L[j+1],L[j] shengxu(3,7) print(L) 若要实现列表L中L[a]到L[b]之间的数升序排列(不改变其余元素的位置),划线处的代码应为(   ) A.i,b B.0,b-i C.a,b-i D.b-1,a-i-1,-1 14.有如下 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 15.下列关于算法的描述,说法正确的是(    ) A.算法只能用自然语言描述 B.解决一个问题的算法是唯一的 C.同一个问题的算法不同,结果也不会相同 D.算法过程要一步步执行,每一步执行的操作必须准确 16.小明要编写一个程序,能实现对用户输入的数据,判断其为奇数还是偶数,请你帮他完成以下代码:在“if( )”处补充代码(  ) n=int(input("请输入一个数: ")) if( ): print("这是一个偶数")else: print("这是一个奇数") A.n/2==0 B.n//2==0 C.n%2==0 D.n%10==0 17.有如下Python程序段: def f(s): if len(s)==2: return s else: return f(s[len(s)//2+1:]+s[:len(s)//2]) print(f("abcde")) 当执行该程序段后,显示的结果是(   ) A.eb B.be C.da D.ad 二、填空题 18.在Java中,用于创建线程的类是 。 19.在编程语言中, 是指在程序执行过程中,根据条件选择执行不同代码块的语句。 20.程序设计语言包括机器语言、汇编语言和 。 21.Python中读写文本文件的方法,其中打开用 把外存储器里的文本文件(.txt)打开;存储用 将内存中的数据存储到外存储器的文件中;关闭文件时一定要用 关闭文件。 22.如图所示算法,有一数列:1、2、2、4、8、32、256…求这个数列的第n(n>=3)项,则空白横线处用a、b、c组成一个表达式,应填 。 三、判断题 23.算法有零个或多个输入、有一个或多个输出。( ) 24.网络爬虫是种程序或脚本,通过它可以将非结构化数据从网页中抽取出来,并以结构化的方式存储为本地数据文件。( ) 25.算法只能用自然语言来描述。( ) 26.计算机程序能重复使用。( ) 27.高级语言的翻译程序有两种类型:解释程序和编译程序。( ) 四、操作题 28.编写Python程序,实现如下功能:打开指定位置('D:\猫头.jpg')的图片,显示图片并输出其模式信息,将当前图片转换为灰度模式('L')后,再次显示图片查看效果并输出其模式信息。程序代码和界面图如下。在划线处填上合适的代码。 from PIL import Image im=① im.show() print('转换前图像的模式:',im.mode) new_im=② #将当前图像转换为其他模式(灰度),并且返回新的图像。 new_im.show() print('转换后图像的模式:',new_im.mode) 29.某阅卷系统可以根据学生输入的选择题答案进行对照并判分。每道选择题2分,题型为单选、多选,判分规则如下:单选题和标准答案一致得全部分数,错选或不选不得多选题和标准答案一致得2分,漏选给1分,错选或不选不得分。程序输入及输出结示例如下: 请输入你的答案,并以逗号结尾:A,B,A,B,C,ACD,AB,AD, 最终得分为:7 你的平均分为:0.88 (1)若标准答案为["A","C","A","D","B","ACD","ABD","AC"],当输入的答案是"A,C,A,B,C,ACD,ABC,A,"时,得分为 。 (2)编写Python程序如下,在划线处填入合适的代码。 def check(x,y):    #x为输入的选择题答案,y为标准答案     f=0;t=0     for i in x:         if  ① :             t=0             break    #break表示中断循环         else:             t+=1     if t !=0:         if t==len(y):             f=2     else:         ②     return f bzda=["A","C","A","D","B","ACD","ABD","AC"] s=input("请输入你的答案,并以逗号结尾:") tmp="";n=0;sum=0 for i in s:     if i!=",":         tmp=tmp+i     else:         sum=sum+③         n=n+1         tmp="" print("最终得分为:",sum) print("你的平均分为:",round(④ ))#结果保留两位小数 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.B 【详解】本题考查分支语句的作用。由于优惠条件中,一个200元的优惠幅度比两个100元的更大,因此应该优先凑200元的整数,然后再看100元的。故选B。 2.C 【详解】本题考查Python基础。 A选项,结果为运算结果为:"1212">"2",返回False。 B选项,字符"a"并不在列表 ["apple"]中,返回False。 C选项,range(12) 生成一个从 0 到 11 的整数序列,长度为12,故返回True。 D选项,运算结果为:7<6,故返回False。 故正确答案为:选项C。 3.D 【详解】本题考查Python程序设计相关内容。字符串a="12",b="34",c="a"+"b"即等于"a"+"b"结果为"ab"。故本题答案是D选项。 4.B 【详解】本题考查算法特征。在给定的Python程序中,range(12,39,2)表示从12到39以步长为2进行取值,即取值为12、14、16、18、20...38。但程序中判断条件是if i%2!=0,而从这个范围取出的数都是偶数,不可能满足这个条件,所以这个程序不会有任何输出,违反了算法的“至少有一个数据输出”的特征。故答案为:B。 5.D 【详解】本题考查Python程序设计相关内容。分析代码段可知,该代码段功能是求abc三数的最大值,运行程序后,m值为32。故本题答案是D选项。 【点睛】 6.D 【详解】本题考查Python程序设计相关内容。分析程序段,A选项,由循环条件“i<n and j<n”知,变量i与变量j的和不会大于3*n,选项错误。B选项,程序执行过程中变量i不一定小于变量j,选项错误。C选项,该算法时间复杂度低于O(n2),选项错误。D选项,若输入s1为“abaada”,执行该程序段后,i值为5,j值为6,k为两者最小值,即5,选项正确。故本题答案是D选项。 7.D 【详解】本题考查Python程序。根据参数类型,本题可以直接理解成值传递模式,即函数内部变量x与外面变量x彼此独立,属于不同的存储空间,在函数内部三条语句实现了变量x与y的交换,输出为300 100。当函数结束后,在函数外面变量x,y的值并不受到影响。输出为100 300。故答案为:D。 8.A 【详解】本题考查算法的描述。算法(Algorithm)是指解题方案的准确而完整的描述,是一系列解决问题的清晰指令;算法的一个步骤可以被多次执行;算法的每一个步骤都确定、没有歧义;算法在有限个步骤后能够结束。故选A。 9.B 【详解】本题考查Python程序设计相关内容。分析该程序段可知,该程序运行过程可以二叉树描述,如图所示:。若key值大于等于a[m],执行else语句,即往左移,a[i+1]可能等于key,a[j]不可能等于key,A选项正确,B选项错误。由于while循环中没有中断语句,只有i<=j不成立时才结束循环,此时,i的值为j+1,C选项正确。n的值可以看作该二叉树的层数,其值一定大于2,D选项正确。故本题答案是B选项。 10.B 【详解】本题考查Python表达式。A选项,3*2=6,6>5为真,4//2=2,2>2为假,and运算中全真才为真,所以3*2>5 and 4//2>2为假。B选项,1+1=2,1+1!=2为假,2-1=1,2-1==1为真,or运算中一真则真,所以1+1!=2 or 2-1==1为真。C选项,在Python中比较字符串大小是按照字符的ASCII码值比较,'p'的ASCII码值大于'C'的ASCII码值,所以"python"<"C++"为假。D选项,3>2为真,not真为假,所以not 3>2为假。故答案为:B。 11.B 【详解】本题考查算法相关内容。通过分析流程图,可以得知,该算法运行过程如下图所示:    故本题答案是B选项。 12.B 【详解】本题考查算法。算法不一定必须有输入,但必须有输出。例如,有些算法是自启动的、不依赖外部输入的,但最终会有输出。故答案为:B。 13.C 【详解】本题考查Python程序设计相关内容。分析程序段可知,该程序采用的是冒泡排序算法,外循环控制排序趟数,内循环控制每趟参与排序的数据及排序过程,每趟排序都会将当前序列的最大值放在序列最后,下一趟排序,该数不再参与排序,故每趟排序都从起始位置a开始,到b-i结束,划线处为:a,b-i,故本题答案是C选项。 14.C 【详解】本题考查二进制相关知识。通过分析得知,代码段功能是将前2个二进制数转换成十进制数,并计算2个十进制数的和。(1010)2=(10)10,(1100)2=(12)10。故本题答案为C。 15.D 【详解】本题考查的是算法相关知识。算法可以用自然语言、流程图、伪代码等描述,故选项A说法错误;解决一个问题的算法不唯一,故选项B说法错误;同一个问题的算法不同,结果相同,故选项D说法错误;算法过程要一步步执行,每一步执行的操作必须准确,选项D说法正确。 16.C 【详解】本题考查Python分支结构。在这段程序中,我们需要判断输入的正整数x是否为偶数。根据整数的奇偶性质,一个整数除以2的余数为0时,它就是偶数。因此,我们可以使用取余运算符(%)来判断x是否能被2整除,如果余数为0,则x是偶数,否则是奇数。C选项正确。 17.A 【详解】本题考查Python函数调用相关内容。分析该程序段,可知,该函数为递归函数,其运行过程为:(1)第一次调用f函数, f("abcde")-->len(s)=5,不等于2-->f(s[3:]+s[:2]),即f("deab")。(2)第二次调用f函数,f("deab")-->len(s)=4,不等于2-->f(s[3:]+s[:2]),即f("bde")。(3)第三次调用f函数,f("bde")-->len(s)=3,不等于2-->f(s[2:]+s[:1]),即f("eb")。(4)第四次调用f函数,f("eb")-->len(s)=2,等于2,执行return s,即"eb"。故本题答案是A选项。 18.Thread 【详解】本题考查Java程序设计相关内容。在Java中,线程(Thread)是程序执行的最小单元,它允许程序在同一时间执行多个任务。Java中的线程可以由Thread类创建,故本题答案是:Thread。 19.条件语句或选择结构 【详解】本题考查分支结构。在编程语言中,条件语句或选择结构用于在程序执行时,依据给定的条件来决定执行不同的代码块。条件语句通过对条件的判断,若条件为真(成立)则执行相应的代码块,若条件为假(不成立)则执行另外的代码块或者不执行任何操作。常见的条件语句有if语句、if-else语句、switch语句等。通过条件语句,可以使程序根据不同的情况做出不同的响应和处理,增加了程序的灵活性和逻辑性。故答案为:条件语句或选择结构。 20.高级语言 【详解】本题考查的是程序语言。程序设计语言的发展历程:机器语言、汇编语言、高级语言。 21. open函数 write方法 close方法 【详解】本题考查Python相关知识。Python中读写文本文件的方法,其中打开用open函数把外存储器里的文本文件(.txt)打开;存储用write方法将内存中的数据存储到外存储器的文件中;关闭文件时一定要用close方法关闭文件。 22.c=a∗b 【详解】本题考查的是流程图识读。观察数列:1、2、2、4、8、32、256…,可知an=an-2*an-1(n>=3),故空白横线处应填:c=a∗b。 23.正确 【详解】本题考查算法特征相关内容。算法基本特点:有穷性、可行性、确定性、输入(零或多个输入)、输出(有一个或多个输出)。故本题答案是:正确。 24.正确 【详解】本题考查网络爬虫。网络爬虫就是一种能够按照一定的规则,自动地抓取万维网信息的程序或者脚本。它能够从网页中提取出所需的非结构化数据,并将其整理成结构化的形式,存储为本地的数据文件,以便后续的分析和处理。故说法正确。 25.错误 【详解】本题考查算法。算法可以用多种方式来描述,常见的有自然语言、流程图、程序设计语言等。自然语言描述较为通俗易懂,但可能存在模糊和歧义;流程图直观清晰,能更形象地展示算法的流程和逻辑;程序设计语言则可以直接实现算法。故说法错误。 26.正确 【详解】本题考查计算机程序相关内容。计算机软件(程序)复用指的是在开发软件时,重复利用已有的代码和模块,以提高开发效率,并减少开发成本。故本题答案是:正确。 27.正确 【详解】本题主要主要考查程序的描述。高级语言的翻译程序是编译程序和解释程序。故本题正确。 28. Image.open('D:\猫头.jpg') im.convert('L') 【详解】本题考查Python程序设计相关内容。①处,Image.open(filepath)用于文件加载,将文件数据返给img图片对象,故此处答案为:Image.open('D:\猫头.jpg')。②处,图片对象.convert(mode)将当前图像转换为其他模式,并且返回新的图像,故此处答案为:im.convert('L')。 29. 9 i not in y f=1 check(tmp,bzda[n]) sum/n,2 【详解】本题考查程序分析。 (1)若标准答案为["A","C","A","D","B","ACD","ABD","AC"],当输入的答案是"A,C,A,B,C,ACD,ABC,A,"时,判断出单选题对3道,得6分。多选题全对1道,得2分。漏选1道,得1分。故正确答案为:9。 (2)①if条件判断输入的选择题是否在标准答案中,如果不在标准答案中,则答案长度变量t为0,如果在答案长度变量t加1。故正确答案为:i not in y。②当答案长度变量t和标准答案长度相等时,则表示全对,得2分。否则漏选答案得1分。故正确答案为:f=1。③调用答案核对函数,获得每道题的得分,然后累加到总分变量sum中。故正确答案为:check(tmp,bzda[n])。④调用round函数,保留平均分两位小数。平均分计算为总分除以题目数量。故正确答案为:sum/n,2。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

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