2.3程序设计基本知识2024—2025学年高中信息技术人教/中图版(2019)必修1

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

内容正文:

2.3 程序设计基本知识 一、选择题 1.下列关于Flask框架的描述,正确的是(   ) A.Flask框架可直接使用,无须导入 B.Flask框架中客户端提交数据只能用POST方式提交给服务器 C.表单是网站与访问者进行互动的界面,接收输入的数据,并将其发送给Web服务器 D.Flask框架中启用一个App的默认端口号不能更改 2.在编程中,封装的概念主要用于(   ) A.隐藏实现细节 B.显示所有细节 C.增加代码的可读性 D.减少代码的执行效率 3.以下哪个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") 4.将数学代数式表示成Python表达式,下列选项中正确的是(   ) A.(x**3+xy+3y**2)**1/ 3 B.(x**3+xy+3y**2)**(1/ 3) C.[x**3+x*y+3*(y**2)]**(1/ 3) D.(x**3+x*y+3*y**2)**(1/ 3) 5.有如下Python程序段: text="Nol:X:123:Y:680:End" a=[0]*10; c=0 for i in range(len(text)):     s=text[i]     if s>='0' and s<='9':         a[c]=a[c]*10+int(s)     else:         if a[c]>0:             c=c+1 print(a[1]) 执行该程序段后,输出的结果是(   ) A.1 B.2 C.680 D.123 6.有如Python程序段: a=[3,1,-6,0,-1,5,2,-5,1,3] n=len(a);q=[0]*n head,tail=0,0 for i in range(0,n):     if head < tail:         if q[head]+a[i]>0:             q[tail]=q[tail-1]+a[i]             tail+=1         else:             head=tail     else:         if a[i]>0:             q[tail]=a[i]             tail+=1 print(tail–head) 执行以上程序段后,输出的结果为(   ) A.2 B.3 C.5 D.6 7.在Python中,以下赋值语句正确的是(   ) A.or=100 B.2_a=100 C.a$2=100 D.a_2=100 8.列表是最常用的Python数据类型,列表的数据项不需要具有相同的类型,创建一个列表,只要把逗号分隔的不同的数据项使用方括号括起来即可。对列表BookInf=[1,2,4,6,7,5,1,9,6],下列错误的是(   ) A.BookInf.append(10),列表添加了10元素 B.print(BookInf[-2]),输出:1 C.BookInf.remove(BookInf[6]),print(BookInf),输出:[2,4,6,7,5,1, 9,6] D.del(BookInf[6]),print(BookInf),输出:[1,2,4,6,7,5,9,6] 9.在Python程序中,执行print ("23"+"45") 语句的结果是(   ) A.68 B.False C.2345 D."23+45" 10.有如下 Python 程序段: a=[5,4,2,1,3,6];q=[0]*6; head=tail=0 for i in range(len(a)): if a[i]%2==1: q[tail]=a[i];tail=tail+1 elif head<tail: head+=1 print(tail-head) 执行该程序段后,输出结果为(      ) A.0 B.1 C.2 D.3 11.以下属于算术运算符的是(   ) A.!= B.== C.> D.% 12.以下伪代码执行后,变量a和b的值分别是(   ) A.a=78  b=65 B.a=65   b=78 C.78    65 D.65   78 13.在pygame窗口中,图片的坐标点位于图片的哪个位置(  ) A.图片的左上角 B.图片的右上角 C.图片的中心点 D.图片的左下角 14.以下选项中,可以让pygame程序每次更新窗口内容后延时800毫秒的是? (  ) A.pygame.time.delay(0.08) B.pygame.time.delay(800) C.pygame.time.delay(0.8) D.pygame.time.delay(800ms) 15.n个人排成一圈,从某个人开始,按顺时针方向从No.1开始依次编号至No.n。从No.1的人开始顺时针“1,2,3,...,m,1,2,3,...”报数,报到m(m>1)的人退出圈子。这样不断循环下去,输出最后剩下的一个人的初始编号。实现该功能的Python程序段如下: n=int(input0) m=int(input0)) a=[] for i in range(n):     a.append(["No."+str(i+1),(i+1)%n]) head=0;p=head;cnt=1 while p!=a[p][1]:     pre=p     p=a[p][1]     cnt+=1     if cnt==m: print(a[p][0]) 上述程序段中方框处可选代码为 ①a[p][1]=a[pre][1]  ②a[pre][1] =a[p][1]  ③p=a[pre][1]  ④p=a[p][1]  ⑤cnt=1  ⑥cnt=0 则应填入的代码依次为(   ) A.①③⑤ B.②④⑤ C.①③⑥ D.②③⑥ 16.Python表达式 3==5的值是(   ) A.True B.False C.5 D.3 17.已知s="2023金兰联考",则下列Python表达式中结果为"金兰"的是(   ) A.s[-4:-3] B.s[4:5] C.s[4:6] D.s[4:8] 18.将 18≤a≤60转换为Python表达式,正确的是(   ) A.a>=18 or a<=60 B.a<=18 or a>=60 C.18<=a and a<=60 D.a<= 18 and a>=60 二、填空题 19.分析完善程序:已知包含25项的数列:1,2/3,3/5,…,24/47,25/49。 问题1:写出该数列的通项公式f(n)=① 问题2:以下是计算s=1+2/3+3/5……24/47+25/49的程序,请补全代码: s=0 for i in range(1,26):     s=s+ ② print("s",s) 20.某超市举办年中促销活动,顾客一次性购买商品的金额若在500元以内(包括500元),打9折。若超过500元,打8折。其中x表示顾客购买商品的金额,y表示应付款。请编程计算应付款y。 x=float(input("请输入顾客购买商品的金额:")) x<=500:     y=x*0.9 else:     y=x*0.8 print("应付款为:",y) 21.Python表达式'ab'in'acbed'的值为 。 22.表示x在区间(a,b]内的Python表达式是 。 23.某 Python 程序如下: n = int (input ()) sum = a = 3 res = 0 i=1 while i <= n:     res = res  + sum     sum = sum * 10 + a     i = i + 1 print (res) 当输入n值为3时,程序输出结果是 。 24.Python语言中,当a=4,b=2时,not(a==b)的值是 。 三、判断题 25.定义Python函数时必须指定函数返回值类型。( ) 26.Python使用缩进来体现代码之间的逻辑关系。( ) 27.程序设计语言的发展历程:机器语言→汇编语言→高级语言。( ) 28.在Python语言中,可以用列表存储一首唐诗,如:gushi={'春晓', '唐', '孟浩然', '春眠不觉晓,处处闻啼鸟。夜来风雨声,花落知多少。'}。( ) 29.程序设计语言与自然语言完全相同。( ) 30.在Python语言中,range(4,9)中元素的个数是4个。( ) 四、操作题 31.小李为自己制定了一项背单词计划,第一天背1个单词,以后每天都比前一天多背1个单词,他想知道用30天总共可以背多少个单词?请在序号处填写正确的代码,且不改变原程序的结构,并把序号删除,调试完成后保存文件。 sum=  ① index=1  #记录背单词的天数 n=30 while ② <=n:     sum=③ +index     index=④ print("记住的单词总量是",sum) 32.《九章算术》中记载的“更相减损法”算法可以求任意两个正整数的最大公约数,原文描述为:“可半者半之,不可半者,副置分母、子之数,以少减多,更相减损,求其等也。以等数约之。” 具体步骤是: 第一步:任意给定两个正整数;判断它们是否都是偶数。若是,重复用2约简,直至两数不都是偶数,执行第二步。 第二步:比较第一步中约简后的两数,以较大的数减较小的数,接着把所得的差与较小的数比较,并以大数减小数。重复这个操作,直到所得的减数和差相等为止。 第三步:第一步中约掉的若干个2的乘积与第二步中等数的乘积即为所求的最大公约数。 示例:用“更相减损法”求78和24的最大公约数 第一步:由于两者都是偶数,故用2约简1次得到39和12 第二步:辗转相减39和12,39-12-27,27-12=15,15-12=3,12-3=9,9-3=6,6-3=3 第三步:第一步中约掉的若干个2的乘积和3相乘,2*1*3=6即为78和24的最大公约数程序运行效果如下图所示: 请输入第一个正整数:78 请输入第二个正整数:24 所求最大公约数为:6.0 利用Python实现程序如下,请在划线处填入合适的代码。 a=int(input("请输入第一个正整数:")) b=int(input("请输入第二个正整数:")) i=s=1 while① :     a=a/2     b=b/2     ②     i=i+1 while a!=b:     if a>b:         ③     else:         b=b-a print("所求最大公约数为:"  ④ ) 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.C 【详解】本题考查Flask框架。Flask是第三方库,需要导入才能使用;Flask框架中,客户端可以用POST或GET等方式提交数据给服务器;Flask框架启用App的端口号可以更改。故选C。 2.A 【详解】本题考查编程的描述。封装是面向对象编程中的一个重要概念,主要用于隐藏实现细节。通过封装,类的内部实现细节对外部不可见,只暴露必要的接口,从而提高代码的安全性和可维护性。选项B、C、D都不符合封装的主要目的。故选A。 3.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。 4.D 【详解】本题考查Python基础。 数学代数式用Python表示为(x**3+x*y+3*y**2)**(1/3),因此答案为D。 5.C 【详解】本题考查Python程序。程序的执行过程如下:首先,定义了字符串text="Nol:X:123:Y:680:End"和数组a=[0]*10,以及变量c=0。然后,程序遍历字符串text中的每个字符。对于每个字符s,检查它是否是数字(即在'0'到'9'之间):如果是数字,则将其转换为整数并添加到数组a的当前位置a[c]中。如果不是数字,检查当前位置a[c]是否大于0,如果是,则将索引c自增1。最后,输出数组a中索引为1的元素,即a[1]。根据给定的字符串text="Nol:X:123:Y:680:End",程序执行时提取了其中的数字部分,即123和680,分别存储在a[0]和a[1]中。因此,输出结果应为a[1]的值,即680。故答案为:C。 6.A 【详解】本题考查Python程序。程序通过遍历列表a并将连续和为正数的子数组存入列表q中,最后输出满足条件的子数组长度。具体程序流程如下:初始化:列表a定义为[3,1,-6,0,-1,5,2,-5,1,3]。n为列表a的长度(假设ben(a)返回长度),即n=10。列表q初始化为长度为n的零列表,即q=[0]*n。head和tail指针初始化为0。遍历列表a:使用for循环,从i=0到i=9遍历列表a的每个元素。处理每个元素a[i]:如果head0,则将a[i]添加到q[tail],并增加tail指针。否则,将head指针设为tail。如果head>=tail:如果a[i]>0,则将a[i]直接存入q[tail],并增加tail指针。打印结果:最后输出tail-head,即满足条件的子数组长度。根据上述流程,可知最终输出的结果为2。故答案为:A。 7.D 【详解】本题考查Python变量。Python中,变量名必须遵循一定的规则才能正确定义,规则包括:变量名只能包含字母(大小写均可)、数字和下划线,不能包含空格或特殊字符。变量名不能以数字开头,可以包含数字,但不能只包含数字。变量名不能是Python的关键字(例如if、else、for等)。根据这些规则,选项a_2=100是正确的赋值语句,因为只有它符合了Python变量命名的规则。故答案为:D。 8.B 【详解】本题考查了Python列表的基本操作。BookInf.append(10)会在列表末尾添加元素10,A选项正确。print(BookInf[-2])会输出倒数第二个元素,即9,而不是1,B选项错误。BookInf.remove(BookInf[6])会移除列表中第6个元素,即第一个1,之后打印列表,输出为[2,4,6,7,5,1,9,6],C选项正确。del(BookInf[6])会删除列表中的第6个元素,即第一个1,之后打印列表,输出为[1,2,4,6,7,5,9,6],D选项正确。故答案为:B。 9.C 【详解】本题考查Python输出语句。字符串相加运算,即将两者拼接起来,因此"23"+"45"="2345",输出语句中字符串会原样显示,即输出结果是2345。故选C。 10.B 【详解】本题考查Python程序调试与执行。分析程序,当a[i]是奇数时,则将a[i]保存到q中,同时tail递增1,若a[i]是偶数且head<tail时,则head递增1。第一次循环,a[i]=5,则tail=1,第二次循环,a[i]=2,执行elif,head=1;第三次循环,不满足判断条件,跳过;第四次循环,a[i]=1,则tail=2;第五次循环,a[i]=3,则tail=3;第六次循环,a[i]=6,head=2,循环结束。因此输出tail-head=3-2=1。故选B。 11.D 【详解】本题考查Python运算符相关内容。!=、==、>属于关系运算符,%属于算术运算符。故本题答案是D选项。 12.D 【详解】本题考查Python程序。输入a=78,b=65,因为78>65,所以执行“a>b”后的语句,先将a(78)赋给m,再将b(65)赋给a,最后将m(78)赋给b,此时a=65,b=78。故答案为:D。 13.A 【详解】本题考查Python基础。 在pygame窗口中,图片的坐标点(通常指的是图片被绘制到窗口时所使用的坐标)默认位于图片的左上角。这是大多数图形库(包括pygame)在处理图像时的标准约定。故正确答案为:选项A。 14.B 【详解】本题考查Python基础。 在pygame中,要让程序每次更新窗口内容后延时800毫秒,应该使用pygame.time.delay(800)。这个函数接受一个整数参数,表示要延迟的毫秒数。故正确答案为:选项B。 15.B 【详解】本题考查Python程序设计相关内容。本题描述的是约瑟夫环算法,采用循环链表解决题目要求。分析程序段,cnt为计数器,每报数一个,计数器cnt加1,若cnt等于指定的m,则在循环链表中将该节点前驱节点与后继节点连接,删除该节点,且cnt重置为1,其代码为:a[pre][1] =a[p][1];p=a[p][1];cnt=1。故本题答案是B选项。 16.B 【详解】本题考查Python表达式。在Python中,==是相等比较操作符,用于检查两个值是否相等。由于3并不等于5,因此该表达式的值为False。故答案为:B。 17.C 【详解】本题考查Python字符串切片操作。切片操作基本表达式:object[start_index:end_index:step],step:正负数均可,其绝对值大小决定了切取数据时的“步长”,而正负号决定了“切取方向”,正表示“从左往右”取值,负表示“从右往左”取值。start_index:表示起始索引(包含该索引对应值),该参数省略时,表示从对象“端点”开始取值。end_index:表示终止索引(不包含该索引对应值),该参数省略时,表示一直取到数据“端点”。已知s="2023金兰联考",s[-4:-3]=s[4:5]="金",s[4:6]="金兰",s[4:8]="金兰联考"。故选C。 18.C 【详解】本题考查的是Python表达式。18≤a≤60转换为Python表达式为:18<=a and a<=60。选项C正确。 19. n/(2*n-1)或n/(n*2-1) i/(2*i-1)或i/(i*2-1) 【详解】本题考查程序分析。 ①第n项,规律为分母为奇数2*n-1,分子为n,故通项公式为n/(2*n-1)或n/(n*2-1)。 ②for循环遍历数字1到25,循序变量为i,累加每项的值到变量s,根据通项公式可知:i/(2*i-1)或i/(i*2-1)。 20.if 【详解】本题考查Python程序。程序中需要根据输入的购买商品金额x来确定应付款y的计算方式。使用if语句进行条件判断,如果x<=500,则执行y=x*0.9;否则(即x>500),执行y=x*0.8。所以此处应填if,以实现根据不同条件计算应付款的功能。故答案为:if。 21.False 【详解】本题考查Python程序设计相关内容。在Python中,in是一个运算符,用于检查一个值是否存在于一个序列(如字符串、列表、元组、集合)中,返回一个布尔值,即True或False,指示该值是否存在于序列中。字符串'ab'不在'acbed'中,其结果为False,故本题答案是:False。 22.x>a and x<=b或a<x<=b 【详解】本题考查的是Python表达式。x在区间(a,b]表示x大于a,同时x小于等于b,因此对应的Python表达式是x>a and x<=b或a<x<=b。 23.369 【详解】本题考查的是Python循环语句。初始i=1,sum = a = 3,当输入n值为3时。 i<=3成立,res = res+sum=3, sum=sum*10+a=30+3=33,i=i+1=2; i<=3成立,res = res+sum=36, sum=sum*10+a=330+3=333,i=i+1=3; i<=3成立,res = res+sum=369, sum=sum*10+a=3330+3=3333,i=i+1=4; i<=3不成立,故输出res为369。 24.True 【详解】本题考查的是Python表达式。当a=4,b=2时,a==b值为:False,not取反,故not(a==b)的值是True。 25.错误 【详解】本题考查Python基础。 在Python中,定义函数时不需要显式指定函数的返回值类型,这与一些静态类型语言(如C++、Java或TypeScript)不同。Python是一种动态类型语言,这意味着变量的类型是在运行时动态确定的,而不是在编写代码时静态确定的。故错误。 26.正确 【详解】本题考查Python基础。 Python 使用缩进来定义代码块(block)的范围。缩进是语法的一部分,这意味着缩进的正确使用对于程序的正确执行至关重要。Python 的这种设计选择强调了代码的可读性和简洁性。故正确。 27.正确 【详解】本题考查程序设计语言。计算机程序设计语言的发展是从低级到高级逐步演变的。最开始是机器语言,由二进制代码组成,难以理解和编写;之后出现了汇编语言,使用助记符来代替机器指令,提高了一定的可读性;再后来发展出了高级语言,如 C、Java、Python 等,更接近人类的自然语言和数学表达式,易于学习和使用。所以程序设计语言的发展历程是机器语言→汇编语言→高级语言。故说法正确。 28.错误 【详解】本题考查的是列表相关知识。在Python中,列表用[]表示,gushi={'春晓', '唐', '孟浩然', '春眠不觉晓,处处闻啼鸟。夜来风雨声,花落知多少。'}不属于列表,说法错误。 29.错误 【详解】本题考查程序设计语言的描述。程序设计语言是用于书写计算机程序的语言,语言的基础是一组记号和一组规则,根据规则由记号构成的记号串的总体就是语言。程序设计语言的发展经历了机器语言、汇编语言、高级语言等过程;高级语言是一种接近于自然语言的编程语言,但不是完全相同。故表述错误。 30.错误 【详解】本题考查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(4,9)返回的整数序列是4,5,6,7,8。题干说法错误。 31. 0 index sum index+1 【详解】本题考查Python程序综合应用。初始时候总单词量设置为0,所以①处应该填写0;在while循环的条件中,我们需要确保index(天数)小于或等于n(总天数),所以②处应该填写index;在循环体内,我们需要将当天背的单词数(index)加到总单词数(sum)上,所以③处应该填写sum;最后,我们需要更新index的值,以便在下一轮循环中背更多的单词。由于每天背的单词数比前一天多1个,所以④处应该填写index + 1。 32. a%2==0 and b%2==0 s=s*2 a=a-b a*s 【详解】本题考查Python程序设计。1、循环条件判断a,b是否同时为偶数,故a%2==0 and b%2==0。2、如果是偶数则累乘给变量s,故结果填写s=s*2。3、根据算法当a大于b时,故a=a-b。4、若干个2的乘积与第二步中等数的乘积即为所求的最大公约数,故最大公约数为a*s。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

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