算法的控制结构 知识点题库

编写“八进制转换器”的VB程序,程序原理是:除八取余法。运行程序,在文本框Text1中输入整数n,单击“转换”按钮Command1,在标签Label1中显示将n转换为八进制的数值,程序代码如下。

Private Sub Command1Click()

Dim y As Integer            '用于存储输入的十进制自然数

Dim s As String             '用于存储转换后的结果

Dim r As Integer

n = Val(Text1.Text)

s = ""

Do While n <> 0           

  r =           ①            '采用除八取余法

  s = Str(r) + s              '将余数添加到结果s中

  n = n \ 8

Loop

Label1.caption=s

End Sub

请根据题意将程序补充完整。

  1. (1) 程序完整后,文本框Text1输入“12”,则Label1中输出的数值是
  2. (2) ①处应填入的代码为
某同学编写了以下Visual Basic 程序段,运行这段程序段,循环体的循环次数为:(   )

 Dim x,y As Integer

  x=2

  y=20

  Do While  x<y

     x =x^2

  Loop

 
A . 4 B . 3 C . 2 D . 0
下列VB程序运行时,单击命令按钮command1后,在列表框 list1 中输出的是

Private Sub Command1_Click()

Dim I  as integer

    For  i=1  to 10  step 2

    If  i>=5  then

    List1.additem str(i-3)

    Else

    List1.additem str(i)

Next i

End Sub

有如下Visual Basic程序:

Private Sub Command1_Click()

Dim i As Integer, c As Integer, n As Integer

n = Val(Text1.Text)

c = 0

For i = 1 To n

If i Mod 3 = 0 Then c = c + 1

Next i

Label1.Caption = Str(c)

End Sub

运行该程序,在文本框Text1中输入20,单击命令按钮Command1,在标签Label1中显示的是

有如下Visual Basic程序段:

 S=0

 For i =         to 5

   S = s+i

 Next i

该程序运行后,循环体  S = s+i被执行4次,则循环变量i的初值是(     )

A . 1 B . 0 C . 2 D . -1
“如果x,y中任意一个为0,那么x=x+1”,能实现该功能的VB语句是(   )
A . If x * y=0 Then x=x+1 B . If x=0 And y=0 Then x=x+1       C . If x=0,y=0 Then x=x+1 D . If x·y=0 Then x=x+1
有如下VB程序段:

Private Sub Text1_Change()

  Dim a, i As Integer

a= Val(Text1.Text)

  For i = 2 To 6 Step 2

    If a<= 15 Then a = a + i

  Next i

  Text1.Text = Str(a)

End Sub

若在文本框Text1中输入2,执行该程序段,For语句的循环次数为(  )

A . 3 B . 5 C . 6 D . 9
有如下VB程序段:

Dim a(1 To 10) As Integer, b(5 To 10) As Integer

a(1) = 71: a(2) = 73: a(3) = 90: a(4) = 79: a(5)  = 76

a(6) = 88: a(7) = 91: a(8) = 84: a(9) = 100: a(10) = 80

For i = 10 To 1 Step -1

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

Next i

该程序段运行后,数组元素b(7)的值是(  )

A . 4 B . 5 C . 6 D . 7
有如下VB程序段:

Private Sub Command1_Click()

  Dim s As String, a As String, t As String

  s = Text1.Text: t = ""

  For i = 1 To Len(s)

    a = Mid(s, i, 1)

    If a >= "0" And a <= "9" Then

      t = t + a

    ElseIf a = "!" Then

      t = ""

    ElseIf t <> "" Then

      List1.AddItem t

    End If

  Next i

End Sub

在文本框Text1中输入“12+23=35!456Ye”,单击按钮“Command1”后,在列表框List1中显示的结果是(  )

A . B . C . D .
有以下VB程序段:

For i = 1 To 3

 For j = 1 To 10

  If j Mod i = 0 Then a(j) = 1 - a(j)

 Next j

Next i

sum = 0

For i = 1 To 10

 sum = sum + a(i)

Next i

已知数组a的所有元素初值均为0,运行上述程序段后,变量sum的值是(  )

A . 2 B . 3 C . 4 D . 5
某算法的部分流程图如图所示,执行该算法后,变量s的值及x←x+1执行的次数分别为(  )

A . 0,3 B . -5,4 C . 0,4 D . -5,3
DO 循环中当型循环的关键字是,直到型循环的关键字是
有如下VB程序段:

L = 0: R = 7: i = 1

Do While i < R

    If a(i) = 0 Then

        L = L + 1

        t = a(i): a(i) = a(L): a(L) = t i = i + 1

    ElseIf a(i) = 2 Then

        R = R - 1

        t = a(i): a(i) = a(R): a(R) = t

    Else

        i = i + 1

    End If

Loop

数组元素 a(1)到 a(6)的值依次为“2,0,2,1,1,0”。执行该程序段后,下列说法不正确的是(  )

A . 变量L的值为2 B . 变量R的值为5 C . 变量i的值为4 D . 数组元素值依次为“0,0,1,1,2,2”
某算法的部分流程图如图所示。执行该流程,输出s和i的值分别是(  )

A . 10  10 B . 0  11 C . 0  10 D . 10  11 
某算法的部分流程图如图所示。执行这部分流程,分别输入3,4,则输出x,y的值分别是(  )

A . 7,4 B . 4,3 C . -4,11 D . 4,11
有下列VB程序段:执行程序时,在文本框Text 1中输入“abc:dk7#Aba1@”(不包括双引号),单击按钮Command 1后,在列表框List 1中显示的结果是(  )

Dim s As String,a As String,t As String

s=Text 1.Text:t=””

For i=1 To Len(s)  

  a=Mid(s,i,1)

  If a>=”a”And a<=”z”Then

    t=t+a

  ElseIf a=”:”or a>=”A”And a<=”Z”Then

    t=““

  ElseIf t<>””Then

    List 1.Add Item t

  End If

Next i

A . B . C . D .
编写VB程序,模拟考场安排,将编号从1开始的n(n为平方数)个学生按m×m方阵以S型进行排列。程序功能如下:在文本框Text1中输入考场人数,点击“排列”按钮Command1,在列表框Listl中输出排列结果。以4×4方阵为例,考生编号为1~16,排列规则如图a所示,运行界面如图b所示。

图a

图b

实现上述功能的VB程序如下,但加框处代码有错,请改正。

Private Sub Command1_Click()

Dim a(1 To 100) As Integer     '用来存储重新排列后的编号

Dim n As Integer,i As Integer,j As Integer,k As Integer,pa

As Integer

Dim s As String

n=Val(Text1.Text)

i=1

   ‘⑴

For k=1 To m

   If k Mod 2=1 Then

     pa=k

     For j=1 To m

         a(pa)=i

         pa=pa+m

         i=i+1

     Next j

   Else

     pa=(m-1)*m+k

     For j=1 To m

         a(pa)=i

             ‘⑵

         i=i+1

     Next j

   End If

Next k

i=1

For k=1 To m       ‘按行对考生编号进行输出

   s=""

   For j=1 To m

     s=s+Str(a(i))

     i=i+1

   Next j

   List1.AddItem s

Next k

End Sub

 ⑵ 

若输入18,下图的执行结果是

某算法的部分流程图如图所示,若要用VB语言实现该部分算法,下列代码符合流程图的是(    )

A . B . C . D .
下列结构中,不属于程序设计的三种基本结构是(   )。
A . 组合结构 B . 选择结构 C . 循环结构 D . 顺序结构
最近更新