2.2 做出判断的分支 知识点题库

下面VB语句正确的是(   )
A . if  i≠k  then  print “i不等于k ” B . if  i <> k   then  print  i 不等于k C . if  i <> k   then  print  “i不等于k ” D . if  i≠k   then  print  i 不等于k
小乐编写了一个求最小公倍数的程序,他先借鉴更相减损术求出最大公约数,再求出最小公倍数。更相减损术是出自《九章算术》中的一种求最大公约数的算法,其原理是用大数减去小数,互相减来减去,一直到减数与差担等为止。在文本框Text1中输入一个整数,在Text2中输入另一个整数,单击“计算”按钮Command1,在Label3中输出两个数的最小公倍数。程序运行界面如图所示。

  1. (1) 根据程序代码判断,保证程序正常运行,窗体中至少需要个对象。
  2. (2) 为了实现上述功能,请在画线处填入合适的代码。

      Private Sub Command1 Click()

      Dim m As Integer,n As Integer

      Dim gys As Integer

      m=Val(Text1.Text)

      n=Val(Text2.Text)

      a=m:b=n

      Do While m<>n

        If    ①     Then m=m-n Else n=n-m

      Loop

      gys=n

      Label3.Caption=“最小公倍数是:”+     ②   

      End Sub

     ② 

  3. (3) 若在文本框Text1中输入15,在文本框Text2中输入6,单击“计算”按钮后,语句m=m-n执行了次。
设x是正数,下列能用于描述"x是否为偶数"的Visual Basic条件表达式是(  )
A . x \ 2 = 0 B . x / 2 = 0 C . x Mod 2 = 0 D . x = Abs(x)
有如下VB程序段:

   a(1)=1:a(2)=1

   b(1)=1:b(2)=2

   for i=3 to 5

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

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

   next i

执行该段程序后,数组元素b(5)的值为(  )

A . 12 B . 8 C . 5 D . 4
小王用VB编写了一个能自动识别浙江省固定电话号码所属地区的程序,在文本框Text1中输入固定电话全号(“0”+区号+电话号码)单击命令按钮 Command1,程序自动在标签 Label2中输出电话号码所属地区浙江省地市),程序运行界面如图所示。

浙江省电话区号和地区对应关系如下表:

地区

衢州

杭州

湖州

嘉兴

宁波

绍兴

台州

温州

丽水

金华

舟山

电话区号

570

571

572

573

574

575

576

577

578

579

580

  1. (1) 要使程序运行后,命令按钮 Command1的Caption属性值自动变为“识别”,可在(单选,填字母:A .Label2_Click( )/B .Form_Load( )/C .Command1_Click( ))事件过程中添加语句Command. Caption= “识别”。
  2. (2) 实现上述功能的VB程序如下,请在划线处填合适的代码。

    Private Sub Command1_Click( )

    Dim s As String, DH As String, qh As Integer

    DH= “衢州杭州湖州嘉兴宁波绍兴台州温州丽水金华舟山”

    s=Text1. Text

    qh=Val (Mid (s,2,3))

    If gh > = 570 And gh < = 580 Then

        Label2. Caption= “该电话号码属于:”+

           ①    

    Else

        Label2.Caption= “该电话号码不属于浙江省!”

      ②    

    End Sub

     ② 

  3. (3) 若在文本框Text1中输入的内容为“5720-30875121”,单击“识别”按钮,则标签Label2中显示的内容是
有如下VB程序段:

Dim a(1 To 5) As Integer, i As Integer

Dim flag As Boolean, j As Integer

a(1) =1 : a(2) = 1 : a(3) = 1 : a(4)= 1 : a(5) = 1

Randomize

For i = 1 To 5

 j = 1: flag = True

 Do While j <= i - 1 And flag = True

  a(i) = Int(Rnd * 5 + 1)

  If a(i) = a(j) Then

   i = i - 1: flag = False

  End If

  j = j + 1

 Loop

Next i

运行程序后,数组中的数据值可能是(  )

A . 1 4 3 1 5 B . 1 1 3 5 4 C . 1 2 3 5 5 D . 1 3 4 5 6
小周尝试一种新的数据排序方法,先将数据按照增量分成若干组,再分别对这几组数据进行排序并通过缩小增量直到增量为1的方法实现最终排序。如若要将数据“71,54,58,29,31,78,2”升序排序,增量的初值为3,则数据分为3组,为“71,29,2”“54,31”“58,78”,分别对各组数据排序后变为“2,31,58,29,54,78,71”,更新增量为1,最终通过后续处理实现排序。

待排序数据存储在数组a中(a(1)…a(n)),共有n个数据,要求升序排序

Dim a(0 To 100) As Integer

Dim n As Integer

Private Sub Command 1_Click()

    Dim i As Integer,m As Integer

    m=n\2

    Do While  '改错

       For i=1To m

          Call jpsort(i,m)    '调用过程jpsort()

       Next

        m=m\2

    Loop

   

'显示输出结果

End Sub

Private Sub jpsort(start As Integer,w As Integer)

         For i=start To n Step w

         For j= To i+w Step-w    '填空

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

                t=a(j-w)::a(j)=t    '填空

           End If

       Next

    Next

End Sub

请回答以下问题:

  1. (1) 若要修改窗体上显示的内容为“跳跃排序”,应修改的属性名是(单选,填字母:A .Text/B .Caption/C .Load) 。
  2. (2) 划线部分的代码应填①;②;③
  3. (3) 若将虚线框中的程序段删除并要求使排序的结果不变,则应将Do While语句加框处的代码修改为
在参数传递过程中,使用关键字(  )来修饰形式参数,可以使之按值传递。
A . ByVal B . ByRef C . Value D . Reference
   数据类型可以分为数据类型和数据类型。
