常量、变量及变量的赋值 知识点题库

在VB中,与语句b = n \ 10 Mod 10 功能相同的是(   )
A . b = ( n mod 100 ) \ 10 B . b = ( n mod 10 ) \ 100 C . b = n mod 10 \ 10 D . b = n \ 100 Mod 10
某算法的部分流程图如图所示,A执行这部分流程后,变量s的值是(  )

A . 3 B . 8 C . 13 D . 21
在VB中,执行下列程序段

S=0

For i=1 To 3

  s=s+2

Next i

Print s

  1. (1) 语句s=s+2执行的次数是(  )
    A . 1次 B . 2次 C . 3次 D . 4次
  2. (2) VB程序段的输出结果是(  )
    A . 0 B . 2 C . 3 D . 6
在计算机系统中,数值一律用补码来表示和存储。求负整数的补码是将该数对应的正数转换为二进制数(不足8位时高位补0),最高位作为符号位为1,其余每位二进制数取反(1变成0,0变成1),末位加1。小明编写了一个VB程序,功能如下:在文本框Text1中输入一个负整数,单击“转换”按钮Command1后,在文本框Text2中显示该数对应的补码。程序运行界面如图所示。

  1. (1) 在设计程序界面时,要使按钮Command1显示为“转换”,应修改该按钮的属性。
  2. (2) 实现上述功能的VB程序如下,请在划线处填入合适代码。

    Private Sub Command1_Click()

    Dim a(1 To 8) As Integer, x As Integer, b As String

    x = Abs(Val(Text1.Text))

    For i = 1 To 7     ‘求反码

     a(i) =

     x = x \ 2

    Next i

    b = “1”: i = 1

    a(1) = a(1) + 1

    Do WhileAnd i < 7

     a(i) = 0

     i=i+1

    Loop

    For i = 7 To 1 Step -1

     b = b + Trim(Str(a(i)))     ‘Trim()函数去除字符前后空格

    Next i

    Text2.Text = b

    End Sub

  3. (3) 运行该程序,在文本框Text1中输入-10,单击“转换”按钮,则显示的补码是
落球游戏。小球从上方随机垂直掉落在孔(“.”)、平板(“-”)、左右滑坡(“/”“\”)、隔板(“|”)后,运动情况如下:

●小球落在孔上,入孔:

●垂直落在平板上,停下;

●落在左滑坡向左滚动,右滑坡向右滚动。若遇平板继续滚动,遇孔则入孔;遇隔板或滑坡则停下;或超出边界;

●落在隔板上,可能向左或向右滑落,概率分别为50%。滑落后运动规律与左右滑坡相同。

假设两个隔板不相邻且左右滑坡总是以“八”出现。小球入孔或超出边界则消失,记消失的概率为100%;小球若停下,记消失的概率为0。

如图a所示,小球随机落下,最终消失的平均概率计算过程如下:

(100%+100%+100%+0.5*(100%+0)+0+0+100%+100%+0.5*(100%+100%)+100%)/10=75%

编写VB程序求解小球消失的概率,程序运行界面如图b所示,代码如下,请回答下列问题:

    Dim s As string

    Dim prob As single

    Private Sub Command1 Click()

    Dim i As Integer, c As string

    s Text1 Text

    prob =0

    For i =1 To Len(s)

    c= Mid(s, i, 1)

    If c=“.” Then

        prob= prob +100

    ElseIf c =“/”Then

        prob= prob slope(i, True)

    ElseIf c=“\” Then

        prob prob+ slope(i, False)

    ElseIf c=“|” Then

        prob =prob+      

   

    End If

Next i

Text2 Text= Str(prob Len(s))

End sub

Function slope(k As Integer, flag As Boolean)As Single

Dim c As string

If flag Then

    For j=

        c= Mid(s, j, 1)

        If c =“.” Then slope =100: Exit For

        If c=“|” Or c=“\”Then slope =0: Exit For

    Next j

    If j< 1 Then slope =100

Else

    For j=k+ 1 To Len (s)

        c= Mid(s, j, 1)

        If c=“.”Then slope =100: Exit For

        If c=“|” Or c=“/” Then slope =0: Exit For

    Next j

    If j>Len(s) Then slope =100

End If

End Function

  1. (1) 在文本框中输入:“ ”则小球消失的概率为
  2. (2) 加框代码有误,请改正。
  3. (3) 请在划线处填入合适代码。
  4. (4) 若删除虚线框处的代码,运行程序,则      。(单选,填字母)
    A . 输出的概率值变大 B . 输出的概率值变小 C . 程序调试错误 D . 输出的概率值不变
