2.3 周而复始的循环 2024-2025学年高中信息技术教科版(2019) 必修1

2024-08-05
| 12页
| 51人阅读
| 0人下载

内容正文:

2.3 周而复始的循环 学校:___________姓名:___________班级:___________考号:___________ 一、选择题 1.有如下VB程序段: sl = "1324":s2="abcdefgh" j = 1:m=0:c=" " For i= 1 To Len (s2) k =Val(Mid(sl,j,1)) c= c +Mid(s2,m +k,1) j=j+1 If j>4 Then j= 1:m =m+ 4 Next i 执行该程序段后,变量c的值是(    )。 A.acbdegfh B.acbdacbd C.acbdefgh D.abcdefgh 2.下列Python程序段: a=[2,4,3,5,1] min=a[0] s=10 for i in range(1,5): if a[i]<min: min=a[i] s-=min print(s) 执行该程序段后,输出的结果是(    ) A.1 B.3 C.6 D.9 3.在Python中,如下的代码输出结果是(   ) x=0 for i in  range(5,10,2):       x=x+i print(x) A.31 B.21 C.20 D.15 4.有如下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 5.下面程序段的运行结果为(   )。     For i=3 To 1 Step -1           Print Spc(5-i);  '输出时前面空几格        For j=1 To 2*i-1           Print "*";        ' ";"一个完整的内循环时表示在同一行输出        Next j           Print             '另一个循环开始时,换行      Next i A.       B. C.    D. 6.有如下Python程序 s1="0312"; s2="ABCDEFGH" m=0; c="" for i in range(len(s2)): k=int(s1[i%4]) m=4*(i//4) c+=s2[k+m] 执行该程序段后,变量c的值是(    ) A."ADBCADBC" B."ABCDEFGH" C."AHBGCFDE" D."ADBCEHFG" 7.关于以下程序代码,说法正确的是(  ) A=1 b=0 while A<101:   b=b+A   A=A+1 print(b) A.该程序的作用是求1到101的累加和 B.变量b的作用是累加计算1到100的和 C.该程序循环计算了101次 D.以上都不对 8.以下程序的输出结果是(  ) sum =1 for i in range(4,0,-1): sum+=i print(sum) A.11 B.15 C.16 D.10 9.下列程序的运行结果是(        ) word=["my","apple","Label","Name","nose","nice"] n=0 for ch in word:     if ch[1]=="a":         n=n+1         print(ch,end=" ") print(n) A. B. C.apple 1 D.Label Name 2 10.如图所示,是Python语言编写的输出金字塔的程序,它主要采用的程序结构是(  ) A.顺序 B.循环 C.树型 D.选择 11.有如下python程序段,运行该程序段后,列表a中的值可能是(    ) import random a =[] for i in range(6): t= random.randint(1,11) a.append(t+t%2) for i in range(1,6): j=i;k= a[j] while a[j-1]<k and j>0: a[j]= a[j-1] j=j-1 a[j]= k A.11,8,7,6,5,5 B.2,4,4,6,8,10 C.12,10,2,2,2,2 D.11,11,7,5,3,1 12.有如下VB程序段: s = Text1.Text ans = "": k = 5 i = k - 1: j = k + 1: n = Len(s) Do While k > 1         If Mid(s, i, 1) = Mid(s, j, 1) Then             ans = ans + Mid(s, i, 1) :k = k - 1         End If         i = (n + i - 2) Mod n + 1         j = j Mod n + 1 Loop Label1.Caption = ans     在文本框Text1中输入“mississippi”,执行程序后,标签Label1上显示的内容是(   ) A.ssii B.ssis C.siis D.miss 13.字符串s1中保存了一个单词,字符串s2中保存了一句以空格结尾的句子,字符串s1和s2均由小写字母组成且s2中各个单词之间仅用空格隔开,下列程序能够统计单词s1在句子s2中出现的次数: i=1:j=1:cnt=0     Do While j<= Len(s2)     If Mid(s1,i,1)<> Mid(s2,j,1)Then          Else     Do While i<=lens and j<=lens2         If Mid(s1, i, 1) =Mid(s2, j, 1)Then                    Else                    End If     Loop lf i=len(s1)+1 And Mid(s2,j,1)=""then     cnt= cnt+1 End If      i=1    End If Loop 方框中的代码分别是:①i=1:j=j+1  ②i=i+1:j=j+1 ③j=j+1 代码从上到下正确的顺序是() A.①②③ B.③②① C.③①② D.②①③ 14.有如下程序段: import random a = [0] * 6 for i in range(0,6):                    a[i] = random.randint(1,5) * 2 + 1 i = 0 while i < 5: if a[i] > a[i+1]: a[i],a[i+1] = a[i+1],a[i] else: a[i] += 1 i += 1 print(a) 执行以上程序后,列表变量 a 可能的是(   ) A.[1, 6, 10, 10, 10, 9] B.[3, 8, 7, 13, 3, 9] C.[5, 10, 7, 7, 12, 11] D.[5, 10, 10, 7, 10, 8] 15.有如下程序段: Dim s(1 To 81) As Integer, i As Integer, j As Integer, c As Integer, temp As Integer c=0 : s(1) = 0 For i = 1 To 9 For j = 1 To i temp = s(j * i) s(j * i) = j * i If temp <> s(j * i) And s(j * i) Mod 9 = 0 Then c = c + 1 Next j Next i 该程序段运行后,变量 C 的值为( ) A.9 B.10 C.11 D.12 16.有如下Python程序段: import random q=[0]*8;head,tail=0,4 for i in range(4):     k=random.randint(0,10)     if k%2==0:         q[tail]=k%5         tail+=1     else:         head+=1 while head<tail:     print(q[head],end="")     head+=1 程序执行后,输出的结果可能为:(    ) A.0 0 0 0 2 3 0 9 B.0 0 0 0 C.0 1 2 3 4 D.2 3 17.如下程序段,运行后,x的值为(   ) x = 0 while x < 50:      x = (x + 2) * (x + 3) A.0 B.72 C.50 D.168 18.函数range(6,10)生成的序列中元素的个数是(   ) A.3 B.4 C.5 D.6 19.有如下Pyhton程序段:   def gcd(a,b):   c=a%b   while c > 0:       a,b =b,c       c=a%b   return b a=int (input("请输入: ")) b=int (input("请输入: ")) gcd = gcd(a, b) scm=a*b//gcd print( gcd, scm) 运行该程序,输入a,b的值分别为16,12,则输出gcd,scm的值分别为(  ) A.4,48 B.48,4 C.2,12 D.12,2 20.利用Python 打印5个#,代码及运行结果如下: 1 for i in : 2   print("#", end=",") >>> %Run '五个#. py' #,#,#,#,#, 则程序第1行横线处应该填(   ) A.5 B.range(1, 5) C.(1, 5) D.range(5) 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.A 【详解】本题考查的是VB标准函数及循环语句。Mid(X,n,k) 取字符串 X 中第 n 个字符起长度 为 k 的子串,Val(X) 数字字串转换为数字,Len(X) 计算字符串的长度。阅读程序段可知,当i=1时,c= c +Mid(s2,m +k,1)= c +Mid(s2,1,1)="a";当i=2时,c= c +Mid(s2,m +k,1)="a"+ Mid(s2,3,1)="ac";当i=3时,c= c +Mid(s2,m +k,1)="ac"+ Mid(s2,2,1)="acb";当i=4时,c= c +Mid(s2,m +k,1)="acb"+ Mid(s2,4,1)="acbd";当i=5时,由于j>4,故j=1,m=m+4=4,c= c +Mid(s2,m +k,1)="acbd"+ Mid(s2,5,1)="acbde";当i=6时,c= c +Mid(s2,m +k,1)=" acbde "+ Mid(s2,4+3,1)="acbdeg";当i=7时,c= c +Mid(s2,m +k,1)=" acbdeg "+ Mid(s2,4+2,1)="acbdegf";当i=8时,c= c +Mid(s2,m +k,1)=" acbdegf "+ Mid(s2,4+4,1)="acbdegfh";循环结束,故选项A正确。 2.B 【详解】本题考查的是Python列表及循环。阅读程序可知,只有当 a[i]<min成立时,min值才发生变化,列表a中,只要最后一个元素1比2大。由 range(1,5)可知,循环执行了4次,前三次min值都为2,最后一次min值为1,s初始值为10,故经过循环执行s-=min后,s值为:10-2-2-2-1=3。选项B正确。 3.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依次取5、7、9,循环结束后x=x+i=0+5+7+9=21,故本题选B选项。 4.A 【详解】本题考查的是Python循环语句。第一个循环跳出时,找到第一个数据x的索引号i, 由lst[j]=lst[j+1],可知删除的时候从i开始后面数据往前移,直到最后一个数据(索引号为:len(lst)-1)。故选A。 5.C 【详解】本题主要考查程序循环结构执行。题中外层循环Print Spc(5-i);用于输出空格,即第一行先输出2个空格,第二行输出3个空格,第三行输出4个空格;内层循环变量j终值依次为5,3,1,因此第一行输出5个*,第二行输出3个*,第三行输出1个*,因此C选项正确。 6.D 【详解】本题考查的是Python循环语句。由程序中c += s2[k+m]可知,从s2 中取值由k+m确定,k的取值依次为“03120312”,而m的取值依次为“00004444”,可知k+m的取值依次为“03124756”,所以答案为“ADBCEHFG”,故本题应选D。 7.B 【详解】本题主要考查Python循环结构的应用。分析程序,该程序的作用是求1到100的累加和,变量b的作用是累加计算1到100的和,该程序循环计算了100次,故本题选B选项。 8.A 【详解】本题主要考查Python循环结构。分析程序可知,sum=4+3+2+1+1=11,故本题选A选项。 9.D 【详解】本题考查的是Python循环语句。字符串的索引是从0开始,-1为从末尾开始的位置,故由ch[1]=="a"可知,查找word列表中单词第二字母为"a",end=" "表示输出时不换行,n是统计满足条件单词的个数,故程序的运行结果是:Label Name 2。选项D正确。 10.B 【详解】本题主要考查程序基本结构。分析程序,可知它主要采用的程序结构是循环结构,故本题选B选项。 11.C 【详解】本题主要考查Python程序的执行与调试。由 t= random.randint(1,11)可知t是1~11的整数,由a.append(t+t%2)可知a列表中的数字是2~12的偶数。由第二个for循环嵌套中条件a[j-1]<k and j>0,可知实现的是降序排列。选项AD中含有奇数,不符合;选项B是升序排序,不符合。故本题应选C。 12.A 【详解】本题考查VB综合应用。根据题意,循环判断,第一次循环判断Mid(s, i, 1)为i,Mid(s, j, 1)为s,不成立,执行后续语句,此时i=3,j=5,第二次循环判断,成立,执行语句,ans值为“s”,k为4,继续执行,此时i=2,j=5,第三次循环判断,成立,执行语句,ans值为“ss”,k为3,继续执行,此时i=1,j=5,第四次循环判断Mid(s, i, 1)为i,Mid(s, j, 1)值为是s,条件不成立,执行后续语句,以此类推,最后输出“ssii”。故选项A正确。 13.B 【详解】本题考查VB程序段。第一空,当If Mid(s1,i,1)<> Mid(s2,j,1)Then成立时,那么j变量向后移动一个位置,重新开始判断,故填入j=j+1。第二空,当 If Mid(s1, i, 1) =Mid(s2, j, 1)Then成立时,i和j都往后移动,故填入i=i+1:j=j+1。第三空,表示i回到s1的起始位置,重新检测,故填入i=1:j=j+1。结合上述分析,本题选B。 14.C 【详解】本题主要考查Python综合程序调试。a[i] = random.randint(1,5) * 2 + 1,a[i]是随机生成3、5、7、9、11之间的数,分析程序可知,第一次循环,a[0]是3、5、7、9、11之间的数,数组a的其余元素是0,while循环结束后,a[5]的值变为刚生成a[0]的值,其余元素值为0,排除选项D;对于选项B,若生成的a[2]=3,则while循环执行后,a[4]的值应是3+1=4,与选项不符,排除选项B;其次当a[0]<a[1]时,则a[0]递增1,a[1]的值大于2,故a[0]的值一定大于1,排除选项A,故本题选C选项。 15.A 【详解】本题考查数组、循环嵌套和枚举算法。外层共9次循环,第一次循环,s(j * i)=1*1=1;第二次循环,内层循环执行两次,s(j * i)的值分别为2、4;……;依次类推枚举s(j * i)的值如下图: temp <> s(j * i) And s(j * i) Mod 9 = 0 temp 记录的是 s(j * i)上一次被赋值的量,只有当上一次未被赋值,且能被 9 整除时 C 才能自增 1,因此由表中能被 9 整除的项总计 12 个,有 3 项重复,因此答案为 9 个。最后一行数据为 9 的 1,2,3,4……9 的倍数的枚举,涵盖了表中所有能被 9 整除的情况,由此也能直接得出结论 C 为 9, 选项A正确 16.B 【详解】本题考查Python程序的分析。k=random. randint (0, 10),k随机生成0~10, 由q[tail]=k%5可知,q列表中不可能出现9,排除A选项;for循环一共循环4次,若q中有1、2、3、4,说明没有执行head+=1,则C应是00001234,排除C选项;如果k是连续生成0或10两个再生成两个奇数,选项B可能;选项D有2、3,则说明head+=1至多执行2次,因此输出结果一定有0,排除D选项。故正确答案选B。 17.B 【详解】本题主要考查Python循环结构的应用。x=0,第一遍循环,满足x<50,执行x=(x+2)*(x+3)=6;第二遍循环,满足x<50,执行x=(x+2)*(x+3)=8*9=72;第三遍循环,不满足x<50,输出x的值是72,故本题选B选项。 18.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(6,10)生成:6、7、8、9共4个。故选B。 19.A 【详解】本题主要考查Python程序的执行。分析程序可知,gcd(a,b)求a和b的最大公约数,scm求a和b的最小公倍数。运行该程序,输入a,b的值分别为16,12,则输出最大公约数gcd,最小公倍数scm的值分别为4和48,故本题选A选项。 20.D 【详解】本题主要考查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)。 打印5个#,则程序第1行横线处应该填range(5),故本题选D选项。 答案第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
相关资源
示范课
由于学科网是一个信息分享及获取的平台,不确保部分用户上传资料的 来源及知识产权归属。如您发现相关资料侵犯您的合法权益,请联系学科网,我们核实后将及时进行处理。