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

在信息加工中,经常要对被处理的数据进行排序,数据的排序有多种方法,冒泡法是一种常用的排序方法,在排序时少不了比较两个变量中值的大小。下列四个选项中,能正确地对x和y两个变量进行比较,并将较大的数放在变量x中的是(   )。  
A . if x >y then(交换变量x, y的值)endif B . if x<=y then(交换变量x, y的值)endif C . if x <y then(交换变量x, y的值)endif D . if x >=y then(交换变量x, y的值)endif
有如下VB 程序段:

S = 0

i = 5

Do While i < 12

  If s <6  Then s = s+i  else  s = s-3

  i = i+1

Loop

执行以上程序后,变量i和s的值分别为(  )

A . 11  5 B . 11  8 C . 12  8 D . 12  5
有如下程序段:

s = 0

For i = 1 To 30

 If i Mod 5 = 0 Then

   s = s + i

   i = i + 6

 End If

Next i

运行后,变量s的值是(   )

A . 105 B . 75 C . 45 D . 25
在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
在Visual Basic中程序段是计算(  )公式的

 s=0

   For i=1 To 10

     t=1

     for j=1 to i

t=t*j

     next j

     s=s+t

   Next i

A . s=1+2+3+4+5+6+7+8+9+10 B . s=1*2*3*4*5*6*7*8*9*10 C . s=1!+2!+3!+4!+5!+6!+7!+8!+9!+10!  D . s=1+2*3+3*4+4*5+5*6+6*7+7*8+8*9+9*10
某算法的部分流程图如图所示。执行这部分流程后,输出m的值是(  )

A . 0 B . 1 C . 2 D . 9
某算法的部分流程图如图所示,执行这部分流程,输入n的值为5,则输出值依次为(  )

A . 4,16 B . 4,5 C . 5,16 D . 5,5
下列程序段执行后,a和b的值分别是(  )。

a=3

b=5

a=a+b

b=a-b

a=a-b

Print a,b

A . a=-2 1=-2 B . a=5 b=3 C . a=3 b=5 D . a=8 b=8
有如下VB程序段:

a(1) = 1: s = 0

For i = 2 To 6

 s = 0

 For j = 1 To i – 1

   s = s + a(j)

 Next j

 a(i) = s + 1

Next i

执行该程序段后,a(6)的值为(   )

A . 15 B . 16 C . 32 D . 64
有以下程序段:

n=int(input(“请输入数字:”))

if n>5 :

  print(4*n)

else :

  print(7*n)

如果输入5,则程序运行的结果为(   )

A . 32 B . 35 C . 49 D . 56
来种编码以4位二进制码为一组,每组前两位表示方向,后两位表示距离。编写一个程序,将编码翻译成方向和距离,距离值为每组编码后两位二进制数转换为十进制数的值。具体功能如下:在文本框Text1中连续输入多组编码,单击“翻译”按钮Command1,结果显示在列表框List1中。程序运行界面如图所示。

  1. (1) 要使程序运行时,文本框Text1的Width属性值为2018,可在Form_Load事件过程中添加语句(单选,填字母:A .Width=2018/B .Text1.Width=2018/C .Width.Textl=2018)。
  2. (2) 实现上述功能的VB程序如下,请在画线处填入合适的代码。

    Private Sub Command1_Click( )

    Dims As String, c As String,d As String

    Dim n As Integer, b1 As Integer, b2 As Integer, v As Integer, i As Integer

    s=Text1.Text:n=Len(s):i=1

    Do While i<=n

        c=Mid(s,i,2)

        If c="00"Then

          d="东"

        ElseIfc="01"Then

          d=“南"

        ElseIf c="10" Then

          d="西(vi)"

        Else

          d="北"

        End If

        b1=Val(Mid(s, i+2, 1))

        b2=Val(Mid(s ,i+3, 1))

        v=   ①  

        List1.AddItemd+""+Str(v)

           ②  

    Loop

    End Sub

     ② 

  3. (3) 若文本框Text1中输入的内容为“1111”,单击“翻译”按钮,列表框List1中显示的内容是
完善以下程序代码。

程序描述: 所谓角谷猜想,是指对于任意一个正整数,如果是奇数,则乘3加1,如果是偶数,则除以2,得到的结果再按照上述规则重复处理,最终总能够得到1。如,假定初始整数为5,计算过程分别为16、8、4、2、1。
程序要求输入一个正整数(不为1),将经过处理得到1的过程输出来。代码如下:

x=int(input('输入一个正整数:'))

while    ①    

    if     ②  

        x=x/2

           ③  

    else:

            ④  

            ③  

        if x==1:

                ⑤  

  1. (1) ①处的语句是(    )
    A . x>1 B . x>2 C . x!=1: D . x!=0:
  2. (2) ②处的语句是(   )
    A . x%3=0: B . x%2=0: C . x%3==0: D . x%2==0:
  3. (3) ③处的语句是(    )
    A . print(‘x/2’) B . print(‘x’) C . print(x) D . print(x/2)
  4. (4) ④处的语句是(   )
    A . x= x/2 B . x= x/2+1 C . x=x*3+1 D . x=3x+1
  5. (5) ⑤处的语句是(   )
    A . pass B . exit C . continue D . break
已知a=8、b=6,以下程序段

    if (a%3=0) Or (b%3=0) :

        c = a * b

    else:

         c = a + b

 执行后变量c的值为(    )

A . 48 B . 14 C . 8 D . 6
下列是一个 Visual Basic 程序:

Sub Command1_Click()

    x=4

    For i=1 To 10 step 3

        If x<i Then x=x+i

        End If

    Next i

    Text1.Text=str(x)

End Sub

该程序运行结束,文本框 Text1 中显示(   )

