2.2 做出判断的分支 2024-2025学年高中信息技术教科版(2019) 必修1

2024-08-10
| 14页
| 163人阅读
| 0人下载

内容正文:

2.2 做出判断的分支 一、选择题 1.阅读下列Python程序段,程序输出结果应为(  ) a,b,c=3,2,3 if a>b and a>c: print(a) if b>a and b>c: print(b) if c>a and c>b: print(c) A.两个3 B.一个3 C.三个3 D.没有任何输出 2.用Python语言实现“每满100减20,每满200减50,可以累计上不封顶”的优惠金额算法,设s为购买商品的原价,计算优惠金额t,下面选项正确的是(   ) A. t=s//100*20 if s//200>0:     t+=s//200*50 B. t=s//200*50 if s%200>=100;     t=t+20 C. if s>=200:     t=s//200*50 else:     t=s//100*20 D. if s>=100:     t=t//100*20 else:     t=t//200*50 A.A B.B C.C D.D 3.以下是4位Python初学者为解决“分别统计[1000,2000]以内个位数是4的整数个数k1以及十位数和百位数之和等于6的整数个数k2”这一问题而编写的程序代码,其中算法思想错误的是(   ) A.B. C. D. 4.下列程序实现了输入k,找出大于k的数据的起始索引位置并显示 a=[1,3,3,5,5,7,10,11,12,15] n=10 k=int(input()) i=-1 j= while i < j:     m=(i+j+1)//2     if k < a[m]:         j=     else:         i=m L= print(">",k,"的数据索引起始位置为",L) 上述程序段横线处语句依次为(     ) A.n  m-1  i B.n-1  m-1  i+1 C.n  m+1  i D.n-1  m+1  i+1 5.下面是一段程序中的部分代码,其中有(    )处错误。其实现的功能是:输入任意整数a、b,判断b的值是否为零,如果不等于0,则输出(a-b)/b,否则输出“错误”。 A.1 B.2 C.3 D.4 6.执行如下代码: c=0 num=[1,2,3,4] def  fun(num):      global c      for  i  in  range( 5 ) :           c+=1      num.append(c)      return num print(fun(num), num ,c) 则程序执行后输出(   ) A.[1,2,3,4]  [1,2,3,4] B.[1, 2, 3, 4, 5]  [1,2,3,4]  0 C.[1, 2, 3, 4, 5]  [1,2,3,4]  5 D.[1, 2, 3, 4, 5]  [1, 2, 3, 4, 5]  5 7.有如下程序: s="Happy New Year!" m=____________________ if m=="Happy":     print("Happy to you!") elif m=="Year":     print("Good Luck!") else: print("It's a fine Day!") 若想运行结果是"Good Luck!",则划线处代码可能是( ) A.s[9:13] B.s[10:13] C.s[-5:-2] D.s[-5:-1] 8.有如下python程序段: from random import randint n=input("请输入一串数字:") k=randint(0,len(n))  #randint用于随机生成[0,len(n)]之间的整数 for i in range(k): for j in range(len(n)-1): if n[j]>n[j+1]: break else: n=n[:len(n)-1] continue   #continue跳过当前循环的剩余语句,直接进行下一轮循环 n=n[:j]+n[j+1:] 执行该程序段后,输入“1529”,则变量n可能是(   ) A."9" B."12" C."152" D."1259" 9.利用列表模拟栈的操作,python程序如下,程序运行后sum的值为(   ) st=[2,4,7,10,9,7,8,-5,3,6] f=True;top=-1;sum=0 for i in range(len(st)):   if st[i]%5<=3:     top+=1     st[top]=st[i]   else:     top-=1 while top!=-1:   if f:     sum+=st[ top]   top-=1;f=not f A.8 B.12 C.16 D.22 10.有如下Python程序段: import random a=[23,5,2,8,11,19] x=random.randint(1,3) for i in range(x):     for j in range(len(a)-1,i,-1):         if a[j] < a[j-1]:             a[j],a[j-1]=a[j-1],a[j] print(a[0:4]) 程序段执行后,输出的结果不可能是( ) A.[2,23,5,8] B.[2,5,23,8] C.[2,5,8,23] D.[2,5,8,11] 11.有如下程序段: bt=["A","B","C","D",None,"E","F"] result=[] stack=[] i=0 while stack or (i<len(bt) and bt[i] is not None):     if i < len(bt) and bt[i] is not None:         stack.append(i)         i=2*i+1     else:         i=stack.pop()         result.append(bt[i])         i=2*i+2 print("-".join(result)) 则程序运行后输出的结果为(   ) A.A-B-D-C-E-F B.D-B-E-F-C-A C.D-B-A-E-C-F D.A-B-C-D-E-F 12.在Python语言中,运行以下程序,输入数值 100,显示的运行结果是 (  ) a= int(input()) # 输入一个数给变量a if a<= 100: print("YES") A.100 B.无结果 C.a D.YES 13.判断变量a是否大于0的语句是(   ) A.if  a>0: B.if a>0 C.if(a>0) D.if a>0; 14.在 Python中,表达式"12"+"3"的值为(    ) A.15 B."15" C.123 D."123" 15.下面Python程序运行后,变量m,n的值分别是(   )     n,m=7,4     if n>m:         n=m         m=n A.4,4 B.7,7 C.7,4 D.4,7 16.为优化英文字符串的存储空间,现规定:用一个字符和一个数值代替字符串中的连续升序段(相邻字符的ASCII码值增量为1)。例如输入字符串“abcmnk”,压缩后为“a3m2k1”。实现上述功能的Python 程序如下: s=input("请输入字符串:") n=len(s);flag=False;ans="";c=1 for i in range(0,n-1): if (1) :     ans=ans+s[i]     flag=True     c=c+1 elif ord(s[i])+1!=ord(s[i+1]):     ans=ans+str(c)     flag=False     c=1 else:     c=c+1 if (2) :     ans=ans+str(c) else:     ans=ans+s[i+1]+str(c) print("压缩后的字符串为:",ans) 划线处可选语句有: ①flag=True            ②flag=False ③ord(s[i])+1==ord(s[i+1]) and flag==False ④ord(s[i])+1==ord(s[i+1]) and flag==True 下列代码顺序正确的是(  ) A.④① B.④② C.③① D.③② 17.某python程序如下: s=[3,3,3,6,6,8,11,11,9,4,2,5] r=[] for i in range(1,len(s)-1): if not(s[i-1]<s[i]<s[i+1] or s[i-1]>s[i]>s[i+1]): if s[i-1]==s[i]: continue j=len(r)-1 while j>=0 and s[i]<=s[r[j]]: j-=1 if j==len(r)-1 or j==-1: j+=1 r=r[:j]+[i]+r[j:] print(r) 程序运行后,输出的结果为(    ) A.[3,6,10] B.[6,11,2] C.[6,3,10] D.[10,3,6] 二、填空题 18.Python关键字elif表示 与 两个单词的缩写。 19.以下Python程序段的运行结果是 。 x=25 y=15 if x/5==int(x/5):   x = x + y else:   y = x – y print (x , y) 20.阅读下列Python程序,写出运行结果。 a=5 if (a>3) and ((a==4) or (a<6)):    print("Hello") else:    print("Bye") 运行结果是: 21.有Python程序代码如下: n=int(input("请输入一个整数n:")) if n < 0 :     s = 0 elif n < 16 :     s = n ** 3 else :     s = n * n ** 2 print(s) 若要测试所有分支程序代码是否正确,请列举一组合适的数据 22.阅读下列程序,写出运行结果 警察抓小偷,有四个嫌疑人甲乙丙丁,其中一人是小偷。甲说“不是我”,乙说“是丙”,丙说“是丁”,丁说“丙在冤枉人”。他们中只有一人说了假话,编程判断谁是小偷。(注:在Python运算中,True的值为1,False的值为0) persons=[’甲’,’乙’,’丙’,’丁’] for thief in persons: flag =(thief!=’甲’)+(thief==’丙’)+(thief ==’丁’)+(thief!=’丁’) if flag == 3: print(thief) 运行结果是: 三、操作题 23.数字盲盒游戏 爸爸和明明玩数字盲盒游戏,盲盒里有1-6六个数字的球,他们约定谁拿出的数字大,谁就赢。请在序号处填写正确的代码,且不改变原程序的结构,并把序号删除,调试完成后保存文件。 D = int(input("爸爸的数字是(1-6):")) M =① (input("明明的数字是(1-6):")) if D6 or M6:#只要有一个条件不满足就是超出范围     print("输入的数字超出范围!") else:     if (D > M):         print("爸爸赢啦!")     elif (② ):         print("明明赢啦!")     ③ :         print("平局啦!") 试卷第1页,共3页 试卷第1页,共3页 学科网(北京)股份有限公司 参考答案: 1.D 【详解】本题考查Python分支结构。给定变量a、b、c的值分别为3、2、3。首先,第一个条件语句if a>b and a>c不成立,因为a并不大于b和c,所以与该条件相关的print(a)不会执行。接着,第二个条件语句if b>a and b>c也不成立,因为b并不大于a和c,所以与该条件相关的print(b)也不会执行。最后,第三个条件语句if c>a and c>b也不成立,因为c并不大于a和b,所以与该条件相关的print(c)也不会执行。因此,整个程序没有任何输出。故答案为:D。 2.B 【详解】本题考查分支语句的作用。由于优惠条件中,一个200元的优惠幅度比两个100元的更大,因此应该优先凑200元的整数,然后再看100元的。故选B。 3.A 【详解】本题考查Python代码。原始代码中,虽然通过if条件判断是否个位数是4,但在elif语句中并没有考虑个位数是4的情况。因此,如果个位数是4且十位数和百位数之和等于6,程序会直接跳过这个数字,导致k2的统计结果不准确。故答案为:A。 4.B 【详解】本题主要考查对分查找算法及Python程序实现。列表的索引从0开始,i是左端点,j是右端点,m=(i+j+1)//2,故j的初值为n-1;如果k < a[m],说明k在a[m]的左边,应更新j=m-1,否则说明k在a[m]的右边,应更新i=m。找出大于k的数据的起始索引位置,循环结束后,查找到的起始索引值应在i的右边,即i+1,故本题选B选项。 5.C 【详解】本题主要考查Python分支结构。if语句后面需要跟冒号,if语句后print语句的格式也不对,else部分即与if判断条件相反,else后面的b=0可省略,一共有3处错误,故本题选C选项。 6.D 【详解】本题主要考查Python程序执行。fun函数接收一个列表num,循环结束后c的值为5,将c追加到列表num中并返回num,num=[1,2,3,4],故fun(num)执行完,返回值num为[1, 2, 3, 4, 5],程序执行后输出程序执行后输出[1, 2, 3, 4, 5] [1, 2, 3, 4, 5] 5,故本题选D选项。 7.D 【详解】本题主要考查Python程序字符串切片操作。切片操作基本表达式:object[start_index:end_index:step],step:正负数均可,其绝对值大小决定了切取数据时的“步长”,而正负号决定了“切取方向”,正表示“从左往右”取值,负表示“从右往左”取值。start_index:表示起始索引(包含该索引对应值),该参数省略时,表示从对象“端点”开始取值。end_index:表示终止索引(不包含该索引对应值),该参数省略时,表示一直取到数据“端点”。运行结果是"Good Luck!",说明m="Year",s="Happy New Year!",s[-5:-1]="Year",故本题选D选项。 8.B 【详解】本题主要考查Python程序的执行。n="1529",len(n)=4,k=randint(0,len(n)),即k可取值是0、1、2、3、4。当k=0时,循环结束后,n="1529";当k=1时,循环结束后,n="12";当k=2、3、4时,循环结束后,n均为空值,故本题选B选项。 9.A 【详解】本题考查栈的操作。分析程序,第一个for循环,当满足st[i]%5<=3,则该元素入栈,否则出栈一个元素。因此循环执行完栈顶元素到栈底元素依次是:6、3、-5、8、7、7。第二个while循环实现从栈顶到栈底间隔一个元素累加求和,因此sum=0+6-5+7=8。故选A。 10.D 【详解】本题主要考查Python程序的执行与调试。x=random.randint(1,3),x随机产生1、2、3,当x=1时,循环执行完,a=[2,23,5,8,11,19],a[0:4]=[2,23,5,8];当x=2时,循环执行完,a=[2,5,23,8,11,19],a[0:4]=[2,5,23,8];当x=3时,循环执行完,a=[2,5,8,23,11,19],a[0:4]=[2,5,8,23],因此输出的结果不可能是[2,5,8,11],选D选项。 11.C 【详解】本题主要考查Python中stack()用法。分析程序可知,前3轮循环,即当i=0、1、3时均满足if判断条件,此时stack=[0,1,3],接下来i=2*i+1=7不满足if判断条件,执行else部分, i=stack.pop()=3,result.append(bt[i])=["D"],i=2*i+2=8,继续执行else,i=stack.pop()=1,result.append(bt[i])=["D","B"],i=2*i+2=4,不满足if判断条件,继续执行else部分,i=stack.pop()=0,result.append(bt[i])=["D","B","A"],此时结合选项可知程序运行后输出的结果为D-B-A-E-C-F,选C选项。 12.D 【详解】本题考查的是Python选择语句。输入数值100,即a=100,满足a<= 100,执行print("YES"),故本题应选D。 13.A 【详解】本题考查的是Python选择语句。在Python中,if语句条件后面跟的是冒号。故本题应选A。 14.D 【详解】本题考查的是Python表达式。加上双引号表明12、3是字符串,在字符串运算中“+”表示字符串的连接。故表达式"12"+"3"的值为"123"。选项D正确。 15.A 【详解】本题考查的是Python选择语句。初始n=7,m=4。n>m成立,执行n=m=4,m=n=4。故选A。 16.C 【详解】本题主要考查Python程序的执行与调试。Flag初值为False,当第一次出现连续的升序段时,执行ans=ans+s[i],同时赋值flag为True,后续再出现连续升序段时,只需要执行else部分,c递增1即可,因此①处判断条件是ord(s[i])+1==ord(s[i+1]) and flag==False。此处if分支结构用于处理最后一个字符的情况,如果flag=False,则执行ans=ans+s[i+1]+str(c),即将最后一个字符和数字拼接到变量ans中,故此处if判断条件是flag=True,故本题选C选项。 17.D 【详解】本题考查Python程序执行与调试。当i=1、2时,均满足s[i-1]=s[i],跳过本轮循环;当i=3时,r=r[:j]+[i]+r[j:]=[3];当i=4时,执行continue跳过本轮循环;当i=5时,不满足第一个if判断条件,跳过;当i=6时, r=r[:j]+[i]+r[j:]=[3,6];当i=7时,执行continue跳过本轮循环;当i=8、9时,不满足第一个if判断条件,跳过;当i=10时,r=r[:j]+[i]+r[j:]=[10,3,6]。循环结束。程序运行后,输出的结果为[10,3,6]。故选D。 18. else if 【详解】本题主要考查Python分支结构。Python关键字elif表示else与if两个单词的缩写。 19.40 15 【详解】本题主要考查Python程序分支结构的应用。x=25,y=15,满足if判断条件,执行x=x+y=40,执行print (x , y)后运行结果是40 15。 20.Hello 【详解】本题主要考查Python分支结构。逻辑运算符or两边值均为假时值才为假,否则值为真;逻辑运算符and两边值均为真时值才为真,否则值为假,not是取反。a=5,满足if判断条件,输出结果是:Hello。 21. -1,15,16  或其他等价答案 【详解】本题考查的是Python多分支语句。阅读程序可知,程序由三个分支:小于0、大于等于0小于16、大于等于16。故测试数据可以是:-1,15,16 或其他等价答案。 22.丙 【详解】本题主要考查 Python程序执行。分析程序可知,只有当thief=’丙‘时,满足flag=3,即4个人中只有一人说了假话,故运行结果是丙。 23. int M>D,D<M else 【详解】本题考查Python程序设计相关内容。分析题目内容及程序段,推知:①处,该行通过input函数输入的数据为字符型,需要转换成整型,故此处应填写:int。②处,当明明的数字比爸爸的数字大时,明明赢,故此处应填写:D<M 或 M>D。③处,if...elif...else为多分支选择结构,可实现题目要求,故此处应填写:else。 答案第1页,共2页 答案第1页,共2页 学科网(北京)股份有限公司 $$

资源预览图

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