年终活动
搜索
    上传资料 赚现金

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

    立即下载
    加入资料篮
    3.3排序和查找同步练习沪科版信息技术选修1第1页
    3.3排序和查找同步练习沪科版信息技术选修1第2页
    3.3排序和查找同步练习沪科版信息技术选修1第3页
    还剩12页未读, 继续阅读
    下载需要5学贝 1学贝=0.1元
    使用下载券免费下载
    加入资料篮
    立即下载

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

    展开

    这是一份高中信息技术教科版 (2019)选修4 人工智能初步本册综合同步训练题,共15页。试卷主要包含了选择题,填空题,操作题等内容,欢迎下载使用。
    3.3排序和查找同步练习沪科版信息技术选修1学校:___________姓名:___________班级:___________考号:___________ 一、选择题1.有如下VB程序段:key = Val(Text1.Text)i = 1: j = 10Do While i <= j    m = (i + j) \ 2    If a(m) < key Then i = m + 1 Else j = m - 1Loop数组元素a(1)a(10)存放着非降序排列的数字,执行上述程序段后,下列说法错误的是(   Aa(i)可能大于key Ba(i + 1)可能等于keyCa(j - 1)可能等于key Di可能等于112.采用选择排序算法对某数据序列进行排序,经过第一轮排序后的结果是“2837569”,那么原数据序列不可能是(    A3827569 B5837269C8327569 D28975633.已知有这样一种对冒泡排序的优化方法:在每一遍加工过程中,记录在这遍加工中是否进行过数据交换。若在一遍加工过程中没有进行过数据交换,则数据已经有序,可以直接退出循环结束排序。则下列说法错误的是 (   A.对有n个数据的数组进行优化后的冒泡排序,最小比较次数为n-1B.对有n个数据的数组进行冒泡排序,无论是否优化,最大比较次数相同。C.对冒泡排序算法进行优化,能够较大提高其效率,符合算法设计的一般原则。D.若待排序数组中的数据依次为231746583411,对其使用优化后的冒泡排序进行升序排序,比较次数为94.有如下程序段: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 jNext i则程序运行后,数组a(1)a(6)的值可能为(   A347256 B345627C234576 D5432675.有如下VB程序段:key=ValText1.Texti=1:j=9Do While i<j m=i+j\2IfTheni=m+1 Else End If Loop Label1. Caption=Stri已知数组a存储一组升序数“2591113151823”。要查找第一个大于key的元素的下标并输出,则下列选项中正确的是(    A①am<=key  ②j=m B①am<key  ②j=m-1C①am<=key ②j=m-1 D①am<key ②j=m6.采用冒泡排序算法对某数据序列进行排序,经过第一轮排序后的结果是“2839567”,那么原数据序列不可能的是(   A8395276 B8392657C8293576 D83296577.采用选择排序算法对数据序列“10712563”进行排序,第一轮排序后的结果为“12710563”,则整个序列完成排序的比较次数和交换次数分别是(   A156 B115 C153 D1148.下列 VB 程序段的功能是将数组元素 a(1)a(n)进行排序:For i= n To 2 step -1For j  = If a(j) > a(j + 1) Thent = a(j):a(j)=a(j + 1):a(j + 1)=tEnd IfNext jNext 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 D9.某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 410.以下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 IfNext 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 = 50Dim 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 stringd(0) = 2For 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 IfNext iFor i = 1 To 10   输出被选的10个人的名字和身高。  List2AddItem  name(i) & d(i)Next iEnd Sub12.小佳编写了一个统计每个单词出现次数的程序,单词中字母不区分大小写。程序功能如下:程序运行时在文本框 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 IntegerDim i As Integer, b As Integer, k As Integer, d As Integer, j As Integera = Text1.Text: k = 1For i = 1 To 10000n(i) = 0Next ib = 1For i = 1 To Len(a)ch = Mid(a, i, 1)If  Not (ch >= "A" And ch <= "Z" Or ch >= "a" And ch <= "z") ThenIf  i > b Thenw = 取出单词,转为小写,存入 w d = 1Do While w <> dict(d) And d < kd = d + 1LoopIf d = k Thendict(k) = w: n(k) = 1: k = k + 1Elsen(d) =        End IfEnd Ifb = i + 1End IfNext iFor i = 1 To k - 2For j = k - 1 To i + 1 Step -1If n(j) > n(j - 1) Or (       ) Thenx = dict(j): dict(j) = dict(j - 1): dict(j - 1) = xy = n(j): n(j) = n(j - 1): n(j - 1) = yEnd IfNext jNext iFor i = 1 To k - 1List1AddItem dict(i) & " " & n(i)Next iEnd SubFunction LC(s As String) As String ‘单词中字母转为小写Dim i As Integer, c As StringFor i = 1 To Len(s)c = Mid(s, i, 1)If c >= "A" And c <= "Z" Then c = Chr(Asc(c) + 32)             Next iEnd Function13.某书城五种畅销图书的市场价格(单位:元)存放在数组d中,如下表所示。现对这些数据进行升序排列,若采用冒泡排序算法自下而上进行比较和交换,那么在第一遍加工后,d[2]的值是______ d[1]26d[2]32d[3]20d[4]29d[5]36  14n个数据的冒泡排序需要经过n-1遍加工,每一遍加工自下而上比较相信两个数据,把较小者交换到上面。小刘发现:当某一遍加工过程中没有数据交换,说明数据已经有序,无需进一步加工。为此,小刘对算法进行优化,编写了一个VB程序,功能如下:运行程序时,在列表框List1中显示排序前数据,单击排序按钮Commaiid1,在列表框List2 中显示这些数据按升序排序后的结果,在标签Label3中显示排序过程的加工遍数。运行效果如下图所示, 实现上述功能的VB代码如下:Dim a(1 To 8) As IntegerDim n As IntegerPrivate Sub Form_Load()'n=8,排序前数据存储在数组a中,并在列表框Listl中显示'代码略End SubPrivate Sub Command1_Click()Dim flag As Boolean          i = 1flag = TrueDo 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 + 1LoopLabel3.Caption = "排序过程的加工遍数为" +                '填空For i = 1 To n   List2.AddItem Str(a(i))Next iEnd Sub1)代码“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 StringDim 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 = sEnd Sub3)当输入的文本信息如图所示,若删除加框代码,则文本框Text2中显示的内容为______ 三、操作题16.某地学考等级划分规则如下:将考生原始成绩从高到低划分为AB+BC+CD+DE8个等级,各等级人数所占比例分别为3%7%16%24%24%16%7%3%,如下表所示。等级AB+BC+CD+DE比例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.vbw2)请在划线处填上合适的代码。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 StringDim i As Integer, j As Integer, pos As Integer, last As IntegerDim 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 iFor i = 1 To n - 1  For j = 1 To n - iIf 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 jNext ipos = 1For 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  LoopNext iFor i = 1 To n  List2.AddItem xh(i) +" "+xm(i) +" "+Str(bj(i)) +" "+ Str(fs(i)) +" "+ ffdj(i)Next iEnd Sub
    参考答案:1C2C3D4A5A6D7C8B9A10A11.(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))132614     C     i<=n-1 and flag=true     Str(i-1)     true15     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页。试卷主要包含了选择题,填空题,操作题等内容,欢迎下载使用。

    文档详情页底部广告位
    欢迎来到教习网
    • 900万优选资源,让备课更轻松
    • 600万优选试题,支持自由组卷
    • 高质量可编辑,日均更新2000+
    • 百万教师选择,专业更值得信赖
    微信扫码注册
    qrcode
    二维码已过期
    刷新

    微信扫码,快速注册

    手机号注册
    手机号码

    手机号格式错误

    手机验证码 获取验证码

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

    设置密码

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

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

    注册成功

    返回
    顶部
    Baidu
    map