A . 7 B . 11 C . 21 D . 55
有如下VB程序段:

s="R255:G122:B221:End"

c=1

For i=1 To Len(s)

    t=Mid(s,i,1)

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

        a(c)=t+a(c)

    Else

        c=c+1

    End If

Next i

已知数组a各元素的初始值均为空字符串,执行该程序段后,字符串122存储在数组(    )中。

A . a(2) B . a(4) C . a(5) D . a(6)
小张想要了解自己体育锻炼情况,他以数字的形式记录了自己每天进行的运动项目,如“1,1,2,3,2,3,2,3,3,1,1,4,3”。其中数字1代表篮球;2代表乒乓球;3代表慢跑,…。在记录了一段时间后,小张想知道自己在一段连续时间内最“喜爱”的两项体育运动是什么,以及连续进行的次数。对于这两项体育运动的要求是:

1)这两项运动在记录中必须连续出现,不能被其他运动打断,如“1,2,2,1,2”是一种可能的结果;“1,2,2,1,2,3”则不是可能的结果;

2)这两项运动在记录中出现的次数必须是最多的一种组合。

运动记录

1,1,2,3,2,3,2,3,3,1,1,4,3

序号

两项运动

1,1,2

2,3,2,3,2,3,3

3,3,1,1

1,1,4

4,3

从上表分析可知,小张在一段时间内连续进行的两项运动有5种不同组合,其中组合②中的两项运动持续时间最长,所以最“喜爱”的两项运动为2和3,共连续进行了7次。

根据算法思想,编写VB程序实现如下功能:程序初始化时读取小张记录的一段时间内的所有运动项目,以逗号间隔显示在文本框Text1中,单击“寻找运动项目”按钮Command1,在标签Label4上显示最喜爱的两项运动编号,在文本框Text2中显示这两项运动最长持续的次数。程序运行界面如图所示。

  1. (1) 若输入序列为“3,5,5,4,3,5,5,5,3,3,2,6”,最喜爱的两项运动连续进行的次数为
  2. (2) 实现上述功能的VB程序如下,请在划线处填入合适的代码。

    Dim a(1 To 100) As Integer, n As Integer

    Private Sub Form_Load( )

        '读取已有记录项目总数n

        '读取记录的每次运动项目存入数组 a,并在文本框Text1中显示,代码略

    End Sub

    Private Sub Command1_Click()

        Dim x As Integer, y As Integer    'x, y分别表示当前记录中两个不同项目

        Dim c1 As Integer, c2 As Integer 'c1,c2 分别表示两个项目在当前统计过程中出现的次数

        Dim i As Integer, j As Integer, m1 As Integer, m2 As Integer, ans As Integer

        i = 1: j = 1 

        Do While j <= n And a(i) = a(j)

            j = j + 1

        Loop

        x = a(i): y = a(j)

        c1 =   

        c2 = 1

        ans = j - i + 1

        Do While j < n

            j = j + 1

            If a(j) = x Then

                c1 = c1 + 1

            ElseIf a(j) = y Then

                c2 = c2 + 1

            Else

                Do While

                    If a(i) = x Then c1 = c1 – 1 Else c2 = c2 - 1

                    i = i + 1

                Loop

                If Then

                    y = a(j)

                    c2 = 1

                Else

                    x = a(j)

                    c1 = 1

                End If

            End If

            If ans < j - i + 1 Then

                ans = j - i + 1

                m1 = x

                m2 = y

            End If

        Loop

        Label4.Caption = Str(m1) + "和" + Str(m2)

        Text2.Text = Str(ans)

    End Sub

反转字符串,如输入字符串为“abcdefg”,则输出字符串“gfedcba”,实现该功能的部分程序如下所示,划线处的正确语句是(     )

s = Text1.Text:n = Len(s)

'按s中字符顺序从左到右依次存入到数组a中,代码略

i = 1

Do While i <= n - 1

    t =   ①   

    For j = n - 1 To i Step -1

        a(j + 1) = a(j)

    Next j

       ②  

    i = i + 1

Loop

For i = 1 To Len(s)

    Text2.Text = Text2.Text +   ③   

Next i

A . ① a(n)    ② a(j + 1) = t    ③ a(i) B . ① a(n)    ② a(j) = t    ③ a(i) C . ① a(i)    ② a(j + 1) = t    ③ Str(a(i)) D . ① a(i)    ② a(j) = t    ③ Str(a(i))
小明为了将十进制数转化为k进制数(k值范围在2到16之间),设计如下界面程序:在文本框Text1中输入一个十进制数,在文本框Text2中输入整数k,单击“运行”按钮Command1,程序将十进制转化为k进制值,并在标签Label1中输出结果。请回答下列问题:

  1. (1) 程序窗体中“运行”所用的控件是(选项A . ;B . ;C . ;D . )。
  2. (2) 实现上述功能的VB程序如下,请在划线处填入合适的代码。

    Private Sub Command1_ Click()

      Dim d As Integer, k As Integer, r As Integer

      Dim s As String, c As String

      d= Val(Text1. Text)

      k= Val(Text2. Text)

      s=" "

      Do While d>0

        r=d Mod k

        If r>=10 Then

          c= Mid(“ABCDEF”,,1)

        Else

          c=str(r)

        End If

        s=

        d=d\ k

      Loop

      Label1. Caption=“结果为:”+s

    End Sub

  3. (3) 运行该程序,在文本框Text1中输入“28”,文本框Text2 中输入“16”,单击“运行”按钮,则Label1显示的内容为是
某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

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

A . 053 B . 953 C . 913 D . 103
运行下列Python语句,输出结果为(     )。

a="hello"

b=2

print(a+b)

A . 2 B . hello2 C . hello+2 D . 以上选项都不正确
最近更新