2023-2024学年高一上学期粤教版(2019)必修一4.4运用循环结构描述问题求解过程

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

内容正文:

4.4 运用循环结构描述问题求解过程 一、选择题 1.以下Python保留字中,不属于分支结构的是( ) A.If B.while C.else D.elif 2.关于python语句功能描述正确的(   ) A.ord(chr(x)+26)    #若字符变量x是大写字母即变成小写字母 B.str(x)+str(y)    #求两数之和 C."abcd"[2:4]    #运行结果为"bcd" D.2**3*2/2 % 5    #结果3 3.近期学校进行了一次技术学考模拟考试,学生的成绩数据保存在文件“jscj.xlsx”中,部分数据如图所示。编写Python程序,统计本次考试各班级的优秀(A等级)人数。 import pandas as pd   #导入pandas模块 import matplotlib.pyplot as plt   #导入matplotlib的pyplot子库 df=pd.read_excel("jscj.xlsx")    #读文件中的数据 plt.bar(g.index,g.等级) plt.show() 方框中代码由下列语句中的部分语句组成: ①df=df[df.等级=="A"] ②df=df["等级"=="A"] ③g=df.groupby("班级", as_index=True).sum() ④g=df.groupby("班级", as_index=True).count() 要实现上述功能,下列选项中正确的是(   ) A.①④ B.①③ C.②④ D.②③ 4.某Python程序如下: s=input("请输入字符串:") ans=0 for i in s:     if "a"<=i<="z":         ans+=2     elif "A"<=i<="Z":         ans+=1 print(ans) 程序运行后,输入“P3fhYT8X”,输出的结果是(   ) A.3 B.7 C.11 D.8 5.有如下对分查找程序段    #列表a存放整数升序数据,代码略    key=int(input())    f=[0]*9    i=0    j=8    while i<=j:        m=(i+j)//2        f[m]=1        if a[m]>key:            j=m-1        else:            i=m+1    print(f)    输入待查找数据,执行该程序段后,下列选项中,列表f的值不可能的是(     ) A.[0, 0, 0, 0, 1, 1, 1, 0, 0] B.[1, 1, 0, 0, 1, 0, 0, 0, 0] C.[0, 1, 0, 0, 1, 0, 1, 0, 0] D.[0, 0, 0, 0, 1, 0, 1, 1, 0] 6.有如下python程序段: a=[4,5,3,6,7,8,2,9,1] m ,c=1, 1 for i in range(1, len(a)): if a[i]>=a[i-1]: c+=1 m=max(m, c) else: c=1 print (c, m) 则程序执行后,c和m的值分别是(   ) A.1和1 B.1和4 C.2和4 D.3和4 7.有如下Python程序, n=0;s=[1,1,2,2,2,3,1,1,3,3] for i in range(0,len(s)-1):       if s[i]==s[i+1]:           n+=1       else:           n-=1 print(n) 执行以上程序后,变量n的值为(  ) A.0 B.1 C.-1 D.2 8.有如下Python程序段: a=[1,3,4,2,3] m,s=0,0 for i in range(5):    if a[i]>m:       m=a[i]+1    s=s+m 执行该程序后,变量s的值为(  ) A.13 B.15 C.16 D.18 9.程序代码如下: x=1 while x10:   x=x+3    print(x) 输出结果是() A.4,7,10 B.3,6,9 C.3,6,9,12 D.1,4,7,10 10.有如下Python函数mydel,功能是在非空列表lst中找第一个数据x并删除,划线处的正确代码为(   ) def mydel(lst, x):     for i in range(len(lst)):         if lst[i]==x:             break         else:             return("找不到想删除的数据")     for j in range(① ):         lst[j]=lst[j+1] lst.pop()    #pop()方法的功能是删除列表最后一个数据 A.i, len(lst)-1 B.i, len(lst)-2 C.len(lst)-1, i, -1 D.len(lst)-2, i-1, -1 11.有如下 VB 程序段: Private Sub Command1_Click() Dim a(1 To 6) As Integer, i As Integer For i = 1 To 6     a(i) = Int(Rnd * 5) * 2 + 1 Next i For i = 2 To 6 Step 2 a(i) = cha(a(i -1), a(i)) Next i End Sub Function cha(x As Integer, y As Integer) As Integer Dim t As Integer If x < y Then t=x: x = y: y = t cha = y Else cha = x -1 End If End Function 执行该程序段后,在下列选项中,a(1)~a(6)各元素值可能的是(  ) A.8,9,3,2,5,1 B.7,6,5,5,3,1 C.9,3,5,4,4,3 D.7,3,1,0,5,4 12.有如下VB程序段: For i = 1 To 3     For j = 1 To 6-i         If a(j)>a(j+1) Then t=a(j):a(j)=a(j+1): a(j+1)=t     Next j Next i 数组元素 a(1)到 a(6)的数据依次为“55,31,19,42,37,23”,则此程序运行完成后数组元素的数据依次是(  ) A.55,42,37,31,23,19 B.19,23,31,55,37,42 C.19,23,31,37,42,55 D.19,31,23,37,42,55 13.下图是通过 VB 程序读取“GDP2018.accdb”文件中的 GDP 总量,显示在列表框中,部分代码实现如下: Private Sub Command1_Click() ’列表框中 输出 b(i),代码略End Sub Private Sub Form_Load() conn.ConnectionString="Provider=Microsoft.ACE.OLEDB.12.0;DATASource="&amp; App.Path &amp; "\GDP2018.accdb" conn.Open:Set myrecord.ActiveConnection = conn:myrecord.Open "GDP" n = 0 Do While Not myrecord.EOF n = n + 1 a(n) = myrecord.Fields("2018") b(n) = Left(myrecord.Fields("Area"), 5) &amp; "    " &amp; myrecord.Fields("2018") myrecord.MoveNext Loop conn.Close: myrecord.Close:    Set myrecord = Nothing: Set conn = Nothing End Sub 下列说法不正确的是(  ) A.ConnectionString 是实例 conn 的属性 B.myrecord.Fields("2018")返回当前记录中“2018”字段的值 C.a(1)读取后执行myrecord.MoveNext 将读取下一条记录,即 a(2)=“中国” D.myrecord.Fields("2018")也可以写成 myrecord.Fields(3) 14.有如下python程序段: import random list1=[60] for i in range(9):   r=list1[-1]+random.randint(0,i)   if r not in list1:     list1.append(r) 该程序段运行后,list1的值可能是(    ) A.[60,61,64,69,71] B.[60,63,65,66,66,75] C.[60,62,67,68,69,75,79] D.[60,61,63,66,70,72,78,80,81,85] 15.有如下 Python 程序段: a = [0] * 6 b = [76, 88, 84, 91, 99, 80] for i in range(6):     for j in range(i + 1, 6):         if b[j] > b[i]:             a[i] += 1         else:             a[j] += 1 print(a) 该程序段运行后,列表 a 的值为 (    ) A.[5, 2, 3, 1, 0, 4] B.[0, 3, 2, 4, 5, 1] C.[10, 6, 4, 8, 12, 2] D.[6, 3, 4, 2, 1, 5] 16.在Python中,运行下列程序,正确的结果是(   ) s=0 for i in range(1,6,2): s=s+i print("i=",i,"s=",s) A.i=5 s=15 B.i=5 s=9 C.i=7 s=9 D.i=6 s=21 17.有如下Python程序段: a=[2,1,3,4,5] c=0 for i in range(2,5):     if a[i-2]+a[i-1]==a[i]:            c+=1 print(c) 该程序段运行后,显示的c的值是 (   ) A.1 B.2 C.3 D.4 18.有如下 Python 程序段: import random a = [0]*6 i = 0 x = int(input()) while i <= 5:      c = random.randint(1, 10)      if x % 2 == c % 2:         a[i] = c         i += 1         x = x//2 执行该程序段后,若要在列表 a 中产生 4 个偶数、2 个奇数,输入的 x 的值不可能的是(   ) A.3 B.4 C.5 D.6 二、填空题 19.阅读程序代码,写出运行结果。 运行结果是: 。 20.阅读下处程序写出运行结果 有四个嫌疑人甲乙丙丁涉嫌偷盗,其中一人是小偷。甲说“不是我”,乙说“是丙” ,丙说“是丁”, 丁说“丙在冤枉我”。若他们中只有一人说了假话,请编程判断谁是小偷。(注:在Python运算中,True的值为1, Fa1se的值为0)运行输出结果是 21.下面程序的运行结果为: for  num  in  range(2,10):       if  num % 2==0 :              continue       print(num,end=”、”) 22.某 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时,程序输出结果是 。 23.用Python表达式补充完成如下程序,统计四位奇数中满足能被23和19整除的总数。 s=0 for i in range(1001,10000,2): :     s=s+1 print(s) 三、操作题 24.某换位密码加密的程序如下: (1)在划线①②处,填入适当的语句或表达式,将程序补充完整 ① ② (2)如果输入的code为“诸暨二中2021”,key为2,那么输出的结果为: 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.B 【详解】本题主要考查Python分支结构。while是循环结构的关键字,故本题选B选项。 2.D 【详解】本题考查表达式的运算。A选项,会导致类型错误。B选项,字符拼接,非求和。C选项,结果为“cd”。D选项正确,结果为3。故正确答案为选项D。 3.A 【详解】本题考查数据的处理与应用。筛选的语法为df[条件],筛选出等级为A的学生,语句为①。按班级分组,班级当做索引,统计各班级的优秀人数,用count()来表示,故答案为A选项。 4.D 【详解】本题考查程序分析。程序功能读取字母,小写字母ans+=2。大写字母ans+=1。读取P,ans值为1,读取f、h,ans值为5,读取Y、T,ans值为7,读取X,ans值为8。故正确答案为选项D。 5.C 【详解】本题主要考查对分查找算法。变量m是依次查找的下标索引值,第一次循环,m=4,f[4]=1,根据二叉树查找规则,往后查找只会在m=4的左边或右边进行查找,不会出现选项C中f[1]和f[6]同时为1的情况,故本题选C选项。 6.B 【详解】本题主要考查Python程序的执行。m=1,c=1,当i=1时,5>4,c+=1=2,m=max(m, c)=2;当i=2时,3<5,c=1;当i=3时,6>3,c+=1=2,m=max(m, c)=2;当i=4时,7>6,c+=1=3,m=max(m, c)=3;当i=5,8>7,c+=1=4,m=max(m, c)=4;当i=6时,2<8,c=1;当i=7时,9>2,c+=1=2,m=max(m, c)=4;当i=8时,1<9,c=1,循环结束,c和m的值分别是1和4,故本题选B选项。 7.B 【详解】本题主要考查Python程序的执行。分析程序可知,如果相邻的两个数相等则n递增1,如果不相等则n递减1,s=[1,1,2,2,2,3,1,1,3,3],n初值为0,故n=0+1-1+1+1-1-1+1-1+1=1,故本题选B选项。 8.D 【详解】本题主要考查Python程序的执行。遍历列表a,若a[i]大于m,则更新m的值为a[i]+1,并将m累加到s中。因此m依次为0、2、4,s=2+4+4+4+4=18,故本题选D选项。 9.A 【详解】本题主要考查Python循环结构的应用。x=1,每次递增3,循环条件是x<10,因此输出结果是4、7、10,故本题选A选项。 10.A 【详解】本题考查的是Python循环语句。第一个循环跳出时,找到第一个数据x的索引号i, 由lst[j]=lst[j+1],可知删除的时候从i开始后面数据往前移,直到最后一个数据(索引号为:len(lst)-1)。故选A。 11.D 【详解】本题考查VB程序段。根据第一个循环内a(i)=Int(Rnd*5)*2+1,可知,a数组是[1,9]中的奇数。又根据第二个循环可知i=2,4,6,又a(i)=cha(a(i-1),a(i)),两种情况,若a(i-1)<a(i),则交换,则a(i)<a(i-1)。若a(i-1)>=a(i),则a(i)=a(i-1)-1,会出现a(i-1)>a(i),综合两种情况,必定有a(i-1)>a(i)。A中8,9不会出现,B中5,5不会出现,C中4,3不会出现,只能选D。 12.D 【详解】本题考查冒泡排序。根据外循环语句,该排序只执行三趟,又根据内循环和判断条件If a(j)>a(j+1) Then 交换,可知将数值较大的数据往下交换。原始数据为55,31,19,42,37,23,经过三趟排序后,最终结果为19,31,23,37,42,55。故本题D选项为正确选项。 13.D 【详解】本题主要考查VB程序的执行。ConnectionString 是实例 conn 的属性;myrecord.Fields("2018")返回当前记录中“2018”字段的值;a(1)读取后执行myrecord.MoveNext 将读取下一条记录,即 a(2)=“中国”;myrecord.Fields("2018")不可以写成 myrecord.Fields(3),故本题选D选项。 14.A 【详解】本题主要考查Python程序的执行与调试。for循环可以执行9次。第一次for循环随机数生成的一定是0,r是[60],if条件不满足,所以list1最多有9个元素,D选项有10个元素错误。因为有if条件的存在,list1中不会有重复数据,B选项错误。C选项中第二值为62,需要至少是第三次循环此时i为2。第三个值为67,至少需要是第六次循环此时i为5。第六次循环后还剩3次循环,所以67之后最多有3个元素而C选项有4个选项,矛盾,选项C错误,故本题选A选项。 15.A 【详解】本题主要考查Python程序的执行。分析程序可知,该程序实现用列表a统计列表b中第i个元素后面的所有元素比第i个元素值大的个数有多少,如b[0]=76,88、84、91、99、80均大于b[0],则a[0]=5,其余依次类推,该程序段运行后,列表 a 的值为[5, 2, 3, 1, 0, 4],故本题选A选项。 16.B 【详解】本题考查的是Python中for循环语句。range()函数是让Python从指定的起始值,并在到达所指的结束值后停止,不包含结束值。 range(1,6,2)生成的系列数是:1,3,5。故s=1+3+5=9,退出循环时i=5。选项B正确。 17.B 【详解】本题主要考查Python程序的执行。分析程序可知,变量c用于统计列表a中前两项之和等于第三项的个数,a[0]+a[1]=a[2],a[1]+a[2]=a[3],故c的值为2,故本题选B选项。 18.B 【详解】本题考查的是Python循环、选择语句。由if语句可知列表a中数值与x奇偶性相同。结合x = x//2可知,当x=4时,x的奇偶性变化:偶、偶、奇、偶、偶、偶。因为列表a中数值与x奇偶性相同,故不满足列表a中产生 4 个偶数、2 个奇数。故本题应选B。 19.114 【详解】本题主要考查Python程序的执行。分析程序可知,该程序实现对列表data中的偶数进行求和赋给变量sum,故sum=sum+i=0+34+78=114,故运行结果是114。 20.丙 【详解】本题主要考查Python程序的执行。分析程序可知,通过for循环遍历所有的可能,当thief是丙时,满足if判断条件,即一人说了假话,三人说了真话,flag=3,故运行输出结果是丙。 21.3,5,7,9 【详解】本题主要考查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)。变量num的范围是2~9,当num是偶数时跳过,只输出奇数,即运行结果是:3,5,7,9。 22.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。 23.if i %23==0 and i %19 ==0 【详解】本题考查的是Python循环与选择语句。通过循环变量i遍历所有四位数的奇数,判断能否被23和19整除,只要看除完后的余数是否为0,故画线处代码为:if i %23 == 0 and i %19== 0。 24. result=[ ] enpwd(code,key) 诸二22暨中01 【详解】本题主要考查Python程序的综合应用。①此处是初始化列表result为空,故填result=[ ]。②函数enpwd(msg,key)将明文msg按照密钥key进行换位加密,此处通过调用该函数对明文code按照密钥key进行加密,故填enpwd(code,key)。③如果输入的code为“诸暨二中2021”,key为2,变量i的范围是0和1,当i=0时,循环完,result=["诸","二","2","2"],当i=1时,循环完,result=["诸","二","2","2","暨","中","0","1"],此时循环结束,通过join函数输出结果为:诸二22暨中01。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

2023-2024学年高一上学期粤教版(2019)必修一4.4运用循环结构描述问题求解过程
1
2023-2024学年高一上学期粤教版(2019)必修一4.4运用循环结构描述问题求解过程
2
2023-2024学年高一上学期粤教版(2019)必修一4.4运用循环结构描述问题求解过程
3
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。