杨辉三角是我国古代数学的成就之一,如图所示为杨辉三角前5行的数据排列。从图可知,杨辉三角当前行的数值可由前一行推导计算得到。现要求杨辉三角第n行的数据,编写的VB程序功能如下:在文本框Text1中输入n值(n≤30),单击按钮Command1后,在标签框Label1中输出第n行的数据。

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

Private Sub Command1_Click()

 Dim pre(0 to 30)As Long, cur(0 to 30)As Long 

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

 n = Val(Text1.Text)

     ′I处

 For i = 1 To n

   s = “”

   For j = 1 To i

     cur(j)=     ′II处

     s = s & str(cur(j))& “ ”

   Next j

   For j = 1 To i

     pre(j)= cur(j)

   Next j

 Next i

 Label1.Caption = s

End Sub

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

① cur(1)=1     ②pre(1)=1     ③pre(j-1)+ per(j+1)    ④pre(j-1)+ per(j)

程序中I、II方框处正确的选项是(      )

A . ①③ B . ①④ C . ②③ D . ②④
小吴为了研究冒泡排序过程中数据的“移动”情况,编写了一个VB程序,功能如下:在列表框List1中显示排序前的数据(存储在数组a中),在文本框Text1中输入初始位置(即下标值),单击“排序”按钮Command1后,在标签Label1中显示指定初始位置的数据在排序过程中的位置变化情况,排序后的数据显示在列表框List2中。程序运行界面如图所示。

实现上述功能的VB程序如下。

Dim a(1 To 8)As Integer

Dim n As Integer

Private Sub Form_Load( )

  a(1)=30:a(2)=47:a(3)=30:a(4)=72

  a(5)=70:a(6)=23:a(7)=99:a(8)=24

  n=8

  For i=1 To 8

      List1.AddItem a(i)

  Next i

End Sub

Private Sub Command1_Click( )

  Dim i,j,k,pos As Integer

  Dims As String

  s=Text1.Text

  pos=Val(Text1.Text)

  For i=1 To n-1

      For j=n

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

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

          ‘如果pos位置的数据参与交换,则更新pos值,记录pos变化位置

            If pos=j Then

                pos=j-1

                s=s+"→"+Str(pos)

            

                pos=j

                s=s+"→"+Str(pos)

            End If

          End If

      Next j

  Next i

  Label1.Caption=“位置变化情况:"+s

  For i=1 To n

      List2.AddItem Str(a(i))

  Next i

End Sub

  1. (1) 程序中语句“List2.AddItem Str(a(i))”用于将数组元素在List2中显示出来。类似的,可以使用“List2.Removeltem2”删除List2中的第2项(项号从0开始),则Removeltem是(单选,填字母:A .事件名/B .属性名/C .方法名/D .对象名)。
  2. (2) 请将程序代码中的画线处语句补充完整。
  3. (3) 程序代码中加框处有误,请改正。
  4. (4) 程序代码“pos=j-1”表明该元素是和它的一项发生了位置交换(单选,填字母:A .前/B .后/C .没有)。
下列VB表达式正确的是(    )
A . a + |c| B . a1 + 2 C . 3a - 1 D . 2 × h / g
转换字母。从键盘上输入一个小写字母,然后将小写字母装换成大写字母输出。
要求编写一个“统计直角三角形的个数”的程序,功能如下:在文本框Text1中依次输入3*N个数表示三角形的边长(用逗号分隔并以逗号结尾),单击“计算”按钮Command1后,程序统计直角三角形个数,并在标签Label1中显示。程序运行界面如图所示。

Private Sub Command1_Click()

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

    Dim x1 As Single, x2 As Single, x3 As Single, t As Single Dim Totald As Integer, v As Single, s As String

    s = Text1.Text

    k = 0: j = 1: Totald = 0

    For i = 1 To Len(s)

        If Mid(s, i, 1) = "," Then

            v = Val(Mid(s, j, i - j))       '提取三角形边长,保存在变量v中

               ①    

            If k Mod 3 = 1 Then

                x1 = v

            ElseIf k Mod 3 = 2 Then x2 = v

            If x1 < x2 Then t = x1: x1 = x2: x2 = t

            Else

                x3 = v

                If x1 < x3 Then t = x1: x1 = x3: x3 = t

                If   ②    Then Totald = Totald + 1

            End If

           

        End If

    Next i

    Label1.Caption = "一共构成" + Str(Totald) + " 个直角三角形"

End Sub

  1. (1) 请在划线处补充合适的代码。

     ② 

  2. (2) 加框处代码有误,请改正。
  3. (3) 观察程序代码,若正确完成(1)、(2)后,调试过程中出现如下错误提示,可能是程序代码执行到第行报错。

Dim A As String, B As String

Dim C As Long

A="456":B="123": C=Val(A+B)

该程序段运行后,C的值为

Python表达式round(1.326,2)+abs(-2)+7//2的值为( )
A . 6.83 B . 6.82 C . 6.33 D . 6.32
下列选项的结果与其他选项不同的是(     )
A . Mid("5671732",4,2) B . Int(Rnd * 9 + 40) \ 20 + 15 C . 2019 Mod 100 – 2019\1000 D . (Asc("d") - Asc("a"))^ 3-Int(Sqr(101))
表达式 2 + 4 * 5 % 2 ** 3 的值为 (     )
A . 2 B . 6 C . 8 D . 16
阅读下列程序,写出运行结果。

程序运行后,输入:8

运行输出结果是:

下列Visual Basic程序段运行后,变量C的值为(   )。

A = 3:B = 4:C = 5:A = B:B = C:C = A ,

A . 3 B . 4 C . 5 D . 0
最近更新