招生考试网
学历| 高考 美术高考 考研 自考 成考 专升本 中考 会考 外语| 四六级 职称英语 商务英语 公共英语 日语能力 翻译资格 JTEST
资格| 公务员 报关员 银行从业 司法 导游 教师资格 报关 财会| 会计证 经济师 会计职称 注册会计 税务师 资产评估 审计师
工程| 一建 二建 造价师 造价员 咨询师 监理师 安全师 医学| 卫生资格 执业医师 执业药师 执业护士 | 教案 论文 文档
IT类| 计算机等级 计算机软考 职称计算机 高校计算机 推荐-国家公务员 事业单位招聘 军校国防生 自主招生 艺术特长生 招飞
 3773考试网 - 计算机等级考试 - 试题答案 - 正文

2012年计算机二级VB上机重要题型归纳

来源:2exam.com 2012-8-16 12:42:24

 

三、算法

1、排序算法
(1)对读入的数据进行从小到大排序
Dim a(10) As Integer
Private Sub Command1_Click()
    Open App.Path & "\Data5.txt" For Input As #1
    Do While Not LOF(1)
        For i = 1 To 10
            Input #1, a(i)
        Next i
    Loop
    Close #1
End Sub
Private Sub Command2_Click()
’============以下考生编写程序开始================= 
’============考生编写程序结束=====================
End Sub 

(2)将奇偶数分开,将奇数移动到前面,偶数移动到后面。(文本框为控件数组,名称属性分别为Text1(0)~Text1(9))



单击“重排数据”按钮,执行如下代码
’================================================
’算法:
’1)令i指向第1个数,j指向最后1个数,并先暂存最后一个数;
’2)检查第i个数是否为偶数,若不是,再检查下一个,直到第i个是
’   偶数,则把此偶数放到第j个位置,j向前移1个位置;
’3)检查第j个数是否为奇数,若不是,再检查前一个,直到第j个是
’   奇数,则把此奇数放到第i个位置,i向后移1个位置;
’4)重复2)、3),直到i=j
’5)把开始暂存的数放到i的位置
’=================================================
    Dim i%, j%, temp%, flag As Boolean
    i = 0
’    j = ?1
’    ?2 = Text1(j)
    flag = True
’    While (i < ?3)
        If flag Then
            If Text1(i) Mod 2 = 0 Then
                Text1(j) = Text1(i)
                j = j - 1
                flag = Not flag
            Else
                i = i + 1
            End If
        Else
’            If Text1(j) Mod 2 = ?4 Then
                Text1(i) = Text1(j)
                i = i + 1
                flag = Not flag
            Else
                j = j - 1
            End If
        End If
    Wend
    Text1(i) = temp
End Sub
 
参考答案:
1、9
2、temp
3、j
4、1 

2、查找算法:在随机产生(数值互不相同)的数组中输入一个数进行查找
Option Base 1
Dim a(10)
’产生数组
Private Sub Command1_Click()
   For i = 1 To 10
      a(i) = Fix(Rnd * 99 + 1)
’      For j = 1 To  ?1
         If a(i) = a(j) Then
’            i = ?2
            Exit For
         End If
      Next j
   Next i
End Sub
 
’输入一个数进行查找
Private Sub Command2_Click()
   Dim num As Integer, i As Integer
   num = InputBox("请输入待查找的数")
   For i = 1 To 10
’      If a(i) =  ?3  Then
         Text2.Text = Str(num) + "是数组中的第" + Str(i) + "个值"
         Exit For
      End If
   Next i
’   If  ?4  > 10 Then
      Text2.Text = Str(num) + "不存在于数组中"
   End If
End Sub
 
参考答案:
1、i-1
2、i-1
3、num
4、i

3、插入和删除算法
(1)有序数组中插入一个数,让该数组仍然有序
思路:通过比较查找到该数要插入的位置i,将该位置以及后续数逐一向后移动(注意移动时应先移最后一个数)。注意插入后数组的个数要增加1。
Dim a(100) As Integer, num As Integer
’读入升序的数组元素
Private Sub Command1_Click()
    Dim k As Integer
    Open App.Path & "\in4.dat" For Input As #1
    For k = 1 To 60
        Input #1, a(k)
    Next k
    Close #1
End Sub
’输入一个要插入的数
Private Sub Command2_Click()
   num = InputBox("请输入一个数")
End Sub
’插入后数组仍然为升序
Private Sub Command3_Click()
    For i = 1 To 60
       ’If num < a(i) Then ?1
    Next i
    ’For j = 60 To i ?2
      ’a(j + 1) =?3
    Next j
    ’?= num
End Sub
 
参考答案
1、Exit For
2、Step -1
3、a(j)
4、a(i)
 
(2)有序数组中删除一个数
思路:通过比较查找到要删除数的位置i,将该位置以及后续数逐一向前移动(注意移动时应先移第i+1个数)。注意删除后数组的个数要减少1。
’数组a获得有序数
Private Sub Command3_Click()
    num = InputBox("请输入一个数")
    For i = 1 To n                    ’n为数组元素个数
      If num =  a(i)  Then Exit For
    Next i
    
’    If  ?1  Then
        MsgBox "该数不存在于数组中,不能执行删除操作!"
    Else
       n = n - 1
’       For j = i To  ?2
’          a(j) = ?3
       Next
    End If
End Sub
 
参考答案
1、i>n
2、n
3、a(j+1)

 

上一页  [1] [2] [3] [4] 下一页



  • 上一个文章:
  • 网站版权与免责声明
    ①由于各方面情况的不断调整与变化,本网所提供的相关信息请以权威部门公布的正式信息为准.
    ②本网转载的文/图等稿件出于非商业性目的,如转载稿涉及版权及个人隐私等问题,请在两周内邮件fjksw@163.com联系.


    | 关于我们 | 联系我们 | 版权申明 | 网站导航 |
    琼ICP备12003406号