2010年9月计算机等考二级VB真题及答案(13)
发布时间:2021-06-06
发布时间:2021-06-06
真题答案
题
(1) 下列程序是判断一个整数(>=3) 是否为素数,请补充完整。
Dim n As Integer
n=InputBox("请输入一个整数(>=3) ")
k=Int(Sqr(n) )
i=2
swit=0
While i <=k And swit=0
If n Mod i=0 Then
【1】 swit=1
Else
【2】i=i+1
End If
Wend
If swit=0 Then
Print n; "是一个素数。"
Else
Print n; "不是一个素数。"
End If
解析:素数是只能被1和本身整除的正整数,在本题的程序中,swit是一个标志变量,如果“swit=0”,则表示n不能被整除;如果能被一个整数整除,则swit变为1;
While循环执行的条件有两个,一个是“I<=k”,另一个是“swit=0”,必须两个条件同时成立才执行循环,当I>k时,显然不必再检查n是否能被I整除;而如果“swit=1”,则表示n已被整除,肯定不是素数,也不必检查了。
只有“I<=k”和“swit=0”两者同时成立时才需要检查“n是否为素数”,循环只有一个判断操作,即判断n能否被I整除,如果不能,则I=I+1。以便为下一次判断作准备。
(2) 下面程序是用来打印九九乘法表的,请补充完整。
Dim i As Integer, j As Integer, Str1$
Str1=""
For i=1 To 9
For j=1 To 9
If 【3】j<=i Then
Str1=Str1 + Str$(j) + "×" + Str$(i) + "=" + Str$(Val(i j) )
Else
Str1=Str1 & Chr(13)
【4】Exit For
End If
Next j
Next i
Print Str1
解析: (1) Exit语句总是出现在If语句或Select Case语句内部,而If语句或Select Case语句在循环内嵌套,用Exit语句中断循环。函数首先定义了两个Integer型变量i、j,并将空格赋给Str1;第一个For循环的变量I从1到9步长为1,第二个循环的变量i也是从1到9步长为1,循环体为选择结构,它是用来输出i*j的值,所以j的值应该小于此时i的值,那么If的判断语句为j<=i,当满足条件时执行Then后面的语句,即输出i*j的值,如果不满足执行Else后面的语句,并跳出内循环。
(3) 在窗体上有一个命令按钮,然后编写如下程序:
Function Trans(ByVal num As Long) As Long
Dim k As Long
k=1
Do While num
k=k * (num Mod 10)
num=num \ 10
Loop
Trans=k
Print Trans
End Function
Private Sub Command1_Click()
Dim m As Long
Dim s As Long
m=InputBox("请输入一个数")
s=Trans(m)
End Sub
程序运行时,单击命令按钮,在输入对话框中输入“789”,输出结果为 【5】504 ,在输入
对话框中输入“987”输出 【6】
504 ,在输入对话框中输入“879”,输出结果为 【7】504 。
解析: 关键字ByVal用来实现传值,也就是说在定义通用过程时,如果形参前面有关键字Byval,则该参数用传值方式传递,否则用传址方式传递;在Sub过程中,先将输入的“456”赋给变量m,m作为参数,调用
上一篇:毕业实习任务书