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

2024-08-17
| 13页
| 391人阅读
| 0人下载

内容正文:

4.4运用循环结构描述问题求解过程2023—2024学年高中信息技术粤教版(2019)必修1 一、选择题 1.在信息传递的过程中,通常会将一些敏感信息进行加密,以下是实现加密功能的Python程序段。 mw=input("请输入明文:") mm="";key=2 for ch in mw:     if"0"<=ch<="9";         mm=str((int(ch)+key)%10)+mm     else:         mm+=chi print(mm) 若输入的明文为“Hi,2024”,则执行代码后的输出结果为(   ) A.,6424iH B.6424Hi C.6424Hi, D.Hi,6424 2.下列Python程序段中,循环体执行了(   ) i=5 while i==0:     i=i-1 A.0次 B.1次 C.5次 D.无数次 3.下列Python代码段的功能是计算(   ) s=0 a=−1 for i in range(1, 11): t=1 for j in range(1,i+1): t=t∗j a=−a s+=t*a print(s) A.1+2+3+4+5+6+7+8+9+10 B.1!+2!+3!+4!+5!+6!+7!+8!+9!+10! C.1−2∗3+3∗4−4∗5+5∗6−6∗7+7∗8−8∗9+9∗10−10∗11 D.1!−2!+3!−4!+5!−6!+7!−8!+9!−10! 4.桶排序并非常规的排序算法,它实际上是一种分治思想的实践。桶排序的过程可以分为4步:1-根据数据的特征将数据分为若干的桶,给每个桶规定可以存储的值的范围;2-将原数列的数据放入各个桶中;3-对每个桶都进行排序;4-按照桶的顺序将桶内数据重新链接。有如下Python程序段: def bucket_sort(a):     bucket=[]     b=[]     bucketnum=(max(a)-min(a))//len(a)+1    #根据数据特征确定桶数量     for i in range(bucketnum):    #建桶         ①     for x in a:        #入桶         num=(x-min(a))//len(a)         ②     for i in range(bucketnum):         bucket[i].sort()        #详见“注意”         b+=bucket[i]     return b a=[77,7,26,14,11,21,60,51,30,78] print(bucket_sort(a)) #运行结果 [[7,11,14],[21,26],[30],[],[51],[60],[],[77,78]] 注意:桶排序更多适用与数据值域较大但分别较均匀的情况,其本质也只是用于分段,对于桶内数据一般不会再使用桶排序递归,而是采用更高效的排序算法。故在桶内排序时也直接使用了sort()方法加以区分和说明。 根据题意,划线处①、②两个空分别填入的代码为(   ) A. ①bucket.append([]) ②bucket[num].append([]) B.①bucket.append(i)  ②bucket[num].append(x) C.①bucket.append(i)  ②bucket[num].append([]) D.①bucket.append([])  ②bucket[num].appendx) 5.有如下Python程序段: import random defselect(s,k):     for i in range(k):        j=i+1        if j< len(s):            s=s[:j]+s[j+1:]        else:            s=s[:len(s)-1]     connect(i,s,k) def connect(i,s,k):     list1=''     if i< k-1:         listl=listl+s+'-'     else:         list1=listl+s     print(listl,end='') s="hello" k=random.randint(1,4) select(s,k) 执行该程序段后,输出结果可能是(    ) A.hllo- B.hllo-hll-hl C.hllo-hlo D.hllo-hlo-hl-1 6.以下Python程序段的运行结果是(  ) n=0 for i in range(1,4):    n=n+i print (n) A.4 B.3 C.6 D.1 7.下面的Python代码实现了读入若干非负整数,统计其中奇数个数的功能。要想实现这一功能,应该在空格处填(  )。 li = map(int, input(). split()) cnt=0 for i in li:  if ______ :    cnt+=1 print("奇数有{}个。". format(cnt)) A.i%2==1 B.i%2 C.i//2==1 D.i/2==1 8.有如下python程序段: s=0 for i in range(101):       s+=i print("s=",s) 循环变量i的终值是( ) A.101 B.100 C.0 D.1 9.如图所示,温岭新天地的“我在温岭很想你”成了网红打卡地。 小明用字符串s存储“我在温岭很想你”,则获取“温岭”的Python表达式为(   ) A.s[3:4] B.s[3:5] C.s[2:3] D.s[2:4] 10.算法如下所示,其中说法正确的是(   ) k=20 while k==0:     k=k-1 A.循环体执行了0次 B.循环体执行了 1 次 C.循环体执行了 21 次 D.循环体执行了无数次 11.20.有如下 Python 程序段: s=input("请输入字符串:") a=[""]*10 ; a[0]=s[0] ; t=0 for i in range(1,len(s)):     if t>=0 and s[i]==a[t]:         t=t-1     else:         t=t+1     a[t]=s[i] 运行程序段,输入以下字符串,运行后变量t的值与其它三项不同的是(   ) A.++**+ B.+*+** C.*+**+ D.*++*+ 12.执行以下程序得到的结果是(    ) i=-1 while(i<0):     i=i+1 print(i) A.-1 B.0 C.1 D.i 13.有如下 Python 程序段: from random import random i=0 a=[0]*6 while i<=5:     a[i]=(int(random()*6+5))*(i%2+1)     for j in range(i):         if a[j]==a[i]:             i=i-l             break     i=i+1 程序执行后,数组a各元素的数据可能是(   ) A.[5,16,12,18,9,10] B.[7,18,10,10,6,12] C.[8,15,6,16,7,12] D.[6,12,5,18,8,10] 14.有如下visual basic程序: private Sub command1_Click() s=0 If s<=99 then For j=1to 10 s=s+j Next j Else print “程序出错!” Endif print “最后的s的值是:”;s End Sub 关于该程序的控制结构的说法不正确的是(   ) A.顺序结构包含了选择和循环结构 B.选择结构是由块条件语句构成 C.选择结构包含了循环结构 D.循环结构包含了选择结构 15.有如下Python程序段: s="Python" ans="" for i in range(len(s)): c=s[i] if  "a"<=c<="z": if  i%2==0: c=chr((ord(c)–ord("a")–i)%26+ord("a")) else: c=c.upper( )    #x.upper(   )将字符串x中的大写字母转换成小写字母 ans+=c print(ans) 执行该程序段后,输出的内容是(   ) A.PYwHtN B.YrHkN C.PaTIOt D.PYrHkN 16.有如下 Python 程序段: n=10 m=0 d=[False]*10 for i in range(1,int(n**0.5)+1): j=3*i while j<n: d[j]=not d[j] j=j+3 for i in range(n): if d[i]: m=m+1 print(m) 执行该程序段后,变量 m 的值为( ) A.2 B.1 C.3 D.0 17.有下面一段程序: n = 10 list = [ 1, 5, 2, 3, 8, -9, 5, 6, 7, -10 ] s = 0 i = 0 while list[ i ] > 0 and i <= n: s += 1 i += 1 运行该程序后s的值为() A.3 B.5 C.8 D.10 18.在一次抽奖活动中,需要在8人中随机抽取3个幸运奖,对应的Python程序如下: import random xm=["A","B","C","D","E","F","G","H"]    #用字母代表人名 hj=[""]*3; bz=[False]*8 i=0 while i<=2: n=random. randint(0,7) print(h j) 程序加框处代码合适的是(   ) A.if bz[n]==False: hj[i]=xm[n] bz[n]=True i+=1 B.if bz[n]==True: hj[i]=xm[n] bz[n]=False i+=1 C.if bz[i]==False: hj[n]=xm[i] bz[i]=True i+=1 D.if bz[i]==True: hj[n]=xm[i] bz[i]=True i+=1 19.下列Python程序段运行的结果是 s = 0 i = 1 while i <= 100:     if i % 10 != 0 :         s+= i         i+ =1 print(s) (    ) A.4500 B.4578 C.5050 D.6657 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.C 【详解】本题考查程序分析。语句(int(ch)+key)%10的功能是把数字ch循环右移2位,即如果ch=0,循环右移2位结果是2,若ch=4,右移结果是6,若ch=2,右移结果是4。mm=str((int(ch)+key)%10)+mm的功能是把右移2位的结果逆序保存到mm中,如果ch不是数字,则按照顺序保存到mm中。故选C。 2.A 【详解】本题考查的是Python条件循环。i=5,i==0不成立,循环体没有执行。故本题应选A。 3.D 【详解】本题主要考查Python程序循环结构。分析程序可知,外层循环变量i的范围是1~10,内层循环中,变量t是计算i的阶乘,内层循环完,a变为其相反数,同时将t*a累加到变量s中,故该程序的功能是计算1!−2!+3!−4!+5!−6!+7!−8!+9!−10!,故本题选D选项。 4.D 【详解】本题考查Python程序分析。根据代码中注释可知,需要新建空列表作为桶,空列表个数存储在bucketnum中,故需要在列表bucket追加bucketnum个列表。代码为bucket.append([]) 。根据注释提示可知,需要遍历列表a,将元素追加到相应的桶中,故代码为bucket[num].append(x)。故选D。 5.C 【详解】本题考查程序分析。程序随机生成1到4的随机数赋值给变量k,调用select函数删除特定的字母,调用connect函数输出。在connect函数中,累加给变量list1,输出list1。假设随机生成k=1时,执行函数select,结果为hllo。假设k=2时,同理结果为hllo-hlo。假设k=3时,结果为hllo-hlo-hl。假设k=4时,结果为hllo-hlo-hl-h。故选择C。 6.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依次取1、2、3,n=n+i=0+1+2+3=6,故本题选C选项。 7.A 【详解】本题主要考查Python分支结构。统计其中奇数个数的功能,故if用来判断i是否为奇数,故填i%2==1,故本题选A选项。 8.B 【详解】本题主要考查Python循环结构。由代码“for i in range(101):”可知变量i的范围是0~100,故循环变量i的终值是100,选B选项。 9.D 【详解】本题考查程序分析。A选项,结果为“岭”。B选项,结果为“岭很”。C选项,结果为“温”。D选项,结果为“温岭”。故正确答案为D选项。 10.A 【详解】本题主要考查Python循环结构。分析程序,k的初值是20,不满足循环条件,故循环体执行了0次,故本题选A选项。 11.A 【详解】本题主要考查Python程序的执行与调试。分析程序可知,该程序实现的功能是:输入字符串s,相邻的字符相等且t>=0时,执行t=t-1,反正执行t=t+1,同时更新a[t]=s[i]以比较下一组,分析选项可知,选项A执行后t的值是0,其余选项执行后t的值是2,故本题选A选项。 12.B 【详解】本题考查的是Python条件循环。i初始值为-1,while条件是i<0,执行循环体i=i+1,直到i>=0结束循环,故跳出循环时i值为0。选B。 13.D 【详解】本题考查的是循环嵌套语句及随机函数。由a[i]=(int(random()*6+5))*(i%2+1)可知列表a的取值范围,索引号为偶数其值为:[5,11),索引号为奇数其值为:[10,22)的偶整数,选项A中,a[2]=12超出11,不可能;由for语句可知,列表a中的元素不重复,选项B,有重复元素10,不可能;选项C中,a[1]=15不是偶数,不可能,故本题应选D。 14.D 【详解】本题考查控制结构。该程序中的循环结构(For...Next)并没有包含选择结构。故答案为:D。 15.D 【详解】本题主要考查Python程序的执行。分析程序可知,变量c依次取s中的字符,如果c是小写字母,则判断i的奇偶性,如果i是偶数,则执行c=chr((ord(c)–ord("a")–i)%26+ord("a")),即将该小写字母循环向前移i位,即“t”变为“r”,“o”变为“k”,如果i是奇数,则将小写字母变为大写字母。若c是其他字符,则保持不变,故执行该程序段后,输出的内容是PyrHkN,故本题选D选项。 16.A 【详解】本题主要考查Python程序的执行与调试。初始时,数组d均为False。变量i的范围是1~3,当i=1时,d[3]=True,d[6]=True,d[9]=True;当i=2时,d[6]=False,d[9]=False;当i=3时,d[9]=True,变量m统计列表d中值为True的个数,只有d[3]、d[9]值为True,故c=2,故本题选A选项。 17.B 【详解】本题主要考查Python程序的执行。当list[i]>0且i<=n时,s递增,i递增,否则退出循环,list[5]=-9<0,故s=s+1=0+1+1+1+1+1=5,故运行程序后s的值为5,故本题选B选项。 18.A 【详解】本题主要考查Python程序的执行与调试。数组bz标记每一个人是否被抽取,初始值均为False,表示均未被抽取,故首先判断bz[n]的值是否为False,如果是False,则更新hj[i]的值为xm[n],同时赋值bz[n]的值为True,表示已抽取,再i递增1,继续抽取下一个人,故本题选A选项。 19.A 【详解】本题主要考查Python程序执行。分析程序可知,该程序实现功能是1~100之间,将不能整除10的数累加起来,1~100的求和根据等差求和等于(1+100)*100/2=5050,故s=5050-(10+20+30+40+50+60+70+80+90+100)=4500,故本题选A选项。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

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