选择题   下列过程的功能是:从键盘输入一个大于2的整数,输出小于该整数的最大质数。
    例如,输入20,则输出19;输入10,则输出7。
    Private Sub Command1_Click()
    Dim x,k As Integer,flag As Boolean
    x=Val(InputBox('请输入一个大于2的整数'))
    flag=True
    Do Wbile x>2
    For k=2 To Sqr(X)
    If x Mod k=0 Then
    flag=False
    Exit For
    End If
    Next k
    If Not flag Then
    ______
    flag=True
    Else
    Exit Do
    End If
    Loop
    MsgBox x
    End Sub
    为实现指定功能,程序______处应填写的语句是______。
 
【正确答案】 B
【答案解析】本题要求输入一个数,找出比输入的数小的最大的质数。质数的程序判断为从数值2开始依次能否被整除,如能则不是;如不能,则是要找的数。题目要求找小于输入的数。因此输入的数要依次减小1进行判断是否为质数。例如:输入9,则最大的质数为7。 Sqr(数据表达式):开平方函数,如Sqr(9)=3 1)初始化:x=9 flag=true ; 2)Do While x>2 ;While第一次循环判断9>2是否正确 3)For k=2 to Sqr(x) ;For第一次循环判断是否正确 4)If x mod k=0 then ;If条件判断9 mod 2=0是否正确 5) ;默认For step 1,k=k+1,k=3 6)For k=2 to Sqr(x) ;For第二次循环判断是否正确 7)If x mod k=0 then ;If条件判断9 mod 3=0是否正确 8)flag=false,exit for ;For循环结束 9)If not flag then ;If条件判断not false是否正确 10)x=x-1,flag=true ;x=8,flag=true 11)Do While x>2 ;While第二次循环判断8>2是否正确 12)For k=2 to Sqr(x) ;For第一次循环判断是否正确 13)If x mod k=0 then ;If条件判断8 mod 2=0是否正确 14)flag=false,exit for ;For循环结束。 15)If not flag then ;If条件判断not false是否正确 16)x=x-1,flag=true ;x=7,flag=true 17)Do While x>2 ;While第三次循环判断7>2是否正确 18)For k=2 to Sqr(x) ;For第一次循环判断是否正确 19)If x mod k=0 then ;If条件判断7 mod 2=0是否正确 20) ;默认For step 1,k=k+1,k=3 21)For k=2 10 Sqr(x) ;For第二次循环判断是否正确 22)If not flag then ;If条件判断not true是否正确 23)exit do ;While结束循环 24)msgbox x ;输出x为7 综上所述,故选择选项B。