充值活动已开启,快来参与吧 关闭充值活动
当前位置:手动组卷 /高中信息技术 /按知识点
选择知识点
最新上传 最多使用
  • 1. 在Visual Basic程序中,窗体装载的事件过程名是(    )
    A . Form_ Click B . Form_ DblClick C . Form_ Load D . Form_ KeyPress
  • 1. (2022·温州模拟) 小李要编写一个文艺汇演节目的计分系统。有m位评委给n个节目打分,采用100分制,0分表示放弃评分。计分方式为:不计0分,求去掉一个最高分和一个最低分后的平均分,最后从高到低输出成绩。编写VB程序,实现上述功能。运行程序时,在列表框List1中显示n个节目的m个分数,单击“计算”按钮Command1,在列表框List2中显示n个节目的最终得分。程序界面如图所示。

    1. (1) 分析语句Private Sub Command1_Click(),其中Command1、Click、Command1.Click依次表示为(单选,填字母: A .对象名、属性名、过程名/ B .对象名、方法名、过程名/ C .对象名、事件名、过程名)。
    2. (2) 实现上述功能的部分VB程序如下,请在划线处填入合适的代码。

      'n和m是常量,分别表示节目数和评委数,代码略

      Dim df(1 To m * n) As Integer

      Private Sub Form Load()

      '从数据库中读取n个节目的m个评委的评分、依次存入数组df中,并显示在List1中,代码略。

      End Sub

      Private Sub Command1_ Click ()

          Dim i As Integer, j As Integer, cnt As Integer

          Dim sum As Integer, max As Integer, min As Integer

          Dim index(1 To n) As Integer, score(1 To n) As Single

          For i=1 To n

              x=(i-1)*m+1

              y=i*m

              sum=0:cnt=0

              For j=x To y

                 If df(j)=0 Then cnt=cnt+1

                 sum =

              Next j

              max = df(x): min = df(x)     '统计每个节目的最高分与最低分

              For j=x+1 To y

                 If df(j) > max Then max = df(j)

                 If df(j)<>0And()Then min=df(j)

              Next j

              If cnt<m-2 Then score(i)=

              index(i) = i

          Next i

          For i=1 To n

              For j=nToi+1Step -1

                  If  Then

                      t = index(j): index(j) = index(j- 1): index(j- 1) = t

                  End If

              Next j

          Next i

          For i=1 To n

              List2.AddItem"节目" & index(i) & "得分:" & Int (score (index(i))*100)/100

          Next i

      End Sub

    3. (3) 程序中加框处代码有错,请改正。
  • 1. (2022·绍兴模拟) 使用如图a所示的九宫格键盘输入单词,每个单词对应一个按键组合,如“tree对应的按键组合为“8733”;而按键组合“8733”对应的单词有“tree”、“used”等。抽取n个英文单词(可重复),使用九宫格键盘输入,统计最频繁使用的按键组合。

    编写VB程序,实现上述功能。运行程序,在列表框List1中显示n个英文单词(单词仅由小写字母组成且字母个数至少为1),单击“统计”按钮Command1,在列表框List2升序显示全部单词的按键组合,在文本框Text1中显示最频繁使用的按键组合,若有多个,则全部输出。程序运行界面如图b所示。

    1. (1) 下列类中生成的对象具有Text属性的是 (单选,填字母: A . Label / B . TextBox/ C . CommandButton )。
    2. (2) 实现上述功能的部分VB程序如下,请在划线处填入合适的代码。

      'n为常量,代码略

      Dim a(1 To n) As String       '数组a存储所有单词

      Dim b(1To2*n) As String       '数组b存储转换后的按键组合

      Private Sub Form_ Load()

          '读取所有单词存入数组a,并显示在列表框List1中

          '初始化数组b各元素为空字符串,代码略

      End Sub

      Private Sub Command1_Click()

          Dim i As Integer, j As Integer, k As Integer, p As Integer, max As Integer

          Dim m As Integer, key As String, t As String, s1 As String, s2 As String

          key= 222334455566677889999      'key 表示a-z各个字母所对应的键盘数字

          max=0

          '以下代码实现将数组a中的每个单词转化成按键组合,并依次存入数组b中

          For i= 1 To n

              t= ""

              For j= 1 To Len(a(i))

                  m = Asc(Mid(a(i), j, 1))- Asc("a")

                  t=

              Next j

              b(i)= t

          Next i

          '以下代码实现对数组元素b( 1)~b(n)升序排序

         

          Do While i>=1

              For j= 1 To i

                  If b(j+ 1)< b(j) Then

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

                  End If

              Next j

              i=i- 1

          Loop

          '将排序后数组元素b(1)~b(n)显示在列表框List2中,代码略

          s1= b(1)

          p=n+ 1

          i= 1:j= 2

          Do While j<= n      '从数组元素b(n+1)开始存储最高频次的按键组合

              s2 = b(j)

              If s1 < s2 Then

                  If  Then

                     max=j-i

                     p=n+ 1

                     b(p)=s1

                  Else If max=j- i Then

                      p=p+ 1

                      b(p)= sl

                  End If

                  s1= s2

                 

              End If

              j=j+ 1

          Loop

          t=""

          If max<j- i Then

              t= s1

          Else

              For k=n+ 1 To p

                  t=t+ b(k)+" "

              Next k

              If max=j- I Then t=t+" "+s1

          End If

          Text1.Text= "最频繁按键组合为: " &t

      End Sub

    3. (3) 程序中加框处代码有错,请改正。
  • 1. (2022·金华模拟) 某校要举行国际象棋比赛,计划组织k场对弈。每个人最多参加2场对弈,最少参加0场对弈。每个人都有一个与其他人不相同的等级(用一个正整数来表示)。在对弈中,等级高的人用黑色的棋子,等级低的人用白色的棋子。每个人最多只能用一次黑色的棋子和一次白色的棋子。为增加比赛的可观度,观众希望k场对弈中双方的等级差的总和最小。

    比如有7个选手,他们的等级分别是30,17,26,41,19,38,18,要进行3场比赛。最好的安排是选手2对选手7,选手7对选手5,选手6对选手4。此时等级差的总和等于(18-17)+(19-18)+(41-38)=5达到最小。

    窗体form1的运行界面如下图所示,用户在文本框Text1中输入各位选手的等级(以逗号分隔),在文本框Text2中输人要对弈的场数k,单击计算按钮Commmand1,在文本框Text3中显示最小等级差总和。程序运行界面如图所示。

    1. (1) 若要使得的在程序启动时文本框text1中内容自动清空,可在以下哪个事件处理过程中编写代码实现                 (选填)
    2. (2) 实现上述功能的VB程序如下,请在划线处填入合适代码。

      Dim a(0 To 1000) As Integer

      Dim b(0 To 1000) As Integer

      Private Sub Command1_ Click()

          Sum=0

          k = Val(Text2. Text)

          s =Text1. Text

          cnt =1

          For i=1 To Len(s)

              c=mid(s, i, 1)

              If c="," Then cnt=cnt+1 Else

          Next i

          For i=1 To cnt-1

              For j=1 To cnt-i

                  If  Then

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

                  End If

              Next j

          Next i

          '计算出各等级选手之间差值

          For i=1To cnt- 1

              b(i)=a(i+1)-a(i)

          Next i

          For i=1 To k

              Min=i

              

                  If b(j) < b(Min) Then Min = j

              Next j

              Sum = Sum + b(Min)

              

          Next i

          Text3. Text = Str(Sum)

      End Sub

    3. (3) 加框处的程序代码有错,应改为
  • 1. (2022·湖州模拟) 某玩具厂的生产流水线上有道工序,需要使用机械臂对n根长方体木块材料进行自动化排序。排序步骤为:从左起第一个木块开始向右寻找长度最短的,如果木块长度相同,则选择其中厚度较小的记录其位置R1 (不考虑长度及厚度均相同的情况),然后对区间[1,R1]内的木块进行整体翻转。再从第二个木块向右继续寻找,并记录其位置R2,然后对区间[2,R2]的木块进行整体翻转……机械臂循环操作,直至排序完成。排序过程如图a所示,其中⑦的厚度小于⑤的厚度。

    根据.上述要求设计VB程序,功能如下:在窗体加载时,读取木块长度和厚度数据,并显示在列表框List1中,单击“排序”按钮实现木块排序,结果显示在列表框List2中,程序运行界面如图b所示。

    1. (1) 代码Private Sub Com1_ Click ()中的Com1_Click()属于            (单选,填字母)。
    2. (2) 实现上述功能的VB代码如下,请在划线处填写合适的代码。

      Const n = 10

      Dim cd(1 To n) As Single, hd(1 To n) As Single

      Private Sub Form_ Load()

          '通过数据库读取n根木块的长度数据存储到cd数组,厚度数据存储到hd数组,并将数据显示在列表框List1中,代码略

      End Sub

      Private Sub Com1_Click()

          Dim L As Integer, R As Integer

          Dim min As Integer

          Dim i As Integer, j As Integer

          Dim t1 As Single, t2 As Single

          For i=1 To n-1

              min=i

              For j=i+1 To n

                  If  Then min= j

              Next j

              R=min

              

              '实现区间内木块的整体翻转

              Do While L<R

                  t1 = cd(L): cd(L) = cd(R): cd(R) = t1

                  t2 = hd(L): hd(L) = hd(R): hd(R) = t2

                  L=L+1

                  

              Loop

          Next i

          List2. AddItem"长度(cm)"+""+"厚度(cm)"

          For i =1 To n

              List2. AddItem Str(cd(i)) +"" + Str(hd(i))

      Next i

      End Sub

    3. (3) 程序中加框处代码有错,请改正。
  • 1. (2022·宁波二模) 有n个成员共同参加了一项活动,每个人获得一个积分值和一个权值,并且用这个积分值和权值的积作为该成员的最终得分。数组a中存储了这n个成员的积分和权值,其中奇数位置存储积分,偶数位置存储权值,数组存储结构如图a所示:

    图a

    小明同学使用VB编写了一个最终得分处理程序,对上述n个成员按最终得分进行降序排序,并计算出最终得分的中位数(中位数:把所有观察值排序后,正中间的一个即为中位数。如果观察值有偶数个,通常取最中间的两个数值的平均数作为中位数)。程序运行界面如图b所示:

    图b

    1. (1) 语句 List1.Clear中的“Clear”是(单选,填字母:A .对象名 / B .属性名 / C .方法名)。
    2. (2) 实现上述功能的 VB 程序如下,请在划线处填入合适的代码。

      Const n = 11

      Dim a(1 To 2 * n) As Single

      Private Sub Form_Load()

      '读取初始数据,存储在数组a,并显示在列表框 List1 中。代码略

      End Sub

      Private Sub Cmd_sort_Click()

      Dim i As Integer, j As Integer, shift As Integer Dim t As Single, zws As Single

      i = 2

      Do While

      shift = n

      For j =

      If a(2 * j) * a(2 * j - 1) > a(2 * j - 2) * a(2 * j - 3) Then

      t = a(2 * j): a(2 * j) = a(2 * j - 2): a(2 * j - 2) = t

      t = a(2 * j - 1): a(2 * j -1) = a(2 * j - 3): a(2 * j - 3) = t

      End If

      Next j

      i = shift

      Loop

      If n Mod 2 = 1 Then  zws = a(n) * a(n + 1)

      Else

      zws = () / 2

      End If

      '在列表框 List1 中输出处理后数据的排序结果,代码略Label1.Caption = "最终得分的中位数是:" + Str(zws)

      End Sub

    3. (3) 程序中加框处代码有错,请改正。
  • 1. (2022·浙江模拟) 查找峰值问题:随机生成n个正整数(假设n= 20,取值范围为0~ 100),存储于数组a中,将这些数按顺序映射在坐标轴上,相邻的数用直线相连,构建了类似于“心电图”的折线:

    编写VB程序统计所有的峰值(peak)、峰值数量(count)和最高点(high)。

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

    1. (1) 代码“List. AddItem Str( count)”中的AddItem是 (单选,填字母:A .对象名/B .属性/C .事件/D .方法);
    2. (2) 加框处的代码有错误,请改正。

      Const n = 20

      Dim a(1 To n) As Integer

      Private Sub Form_ Load( )

      '随机生成n个数,存储于数组a中,并输出在List1中。代码略。

      End Sub

      Private Sub Command1_ Click( )

        Dim count As Integer

        Dim high As Integer

        Dim peak As Integer

        Dim i As Integer, j As Integer

        count= 0

        if a(1)> a(2) then

          count = 1

          high=-1

          i=1

          Do While i< n-1

            j=i+1

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

              Do While a(j)>a(j-1)

                j=j+1

              Loop

              count =count+1

                    '①

              List2. AddItem“第”+Str(count) +“个峰值:”+ Str( peak)

              If peak > high Then high = peak

                   '②

            Else

              i =i+1

            End If

          Loop

          List2. AddItem“共有:”+Str(count) +“个峰值”

          List2. AddItem“最高点是:”+Str( high)

        End if

      End Sub

  • 1. (2022·浙江模拟) 编写VB程序,实现如下功能:在文本框Text1中输入关键词,例如关键词“ok”,单击“查找”按钮Com-mannd1,在左边的列表框List1所列单词中查找包含“ok”的字符串,如果查找成功,将在右边的列表框List2中输出该单词。若该单词多次符合条件,则只显示一次。如果查找失败,则在列表框List2 中显示“查找无结果“。

    实现上述功能的VB代码如下,运行效果如图所示。请回答下列问题:

    Const n= 5

    Dim a(1 To n) As String

    Private Sub Form_ Load( )

    '将n个字符串分别赋值给数组元素a(1)、a(2)、……、a(n),并在列表list1中显示

    '代码略:

    End Sub

    Private Sub Command1_ Click( )

        Dim s As String, i As Integer, j As Integer

        Dim m As Integer, k As Integer

        Dim flag As Boolean

        s = Text1. Text

        m = Len(s)

        List2. Clear

        flag = False

        For i=1 To n

            k = Len(a(i))

            For j=1 To k- m + 1

                If  = s Then     '①改错

                    List2. AddItem a(i)

                    flag = True

                    Exit For      '退出for 循环

                End If

            Next j

        Next i

        If  Then    '②填空

            List2. AddItem“查找无结果”

        End If

    End Sub

    1. (1) 观察运行界面,窗体中一共有个对象。
    2. (2) 程序代码中,加框处①有错,请改正。
    3. (3) 为实现上述功能,请在加框处②填入合适的代码。
    4. (4) 如果删除程序代码中Exit For语句,对程序最终运行结果(选项:有/无)影响。
  • 1. (2022·浙江模拟) 小王编写VB程序实现Excel筛选最大的n项数据功能。其功能如下:在列表框list1中显示m个原始数据(存储在数组a中),在文本框Text1中输入整数n(n≤m),单击“筛选”按钮Command1后,在列表框List2 中按降序输出最大的n项数据(包括第n项的重复数据)。

    程序运行界面如图所示,实现上述功能的VB程序如下。请回答下列问题:

    Const m= 10

    Dim n As Integer

    Dim a(1 To m) As Integer

    Private Sub Form_ Load( )

        '获取原始数据依次存数组a中,并在列表框List1中显示,数据个数存变量m,代码略

    End Sub

    Private Sub Command1_ Click( )

        Dim i As Integer, j As Integer, k As Integer

        n= Val(Text1. Text)

        i= 1

        Do While i<=n

            k=i

            For j=i+1 To m

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

            Next j

            If i<>k Then

                a(i)=a(i)+a(k): a(k)=a(i) - a(k) :   ①  

            End If

            i=i+ 1

        Loop

        For i=1 To n

            List2. AddItem Str(a(i))

        Next i

        c==n

        For i=n+1 To m

            If  Then c=c+1: List2. AddItem

            Str(a(i))    '改错

        Next i

        List2. AddItem "筛选出" +   ②    + "个成绩"

    End Sub

    1. (1) 代码“Private Sub Command1_ Click( )”中的Command1_ Click( )属于 (单选,填字母:A .对象名/B .属性名/C .事件名/D .事件过程名)。
    2. (2) 请在划线处填入合适的代码。

       ② 

    3. (3) 加框处代码有错误,请改正。
  • 1. (2022·浙江模拟) 现有n* n大小的网格(n≤10),每个格子从左到右、从上到下编号依次编号为1、2、3……n*n,当n为3时,网格如图a所示。

    网格中每个格子都有一面沿对角线方向放置的挡板,且朝向随机。现将一个小球从左上角1号格子自上而下射入网格,则小球将在网格中不断反弹(不考虑实际的能量损失与重力影响等因素),最终从某个格子离开网格,根据挡板的朝向与小球的运动方向,将有几种不同的反弹情况。如图b所示,小球进入网格后,先后经过1、2、5、6、3号格子,之后离开网格。

    编写VB程序,功能如下:在文本框Text1中输入n的值,单击“生成”按钮Command1,生成网格和随机的挡板,并输出。然后单击“开始”按钮Command2,在文本框Text2中显示小球进入网格后的运动路径。程序中利用数组a存储网格的状态,其中“/”与“\”两种字符表示两种朝向的挡板。程序运行界面如图c所示。

    请回答下列问题:

    1. (1) 要使程序运行时,窗体标题显示“网格弹球”,可在Form_Load事件过程中添加语句(单选,填字母: A .Form1="网格弹球" / B .Form1.,Text="网格弹球"/ C .Form1. Caption="网格弹球")。
    2. (2) 实现上述功能的VB程序如下,请在划线处填入合适的代码。

      Dim n As Integer

      Dim a(0 To 100) As String

      Private Sub Command1_Click( )      '生成网格和挡板,

          n= Val(Text1. Text)

          '生成n* n的网格和随机的挡板,并通过图形控件输出,代码略

      End Sub

      Private Sub Command2_ Click( )

          Dim ans As String, pre As String

          Dim cur As Integer

          cur= 1 :  : ans =" "

          Do While cur >= 1 And cur<= n* n

              ans=ans + Str(cur) +“→”

              If pre="左" And a(cur)="\" Or pre= "右" And a(cur)="/" Then

                  cur=cur+n: pre="上“

              ElseIf  Then

                  cur= cur n: pre="下"

              ElselIf pre="上" And a(cur)="\" Or pre=“下" And a(cur)="/" Then

                  If cur Mod n=0 Then

                      Exit Do

                  Else

                      cur=cur + 1: pre="左"

                  End If

              ElseIf pre="上" And a(cur)="/" Or pre=“下" And a(cur)="\" Then

                  If  Then

                      Exit Do

                  Else

                      cur=cur-1: pre= "右"

                  End If

              End If

          Loop

          Text2. Text=ans+"离开"

      End Sub

    3. (3) 程序中加框处代码有错,请改正。
上一页 1 2 3 4 5 下一页 共58页