3.2Python语言程序设计同步作业2024—2025学年高中信息技术浙教版(2019)必修1

2024-08-10
| 15页
| 126人阅读
| 0人下载

内容正文:

3.2 Python语言程序设计 一、选择题 1.已知在python语言中,int(x)函数的功能是返回x的整数部分,设a=3,b=4,c=5,则下列表达式的运算结果中值最大的是(   ) A.abs(a-b) B.int(2*a-c/b) C.math.sqrt(b) D.a**2+b**2-c**2 2.有如下Python程序段 from random import randint a=[0]*5 for i in range(5):     a[i]=randint(-4,4)*2+1    #randint(a,b)随机生成一个[a,b]范围内的整数 for i in range(1,5):     k=a[i]     j=i-1     while j>=0 and a[j] < k:         a[j+1]=a[j]         j-=1     a[j+1]=k 执行该程序段后,列表a的值可能是(    ) A.[-9,5,3,1,1] B.[7,5,1,1,-5] C.[7,3,0,-5,-1] D.[-3,-1,1,3,9] 3.下面两个Python程序的运行结果分别是(  ) A 4 3 1 0 4 3 B 4 3 1 4 3 C 4 3 4 3 1 0 D 4 3 2 1 4 3 2 1 A.A B.B C.C D.D 4.我们可以对文本中词频较高的分词,通过词云图给予视觉上的突出,小明打算用Python程序来生成词云图,程序中需要用到以下哪个第三方库?(    ) A.WordCloud B.math C.random D.turtle 5.有如下Python程序段: def double f(m):    if   m==1   or   m==2:       return    m    else:       return double f(m-2)*m n=int(input("请输入一个正整数n:") print(double f(n)) 执行该程序段后,输入n 的值为7,输出的结果是(   ) A.1 B.7 C.105 D.35 6.下面代码的输出结果是(  ) a,b=1,1 for i in range(3,7): a,b = b,a+b print(a) A.5 B.8 C.13 D.21 7.在Python中,下列赋值语句不合法的是(    ) A.x+=7 B.x+y=z C.x_y=10 D.x,y=y,x 8.s="1"+"1",此时s的值是(   ) A.2 B."11" C.11 D."2" 9.有如下Python程序段: m = "2a03b145c1" s=" ";x = 0;i=0 while i<len(m): ch=m[i] if "a"<=ch<="z": s=ch+"="+str(x)+","+s x=0 else: x=x*10+int(ch) i=i+1 print(s) 执行该程序段后,输出的结果为(    ) A.a=2,b=3,c=145, B.a=2,b=3,c=45, C.a=3,b=145,c=1, D.c=145,b=3,a=2, 10.绘制sin(x)的图形如下图所示。 import matplotlib.pyplot as plt import numpy as np x=np.linspace(0,20,100) y=np.sin(x) ________________ plt.legend() plt.show() 则程序划线处应填入的代码是(  ) A.plt.plot(x,″g--″,label=″sin(x)″) B.plt.plot(x,y,″g--″,label=″sin(x)″) C.plt.plot(x,y,″g--″) D.plt.plot(y,″g--″,label=″sin(x)″) 11.列表是Python中常用的序列类型,和变量样是可变的。以下关于列表的描述正确的是(  ) A.列表中的元素索引不能为负值 B.列表中元素的值可以修改 C.列表中的元素不能是列表类型 D.列表中元素的数据类型必须是一样的 12.某Python程序如下: dic={};s="1223212" for i in s:     if i in dic:         dic[i]+=1     else:         dic[i]=1 print(dic["2"])程序运行后,输出的结果是(    ) A.1 B.2 C.3 D.4 13.定义如下函数: def f(x):    if x<3:       return 2    return f(x-1)*f(x-3) 关于该函数,下列说法正确的是(    ) A.采用了迭代算法 B.时间复杂度是0(log2n) C.计算f(5),函数f被调用的次数是6次 D.f(5)的返回值为16 14.我们在用Python进行数据分析的时候,经常会用到pandas库中的DataFrame,这是类似于(     )的数据结构  (     ) A.一维表格 B.二维表格 C.三维表格 D.四维表格 15.使用列表模拟单向链表,链表中p节点的a[p][0]存储数据,a[p][1]存储其后继节点的指针。编写Python程序删除链表中所有的偶数项(头节点为该链表的第1项),部分代码如下: p=head             #head指向该链表的头节点 while p!=-1: q=a[p][1]   if (1) : (2) p=a[p][1] 上述程序段划线处可选语句为 ①q!=-1        ②a[q][1]!=-1        ③a[q][1]=a[p][1]        ④a[p][1]=a[q][1] 则(1)(2)处填入的语句依次为(   ) A.①③ B.①④ C.②③ D.②④ 16.程序代码如下: age=float(input(“请输入年龄=”)) HRrest=float(input(“请输入安静心率=”)) gender=input(“请输入male或female:”) n=220 else: n=210 low=(n-age-HRrest)*0.6+HRrest high=(n-age-HRrest)*0.8+HRrest print(“最适宜运动心率是:”,low,”~”,high) 横线上应填入的内容是(    ) A.if gender=male: B.if male==gender: C.if gender==male: D.if gender==”male”: 17.使用列表lnk模拟链表结构,head为头指针,每个节点包括性别、身高和后续指针。原链表按先男生再女生升序排列(如图a所示),现要修改各节点的链接关系,使得链表按先女生再男生升序排列(如图b所示),实现该功能的代码如下: lnk=[["男",178,1],["男",180,2],["男",185,3],["女",160,4],["女",172,5],["女",174,-1]] head = 0 t = head pre = cur = lnk[head][2] while lnk[cur][2] ! = -1: if lnk[cur][0] == "男": pre = cur cur = lnk[cur][2] lnk[cur][2]=t 方框处应填入正确的代码为(    ) A. B. C. D. 二、填空题 18.填空题:在Python中,使用 可以创建一个函数。 19.用python编写程序,实现一元二次方程式ax2+bx+c=0(a≠0)的求解。输入系数a、b、c的值,输出方程可能的解。 import math a=int(input("a:")) b=int(input("b:")) c=int(input("c:")) if ① :     X1=((-1)*b+sqrt(f(a,b,c)))/(2*a)     x2=((-1)*b-sqrt(f(a,b,c)))/(2*a)     print("x1=",x1,"x2=",x2) else:     print(“该方程式无解!”) 请把上面程序划线①处的代码补充完整。 20.Python中读写文本文件的方法,其中打开用 把外存储器里的文本文件(.txt)打开;存储用 将内存中的数据存储到外存储器的文件中;关闭文件时一定要用 关闭文件。 21.小申编写了run.py文件用于实现登录模块的业务逻辑。请协助小申把左侧内容拖动至右侧对应的虚线框中,将程序编写完整。 (1)处对应的字母是 (2)处对应的字母是 22.Pygame自带了一个监听类循环,不断检查用户的操作,这个循环在程序运行过程期间持续工作。仔细阅读理解如下代码填写括号内容 while True:      for event in pygame.event.get():  # ( )                if event.type==pygame.QUIT:          # ( )                    sys.exit()                  #退出程序         if event.type==pygame.MOUSEBUTTONDOWN: # ( ) 三、判断题 23.在Python中,表达式4/2的运算结果是2。( ) 24.已经构建发布的模块可以直接使用。( ) 25.在Python语言中,数据的输出是通过output()函数实现的。( ) 26.Python语言的变量名要区分英文字母的大小写。( ) 四、操作题 27.编写一个Python程序,功能为:输入关键字后,在书目清单列表中查找书名中包含关键字的书,并统计数量,然后在所有找到的书目中找出价格最贵的书。书目清单存储在列表book中,每本书包含三个内容:书名、作者和价格。程序运行示例如下图所示: (1)观察上图的运行结果,如果希望在书目清单列表中查找书名中包含关键字的书,比较合适的方法是 (选填:“顺序查找”或“二分查找”) (2)实现上述功能的Python程序如下,请在程序划线上填入合适的代码: # 列表book中存储了书本的信息,列表内容略 n=len(book) print("书目清单为:") for i in range(0,n,3): print(book[i:i+3]) keyword=input("请输入关键词:") print("符合要求的书单有:") count,maxprice,posi=0,0,-1 while i<=n-3: if : print(book[i:i+3]) count+=1 if maxprice<book[i+2]: maxprice=book[i+2] i=i+3 print("共找到",count,"本") if posi==-1: print("对不起,没有找到你要的书!") else: print("价格最贵是:",book[posi:posi+3]) 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.B 【详解】本题考查Python基础。 选项A,abs(3−4)=abs(−1)=1 选项B,int(2*a-c/b)=int(2∗a−c/b=2∗3−5/4)=int(6−1.25)=4 选项C,math.sqrt(4)=2 选项D,a**2+b**2-c**2=9+16−25=0 故正确答案为:选项B。 2.B 【详解】本题考查程序分析。该程序功能,随机生成奇数赋值给列表a,不会生成偶数。故排除选项C。如果a[i-1]<a[i],则a[i]=a[i-1]。故不可能出现a[i-1]<a[i]结果,故排除选项A、D。故正确答案为选项B。 3.C 【详解】本题考查Python程序设计相关内容。“break”和“continue”在编程中都是用来控制循环的关键字,但它们的使用场景和效果有所不同:(1)使用场景。“continue”通常用于当循环中的某些条件被满足时,需要跳过当前循环,继续下一次循环的场景;“break”通常用于当循环中的某些条件被满足时,需要立即退出循环的场景。(2)效果。使用“continue”后,循环会立即跳到下一轮,不会执行本轮循环中“continue”后面的语句;使用“break”后,整个循环会立即结束,不论是否已经完成所有的循环。两个程序段均采用while循环,第一个使用break进行转向,第二个使用continue进行转向。使用break时,若n==2成立,则结束循环,所以第一个程序段输出结果为:4 3;使用continue时,若n==2成立,则结束本次循环,再去判断循环条件n>0是否成立,若成立,继续执行循环体,若不成立,结束循环,所以第二个程序段输出结果为:4 3 1 0。故本题答案是C选项。 4.A 【详解】本题主要考查Python库。WordCloud是优秀的词云展示第三方库 ,math库提供常用的数学函数,random提供常用的随机函数,turtle库用于绘图,故本题选A选项。 5.C 【详解】本题主要考查递归函数的应用。n=7,double_f(7)=double_f(5)*7=double_f(3)*5*7=double_f(1)*3*5*7=1*3*5*7=105,故本题选C选项。 6.A 【详解】本题主要考查Python循环结构。a=1,b=1,变量i的范围是从3~6,即循环4次,第一次:a=b=1,b=a+b=1+1=2;第二次:a=b=2,b=a+b=3;第三次:a=b=3,b=a+b=5;第四次:a=b=5,b=a+b=8,循环结束,故输出a的值为5,故本题选A选项。 7.B 【详解】本题考查赋值语句。赋值语句 x+y=z 不合法,因为在赋值语句中应该使用等号(=)将右侧的表达式的值赋给左侧的变量,x+y不是合法的变量。故答案为B选项。 8.B 【详解】本题主要考查Python字符串的运算。"1"是字符型数据,因此s="1"+"1"="11",故本题选B选项。 9.D 【详解】本题考查Python程序设计相关内容。分析程序段可知,其功能是将输入字符串转换为多个表达式并用“,”隔开后逆序连接。若遇到数字字符按照“x=x*10+int(ch)”转换为十进制数;若遇到字母,则按照“s=ch+"="+str(x)+","+s”将字母放在赋值号左边,十进制数再转换为字符串放在赋值号右边后加上“,”作为分隔,再放在s的前面。推知,先转换的在s尾部,最后转换的在s前面。“2a03b145c1”转换后结果为:“c=145,b=3,a=2,”。故本题答案是D选项。 10.B 【详解】本题考查的是python绘制sin(x)。观察图形可知是线形图,图例为“sin(x)”,plt.plot(x,y,″g--″,label=″sin(x)″),其中x是横坐标值,y是纵坐标值,“g--”是虚线,label=“sin(x)”是定义图例名称,故选项B正确。 11.B 【详解】本题考查的是列表相关知识。列表中的元素索引可以为负值,负值表示从末尾开始的位置,故选项A说法错误;列表中元素的值可以修改,选项B说法正确;列表中的元素可以是列表类型,选项C说法错误;列表中元素的数据类型可以不一样的,故选项D说法错误。 12.D 【详解】本题主要考查Python程序的执行。该程序实现统计字符串s中每个字符出现的个数,用字典dic统计,因此程序执行后dic={'1': 2, '2': 4, '3': 1},则dic["2"]=4,故本题选D选项。 13.D 【详解】本题主要考查递归算法。该函数采用了递归算法,时间复杂度是O(n),f(5)=f(4)*f(2)=f(3)*f(1)*f(2)=f(2)*f(0)*f(1)*f(2)=2*2*2*2=16,因此计算f(5),函数f被调用的次数是7次,故本题选D选项。 14.B 【详解】本题考查的是pandas库。 pandas库中的DataFrame是一个二维的、大小可变的、成分混合的、具有标签化坐标轴(行和列)的表数据结构。DataFrame即有行索引也有列索引,可以被看做是由Series组成的字典。故本题应选B。 15.B 【详解】本题主要考查链表数据结构及Python程序实现。头节点为该链表的第1项,p的初值指向head,q为p的下一个节点,因此每次删除q节点即可,删除之前需要判断q是否为-1,故if判断条件是q!=-1,删除q节点的方法是,p的后继节点指向q的后继节点,即a[p][1]=a[q][1],选项B符合题意,故选B。 16.D 【详解】本题考查的是Python选择语句。由n=220可知输入的是男性,male表示男性是字符串类型必须加上双引号,==表示相等,=表示赋值,故横线上应填入的内容是:if gender==”male”:。选项D正确。 17.C 【详解】本题考查Python程序。初始化链表:lnk是一个列表,模拟了链表结构,每个节点包括性别、身高和后续指针。head为头指针,t初始化为头指针指向的下一个节点,pre和cur初始化为链表的第二个节点。遍历链表:循环遍历链表,直到找到第一个男生节点,更新pre和cur的指针,pre始终指向上一个节点,cur指向当前节点。修改指针:一旦找到第一个男生节点,将当前节点的后续指针指向头指针,调整链表结构。这段代码的目的是在遍历链表时,找到第一个男生节点,并进行链表重排。判断条件t==head:如果t等于head,意味着遍历开始时,链表的第一个节点为男生。将head更新为当前节点cur(即第一个男生节点)。将上一个节点pre的后续指针设置为-1,表示新的链表结尾。否则cur=lnk[cur][2]:如果t不等于head,意味着链表的第一个节点为女生,继续更新当前节点cur。最终,链表将按女生节点在前、男生节点在后的顺序排列。故答案为:C。 18.def 【详解】本题考查Python函数的创建。在Python中,使用def关键字可以创建一个函数。函数定义的基本语法是def 函数名(参数):,然后在下一行缩进的代码块中编写函数体。 19.f(a,b,c)〉=0 【详解】本题考查Python程序设计相关内容。一元二次方程的求解:若b*b-4*a*c>0成立,表明方程有两个不等实根;若b*b-4*a*c==0成立,表明方程有两个相等实根;若b*b-4*a*c<0成立,表明方程无解;由给定程序段知,b*b-4*a*c的值通过调用函数f(a,b,c)获得,故本题答案是:f(a,b,c)〉=0。 20. open函数 write方法 close方法 【详解】本题考查Python相关知识。Python中读写文本文件的方法,其中打开用open函数把外存储器里的文本文件(.txt)打开;存储用write方法将内存中的数据存储到外存储器的文件中;关闭文件时一定要用close方法关闭文件。 21. B A 【详解】本题主要考查Flask框架的应用。导入模块使用import关键词,(1)处填import sqlite3。(2)处创建应用,填app=Flask(_name_)。 22. ①监听并获取事件列表 ②Quit事件 ③侦听到鼠标点击事件 【详解】本题考查的是Python中的Pygame模块。pygame.event.get()是监获取事件列表,pygame.QUIT是Quit事件,pygame.MOUSEBUTTONDOWN是侦听到鼠标点击事件。 23.错误 【详解】本题考查Python表达式相关内容。除法(/):除法运算符返回两个数字相除后的商的精确值,无论两个数字是什么类型,返回的结果都是一个浮点数(小数)。4/2-->2.0。故本题答案是:错误。 24.错误 【详解】本题考查Python模块的导入。已经构建发布的模块不可以直接使用,需要使用import关键字进行导入后才可以使用,故表述错误。 25.错误 【详解】本题考查的知识点是Python语言中的输出语句。在Python语言中,实现数据的输出是使用print函数,故答案为错误。 26.正确 【详解】本题考查Python。Python语言的变量名是区分英文字母大小写的,这意味着在Python中,变量名var和Var被视为两个不同的变量。故说法正确。 27. 顺序查找 i=0 keyword in book[i] posi=i 【详解】本题主要考查Python程序的综合应用。①如果希望在书目清单列表中查找书名中包含关键字的书,比较合适的方法是顺序查找。使用二分查找的前提是元素是有序的,而书目清单不是有序的。②此处初始化变量i的值,变量i是列表book的下标,从0开始,故此处填i=0。③列表book中存储了书本的信息,此处查找书名中包含关键字的书是否在列表book[i]中,故if判断条件是keyword in book[i]。④变量posi保存价格最贵的书的下标索引开始的位置,由上一条语句“maxprice=book[i+2]”更新完最贵价格maxprice后,此处需要更新posi=i。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

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