选择题
下列过程的功能是:从键盘输入一个大于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。