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

下列程序的功能是从键盘上任意输入一个数,判断这个数是正数,负数,还是零,并输出判断结果。程序中横线处有错误,请改正。【根据2011年高考总复习填空题改编】

    Private sub Command1_Click()

        Dim a As Single

        Dim py As String

             a= Val (Text1)  (1)

           If a>0 Then py =”正数”

           If a=0 Then py=”零”

           If a<0 Then py=”负数”

              Label3.Caption=a(2)

     End Sub

  1. (1)  
  2. (2)
有如下Visual Basic程序段:

    Dim year,t as integer

   t=0

    For year=1896 To 2016

    t=t+1

    Next year

该程序段结束后,变量year的值是(   )

A . 2016 B . 2017 C . "2016" D .   "2017"
有如下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
【加试题】有如下程序段:

a(1)=2

For i=2 to 7

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

Next i

i = 1 : j = 7

Do While i <= j

m =(i + j)\ 2

If a(m)= Key Then Exit Do

If Key < a(m) Then j = m - 1 Else i = m + 1

Loop

若key的值为15,则程序执行结束后,j的值为(  )

A . 3 B . 4 C . 5 D . 6
下列程序执行后文本框Text1显示的内容是(  )

s = "Inter(R) Core(TM) i3-4130 CPU @ 3.40GHz"

flag = False:k = 0

For i = 1 To Len(s)

 ch = Mid(s, i, 1)

 If ch >= "A" And ch <= "Z" or ch >= "0" And ch <= "9" Then

  If Not flag Then

   k = k + 1

   flag = True

  End If

 Else

  flag = False

 End If

Next i

Text1.Text = Str(k)

A . 6 B . 9 C . 10 D . 18
有如下VB程序段:

Const n=3

Dim a(1 To n * n) As Integer

Dim I As Integer, j As Integer, s As String

List1.Clear

Randomize

For i=1To n

    s=“”

    For j=1 To n

        a((i- 1)*n+ j)= Int(Rnd*i+j)

        s=s + Str(a((i-1)*n+j))

    Next j

    List1.AddItem s

Next i

执行程序后,列表框List1中输出的不可能是(  )

A . B . C . D .
     for循环编程时,一般流程是:首先考虑,然后考虑需要循环次数。设定相应的
有如下VB程序段:

s = “QUOTES:keep on going never give up!”

flag = False: m = 0

For i = 1 To Len(s)

  ch = Mid(s, i, 1)

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

    If Not flag Then

      m = m + 1

      flag = True

    End If

  Else

    flag = False

  End If

Next i

Text1.Text = Str(m)

程序执行后文本框Text1显示的内容是(  )

A . 5 B . 6 C . 7 D . 21
完善以下程序代码。

程序描述:计算两个浮点数a和b的相除的余数,a和b都是正数。这里余数(r)的定义是:a = k * b + r,其中 k是整数, 0 <= r < b。代码如下:

a=    ①     (input("请输入:"))

b=    ①     (input("请输入:"))

k=   ② 

r=   ③ 

print(r)

  1. (1) ①处的语句是           
    A . int B . float C . a%b D . a/b
  2. (2) ②处的语句是           
    A . a**b B . a//b C . a%b D . a/b
  3. (3) ③处的语句是           
    A . a//b B . a-kb C . a-k*b D . a+kb
下列哪种基本控制结构,可是实现如果a>b的判断(     )。
A . 组合结构 B . 选择结构 C . 循环结构 D . 顺序结构
小王设计一个VB程序以实现对随机数n(2位正整数),进行二进制转换,结果在标签Label1上输出。部分程序代码如下:

n=  ①   

Do while  ②  

    tmp=n mod 2

      ③  

      ④ 

Loop[

Label1.Caption=s

则为实现上述功能,正确的代码顺序应该是(    )

A . B . C . D .
有60个人要组建一个聚会,每人的喜好是一个数值,为提升聚会效果,会务组要把参会人员进行分组,分组原则是:

1)每组不超过8人

2)组内新增人员的喜好值必须与现有组内人员的平均喜好值相差在5以内

3)若新增人员无法加入现有小组,则被分入新组建小组

小V同学根据上述算法设计编写了VB程序,界面如图所示,单击“分组”按钮后,在列表框list1输出分组结果,每组一行,回答下列问题:

Dim a(1 To 60) As Integer      ‘各人的喜好值

Private Sub Command1_Click()

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

    Dim b(1 To 480) As Integer      ‘分组后喜好值

    Dim ave(1 To 60) As Integer, num(1 To 60) As Integer

    For i = 1 To 60    ‘预设60个分组

        num(i) = 1

        ave(i) = 0

    Next i

    c = 1: ave(1) = a(1): b(1) = a(1)

    For i = 2 To 60

        For j = 1 To c

            If Abs(a(i) - ave(j)) <= 5 And num(j) < 8 Then

                ave(j) =    ①  

                num(j) = num(j) + 1

                b(j * 8 - 8 + num(j)) = a(i)

                Exit For

            End If

        Next j

        If    ②   Then

            b(c * 8 + 1) = a(i)

            ave(j) = a(i)

            c = c + 1

        End If

    Next i

    s = ""

    For i = 1 To c

        For j = 1 To    ③  

            s = s + Str(b((i - 1) * 8 + j))

        Next j

        List1.AddItem s

        s = ""

    Next i

