4.4.2 while循环的应用 知识点题库

有10个数据: 83、90、96、46、44、36、45、47、55、72依次存放在数组元素a(1)到a(10)中,部分VB程序段如下所示:

m = 1:k = 1

For i= 1 To 9

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

k = k + 1

If k > m Then m = k

Else

k = 1

End If

Next i

Text1. Text = Str (m)

执行该程序段,文本框Text1中显示的是(  )

A . 2 B . 3 C . 4 D . 5
有VB程序如下:

Private Sub Command1_Click()

Dim a(0 To 9) As Integer, t as Long

t = Val(Text1.Text)

Do While t <> 0

   a(t Mod 10) = 1

  t = t \10

Loop

For i = 0 To 9

  x = x + a(i)

Next i

End Sub

若在文本框Text1中输入10242048,则程序执行后,变量x的值为(  )

A . 1 B . 2 C . 5 D . 10
小刘在玩一个数字游戏,给定一个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

统计不同单词个数:在Text1中输入一行单词,单词和单词之间用1个空格或标点符号隔开,单击“统计”按钮,在Text2中输出单词的个数,单词区分大小写,句子以符号结尾,程序运行界面如下图所示,部分程序代码如下:

k=0:s = Text1.Text For i = 0 To Len(s)-1

     ①  

  If ch >= "a" And ch <= "z" Or ch >= "A" And ch <= "Z" Then

    word = word + ch

  Else

    For j = 1 To k

      If     ②     Then Exit For

    Next j

    If      ③    Then

      k = k + 1

      a(k) = word

    End If

    word = ""

  End If

Next i

Text2.text=str(k)

则①②③处的代码为(   )

A . ①ch = Mid(s, i, 1) ②a(i) = word            ③ j <= k B . ①ch = Mid(s, i, 1) ②a(j) = word            ③ j <= k C . ①ch = Mid(s, i+1, 1) ②a(i) = word             ③ j > k D . ①ch = Mid(s, i+1, 1) ②a(j) = word             ③ j > k
有如下VB程序段:

Ma = 0: Mb = 0

For i = 1 To 10

    If d(i) > Ma Then

        Mb = Ma

        Ma = d(i)

    ElseIf d(i) > Mb Then

        Mb = d(i)

    End If

Next i

数组元素d(1)至d(10)的值依次为:4,2,5,7,10,8,3,9,1,6,执行该程序段后,变量Ma和Mb的值分别为(    )

A . 1 2 B . 2 1 C . 9 10 D . 10 9
有Visual Basic代码段如下:

s = Text1.Text : sum = 0

c = 1 : j = 0

For i = 1 to len(s)

    ch = Mid(s, i, 1)

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

        j = j + 1

    Else

        If c mod 2 = 1 then sum = sum + Val(Mid(s,i-j,j))

        j=0 : c = c + 1

    End If

Next i

Label1.Caption = Str(sum)

在文本框Text1中输入“20a20b1c29d9”,执行该段代码后,标签Label1中的结果是(   )

A . 70 B . 21 C . 30 D . 79
删除字符:实现从某一字符串删除指定的字符串,并将处理后的字符串重新输出,程序界面如图所示,在文本框Text1中输入原始字符串,在文本框Text2中输入需要删除的字符串,单击command1后,在文本框Text3中输出处理后的结果。实现上述功能的VB程序如下,请在划线处填入合适的代码。

 

Private Sub Command1_Click()

    Dim p As String, k As String, i As Integer

    Dim result As String

    result = ""

    p = Text1.Text

    k = Text2.Text

    i = 1

    Do While i <= Len(p) - Len(k) + 1

        If Mid(p, i, Len(k)) <> k Then

            

            i = i + 1

        Else

            

        End If

    Loop

    Text3.Text =

End Sub

for循环所包含的语句是以(     )为标志的。
A . 变量 B . 语句 C . 缩进 D . 冒号
有如下VB程序段:

b=0

For a=1 to 10

    b=a+b

Next a

c=a+b

执行该程序段后,变量c的值为(    )

A . 55 B . 66 C . 65 D . 20
程序代码如下:

For i=1 To 6

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

Next i

For i=1 To 5

    If i Mod 2=1 And a(i)>a(i+1)Then t=a(i):a(i)=a(i+1):a(i+1)=t a(i)=a(i)+1

    End if

Next i

执行程序后,数据 a 中的各个元素可能是(      )

A . 11 11 8 9 4 8 B . 2 10 2 2 4 3 C . 10 10 2 2 4 4 D . 6 3 7 4 8 5
运行下列程序

Dim a(1 To 5) As Integer

a(1) = 1

For i = 2 To 5

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

    If a(i) Mod 2 = 0 Then

         a(i) = a(i) + i

    Else

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

    End If

