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

为使左右框内的Visual Basic程序段实现相同的功能,可在左框内划线处填写的代码是:

A . g = 2 B . g = 6 C . g = g + 1 D . g = g + 2
下面给出的赋值语句中正确的是(   )
A . Val(X)=C B . x+y=3 C . Text1.Caption="hello" D . x=x+y  
【加试题】某VB程序功能:输入正整数n,单击命令按钮Command1后,则会衍生出一串有规律的数字,形式为“1 2 3…n-1 n n-1…3 2 1 ”。例如n=6时,显示的数字串为“1 2 3 4 5 6 5 4 3 2 1 ”。

Private Sub Command1_Click()

  Dim a As intger, i As intger, s As String

  n = Val(Text1.Text)

  s = ""

  For i = 1 To 2 * n - 1

    If i > n Then          ①          Else          ②            

  Next i

  text2.Text = s

End Sub

为实现以上功能,①②处分别填写(  )

A . ①s=Str(2*n-i)     ②s=Str(i)          B . ①s=s+Str(2*n-i)   ②s=s+Str(i) C . ①s=s+Str(2*n-1)   ②s=s+Str(2*n)      D . ①s= Str(2*n-1)    ②s= Str(2*n)
在VB中,下列程序段执行后,变量b的值是(  )

a=4

b=7

a=a+b

b=a+b

A . 7 B . 11 C . 15 D . 18
小李用VB编写了一个程序,在文本框Text1输入任意字符串s单击命令按钮 Command1,统计s中以各连续数字字符串为因子的数字之和。如输入字符串“ast23bcde567fg8”,则输出598,即23+567+8,在Text2中输出结果。程序运行界面如图所示。

  1. (1) 若要将文本框的默认值设为空,则应设置文本框的属性为空。
  2. (2) 实现上述功能的VB程序如下,请在划线处填写合适的代码。

    Private Sub Command1_Click( )

    Dim s As String, a As String, b As String

    Dim p As Integer, sum As Integer

    s= Text1. Text+ “e”    ‘加一个结尾非数字字符

    i=1

    P=0

    sum=0

    Do While i< Len(s)

        a=Mid(s, i, 1)

        b =Mid(s,+1, 1)

        If(a > = “0” And a < = “9”) And (b > = “0” And b < = “9” ) Then

            p=p*10+Val(a)

           ①  

            p=p*10+Val(a)

            sum=sum+p

            p=0

            i=i+1

        Eed If

           ②   

    Loop

    Text2. Text= str(sum)

    End Sub

     ② 

  3. (3) 若输入的字符串是“a2b056789bc8”,则程序运行后显示的结果是
简易加法器:小王用VB编写了一个简易加法器,其功能如下:在文本框Text中输入数字,中间用“,”隔开,单击“计算”命令按钮 Command1后,其计算结果输出在标签框 Label1中。运行界面如图所示,VB程序代码如下,请回答以下问题。

  1. (1) 观察代码,可知“计算”命令按钮的对象名为
  2. (2) 请在划线处填入合适的代码。

    Private Sub Command_Click( )

    Dim i As Integer, j As Integer, ans As Integer

    Dim ch As String, s As String

    s= Text1 Text

    ans = 0:j = 1

    For i =l To Len(s)

           ①    

        If ch = "," Then

            ans =ans Val (Mid(s, j, i-j))

            j=     ②    

        End If

    Next i

    Label1. Caption ="计算结果是:"+Str( ans)

    End sub

     ② 

  3. (3) 运行该程序,在文本框中输入“21,5,3”,则计算结果(值)是
有如下VB程序段

Const n = 8

i = 1: j = n

k = Val(Text1.Text)

Do While i < j

  m = (i + j) \ 2

  If a(m) > k Then

    i = m

  Else

    j = m - 1

Loop

p = (i + k) Mod n

Label1.Caption = Str(a(p))

已知数组a(1)到a(8)原始数据为“6,1,8,9,10,11,2,3”,在文本框Text1中输入7,执行上面代码后,Label1中的内容是(    )

A . 6 B . 10 C . 11 D . 2
在VB中,执行完如图所示的程序段后,变量a的值为(  )

Dim a, b, c, As Integer

a=100

b=50

a=a-b

a=a*2

A . 50 B . 100 C . 25 D . 出现错误
执行如下VB程序段,则s的值是(  )

s=56

s1=s\10

s2=s Mod 10

s=s1+s2*10

Print "s="; s

A . 5.6 B . 6.5 C . 56 D . 65
已知一个含有 n 个不重复整数的数组 a,i 和 j 表示数组下标(i<j),在数组 a 中求解表达式 a(i)+i 与 a(j)-j 之和的最大值,VB 程序段如下:

Private Sub Command1_Click()

Dim s As Integer, b As Integer

s = 0: b = a(1) + 1

For i = 2 To n

  

  

Next i

Label1.Caption = Str(s)

End Sub

Function max(x As Integer, y As Integer)

If x > y Then          Else

End Function

方框中的代码由以下四部分组成:

①max = y ②max = x ③b = max(b, a(i) + i) ④s = max(s, a(i) - i + b)

代码顺序正确的是(       )

