单选题 下列过程的功能是:从键盘输入一个大于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第一次循环判断2<=Sqr(9)是否正确
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第二次循环判断3<Sqr(9)是否正确
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第一次循环判断2<=Sqr(8)是否正确
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第一次循环判断2<=Sqr(7)是否正确
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 to Sqr(x);for第二次循环判断3<=Sqr(7)是否正确
22)if not flag then;if条件判断no/true是否正确
23)exit do;while结束循环
24)msgbox x;输出x为7
综上所述,故选择B选项。