某算法的部分流程图如图所示,执行这部分流程后,变量s的值是(  )

A . 0 B . 3 C . 4 D . 5
编写“字符提取”程序,实现如下功能:分别在文本框Text1中输入起始位置L文本框Text2中输入结束位置R(L≤R),单击“提取”按钮,若提取的字符串长度不足10个,则在文本框Text3中依次提取从起始位置至结束位置上的字符,并显示在标签 Label5中。若提取的字符串长度超过10个(包括10个),则标签Label5中只显示从起始位置开始的前10个字符,如提取的字符串为“abedefghijklm”,则显示结果为“abcdefghij”。程序运行界面如图所示。

  1. (1) 根据程序运行界面及程序代码可知,当前窗体中添加的按钮对象的名称为 。
  2. (2) 实现上述功能的VB程序如下,请在划线处填入合适的代码

    Private Sub Command1 _Click( )

    Dim As Integer, As Integer, temp As Integer i As Integer Dim c As String, s As String

    L= Val (Text1. Text)

    R= Val(Text2.Text)

    If R-L <10 Then

        temp =R

    Else

        temp=   ① 

    End If

          ②  

    Do While i < = temp

        c=   ③  

        s=+c

        i=1+1

    Loop

    Label5.Caption =s

    End Sub

     ② ③ 

  3. (3) 若在上图所示运行界面(原始内容含32个字符)的文本框Text1中输入30,文本框Text2中输入45,点击“提取”按钮后,标签Label5中显示的内容为
小庄编写了一个统计数组元素a(1)到a(n)的“升序段”个数s(如图所示的数据序列,其“升序段”的个数等于3)的VB程序。

部分程序如下:

k=0: s=0

For i = 2 To n

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

   

  Else

    If k = 1 Then

      s = s+1

      k = 0

    End If

  End If

Next i

Text1. Text= Str(s)

方框中的正确语句是(  )

A . k = k-1 B . k = 1 C . k = -1 D . k = k+1
数据排序。编写VB程序,使其具有以下功能:通过文本框随机输入几个无序的整数,并存储在数组a中,然后将这些无序的数进行排序,使得这些数按从小到大的顺序排列。

程序运行时,在文本框Text1中依次输入一个整数后按回车键,输入的整数顺序显示在列表框List1中,单击“排序”按钮 Command1,排序后的数据显示在列表框List2中程序运行界面如图所示,回答以下各题:

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

    Dim a (1 To 20) As Integer, n As Integer    ‘ 定义全局变量

    Sub jh (x As Integer, y As Integer)

    ‘jh 为自定义过程,其功能是交换变量x、y的值 Dim temp As Integer

      temp = x

      x = y

      y = temp

    End Sub

    Private Sub Command1_Click ( )

      Dim i As Integer, temp As Integer

      Dim swap As Boolean

      swap = True

      Do while swap = True

        swap = False

        For i = 1 To n-1

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

            Call jh (a(i), a(i+1))     ‘ 调用过程jh,对两个数进行交换

                    ①        

          End If

        Next i

      Loop

      For i = 1 To n

        List2. AddItem a (i)

      Next i

    End sub

    ‘ 输入数据,存储在数组a中,并显示在列表框List1中

    Private Sub Text1_ Key Press (KeyAscii As Integer)

      If KeyAscii = 13 Then ‘表示按下回车键

        n = n+1

                ②        

        List1. AddItem a(n)

        Text1. Text =“ ”

      End if

    End sub

    Private Sub Form_ Load ( )

      n = 0

    End sub

     ② 

  2. (2) 本题中采用的排序算法应属于(填:冒泡排序/选择排序/插入排序)
数组元素a(1)~a(2*n)中存储的一批正整数,以两个数一组,每组中两个数均比前面一 组的两个数要大。现用对分查找的思想,设计一个在数组a中查找数据key的程序 ,如果找到key,在标签Label1上显示“yes”,否则显示“no”

  key = Val (Text1. Text)

  i=1: j=n*2: flag =False

Do While i+1< = j And Not flag

  m=(i+j)\2

  If   ①   Then m=m- 1

  If a(m)=key Or a(m+1)=key Then

    flag = True

  ElseIf a(m) > key Then

      ②    

  Else

      ③ 

  End If

Loop

  If a(i) = key Or a(j) = key Then flag = True

  If flag Then Label1.Caption = "yes" Else Label1.Caption = "no"

划线处的代码正确的是

A . ①m Mod 2 = 1 ② j=m-1 ③i=m+2 B . ①mMod2=0 ② j=m-1 ③i=m+2 C . ①m Mod 2 = 1 ② j=m-2 ③i=m+2 D . ①m Mod 2=0 ② j=m-2 ③i=m+2
某VB程序段如下:

s = "491053"

For i = 1 To 3

   n = Len(s)

   k = 1

   For j = 2 To n

    If Mid(s, k, 1) >= Mid(s, j, 1) Then

      k = j

    Else

      Exit For  'Exit For表示退出循环

    End If

   Next j

   s = Mid(s, 1, k - 1) + Mid(s, k + 1, n - k)

 Next i

Label1.Caption = s

执行该程序段后,标签Label1中显示的值是(  )

A . 053 B . 953 C . 913 D . 103
下面程序的功能是:产生20个[1,100]范围内的随机整数,并统计这20个随机数中的整数的个数(重复出现算1个),结果显示在标签Label 1中。例如:5个随机数[10,20,20,31,32]中不重复数字个数为3。程序部分代码如下:

count=0

For i=1 To 20

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

Next i

For i= 1 To 20

   

Next i

For i= 1 To 100

    If b(i) <> 0 Then count =count+1

Next i

Label 1.caption=“不重复数字个数”+Str(count)

为实现上述功能,则程序①处应填入的语句为(  )

A . b(i)=1 B . b(a(i))=a(b(i))+1 C . b(i)=b(i)+1 D . b(a(i))=b(a(i))+1
有如下VB程序段:

n=0

For i= 64 To 127

    k=i:t=0

    Do While k>0

      m=k Mod 2

       k=k\2

      t=t+m

    Loop

    If t=5 Then n=n+1

Next i

Label 1.Caption=Str(n)

执行该程序段后,则在标签Label 1中显示的内容是(  )

A . 10 B . 15. C . 21 D . 30
(加试题)数组a中存储的是一组正整数,特征是:①以三个数为一组的话,每组中任意一个数都比前面一组中的任意一个数要大;②每组中三个数依次递减;③数组中数的总个数为3的倍数。依据对分查找思想,设计一个在数组a中查找数据key的程序。实现该功能的VB程序如下,但加框处代码有错,请改正。

……

Private Sub Command1_Click()

 Const n = 15

 Dim a(1 To n) As Integer, search As Integer, key As Integer

 Dim i As Integer, j As Integer, m As Integer

'读取一组正整数,按上述规则存入数组a中,代码略。

 key = Val(Text1.Text)

 i = 1: j = n: search = 0

 Do While i <= j

 m = (i + j) \ 2

 If m Mod 3 <> 0 Then      '① 把m调整到三个一组的最后一个数的位置

 If key = a(m) Then

 search = m : Exit Do

ElseIf key < a(m) Then

 j = m - 3

 ElseIf Then      '②

 i = m + 1

 ElseIf key = a(m - 2) Then

 search = m - 2 : Exit Do

ElseIf key = a(m - 1) Then

 search = m - 1 : Exit Do

Else

 search = 0 : Exit Do

 End If

 Loop

 If search <> 0 Then

 Text2.Text = Str(search)

Else

 Text2.Text = "找不到"

 End If

End Sub

加①

   输出语句,表示,有多个输出项可以用分隔。
冒泡排序在某一遍加工过程中没有数据交换时,说明数据已经有序,优化程序段如下:

i = 1: flag = True

Do While i < = 4 And flag = True

flag=False

For j = 6 To i + 1 Step -1

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

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

flag = True

End If

Next j

i = i + 1

Loop

数组元素a(1)到a(6)的值依次为48,36,24,97,77,23,经过该程序段加工后,变量i的值是(     )

A . 1 B . 3 C . 5 D . 4
某算法流程图如图所示。

执行该算法,输出s的值为(  )

A . 1 B . 2 C . 3 D . 4
该算法的功能是(    )

A . 求输入43个数的平均值 B . 求输入42个数的平均值 C . 求输入41个数的平均值 D . 以上三个都不对
在Visual Basic中,如果要在列表框对象List1上显示文字“Python”,则下列语句正确的是(  )
A . List1.Caption="Python" B . List1.AddItem="Python" C . List1.Text="Python" D . List1.AddItem"Python"
在 Visual basic中,要将字符串变量a和b的值连接并将结果在文本框Text1中输出,下列代码合适的是(   )。
A . Str(a+b)=Text1. Text B . Text. Text=a+b C . a+b= Text1. Text D . Text1. Text=a+b