A . ④③①② B . ③④②① C . ③④①② D . ④③②①
小刘在玩一个数字游戏,给定一个n位正整数(n<=20),根据设定的保留位数,舍去一部分数字,剩下的数字按原次序组成一个最大的新数。例如原数38265083,保留4位,最大数为8683。算法如下:

1)在左边第1位至最后第n个数(从右向左的第n个数)之间,找出最大值,确定新数的最高位;

2)从最大值的下个位置到第n-1个数之间查找最大值,确定新数的第二位。

3)依次类推,确定最终的最大数。

设计了一个VB程序,在文本框Text1中输入一个n位正整数,在文本框Text2中输入保留的位数,点击“确定”按钮,在文本框Text3中输出保留的最大新数。程序运行界面如图所示。

  1. (1) 如果输入的原数是3635132,保留4位数字,则输出的新数是
  2. (2) 实现上述功能的VB代码如下,请在划线处填入合适代码。

    Private Sub Command1_Click()

    Dim a(1 To 20) As String

    Dim ys As String, xs As String       ′xs记录最大的新数

    Dim k As Integer, h As Integer, n As Integer

    Dim i As Integer, j As Integer

    Dim F As Boolean

    xs=“ ”

    ys= Text1.Text

    n= Len(ys)

    k= Val(Text2.Text)

    F= True

    If ys=“ ” Or n > 20 Or k = 0 Or k > n Then

      Label4.Caption =“输入的原数或保留位数不符,请重输!”

      F=False

    End If

    For i= 1 To n

     

     If a(i)<“0” Or a(i)>“9” Then

        Label4.Caption=“输入的原数不是数字,请重输!”

        Text1.Text=“ ”

     F= False

       End If

    Next i

    If F= True Then

     h = 1

     For i = 1 To k

    For j= h To

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

    Next j

    h= h + 1

     Next i

    Text3.Text= xs

    End If

    End Sub

下列说法错误的是(   )
A . input(x)显示出信息x,并要求输入数据 B . min(x)返回变量x的最小值 C . int(x)把变量x转换成整型 D . len(x)用来计算变量x的长度,但x必须是可以计算长度的类型
if语句在使用中包括单分支if语句和双分支if语句。
若输入值为1150,输出结果(    )。

A . 0 B . 10 C . 20 D . 850
完善以下程序代码完。

程序描述:输入三个正整数(a、b、c),将其中最小的那个数赋值给变量min并输出。

代码如下:

a=int(input("请输入第1个正整数:"))

b=int(input("请输入第2个正整数:"))

c=int(input("请输入第3个正整数:"))

if a<b:

        ①  

else:

         ②   

if     ③    :

        ④    

print("最小数为:",min)

  1. (1) ①处的语句是            
    A . b=a B . a=b C . min=a D . min=b
  2. (2) ②处的语句是            
    A . b=a B . a=b C . min=a D . min=b
  3. (3) ③处的语句是            
    A . b<c B . b>c C . min>c D . a>c
  4. (4) ④处的语句是            
    A . c=b B . min=a C . min=b D . min=c  
下列VB程序段实现把文本框Text和Text2中输入的升序字符串合并成一个升序字符串,并在文本框Tex3中显示。

s1=Text1.Text: s2=Text2.Text

n=Len(s1): i=1: j= 1

Do While i<n+j-1 And j<=Len(s2)

    If Mid(s1, i, 1)<Mid(s2, j, 1) Then

           ①  

    Else

        s1= Mid(s1, 1, i-1)+Mid(s2, j, 1)+ Mid(s1, i, n+j-i)

           ②  

    End If

Loop

If    ③    Then s1=s1+Mid(s2, j, len(s2)-j+1)

Text2.Text=s1

横线①②③处的代码为(     )

A . j=j+1  i=i+1   j<=len(s1) B . i=i+1  j=j+1    j<=len(s1) C . j=j+1  i=i+1   j<=len(s2) D . i=i+1  j=j+1    j<=len(s2)
下列 VB 表达式的值最小的是(    )
A . Asc(“Z”) -Asc(“A”) B . 2021 Mod 1000 \ 10 C . 29 + Int(-Sqr(37)) D . Val(Mid(“Hello2021”, 6, 2))
下列python表达式结果为5的是(     )
A . abs(int(-5.6)) B . len("3+5>=6") C . ord("5") D . round(5.9)
下列程序执行后的结果为(  )  

L = [1,-2,3,7,-8,-9,10]

j=len(L)-1

i = 0

k = 0

while i<j:

    while L[i]>0:

        i=i+1

    while L[j]<0:

        j=j-1

    if i<j:

        k = L[i]

        L[i]=L[j]

        L[j] = k

print(L)

A . 1,10,3,7,-8,-9,-2 B . 1,3,7,10,-2,-8,-9 C . 1,3,7,10,-8,-9,-2 D . -2,-8,-9,1,3,7,10
有如下VB程序段:

Dim a(1 To 5) As Integer .

a(1)= 1

For i=2 To 5

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

    If a(i) Mod 2=1 Then

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

    ElseIf i mod 2=0 then

        a(i)=a(i) /2

    End If

Next i

执行程序后,a数组各元素不可能是(     )

A . 1,8,11,20,2 B . 1,4,2,11,4 C . 1,1,8,17,6 D . 1,4,7,6,8