a=1 b=2 c=3
Text1.Text=out(a,b,c) End Sub
程序运行时,单击命令按钮command1后,在文本框Text1中显示的内容是( ) A.0 B.1 C.2 D.3
解析 自定义函数out的功能是求三个数中的最小数,1、2、3三个数中的最小数为1,因此答案为B。 答案 B
[变式4] 小明在VB中定义了以下函数,功能是求a和b的最大公约数。 Function gcd(a As Integer,b As Integer) As Integer Do While b>0 c=a Mod b a=b b=c Loop End Function
调试中发现计算结果一直是0。经过仔细观察与分析,发现错误的原因是( ) A.函数名有错 B.变量c没有定义 C.函数没有返回值 D.b>0应该改为b>=0
解析 A选项函数名的命名规则同变量名。VB中可以省略一些变量的定义,未定义的变量即为通用类型,即根据赋值变化数据类型,所以B选项局部变量c未定义,不影响程序运行。D选项把循环条件改成b>=0反而会使Do Whihe……Loop循环进入死循环。所以正确答案是C。
答案 C
[变式5] 在VB中,设已定义函数过程f,它有三个实型传值参数。设a,b,c为实型变量,则下列能调用该函数的正确语句是( ) A.f
C.f(a+b,b+c,c+a) 解析 注意函数的格式。 答案 C
【例2】 如果一个整数是另一个整数的平方,则称该数是“完全平方数”。如:1=1×1,4=2×2,9=3×3,所以1、4、9是完全平方数。下列VB程序可以求出1到n(1≤n≤1 000)之间的所有完全平方数之和: Private Sub Command1_Click()
Dim s As Long ′用于存储1到n之间所有完全平方数之和 Dim i As Integer,n As Integer n=Val(Text1.Text) s=0 For i=1 To n
If ok(i) Then s=s+i ′当ok函数返回值为True时,执行s=s+i Next i
Label1.Caption=Str(s) End Sub
′ok函数用于判断变量t的值是否为完全平方数 Function ok(t As Integer) As Boolean Dim k As Integer
If k*k=t Then ok=True Else ok=False End Function
方框中的正确语句是( ) A.k=Int(Sqr(t)) B.t=Int(Sqr(k)) C.k=t^2 D.t=k^2
B.f(a+b,b+c) D.fa+b,b+c,c+a
解析 在判断t是否为完全平方数之前,先取出k的值,使k=Int(Sqr(t)),若正好有k*k=t,则得出结论:t是完全平方数,ok=True。 答案 A
【例3】 (2016·9月嘉兴测试)Visual Bsaic程序段如下: Functio f(x As Single,y As Single)As Single
If x>y And y<0 Then f=x^Abs(y) Else f=x*Int(Spr(y)) End Function
Private Sub Command1 Click() Dim a As Single,b As Single
a=Val(Text1.Text):b=val(Text2.Text) Text3.Text=Str(f(a,b)) End Sub
该程序段运行后,文本框Text1、Text2分别输入3,2后,单击命令按钮Command1,文本框Text3中显示的是( )
A.2 B.3 C.6 D.9
解析 本题考查简单的自定义函数,程序运行后,输入两个值3和2分别给变量a和b,text3.text=str(f(a,b))调用自定义函数f,自定义函数f将3和2两个参数变量传递给x和y,判断“x>y and y<0”为假,则返回函数值“x*int(sqr(y))”即“3*int(sqr(2))”,结果为3。 答案 B
【例4】 (2015·10月浙江选考)某数据加密方法描述如下: (1)以字节为单位进行加密处理;
(2)将1个字节的8位二进制数分割成前4位与后4位两个二进制数; (3)分别将上述两个4位二进制数转换为十进制数;
(4)将每个十进制数转换为1个加密字符,对应的“密码表”如下:
值(十进制) 加密字符 0 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 I l i k e C H N p o s t c a r d 小明按照上述方法,设计了一个字符串(仅包含ASCII字符)加密的VB程序,功能如下:单击“加密”按钮Command1,程序依次将文本框Text1中每个字符的ASCII码值作为1个字节转换为两个加密字符,连接这些加密字符,最后在文本框Text2中输出加密结果。下表显示了字符串中一个字符的加密过程:
错误!←转换前字符m
←字符m的ASCII码十进制值 ←对应的二进制数
←分割、转换后的十进制数 ←对应的加密字符 K
程序运行效果如图所示。
实现上述功能的VB程序如下: (1)请在画线处填入合适代码。 Private Sub Command1_Click( )
Dim n As Integer,s As String,i As Integer,ss As String Dim a As Integer ′存储加密前字符的ASCII码
Dim b1 As Integer,b2 As Integer ′分别存储分割、转换后的两个十进制数 s=Text1.Text ①__
For i=1 To n a=Asc(Mid(s,i,1)) b1=a\\16 b2=a Mod 16
相关推荐: