2023-2024学年高一下学期浙教版(2019)必修一 3.2 Python语言程序设计

2024-08-06
| 13页
| 109人阅读
| 0人下载

内容正文:

3.2 Python语言程序设计 一、选择题 1.在Python中,以下关于赋值语句的描述错误的是(   ) A.c+=a等效于c=c+a B.“=”表示将z边表达式的值赋给左边的变量 C.语句x,y=y,X可以实现变量x和y值的互换 D.语句a,b=3表示将3同时赋值给变量a和b 2.下列Python程序段的功能是:输入两个整数,通过计算,最终输出较大整数除以较小整数的余数。 a,b=eval(input("请输入两个整数:")) if a<b:     a,b=b,a while a>=b:      print(a) 则程序段划线处应填入的语句为(   ) A.a=a+b B.a=a-b C.b=a%b D.a=a∥b 3.下列 Python 表达式运算的结果为“True”是(   ) A.not (4<=5) B.(1>2) and (5>4) C.(2!=1) or (3<2) D.7>=8 4.输入三角形的三边长分别为5,6,7,下列赋值方法中有误的是(    ) A.a=5;b=6;c=7 B.[a,b,c]=[5,6,7] C.a=5,b=6,c=7 D.a,b,c=5,6,7 5.有如下 Python 程序段:    n=5;flag=True    d=[0]*5                # 将 d 列表中每个元素的值都初始化为 0    for i in range(1,n):        t=abs(a[i]-a[i-1])        d[t]=d[t]+1    for i in range(1,n):        if d[i]! =1:           flag=False           break    if flag==True:        print("ok") 运行程序后输出“ok”,则列表a中的值依次可能是(    ) A.2,3,5,1,4 B.5,4,3,2,1 C.1,2,3,4,5 D.5,3,1,4,2 6.已知列表L=[2,4,6,8,10],则元素L[2]的值是(    ) A.2 B.4 C.6 D.10 7.在Python中,下列能正确表示”a≤5而且a≥3”的逻辑是(   ) A.a<=3 or a>=3 B.a<=5 and a>=3 C.a<=5 or a >=3 D.3<=a<=5 8.在Python语言中,执行“int(12.3)”函数后的结果是(    ) A.13 B.123 C.12 D.12.3 9.有如下的Python程序段: n = int(input()) st =″ ″ for i in range(1,n+1):  for j in range(1,i+1,2):     st +=″* ″  print(st) 该程序运行时,输入5后,输出的内容为(   ) A. B. C. D. 10.列表s包含8个互不相等的元素,即 s[0],s[1],…,s[7], 有如下 Python 程序段: for i in range( ① ):     for j in range( ② ):         if s[j]>s[j+1]:             s[j],s[j+1]=s[j+1],s[j] 该程序段实现列表s中元素升序排列,下列选项正确的是(   ) A.①1,n        ②0,n-i-1 B.①0,n-1           ②0,n-i C.①1,n        ②n-2,i-1,-1 D.①0,n-1           ②n-2,i-1,-1 11.下列选项中,flag的值与其他三项不同的是(   ) A. B. C. D.flag=a>b>c 12.有如下Python程序段: import random a = [34,17,19,13,10,6,26,21] x = (random.randint(1,4))*2 for i in range(8-x):     for j in range(7,i,-1):        if a[j]>a[j-1]:           t=a[j]; a[j]=a[j-1]; a[j-1]=t print(a[0:4]) 程序段执行后,输出的结果不可能是(   ) A.[34,26,21,19] B.[34,26,21,17] C.[34,26,17,19] D.[34,17,19,13] 13.有如下Python程序段: #随机产生n个两位正整数存入数组a中 q=[-1]*n;top=-1 for i in range(n):      if a[i]%3==0 :          top+=1          q[top]=a[i]      elif a[i]>q[top] and a[i]%2==0:          top+=1          q[top]=a[i] while top>-1:      print(q[top],end=',')      top-=1 执行上述程序段后,输出结果不可能是 (   ) A.48,57, B.74,80,76, C.74,68,62,33,44, D.98,45,78,88, 14.列表a=[1,2,3,"abc",'xyz'],下列说法不正确的是(    ) A.len(a)的值为5 B.运行a[4]=4后,a变为[1,2,3,‘abc',4] C.a[3]和a[-2]的值均为"abc D.a[1:3]的结果是[1,2,3] 15.有如下Python程序段: s="HangZhou2022" a={0:0,1:0} for i in s:    t=0    if not("0"<=i<="9"):       t=1    a[t]+=1 print(a[1]) 该程序段运行后,输出的内容是(    ) A.2 B.4 C.6 D.8 16.在Python程序设计语言当中,如果a=3,b=2,则a+3*b的运行结果是(    ) A.2 B.3 C.9 D.12 二、填空题 17.在Python中, 函数可以用来实现循环的延迟执行。 18.python 程序段如下: a=[2,1,3,4,5] c=0 for i in range(2,len(a)):     if a[i-2]+a[i-1]==a[i]:         c=c+1     print(c) 该程序段运行后,最后输出的内容是 。 19.在横线处填入表达式完成如下Python程序,求0-100所有偶数的和。 sum=0 for i in :     sum=sum+i print(sum) 20.写出下列Python程序运行结果。 def factorial(n): #求n!     s=1     for i in range(2,n+1):         s=s*i     return s total=factorial(4) #调用factorial函数 print(total) 运行结果为: 。 21.函数的定义使用的关键字为 。 三、判断题 22.已知列表x = [1, 2],执行语句y = x后,表达式id(x) == id(y)的值为True。( ) 23.已知“str='a**b*c*d'”,则“str.split('*',2)”的返回结果是['a','b','c','d'] ( ) 24.在python中,下面程序可以正常运行。( ) n=10 s=n+'T' 25.表达式是由常量、变量和函数通过运算符连接起来的式子。( ) 26.在Python语言中,数据的输出是通过output()函数实现的。( ) 四、操作题 27.操作系统在管理磁盘时,会将磁盘分为一个个“盘块”。在为文件分配空间时,可以将文件装到离散的盘块中。读取一个文件时,首先在目录结构中找到文件项。从文件项中可以获取文件名、存储时间、该文件在存储块中的起始地址等基本信息,但不包含文件具体内容,然后在磁盘文件分配表中找到对应的文件。磁盘文件分配表如表1所示,其中文件结束块用-1表示,空闲盘块用0xff(十六进制数,转化为十进制值为255)表示。 盘块号 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 下一盘块号 3 7 13 9 0xff 0xff 0xff 8 -1 -1 0xff 1 0 11 0xff 0xff (1)根据文件的起始地址,能方便地找到文件的其它盘块。例如文件a1的起始地址是12,按表1结构,在磁盘中的盘块号依次是:12→0→3→9;则文件abc的起始地址是2,在磁盘中的盘块号依次是 (注:各盘块号用→分隔)。 (2)为了有效管理空闲块,我们可以将所有空闲盘区(每个空闲盘区可以包括若干个空闲盘块)构建到一条空闲链flst中。flst每个节点包含3个元素,依次为本空闲盘区的盘块号、长度和指向下个盘块的指针,创建时把新节点链接到flst尾部。如图a所示,共有3个空闲盘区,盘块号依次为4、5、6、10、14、15                                             图a 具体Python程序代码如下,请在划线处填入合适的代码。 def mgf(allot):#mgf的功能是从头到尾扫描文件分配表,创建空白盘区链     fhead=-1;flst=[]     n=len(allot);i=0     while i<n:         if allot[i]==0xff:             j=i+1             while ① :                 j=j+1             flst.append([i,j-i,-1])#append的作用,在列表末尾添加元素             if fhead==-1:                 fhead=②                 cur=fhead             else:                 flst[cur][2]=len(flst)-1                 cur=flst[cur][2]             i=j+1         else:             i+=1 return fhead,flst allot=[3,7,13,9,0xff,0xff,0xff,8,-1,-1,0xff,1,0,11,0xff,0xff] head,flst=③ p=head while p!=-1:#打印出所有空闲盘块号     for i in range(flst[p][1]):         print(flst[p][0]+i,end=',')     p=flst[p][2] (3)在创建文件时,若新文件需要占据5个盘块大小,只需要在空闲链flst中找到空闲块,并依次链接,如图b所示。具体Python程序代码如下,请在划线处填入合适的代码。 图b wd=int(input("输入新文件大小:"));p=head while p!=-1:     if wd!=0:         for i in range(flst[p][1]):             if flst[p][0]+i !=flst[p][0]+flst[p][1]-1:                 allot[flst[p][0]+i]=flst[p][0]+i+1             else:                 allot[flst[p][0]+i]= ④             wd-=1             if wd==0:                 allot[flst[p][0]+i]=-1                 break     p=flst[p][2] print(allot) 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.D 【详解】本题考查Python基础。选项D,语法错误。应该a=b=3。故正确答案为:选项D。 2.B 【详解】本题考查Python基础。 本题程序的功能是实现a%b的结果,其算法是让a不断地减去b,直到a<b,此时a的值即为它们相除后的余数,因此正确答案为:选项B。 3.C 【详解】本题考查Python基础。 表达式:(2!=1) or (3<2) 2!=1 是一个比较表达式,其结果为 True(因为 2 不等于 1)。 在逻辑或(or)操作中,只要有一个操作数为 True,整个表达式的结果就是 True。 因此,(2!=1) or (3<2) 的结果为 True,因为 2!=1 是 True。 故正确答案为:选项C。 4.C 【详解】本题考查Python表达式。在Python中,a=5,b=6,c=7这种写法是错误的,不能用逗号来同时给多个变量赋值。故答案为:C。 5.A 【详解】本题考查程序分析。 变量t表示列表a中相邻元素间距,列表d用来记录列表a中相邻元素不同间距出现的次数。当n值为5时,间距1,2,3,4出现次数必须为1。故正确答案为:选项A。 6.C 【详解】本题考查列表。给定列表L=[2,4,6,8,10],要找出索引为2的元素的值。列表的索引从0开始计数,所以:L[0]对应的元素是2;L[1]对应的元素是4;L[2]对应的元素是6。因此,元素L[2]的值是6。故答案为:C。 7.B 【详解】本题考查Python运算符与表达式相关内容。and运算符用于连接两个或多个条件表达式,当且仅当所有条件表达式都为True时,整个逻辑表达式的结果才为True。 or运算符作用是判断两个条件中的至少一个是否为真,如果至少一个条件为真,则整个表达式返回True;否则,返回False。能正确表示”a≤5而且a≥3”的逻辑是:a<=5 and a>=3,故本题答案是B选项。 8.C 【详解】本题考查Python程序设计相关内容。int()函数是Python中用于转换其他数据类型为整数类型的一个重要函数。它接收一个参数,并返回一个整数。int(12.3)-->12。故本题答案是C选项。 9.C 【详解】本题考查Python程序设计相关内容。外循环i控制行数,共5行;内循环st存储'* '的个数,每次输出之后不清空,因此下次循环加上次的'* '的个数,故第一行1个'* ',第二行2个'** ',第三行4个'**** ',依次类推……。故本题答案是C选项。 10.D 【详解】本题考查Python程序设计相关内容。本题涉及到冒泡排序的应用。列表s包含8个互不相等的元素,需要7趟排序才可以使得序列有序。结合range函数特点(range(start,stop[,step])。start参数表示序列的起始值,如果不指定,默认为0;stop参数表示序列的结束值,如果不指定,默认为None;step参数表示步长,如果不指定,默认为1,这三个参数都是可选的,可以根据需要选择不同的参数组合来生成不同的数字序列),j值会因i值区间取值不同而发生变化,分别将四个选项代入程序段验证,ABC选项不能实现列表s中元素升序排列,D选项可以。故本题答案是D选项。 11.A 【详解】本题考查Python关系运算相关内容。以a=3,b=2,c=4为例,比较4个选项结果。A选项,结果为True;B选项,结果为False;C选项,结果为False;D选项,结果为False。A选项与BCD选项不同。故本题答案是A选项。 12.C 【详解】本题考查Python程序设计相关内容。本题涉及到冒泡排序相关知识。分析程序段可知:根据代码x可以生成2,4,6,8。此段代码为降序排序,从后往前,x不同排序轮次不同。当x=8时,外层循环无法执行,不能排序,数据不会变化,前四个元素不变,可能为D选项;当x=6时,排序两轮后的数据为[34,26,21,17,19,13,10,6],前四个元素[34,26,21,17],可能为B选项;当x=4时,排序4轮,前四个元素为数组四个最大值,即为[34,26,21,19],即A选项可能。当x=2时,排序6轮,完全有序了。综上不可能是C,故本题答案是C选项。 13.B 【详解】本题考查栈操作相关内容。当a[i]是3的倍数时,将a[i]的值入栈。当a[i]大于栈顶元素q[top],且a[i]是偶数时,将a[i]的值入栈。最后栈中的元素依次出栈。 A选项,数字48和57是3的倍数,入栈顺序为57、48,输出的出栈顺序为48、57,选项正确。 B选项,数字74、80、76都是偶数,若出栈顺序为74、80、76,则入栈顺序为76、80、74,其中74小于栈顶元素80,不符合入栈条件。B选项不可能。 C选项,数字33是3的倍数。数字74、68、62、44是偶数,入栈时符合a[i]大于栈顶元素q[top],入栈顺序为44、33、62、68、74,输出的出栈顺序为74、68、62、33、44,选项正确。 D选项,数字45、78是3的倍数。数字98、88是偶数,入栈时符合a[i]大于栈顶元素q[top]。入栈顺序为88、78、45、98,输出的出栈顺序为98、45、78、88,选项正确。 故本题答案是B选项。 14.D 【详解】本题考查Python列表相关内容。分析列表a,len(a)=5,A选项正确;运行a[4]=4,即:将4赋值给元素a[4],a[4]原值为'xyz',重新赋值后,a[4]值为4,列表a变为:[1,2,3,‘abc',4],B选项正确;列表元素下标排列方式有两种,由左至右:从0开始编号,每次递增1;由右至左:从-1开始编号,每次递减1。a[3]和a[-2]均为"abc",C选项正确;a[1:3](下标从1开始到3结束,但不包括3)的结果是[2,3],D选项错误。故本题答案是D选项。 15.D 【详解】本题主要考查Python程序的执行。分析程序可知,字符串s中有8个字母、4个数字,变量i依次取字符串s中的字符,若i是不数字,则执行 t=1,a[t]+=1,即用a[1]统计非数字字符的个数,故该程序段运行后,输出的内容是a[1]=8,故答案为D选项。 16.C 【详解】本题考查Python表达式的运算。a=3,b=2,则a+3*b=3+3*2=9,故选C。 17.time.sleep() 【详解】本题考查Python函数的描述。Python中,time.sleep()函数可以用来实现循环的延迟执行。 18.2 【详解】本题考查程序设计。 该程序输出,统计列表中前面两个数相加等于第三个数的个数。第一次循环1+2等于3,c+=1。第二次循环1加3等于4,c+=1;第三次循环3+4不等于5。故正确答案为:2。 19.range(0,101,2) 【详解】本题考查Python程序设计相关内容。根据题意求0-100之间的偶数和,从2开始,每次递增2,直到增加到100,故用range()函数实现:range(0,101,2)。故本题答案是:range(0,101,2)。 20.24 【详解】本题考查Python函数相关内容。该函数功能是计算阶乘(n!)。由s=s*i及range(2,n+1)可知返回值是s=1*2*3*……n,factorial(4)=1*2*3*4=24。故本题答案是:24。 21.def 【详解】本题考查Python函数的定义。使用def关键字来创建python自定义函数。 22.正确 【详解】本题考查Python基础。 在Python中,当你执行 y = x 这样的语句时,你实际上并没有创建 x 的一个新副本,而是让变量 y 指向了 x 指向的同一个对象。这意味着 x 和 y 都引用了内存中的同一个列表对象,即内存地址相等,故表达式id(x) == id(y)的值为True。故正确。 23.错误 【详解】本题考查Python基础。 调用split方法,以*号为分隔符,分隔两次,需要注意的是a后面两个*号,分隔时认为中间是空串,故结果为:['a', '', 'b*c*d']。故错误。 24.错误 【详解】本题考查Python基础。 字符型数据和整型数据无法进行加法运算,类型不兼容。故错误。 25.正确 【详解】本题考查表达式相关内容。表达式是一种由常量、变量、运算符和函数调用组成的式子,用于计算和生成值。表达式可以用于执行各种数学运算、逻辑判断和数据操作。故本题答案是:正确。 26.错误 【详解】本题考查的知识点是Python语言中的输出语句。在Python语言中,实现数据的输出是使用print函数,故答案为错误。 27. 2→13→11→1→7→8 j< n and allot[j] == 0xff len(flst)-1 mgf(allot) flst[flst[p][2]][0] 【详解】本题考查Python程序设计相关内容。 (1)根据表1结构,若文件abc的起始地址是2,在磁盘中的盘块号依次是2→13→11→1→7→8。 (2)j=i+1,即索引i处是空白盘,此时通过循环判断后面的区块是否为空白盘,循环条件是判断有没有遍历到末尾同时j处的区块是空白盘,故第一空填j< n and allot[j] == 0xff。如果fhead值为-1,则指向末尾元素,故第二空填len(flst)-1。mgf的功能是从头到尾扫描文件分配表,创建空白盘区链,此次调用该函数,并将结果赋值给head和flst,参数是allot,故第三空填mgf(allot)。 (3)如果flst[p][0]+i =flst[p][0]+flst[p][1]-1,则说明p盘区已满,则应指向下一个空闲盘区的盘块号,故填pflst[flst[p][2]][0]。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

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