试卷征集
加入会员
操作视频
当前位置: 试卷中心 > 试卷详情

浙教版(2019)选择性必修1《第三章 字符串、队列和栈》2022年单元测试卷

发布:2024/12/5 20:30:2

一.选择题(共27小题)

  • 1.有如下 python 程序段:
    from random import*
    s=''
    for i in range(1,4):
    k=int(random(  )*3+1)
    c=chr(96+k)
    if i%2==k%2:
    s=s+c
    else:
    s=c+s
    print(s)
    若该段程序执行以后,s 的值不可能的是(  )

    组卷:1引用:3难度:0.5
  • 2.有如下python程序段:(注:字母ASCII码>数字ASCII码,小写字母ASCII码>大写字母ASCII码)
    import random
    s=“olympicGames2021“;ans=““;i=0
    while i<len(s)-2:
    t=int(jye.ai.jye.ai(  )*2)+1
    x=s[i];y=s[i+t]
    if x>y:
    ans+=x
    else:
    ans+=y
    i=i+t+1
    print(ans)
    执行程序后,输出结果可能为(  )

    组卷:1引用:2难度:0.4
  • 3.有如下Python程序段:
    s=“ABCDEF“
    ch=““
    for i in range(0,len(s)):
    a=int(input(  ));b=(a+2)%6
    ch=ch+chr(ord(s[b])+32)
    print(ch)
    运行程序后,依次输入3、1、4、5、2、6,输出ch的值是(  )

    组卷:2引用:3难度:0.6
  • 4.有如下Python程序段:
    s=input(“请输入一串字符串:”)
    m=cnt=1
    for i in range(1,len(s)):
    if s[i]>s[i-1]:
    cnt+=1
    if cnt>m:
    m=cnt
    else:
    cnt=1
    print(m)
    该程序段的功能是(  )

    组卷:14引用:5难度:0.5
  • 5.有如下Python程序段:
    s=input(“请输入一串字符串:”)
    f=True
    for i in range(0,len(s)//2):
    if s[i]!=s[len(s)-i-1]:
    f=False
    break
    print(f)
    若执行该程序后,输出的结果是“True”,那么输入的值可能是(  )

    组卷:15引用:4难度:0.5
  • 6.一个栈的入栈序列为1,2,3,4,5,则其出栈序列不可能为(  )

    组卷:15引用:2难度:0.5
  • 7.一个栈的输入序列为“12345“,输出的第一个元素为“4“,则输出的第3个元素不可能的是(  )

    组卷:7引用:3难度:0.6
  • 8.某Python程序如下:
    s=“xyAB#Fk”;k=x=“”;flag=True
    for i in range(len(s)):
    If“a”<=s[i]<=“z”and flag:
    x=chr(((ord(s[i])-95))%26+97)#字符“a”的ASCⅡ码值为97
    elif“A”<=s[i]<=“Z”and flag:
    x=chr>(((Cord(s[i])-41))%26+65)#字符“A”的 ASCⅡ码值为65
    flag=False
    else:
    x=s[i];flag=True
    k=k+x
    print(k)
    执行该程序后,输出值为(  )

    组卷:10引用:4难度:0.4
  • 9.创建一个容量为3的队列,元素2,3,5,1,3,5,2依次等待入队。入队规则为:
    ①若当前待入队元素已经在队列中,则跳过该元素,否则转②
    ②若当前队列已满,将队首元素出队列,否则转③
    ③将当前待入队元素入队列
    操作完成后,队列中的元素为(  )

    组卷:14引用:2难度:0.4
  • 10.已知一个栈的入栈序列是a,c,e,h,r,t,e,其出栈序列可能的是(  )

    组卷:11引用:5难度:0.7

二.简答题(共3小题)

  • 29.为四则运算式“6+(8-2)*2÷3”转逆波兰表达“682-2*3÷+”设计算法,编程实现。
    分析:在数学运算表达式中,运算符总是置于与之相关的两个运算对象之间,在计算结果时,要考虑括号、运算符号的优先性。为了程序实现的方便,波兰逻辑学家J.Lukasiewicz提出了另一种表示法,将运算符置于其运算对象之后,没有括号,不用考虑运算符号的优先性。这种表达式称为后缀表达式,又叫逆波兰表达式。
    如表达式“682-2*3÷+”是四则运算式“6+(8-2)*2÷3”的逆波兰表达式。为了处理方便,规定表达式中的数均为小于10的正整数,运算符为+、-、*、÷。
    (1)抽象建模
    设计两个栈bds、fh,栈bds用来存放表达式,栈fh用来暂时存放运算符。从左往右扫描四则运算式,遇到数字时,入栈bds;遇到运算符号时,根据运算符号的优先级设计进栈与出栈。
    四则运算式“6+(8-2)*2÷3”转换规则的模拟过程如表所示:

    结合表格的操作过程,用栈bds和栈fh记录每个操作后的栈内情况(见图),那么在操作2中栈fh里有内容为
     
    (请从栈底到栈顶顺序书写)。

    (2)设计算法
    基于问题的抽象与建模,解决该问题的主要算法描述如下:
    从左往右遍历四则运算式s(设中间变量为ch):
    1)当ch是数字,直接入栈bds;
    2)当ch是运算符:
    a.若ch为左括号时,直接入栈fh;
    b.若ch为右括号时,则将栈fh元素弹出,压入栈bds,直到遇到左括号(左括号只
    弹出,不压入栈bds);
    c.若ch为其它运算符时,如果运算符ch优先级大于栈fh中栈顶元素的优先级(或栈fh为空),直接入栈fh;否则,将栈fh元素依次弹出,并压入栈bds,直到运算符ch优先级大于栈fh中栈顶元素的优先级(或栈fh为空);
    3)将栈bds中元素依次出栈,即为该四则运算s的后缀表达式。
    (3)编写程序
    实现上述功能的Python代码如下,请在横线处填入合适代码。

    组卷:19引用:2难度:0.3
  • 30.【加试题】要求将某一字符串中指定的字符改写成小写或大写(如果原先是大写就改成小写,反之改成大写),并将处理后的字符重新输出.
    程序界面如下图所示,在Text1中输入原始字符串,在Text2中输入需要改变的字符,单击“改变”按钮后,在Text3中输出处理后的结果.

    程序代码如下:
    Private Sub Command1_Click (  )
    Dim s As String,result As String,k As String
    Dim zs As String,n As Integer
    result=“”
    s=Text1.Text
    k=Text2.Text
    For n=1To Len(s)
     

    If zs=k Then
    If Asc(zs)>=65And Asc(zs)<=90Then
    zs=Chr(Asc(zs)+32)
    Else lf Asc(zs)>=97And Asc(zs)<=122Then
    zs=Chr(Asc(zs)-32)
    End If
    End If
     

    Next n
     

    End Sub
    在程序①、②、③横线处填入适当的语句或表达式,把程序补充完整.
    (1)程序中①横线处应填入
     

    (2)程序中②横线处应填入
     

    (3)程序中③横线处应填入
     

    组卷:28引用:3难度:0.1
深圳市菁优智慧教育股份有限公司
粤ICP备10006842号公网安备44030502001846号
©2010-2025 jyeoo.com 版权所有
APP开发者:深圳市菁优智慧教育股份有限公司| 应用名称:菁优网 | 应用版本:5.0.7 |隐私协议|第三方SDK|用户服务条款
广播电视节目制作经营许可证|出版物经营许可证|网站地图
本网部分资源来源于会员上传,除本网组织的资源外,版权归原作者所有,如有侵犯版权,请立刻和本网联系并提供证据,本网将在三个工作日内改正