Next i

a(1)~a(5)的值不可能的是(   )

A . 1,2,3,8,9 B . 1,6,2,10,11 C . 1,6,11,16,17 D . 1,4,5,10,7
下面程序运行结果是:(    )

c=0

for i in range(1,26):

    if i%2==0:

        c=c+1

print(c)

A . 10 B . 11 C . 12 D . 13
在一千多年前的《孙子算经》中,有这样一道算术题:“今有物不知其数,三三数之剩二,五五数之剩三,七七数之剩二,问物几何?”。即一个数除以3余2,除以5余3,除以7余2,求这个数。

i=

while (i%3!=2  i%5!=3 or i%7!=2):

    i=

print(i)

利用for循环,分别计算1--100中奇数的和、偶数的和。

sum1=0

sum2=0

for i in range(1,100):

    if i%2==0:

        sum1+=i

    else:

        sum2+=i

print(sum1,sum2)

若两个素数之差为2,则该对素数称为双胞胎数,如3,5就是一对双胞胎数。编写python程序,实现如下功能:输入n的值,统计显示n以内的所有双胞胎数。程序运行界面如图所示:

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

def isprime(x):

    for i in range(2,x):

        If

            return False

        return True

        n=int(input(“请输入一个正整数n:”))

        c=0

        k=3

        while k<=n-2:

            if isprime(k) and

                print(k,k+2)

               

                k=k+1

print(“共有”+str(c)+“对双胞胎数”)

求老师想按学生的成绩进行评级,分数和等级对应关系如下表:

分数

0~59

60~69

70~79

80~89

90~99

等级

E级

D级

C级

B级

A级

现要求根据上表统计出各等级学生人数占总人数的比例。小李编写了一个VB程序帮助老师实现该功能:程序运行时,将每位学生的得分(两位整数)存储到数组a中,并在列表框List1

中显示。单击“统计”按钮后,在列表框List2中显示从A级至E级,各等级的人数占总人数的百分比例(四舍五入保留整数)。程序运行界面如图所示:

请阅读代码,并回答以下问题:

Dim n As Integer

Dim a(1 To 50) As Integer

Private Sub Form_Load( )

    Dim adocn As New ADODB. Connection

    Dim adors As New ADODB. Recordset

    Dim str1 As String

    adocn.ConnectionString = "Provider = Microsof.ACE.OLEDB.12.0;Data source=" +App. Path +”\school. accdb”

    adocn. Open

    str1 =“select * from students”

    ardors.Open str1, adocn

    '将每个学生的得分读入数组a中,并在列表框list1中显示,统计学生总人数n

    '代码略

End Sub

Private Sub Comd1_C1ick( )

    Dim cou As Integer,k as Integer

    Dim b(0 To 4) As Integer

    Const dj = “A级B级C级D级E级”

    For i=1 Ton

    k=a(i)\10-5

    If k<0 Then     ①    

    b(k)= b(k) + 1

    Next i

    For i=0 To 4

      cou =       '⑶改错

      List2. AddItem       ②      + Str(cou) +“%”

    Next i

End Sub

  1. (1) 当前读取的数据表名为
  2. (2) 请在划线处填入合适的代码

     ② 

  3. (3) 程序中加框处代码有错,请改正
在窗体上有一个命令按钮(Command1),单击Command1产生50个10到100的随机数统计其中能被6整除的个数,并将结果在窗体上打印出来。代码如下,请补充完善。

Private Sub Command1_Click()

    Dim n As Integer,i As Integer, count As Integer

    Randomize

    Print"本次随机产生10到100且能被6整除的数是:";

    For i = 1 To 50

        n=

        IfThen

            Print n;

            count =

        End If

    Next i

    Print“共”;count; "个"

End Sub

下列程序的运行结果是(      )

PRIVATE SUB FORM_CLICK( )

S=1

FOR I = 1 TO 5

    S=S*I

NEXT I

PRINT S,I

END SUB

A . 15    6 B . 120    6 C . 15     5 D . 120     5
运行以下VB程序,结果是

Dim m As Integer, s As Integer, t As Integer

s=0

t=4

For m=t To 10 Step 2

    s=s+m

Next m

Print s

有如下VB程序段:

Dim a(0 To 10) As String

s= Text1.Text

a(0)= "": a(1)= Mid(s, 1, 1):t= 1

For i= 2 To Len(s)

     If t>= 1 And Mid(s, i, 1)= a(t) Then

         t=t- 1

     Else

         t=t+ 1: a(t)= Mid(s, i, 1)

     End If

Next i

运行程序段,在文本框Text1中输入以下字符串,运行后变量t的值与其它三项不同的是(    )

A . AABAB B . AAABA C . BAABA D . BBABA
最近更新