4.4 运用循环结构描述问题求解过程 2024-2025学年高中信息技术粤教版(2019) 必修1

2024-08-02
| 12页
| 63人阅读
| 0人下载

内容正文:

4.4 运用循环结构描述问题求解过程 学校:___________姓名:___________班级:___________考号:___________ 一、选择题 1.某Python程序如下: s=input("请输入字符串:") ans="" a=[1,2,3] for i in range(len(s)):     x=s[i]     key=a[i%3]     if "A"<=s[i]<="Z":         ans=ans+chr((ord(x)-65+key)%26+65)     else:         ans=ans+x print(ans) 执行该程序后,输入"B2d5C3"输出的结果为(   ) A.66d4CE B.C2d5E3 C.C4g6E6 D.6E6g4C 2.有如下Python程序段: b=[56,80,10,31,24,52,66,49] n=len(b) for i in range(1, 3):    for j in range(0,n-i):   if b[j]>b[j+1]:     b[j],b[j+1]=b[j+1],b[j] 经过该程序段“加工”后,列表b中的元素为(  ) A.[10, 24, 31, 49, 52, 56, 66, 80] B.[10, 31, 24, 52, 56, 49, 66, 80] C.[56, 10, 31, 24, 52, 66, 49, 80] D.[10, 24, 31, 52, 49, 56, 66, 80] 3.某Python程序如下: s='A3B57e';sl=";i=0 while i<len(s):     if'A'<=s[i]<='Z':         sl=s1+chr(ord(s[i])+32)     elif'0'<=s[i]<='9':         sl=s[i]+s1     i=i+1 print(s1) 运行后输出的结果是(   ) A.753abe B.a3b57 C.753AB D.753ab 4.有如下python程序段: n=4 a=[[j*n+i+1 for j in range(n)] for i in range(n)] for i in range(0,n,2):     for j in range(n//2):           a[i][j],a[i][n-j-1]=a[i][n-j-1],a[i][j] 则程序执行后,a[0][1]和a[1][1]的值分别为() A.2和7 B.3和6 C.5和10 D.9和6 5.数组a中存储着某市2010年到 2019 年的GDP数值,编写VB程序,实现找出相邻两年GDP变化最大(即相邻两年GDP差值最大)的年份区间。若有多个符合要求的年份区间,只输出距今最近的年份区间。部分代码如下所示 Dim i As Integer,  imax As Integer ① For i = 3 To 10    If Abs(a(i) - a(i - 1)) >= ② Then imax = i Next i Text1.Text = "GDP变化最大的年份区间是" + Str(imax + 2008) + "-" + Str(imax + 2009) 划线处①、②应填入的代码为(   ) A.①imax=1  ②Abs(a(i - 1) - a(i - 2)) B.①imax=1  ②Abs(a(imax) - a(imax - 1)) C.①imax=2  ②Abs(a(i - 1) - a(i - 2)) D.①imax=2  ②Abs(a(imax) - a(imax - 1)) 6.有下面一段程序: p = [ 2, 1, 3, 4, 5 ] c = 0 for i in range( 2, 6, 2 ): if p[ i - 2 ] + p[ i -1 ] == p[ i ]:     c += 1 print( c ) 执行该段程序后,计算机显示的是() A.1 B.2 C.3 D.4 7.有如下程序段: Dim i As Integer, t As Integer, s As Integer s = 0: t = 0 For i = 0 To 10     If i Mod 5 = 0 then s = s + 1     t = t + i Next i Text1.Text = Str(s) 执行该程序段后,变量s和t的值分别是(   ) A.3  55 B.3  15 C.2  15 D.2  55 8.有如下VB 程序段: For i = 1 To 7   a(i) = Int(Rnd * 9) + 1 Next i s = 0 For i = 1 To 6   If a(i) < a(i + 1) Then     f(i) = 1   ElseIf a(i) > a(i + 1) Then     f(i) = -1   Else     f(i) = 0   End If s = s + f(i) Next i 执行该程序段后,变量s的值为0,则数组a各元素的值可能是(   ) A.9 8 4 1 3 3 9 B.1 2 3 6 5 3 0 C.1 8 6 2 4 3 8 D.6 4 4 5 6 7 1 9.有如下Pyhon程序段,执行程序后输出的结果是(   ) a=[1,3,5,7,9] b=[2,4,6,8,10] list=[] for i in range(-1,-5,-1):       s=a[i]+b[i]       list.append(s) print(list) A.[3,7,11,15] B.[12,34,56,78,910] C.[19,15,11,7] D.[19,15,11,73] 10.下面程序中,语句print (i)共执行了(  )次。 A.3 B.4 C.5 D.6 11.如下 Python 程序段: s="D5u6p@1_2t3B" num=0 for i in s[::-1]: if "a"<=i<="z" or "A"<=i<="Z" or "0"<=i<="9": if "0"<=i<="9": num=num*10+int(i) else: break print(num) 该部分程序段运行后,变量 num 的值是(    ) A.21 B.32 C.56 D.65 12.有如下 VB 程序段: i = 1 Do While i <= 5 a(i) = (Int(Rnd * 6) + 5) * (i Mod 2 + 1) For j = 1 To i - 1 If a(j) = a(i) Then i = i - 1: Exit For Next j i = i + 1 Loop 执行该程序段后,a(1)到 a(5)各元素的值可能是(     )。 A.18,8,16,6,12 B.11,5,10,6,20 C.14,10,12,10,20 D.5,6,7,8,9 13.在python中,以下程序运行后的结果是(  ) for i in range(2,6,2):    a=i+1 print(a) A.4 B.5 C.6 D.7 14.有如下排序程序:    程序运行后,列表a中的内容是(  ) A.[20,19,18,15,12,10,10,10,9,3] B.[3,9,10,10,10,12,15,18,19,20] C.[19,20,15,18,10,12,10,9,10,3] D.[20,15,19,10,18,10,12,10,9,3] 15.有如下Python 程序段 s="Li20An24K04ao";     i=0 while i<len(s): if"A"<=s[i]<="Z": s=s[:i]+s[i+1:] elif"0"<=s[i]<="9": s=s[:i]+str((int(s[i])+8)%10)+s[i+1:] else: s=s[:i]+chr((ord(s[i])-95)%26+97)+s[i+1:] i=i+1 执行上述程序后,s 的值为(      ) A.k08p0202co B.i08n0202cq C.i08p0202cq D.h28w22g82o 16.以下程序用于统计自然数1到n之间出现多少个x(0<=x<=9),空缺处应填入的代码是(    ) n = Val(Text1.Text) x = Val(Text2.Text) k = 0 For i = 1 To n   ________①_________    Do While temp <> 0       y= temp Mod 10       If ________②_________ Then k = k + 1       temp = temp \ 10    Loop Next Label1.Caption = Str(k) A.①temp=n  ② y=x B.①temp = i  ② y=x C.①temp=i   ② i=x D.①temp=n  ② i=x 17.有如下 Python 程序段: s = "AbqqW34mf";  s1 = "" for i in range(len(s)):      if "a" <= s[i] <= "z":           c = chr(ord(s[i]) - 32)           t = chr((ord(c) - ord("A") -1 + 26) % 26 + ord("A"))           s1 = s1 + t print(s1) 运行以上程序段后, 输出的内容为(   ) A.APPLE B.ELPPA C.ELRPPAU D.UAPPRLE 18.执行下列Python程序段后,变量n的值是(   ) n=0 for i in range(1,4):    n+=i A.4 B.3 C.6 D.1 19.有如下Visual Basic程序段: Private Sub Command1_ Click ()   Dim a(1 To 10) As Integer, i As Integer, k As Integer   a(1)=1:a(2)=17:a(3)=8:a(4)=9:a(5)=18   a(6)=15:a(7)=20:a(8)=13:a(9)=7:a(10)=11   k=0   For i= 2 To 9     If(a(i)-a(i-1))*(a(i+1)-a(i))< 0 Then k=k+1   Next i   Text1. Text = Str (k) End Sub 该程序段运行后后,文本框Text1中显示的内容是(   ) A.6 B.7 C.8 D.9 20.有如下程序段: s=1 for i in range(0,10,3):    s+=i print(s) 程序运行后,输出的内容是(   ) A. 20 B.19 C.22 D.31 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.B 【详解】本题主要考查Python程序的执行。分析程序可知, key=a[i%3],a=[1,2,3],即key依次取1、2、1、2……,当s[i]是大写字母时,执行ans=ans+chr((ord(x)-65+key)%26+65),即将该字母循环后移key个长度再拼接到ans中,当s[i]是其他字符时,直接拼接到ans中,输入"B2d5C3",大写字母B、C变为C、E,其余字符不变,因此输出的结果是C2d5E3,故本题选B选项。 2.B 【详解】本题主要考查Python程序的执行。分析程序可知,该程序实现2次冒泡排序,从左往右开始比较,将较大值放到最右边,第一轮循环结束,列表b中的元素为[56,10,31,24,52,66,49,80],第二轮循环结束后,列表b中的元素为[10,31,24,52,56,49,66,80],故本题选B选项。 3.D 【详解】本题考查程序分析。根据代码if'A'<=s[i]<='Z':和'0'<=s[i]<='9':可知,该程序遍历字符串s,取出字母和数字,将大写字符转换成小写,将数字直接加到字符前面,存储在变量s1中,输出s1。故正确答案为选项D。 4.D 【详解】本题主要考查Python程序的执行。分析程序a=[[j*n+i+1 for j in range(n)] for i in range(n)],列表a的值是[[1, 5, 9, 13], [2, 6, 10, 14], [3, 7, 11, 15], [4, 8, 12, 16]]。该程序实现将列表a中的奇数位置列表元素逆转,偶数位置不变,故程序执行完后a的值为[[13, 9, 5, 1], [2, 6, 10, 14], [15, 11, 7, 3], [4, 8, 12, 16]],故a[0][1]和a[1][1]的值分别为9和6,选D选项。 5.D 【详解】本题主要考查VB程序的执行。abs()是求绝对值函数,i的初值为3,a(i) - a(i - 1)=a(3)-a(2),这个区间应该首先与a(2)-a(1)进行比较,故imax=2,第二空填Abs(a(imax) - a(imax - 1)),故本题选D选项。 6.A 【详解】本题主要考查Python程序的执行。变量i的取值有2、4,当i=2时,满足if条件,c=c+1=1,故执行该段程序后,计算机显示的是1,故本题选A选项。 7.A 【详解】本题主要考查VB程序的执行。for循环中,变量i的范围是从0-10,当i是5的倍数时(i=0,5,10),变量s递增,故s=s+1执行了3次,每次循环都执行t=t+i,故程序结束时t=0+1+2+3+4+5+6+7+8+9+10=55,所以执行该程序段后,变量s和t的值分别是3 55,故本题选A选项。 8.C 【详解】本题考查的是VB循环语句。根据语句“a(i) = Int(Rnd * 9) + 1”,可知数组a的各元素为[1,9]范围的整数,故不可能有0,排除选项B。数组f标记前后相邻元素的升降平,1表示升;-1表示降,0表示平。选项A,最终f值为-1,-1,-1,1,0,1,最终s值为-1;选项C,最终f值为1,-1,-1,1,-1,1,最终s值为0;选项D,最终f值为-1,0,1,1,1,-1,最终s值为1,故选C。 9.C 【详解】本题考查的是Python循环结构。range(-1,-5,-1)生成的是-1、-2、-3、-4的序列。-1表示列表的最后一项, list.append(s)将s加入列表list中,故依次加入,9+10=19,7+8=15,5+6=11,3+4=7。故最后输出list为[19,15,11,7]选项C正确。 10.C 【详解】本题主要考查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)。变量i依次取0、1、2、3、4,因此一共执行了5次,故本题选C选项。 11.B 【详解】本题主要考查Python程序的执行。分析程序,s="D5u6p@1_2t3B",for i in s[::-1],变量i是逆着从字符串s中取字符,如果i是字母或数字,则接着判断i是否是数字,如果i是数字则执行num=num*10+int(i);如果i不是字母或数字,则退出循环。当i是“_”时,不满足if判断条件,退出循环,此时num=32,故本题选B选项。 12.A 【详解】本题考查的是VB循环语句。首先考虑取值范围,int(rnd*6)+5 产生随机整数范围是[5, 10],当 i 为奇数时, (Int(Rnd * 6) + 5) * (i Mod 2 + 1)的范围是{10,12,14,16,18,20};当 i 为偶数时, (Int(Rnd * 6) + 5) * (i Mod 2 + 1)的范围是整数[5, 10]。接着 a 数组满足不重复的条件。所以选项 BCD 都不对。 13.B 【详解】本题主要考查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)。可知变量i依次取2、4,循环结束后,a=4+1=5,故本题选B选项。 14.C 【详解】本题主要考查排序算法及Python程序实现。阅读程序段可知,i的取值范围为[0,9],当i=0时,j的取值范围为2,4,6,8。如果满足a[i]<a[j],那么交换两个数的位置,所以最终实现的是偶数位上的降序排列,同理奇数位上也最终实现降序,所以列表a最终的排序为:[19,20,15,18,10,12,10,9,10,3],故本题选C选项。 15.B 【详解】本题考查的是Python循环及多分支语句应用。由if语句可知,如果是大写字母,直接删除;由elif语句可知,如果是数字,0~9构成环,后移8位;由else语句可知,如果是小写字母,a~z构成环,后移2位。需要注意的是删除大写字母时,由于字符串s字符变少,会跳过大写字母后一个字符的处理。初始s="Li20An24K04ao",依据上述原则,处理后s="i08n0202cp",故选B。 16.B 【详解】本题考查VB程序段阅读,枚举算法,循环嵌套。根据题干以及算法整体结构,可推知程序采用枚举算法将所有数据全都列举,然后逐一判断是否包含x,进行统计。①处可根据下方Do while temp<>0 得知,此处应该是对temp赋值,将循环变量赋值给temp,故temp=i ②处根据上下两条语句,y= temp Mod 10以及temp = temp \ 10,可知,Do while循环中将temp从低位开始每一位取出存入y,进而判断y和x是否相等,如相等,则temp中存在一个x,统计变量k=k+1。故推出②处的语句为y=x 17.A 【详解】本题主要考查Python程序的综合应用。语句c = chr(ord(s[i]) - 32)实现将小写字母s[i]转换为大写字母,语句t = chr((ord(c) - ord("A") -1 + 26) % 26 + ord("A"))实现将大写字母C循环左移1位,分析程序可知,当s[i]是小写字母时,将其转换为大写字母后再循环左移一位,将其拼接到变量s1中;遇到其余字符,跳过。故运行以上程序段后, 输出的内容为APPLE,故本题选A选项。 18.C 【详解】本题主要考查Python循环结构。变量i的范围1~3,循环体是n=n+i,故程序执行后,n=n+i=0+1+2+3=6,故本题选C选项。 19.A 【详解】本题考查VB程序段。在FOR循环中,If(a(i)-a(i-1))*(a(i+1)-a(i))<0成立时共有六种情况,分别是i=2,3,5,6,7,9。故本题选A。 20.B 【详解】本题主要考查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)。变量i的取值依次是0、3、6、9,故程序运行后,输出的内容是s=s+i=1+0+3+6+9=19,故本题选B选项。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

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