|试卷下载
终身会员
搜索
    上传资料 赚现金
    3.3排序和查找同步练习沪科版信息技术选修1
    立即下载
    加入资料篮
    3.3排序和查找同步练习沪科版信息技术选修101
    3.3排序和查找同步练习沪科版信息技术选修102
    3.3排序和查找同步练习沪科版信息技术选修103
    还剩12页未读, 继续阅读
    下载需要5学贝 1学贝=0.1元
    使用下载券免费下载
    加入资料篮
    立即下载

    3.3排序和查找同步练习沪科版信息技术选修1

    展开
    这是一份高中信息技术教科版 (2019)选修4 人工智能初步本册综合同步训练题,共15页。试卷主要包含了选择题,填空题,操作题等内容,欢迎下载使用。

    3.3排序和查找同步练习沪科版信息技术选修1

    学校:___________姓名:___________班级:___________考号:___________

     

    一、选择题

    1.有如下VB程序段:

    key = Val(Text1.Text)

    i = 1: j = 10

    Do While i <= j

        m = (i + j) \ 2

        If a(m) < key Then i = m + 1 Else j = m - 1

    Loop

    数组元素a(1)a(10)存放着非降序排列的数字,执行上述程序段后,下列说法错误的是(   

    Aa(i)可能大于key Ba(i + 1)可能等于key

    Ca(j - 1)可能等于key Di可能等于11

    2.采用选择排序算法对某数据序列进行排序,经过第一轮排序后的结果是“2837569”,那么原数据序列不可能是(    

    A3827569 B5837269

    C8327569 D2897563

    3.已知有这样一种对冒泡排序的优化方法:在每一遍加工过程中,记录在这遍加工中是否进行过数据交换。若在一遍加工过程中没有进行过数据交换,则数据已经有序,可以直接退出循环结束排序。则下列说法错误的是 (   

    A.对有n个数据的数组进行优化后的冒泡排序,最小比较次数为n-1

    B.对有n个数据的数组进行冒泡排序,无论是否优化,最大比较次数相同。

    C.对冒泡排序算法进行优化,能够较大提高其效率,符合算法设计的一般原则。

    D.若待排序数组中的数据依次为231746583411,对其使用优化后的冒泡排序进行升序排序,比较次数为9

    4.有如下程序段:

    For i = 1 To 2

      For j = 1 To 6 – i

          If a(j) > a(j + 1) And j Mod 3 <> 0 Then

                  tmp = a(j): a(j) = a(j + 1): a(j + 1) = tmp

          End If

      Next j

    Next i

    则程序运行后,数组a(1)a(6)的值可能为(   

    A347256 B345627

    C234576 D543267

    5.有如下VB程序段:

    key=ValText1.Text

    i=1:j=9

    Do While i<j

     m=i+j\2

    IfThen

    i=m+1

     Else

     End If

     Loop

     Label1. Caption=Stri

    已知数组a存储一组升序数“2591113151823”。要查找第一个大于key的元素的下标并输出,则下列选项中正确的是(    

    A①am<=key  ②j=m B①am<key  ②j=m-1

    C①am<=key ②j=m-1 D①am<key ②j=m

    6.采用冒泡排序算法对某数据序列进行排序,经过第一轮排序后的结果是“2839567”,那么原数据序列不可能的是(   

    A8395276 B8392657

    C8293576 D8329657

    7.采用选择排序算法对数据序列“10712563”进行排序,第一轮排序后的结果为“12710563”,则整个序列完成排序的比较次数和交换次数分别是(   

    A156 B115 C153 D114

    8.下列 VB 程序段的功能是将数组元素 a(1)a(n)进行排序:

    For i= n To 2 step -1

    For j  =

    If a(j) > a(j + 1) Then

    t = a(j):a(j)=a(j + 1):a(j + 1)=t

    End If

    Next j

    Next i

    方框中的代码会是以下四句中的某一句:

    ① 1 To i -1                ② n–1 To i Step -1

    ③ 1 To n - i                ④ n–1 To n - i+1 Step-1

    正确的选项是(    

    A B C D

    9.某VB 程序段如下:

    i = 1: s = ""

    Do While i <= 3

    k = i : j = i + 1

    Do While j <= 8

    If a(j) < a(k) Then k = j

    j = j + 1

    Loop

    If i <> k Then

    t = a(i): a(i) = a(k): a(k) = t

    n = n + 1

    End If

    s = s + Str(a(i)) : i = i + 1

    Loop

    Label1.Caption = Str(n) + ":" + s

    数组a(1)a(8)依次为:1619820412615,程序运行后,标签中显示的值为(    

    A24 6 8 B28 6 4 C34 6 8 D38 6 4

    10.以下VB程序利用选择排序思想对数组a进行升序排序。

    For i = 1 To n \ 2

      iMax = i: iMin = i

       For j = i + 1 To n - i + 1

         If a(j) > a(iMax) Then iMax = j

         If a(j) < a(iMin) Then iMin = j

       Next j

      

       If iMax = i Then

        

       Else

         

       End If

    Next i

    上述程序段中方框处可选语句为:

    ①temp = a(i): a(i) = a(iMin): a(iMin) = temp

    ②temp = a(iMin): a(iMin) = a(n - i + 1): a(n - i + 1) = temp

    ③temp = a(iMax): a(iMax) = a(n - i + 1): a(n - i + 1) = temp

    则(1)(2)(3)处的语句依次为(   

    A①②③ B①③② C②①③ D③②①

     

    二、填空题

    11.小明基于选择排序算法编写了一个VB程序,功能如下:某班有50个学生,从中选择10个身高最高的同学,要求被选的任何两个人不能身高一样(所给的数据保证能选10个)。

    实现上述功能的VB程序如下,但加框处代码有错,请改正。

    Const  n = 50

    Dim d(0 To n) As single , name(1 to n) as string

    '读入50个学生的身高,依次存入d(1)…d(50), 最高身高小于2,姓名存入name(1)…name(50)

    '代码略

    Private Sub Command1_Click()

    Dim i As Integer, j As Integer, temp As single, k As Integer,r as string

    d(0) = 2

    For i = 1 To 10

      For j = i To n

        If d(j) < d(i - 1) Then

           If Then

             k = j

           End If

        End If

      Next j

      If k <> i Then

         temp = d(k):  d(k) = d(i):  d(i) = temp

         r=name(k) : name(k)=name(i) : name(i)=r

      End If

    Next i

    For i = 1 To 10   输出被选的10个人的名字和身高。

      List2AddItem  name(i) & d(i)

    Next i

    End Sub

    12.小佳编写了一个统计每个单词出现次数的程序,单词中字母不区分大小写。程序功能如下:

    程序运行时在文本框 Text1 中输入一段英文文章,单击统计按钮 Command1,程序统计每个单词出现的次数,结果输出在列表框 List1 中,按出现次数由多到少显示,当出现次数一样时,按字母顺序从小到大排列。程序运行界面如图所示。

    1)实现上述功能的 VB 程序如下,请在划线处填入合适的代码。

    处代码为 __________处代码为 ______________处代码为 ___________________

    2)程序中加框处代码有错,请改正。

    应改为______________________________

    Private Sub Command1_Click()

    Dim dict(1 To 10000) As String ‘存储自建单词字典

    Dim n(1 To 10000) As Integer  存储单词出现次数

    Dim w As String, a As String, ch As String, x As String, y As Integer

    Dim i As Integer, b As Integer, k As Integer, d As Integer, j As Integer

    a = Text1.Text: k = 1

    For i = 1 To 10000

    n(i) = 0

    Next i

    b = 1

    For i = 1 To Len(a)

    ch = Mid(a, i, 1)

    If  Not (ch >= "A" And ch <= "Z" Or ch >= "a" And ch <= "z") Then

    If  i > b Then

    w = 取出单词,转为小写,存入 w

    d = 1

    Do While w <> dict(d) And d < k

    d = d + 1

    Loop

    If d = k Then

    dict(k) = w: n(k) = 1: k = k + 1

    Else

    n(d) =       

    End If

    End If

    b = i + 1

    End If

    Next i

    For i = 1 To k - 2

    For j = k - 1 To i + 1 Step -1

    If n(j) > n(j - 1) Or (       ) Then

    x = dict(j): dict(j) = dict(j - 1): dict(j - 1) = x

    y = n(j): n(j) = n(j - 1): n(j - 1) = y

    End If

    Next j

    Next i

    For i = 1 To k - 1

    List1AddItem dict(i) & " " & n(i)

    Next i

    End Sub

    Function LC(s As String) As String ‘单词中字母转为小写

    Dim i As Integer, c As String

    For i = 1 To Len(s)

    c = Mid(s, i, 1)

    If c >= "A" And c <= "Z" Then c = Chr(Asc(c) + 32)

                

    Next i

    End Function

    13.某书城五种畅销图书的市场价格(单位:元)存放在数组d中,如下表所示。现对这些数据进行升序排列,若采用冒泡排序算法自下而上进行比较和交换,那么在第一遍加工后,d[2]的值是______

    d[1]

    26

    d[2]

    32

    d[3]

    20

    d[4]

    29

    d[5]

    36

     

     

    14n个数据的冒泡排序需要经过n-1遍加工,每一遍加工自下而上比较相信两个数据,把较小者交换到上面。小刘发现:当某一遍加工过程中没有数据交换,说明数据已经有序,无需进一步加工。为此,小刘对算法进行优化,编写了一个VB程序,功能如下:运行程序时,在列表框List1中显示排序前数据,单击排序按钮Commaiid1,在列表框List2 中显示这些数据按升序排序后的结果,在标签Label3中显示排序过程的加工遍数。运行效果如下图所示,

    实现上述功能的VB代码如下:

    Dim a(1 To 8) As Integer

    Dim n As Integer

    Private Sub Form_Load()

    'n=8,排序前数据存储在数组a中,并在列表框Listl中显示

    '代码略

    End Sub

    Private Sub Command1_Click()

    Dim flag As Boolean          

    i = 1

    flag = True

    Do While        '改错              

         flag = False

         For j = n To i + 1 Step -1

            If a(j) < a(j - 1) Then

               k = a(j): a(j) = a(j - 1): a(j - 1) = k

               flag = True

            End If

         Next j

         i = i + 1

    Loop

    Label3.Caption = "排序过程的加工遍数为" +                '填空

    For i = 1 To n

       List2.AddItem Str(a(i))

    Next i

    End Sub

    1)代码“Private Sub Command1_Click()”中的Click___________。(单选,填字母:A.对象名/B.属性名/C.事件名)

    2)程序代码中,Do While语句加框处有错,请改正。__________________

    3)程序代码中,将Label3.Caption赋值语句补充完整。_________________

    4)程序代码中,flag值为___________表示某一遍加工中发生过交换。

    15.编写提取数字程序,实现如下功能:在文本框Text1中输入文本信息,点击提取按钮Command1,将文本信息中的数字以间隔输出到文本框Text2中。程序运行界面如图所示。

    1)观察界面,程序中未使用到的控件是_____(填字母:A/B/ C/ D  

    2)根据题意,请将划线处代码补充完整。

    Private Sub Command1_Click()

      Dim zf As String, tmp As String

    Dim s As String, i As Integer, ch As String

      __________________

      tmp = ""

      s = ""

      For i = 1 To Len(zf)

        ch = Mid(zf, i, 1)

        If ch >= "0" And ch <= "9" Then

          _______________

        ElseIf tmp <> "" Then

          s = s + tmp + ","

          tmp = ""

        End If

      Next i

      

      Text2.Text = s

    End Sub

    3)当输入的文本信息如图所示,若删除加框代码,则文本框Text2中显示的内容为______

     

    三、操作题

    16.某地学考等级划分规则如下:

    将考生原始成绩从高到低划分为AB+BC+CD+DE8个等级,各等级人数所占比例分别为3%7%16%24%24%16%7%3%,如下表所示。

    等级

    A

    B+

    B

    C+

    C

    D+

    D

    E

    比例

    3%

    7%

    16%

    24%

    24%

    16%

    7%

    3%

     

    比如参加技术学考有20000人,小明卷面分90分,排名为1800名,则他在技术学科中的所处比例是9%A3%B+7%,因此B+所处的累积比例为4%-%10,可知他所处等级为B+

    编写一个VB程序计算学生某科目成绩的等级,功能如下:从数据库中读入学生学号、姓名、班级和原始成绩,并在列表框List1中显示,单击等级划分按钮Command1,在列表框List2中按原始成绩从高到低显示成绩与等级。等级划分时,先按原始成绩从高到低排序(如原始成绩相同,则按班级号从小到大排序),再根据人数比例计算切分位置确定等级。若切分位置有相同分数学生,则归为同一个等级。例如,某等级切分位置是第100位,但第101位学生的原始成绩和第100位相同,则这两名学生的赋分等级相同。程序运行界面如图a所示。

    a

    实现上述功能的VB程序如下,请回答下列问题:

    1)下列属于 VB 窗体文件的是_________(单选,填字母)。

    Adj.vbp            Bdj.frm            Cjd.exe        Ddj.vbw

    2)请在划线处填上合适的代码。

    3)程序代码中,加框处有错,请改正。

    Const max = 1000Dim n As Integer                        '存放学生人数

    Dim xh(1 To max) As String              '数组xh存放学生的学籍号

    Dim xm(1 To max) As String              '数组xm存放学生的姓名

    Dim bj(1 To max) As Integer             '数组bj存放学生的班级

    Dim fs(0 To max) As Single              '数组fs存储学生的原始分数

    Dim ffdj(0 To max) As String            '数组ffdj存储学生的赋分等级

    Private Sub Command1_Click()

    Dim p(1 To 8) As Single,dj(1 To 8) As String

    Dim i As Integer, j As Integer, pos As Integer, last As Integer

    Dim st As String, it As Integer, sit As Single

    从数据库中读入学生学号、姓名、班级和原始成绩,分别存入数组 xhxmbj fz中,代码略

    p(1) = 0.03: p(2) = 0.07: p(3) = 0.16: p(4) = 0.24p(5) = 0.24: p(6) = 0.16: p(7) = 0.07: p(8) = 0.03dj(1) = "A": dj(2) = "B+": dj(3) = "B": dj(4) = "C+"dj(5) = "C": dj(6) = "D+": dj(7) = "D": dj(8) = "E"

    For i = 2 To 8

     __________                '计算到该等级累计所占比例

    Next i

    For i = 1 To n - 1

      For j = 1 To n - i

    If Then    ________

      st = xh(j): xh(j) = xh(j + 1): xh(j + 1) = st

          st = xm(j): xm(j) = xm(j + 1): xm(j + 1) = st

          it = bj(j): bj(j) = bj(j + 1): bj(j + 1) = it

          sit = fs(j): fs(j) = fs(j + 1): fs(j + 1) = sit

        End If

      Next j

    Next i

    pos = 1

    For i = 1 To 8

      last =________            '人数四舍五入取整

      Do While fs(last + 1) = fs(last)

        last = last + 1                     '处理切分位置的同分数学生

      Loop

      Do While______

       ffdj(pos) = dj(i)

       pos = pos + 1

      Loop

    Next i

    For i = 1 To n

      List2.AddItem xh(i) +" "+xm(i) +" "+Str(bj(i)) +" "+ Str(fs(i)) +" "+ ffdj(i)

    Next i

    End Sub


    参考答案:

    1C

    2C

    3D

    4A

    5A

    6D

    7C

    8B

    9A

    10A

    11.(1k=0 k=i-1   2k=0 or d(k)<d(j)       k=i-1 or d(k)<d(j)

    12     n(d) + 1     n(j) = n(j - 1) And dict(j) < dict(j - 1)     LC = LC & c  LC = LC + c     LC(Mid(a, b, i - b))

    1326

    14     C     i<=n-1 and flag=true     Str(i-1)     true

    15     B     zf = Text1.Text     tmp = tmp + ch     188,0571,

    16     B     p(i) = p(i) + p(i - 1)     fs(j) < fs(j + 1) Or fs(j) = fs(j + 1) And bj(j) > bj(j + 1)     Int(n * p(i) + 0.5)     pos <= last

     

    相关试卷

    1.2算法和算法描述同步练习沪科版信息技术选修1: 这是一份教科版 (2019)本册综合课时作业,共9页。试卷主要包含了选择题,填空题,判断题,操作题,简答题等内容,欢迎下载使用。

    2.2vb语言概述同步练习沪科版信息技术选修1: 这是一份高中信息技术教科版 (2019)选修4 人工智能初步本册综合同步练习题,共5页。试卷主要包含了选择题,填空题,操作题等内容,欢迎下载使用。

    2.3选择结构同步练习沪科版信息技术选修1: 这是一份高中信息技术教科版 (2019)选修4 人工智能初步本册综合当堂达标检测题,共9页。试卷主要包含了选择题,填空题,操作题等内容,欢迎下载使用。

    免费资料下载额度不足,请先充值

    每充值一元即可获得5份免费资料下载额度

    今日免费资料下载份数已用完,请明天再来。

    充值学贝或者加入云校通,全网资料任意下。

    提示

    您所在的“深圳市第一中学”云校通为试用账号,试用账号每位老师每日最多可下载 10 份资料 (今日还可下载 0 份),请取消部分资料后重试或选择从个人账户扣费下载。

    您所在的“深深圳市第一中学”云校通为试用账号,试用账号每位老师每日最多可下载10份资料,您的当日额度已用完,请明天再来,或选择从个人账户扣费下载。

    您所在的“深圳市第一中学”云校通余额已不足,请提醒校管理员续费或选择从个人账户扣费下载。

    重新选择
    明天再来
    个人账户下载
    下载确认
    您当前为教习网VIP用户,下载已享8.5折优惠
    您当前为云校通用户,下载免费
    下载需要:
    本次下载:免费
    账户余额:0 学贝
    首次下载后60天内可免费重复下载
    立即下载
    即将下载:资料
    资料售价:学贝 账户剩余:学贝
    选择教习网的4大理由
    • 更专业
      地区版本全覆盖, 同步最新教材, 公开课⾸选;1200+名校合作, 5600+⼀线名师供稿
    • 更丰富
      涵盖课件/教案/试卷/素材等各种教学资源;900万+优选资源 ⽇更新5000+
    • 更便捷
      课件/教案/试卷配套, 打包下载;手机/电脑随时随地浏览;⽆⽔印, 下载即可⽤
    • 真低价
      超⾼性价⽐, 让优质资源普惠更多师⽣
    VIP权益介绍
    • 充值学贝下载 本单免费 90%的用户选择
    • 扫码直接下载
    元开通VIP,立享充值加送10%学贝及全站85折下载
    您当前为VIP用户,已享全站下载85折优惠,充值学贝可获10%赠送
      充值到账1学贝=0.1元
      0学贝
      本次充值学贝
      0学贝
      VIP充值赠送
      0学贝
      下载消耗
      0学贝
      资料原价
      100学贝
      VIP下载优惠
      0学贝
      0学贝
      下载后剩余学贝永久有效
      0学贝
      • 微信
      • 支付宝
      支付:¥
      元开通VIP,立享充值加送10%学贝及全站85折下载
      您当前为VIP用户,已享全站下载85折优惠,充值学贝可获10%赠送
      扫码支付0直接下载
      • 微信
      • 支付宝
      微信扫码支付
      充值学贝下载,立省60% 充值学贝下载,本次下载免费
        下载成功

        Ctrl + Shift + J 查看文件保存位置

        若下载不成功,可重新下载,或查看 资料下载帮助

        本资源来自成套资源

        更多精品资料

        正在打包资料,请稍候…

        预计需要约10秒钟,请勿关闭页面

        服务器繁忙,打包失败

        请联系右侧的在线客服解决

        单次下载文件已超2GB,请分批下载

        请单份下载或分批下载

        支付后60天内可免费重复下载

        我知道了
        正在提交订单

        欢迎来到教习网

        • 900万优选资源,让备课更轻松
        • 600万优选试题,支持自由组卷
        • 高质量可编辑,日均更新2000+
        • 百万教师选择,专业更值得信赖
        微信扫码注册
        qrcode
        二维码已过期
        刷新

        微信扫码,快速注册

        还可免费领教师专享福利「樊登读书VIP」

        手机号注册
        手机号码

        手机号格式错误

        手机验证码 获取验证码

        手机验证码已经成功发送,5分钟内有效

        设置密码

        6-20个字符,数字、字母或符号

        注册即视为同意教习网「注册协议」「隐私条款」
        QQ注册
        手机号注册
        微信注册

        注册成功

        下载确认

        下载需要:0 张下载券

        账户可用:0 张下载券

        立即下载
        账户可用下载券不足,请取消部分资料或者使用学贝继续下载 学贝支付

        如何免费获得下载券?

        加入教习网教师福利群,群内会不定期免费赠送下载券及各种教学资源, 立即入群

        返回
        顶部
        Baidu
        map