End Sub

Private Sub Form_Load()

‘生成60个原始数据,存入数组a,数组b各元素初始化为0,代码略

End Sub

  1. (1) 如图所示,当前数据已被分组,若再新增一个数“64”,会被分在第组。
  2. (2) 在程序划线处填入合适代码,使程序完整。

     ② ③ 

下列(    )不属于选择结构。
A . 单选择 B . 双选择 C . 复选择 D . 多选择
下面过程max()用于求3个数中的最大值,利用这个过程求5个数中的最大值,请填空。

Private Sub Command1_Click( )

    Print “5个数34、124、68、73、352的最大值是:”

    Max1 = max(34,124,68)

    Max1 =

    Print Max1

End Sub

Public Function max(ByVal a%,ByVal b%,ByVal c%)

    If   Then

        M = a

    Else

        M = b

    End If

    If  Then

        Max = m

    Else

       

    End If

End Function

在字符串s中找连续数字(仅限1位数)之和为n的子串,如字符串“142176”中,和为10的子串为“217”。假设所给字符串中必存在满足条件的子串,实现该功能的VB程序段如下:

i=1:sum==0

For j=1 To Len(s)

   

    sum= sum+ Val(chl)   

    Do While sum > n

        ch2= Mid(s,i,1)

        

        i=i+1

    Loop

    If sum=n Then List1. AddItem (3)

Next j

上述程序段3个方框处的表达式分别为(    )

A . (1)ch1= Mid(s, i, 1)    (2)sum=sum- Va1(ch2)(3)Mid(s, i, j) B . (1)ch2= Mid(s, i, 1)    (2)sum= sum+ Va1(ch2)(3)Mid(s, i, j- i) C . (1)ch1= Mid(s, j, 1)    (2)sum=sum- Va1(ch2)(3)Mid(s, i, j-i+1) D . (1)ch2= Mid(s, j, 1)    (2)sum= sum+ Va1(ch2)(3)Mid(s, i, j - i计1)
已知数组a有n个元素,现编写VB程序,实现从第1个元素开始分割出m×m个元素组成方阵(约定n≥m×m),并随机对该方阵进行顺时针90度或逆时针90度旋转。例如:数组元素a(1)到a(18)的值依次为“5,2,3,1,9,4,7,6,0,8,5,3,8,3,7,0,5,1”,在文本框Text1中输入方阵规模4,单击“生成”按钮Command1,生成4×4个元素组成的方阵,并在列表框List1中显示。单击“旋转”按钮Command2,该方阵进行顺时针90度或逆时针90度旋转,并在列表框List2中显示。程序运行界面如图所示。

  1. (1) 对于如图所示的程序运行界面,将方阵规模改为3,单击“生成”按钮后再单击“旋转”按钮,若方阵进行逆时针旋转,则旋转后方阵的第1行数据为(数据之间用“,”隔开)。
  2. (2) 请在划线处填入合适的代码。

    Const n= 100

    Dim a(1 To n) As Integer

    Dim b(1 To n) As Integer

    Private Sub Command1_Click( )

    '根据方阵规模,分割元素组成方阵,并在列表框List1中显示,代码略

    End Sub

    Private Sub Command2_Click( )

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

      Dim s As String

      m= Val(Text1. Text)

      List2. Clear

      k= Int(Rnd * 2)

      If k=0 Then

        For i=1 To m

          For j=1 To m

             b((i- 1) * m+j)=

          Next j

        Next i

      Else

        For i=1 To m

          For j=1 To m

             b((i-1) * m+j)=a((j-1) * m+m-i+1)

          Next j

        Next i

      End If

      s=" "

      For i=1 To m * m

       

        If  Then

          List2. AddItem s

          s=""

        End If

      Next i

    End Sub

算法的基本控制结构有
解决下列问题,适合采用循环结构算法的是(    )
A . 判断一个整数是否为偶数 B . 输入一个圆的半径,计算其面积和周长 C . 输入10000个数值,计算平均值 D . 输入一个正方形面积,求边长
南方每年都有梅雨季,在这期间室内湿度大于60时容易导致物体发霉,需要启动除湿机用于降低湿度。除湿机自动启动的算法需要采用(     )结构。
A . 顺序 B . 分支 C . 树形 D . 循环
数组元素a(1)到a(n*2)为互不相等的正整数(n≥1),要在其中找到最大值和次大值,并分别存储到变量m1和m2中。实现该功能的VB程序段如下:

m1=0:m2=0

For i=1 To n * 2 Step 2

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

        t1=a(i):t2=a(i+1)

    Else

        t1=a(i+1):t2=a(i)

    End If

    If  Then

        m1=t1:m2=t2

    ElseIf  Then

        m2=m1:m1=t1

    ElseIf  Then

        m2=t1

    End If

Next i

上述程序段中方框处可选代码为:①t1>m1     ②t1>m2     ③t2>m1

则(1)(2)(3)处代码依次为(    )

A . ①②③ B . ②③① C . ③①② D . ③②①
最近更新