2007年9月计算机等级二级VB考前密卷一及答案

出处:Examlink 作者:唐易龙 日期:2007年08月30日 13时39分

(9) 在窗体上有一个命令按钮,然后编写如下程序:
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",输出结果为 【11】 ,在输入
对话框中输入"987"输出 【12】 ,在输入对话框中输入"879",输出结果为 【13】 。
    答案:504
          504
    解析: 关键字ByVal用来实现传值,也就是说在定义通用过程时,如果形参前面有关键字Byval,则该参数用传值方式传递,否则用传址方式传递;在Sub过程中,先将输入的"456"赋给变量m,m作为参数,调用Trans过程;在Trans过程中以num作为Do While的循环条件;在循环体中,调用Mod函数,将num的个位数字与k相乘,然后赋给k,第一次循环时,num的值是789,所以k的值为9,执行num = num \ 10后,num的值为78,循环三次后,num变为0,退出循环,k值等于9×8×7=504,并将k的值作为返回值;当输入"987"或"879"时执行相同的操作,结果都为504。可以看出,此程序可用于求一个数值各位上数值的乘积。
(10) 下面程序的功能是产生10个小于100(不含100) 的随机正整数,并统计其中5的倍数所占比例,但程序不完整,请补充完整。
Sub PR()
    Randomize
    Dim a(10)
    For j=1 To 10
     a(i) =Int( 【14】 )
     If 【15】 Then k=k + 1
     Print a(j)
   Next j
   Print
   Print k / 10
End Sub
    答案:(99 * Rnd)+ 1
          a(j) Mod 5 = 0
    解析: 小于100的随机正整数用(99 * Rnd)+ 1来表示;求倍数用取模来表示,即a(j) Mod 5 = 0,用k作计数器,累计计算能被5整除的数的个数。

最后更新时间:2008-05-28 12:13:58
文章评论
共有 0 位网友发表了评论
用户名: 新注册) 密码: 匿名评论 [查看所有评论]

评论内容:(不能超过250字,需审核后才会公布,请自觉遵守互联网相关政策法规。
您可以用以下几种方式找到此文章

考试全流程