文档库 最新最全的文档下载
当前位置:文档库 › VB程序填空题

VB程序填空题

VB程序填空题
VB程序填空题

1、下列程序的功能是从键盘上任意输入一个数,判断这个数是正数、负数、还是零,并输出判断结果。程序中有三处错误,请更正。

程序如下:

Private Sub Command1_Click()

Dim a As Single

Dim py As String

a=Val(Text1)

If a>0 Then py="正数"

If a=0 Then py="零"

If a<=0 Then py="负数"

Label3.Caption=a

End Sub

①_________________________②___________________________③_____________________

2、完善程序,使其能输出:1-2+3-4+5-6+...+99-100的值。

程序如下:

Private Sub Command1_Click()

s=_____

For i=1 To _____

s=s+((-1)^(______))*i

Next i

Print s

End Sub

3、已知一元二次方程的二次项系数、一次项系数、常数项分别为a、b、c,其中a不等于0。编写程序,求方程的根,要求:如果方程无实数根,则输出“无实数根”,否则输出两个实数根。程序如下:

Private Sub Command1_Click()

Dim a,b,c,d As Single

Dim x1,x2 As Single

a=Val(Text1.Text)

b=Val(Text2.Text)

c=Val(Text3.Text)

d=b^2-4*a*c

If d________ Then

x1=(-b+Sqr(d))/(2*a)

x2=(-b-Sqr(d))/(2*a)

Label1.Caption=x1

Label2.Caption=x2

_______

Label3.Caption=______

End If

End Sub

4、如果下面程序执行后输出的结果是132,请将程序补充完整:

Private Sub Command1_Click()

i = 12: s = 1

Do While _________________

s = s * i

i = i - 1

Loop

MsgBox (s)

END Sub

5、下面的程序是求7!(7!=1*2*3...*6*7)的值,并在默认窗口输出这个值。程序中有两处错误,请更正。

Private Sub Command1_Click()

Dim a As Single

a=0

For i=1 to n

a=a*i

Next i

Msgbox(a)

End Sub

①_____________________________ ②___________________________

6、下面的程序是求100以内奇数和s的值(S=1+3+5+7...+99)。请将程序补充完整:

Private Sub Command1_Click()

Dim s As Single

Dim i As Single

S=________

For i=1 to 100 Step ________

___________

Next i

Msgbox(s )

End Sub

7、下列Visual Basic 程序:

Private Sub Command1_Click()

Dim sum As Long , i As Integer

sum = 0

For i = 1 To 100 Step 2

sum = sum + i * i

Next i

Text1.Text = Str(sum)

End Sub

该程序能完成计算的数学表达式是________________________________

8、小明数了圈在一起的鸡和兔共有30个头,90只脚,在这个圈子中鸡和兔各有多少只?为了实现这一目标,完善下面的VB程序,在划线处填入合适的语句或表达式。

设鸡为x只,兔为y只,Visual Basic 程序如下:

Private Sub Command1_Click()

Const head = 30, foot = 90

Dim x, y As Integer

y =______________________

x =_______________________

Text1.Text = Str(x)

Text2.Text = Str(y)

End Sub

9、利用文本框输入一个正整数N,求出2+3/2+4/3+5/4+……+(N+1)/N

程序是:

Private Sub command1_click()

Dim N, s, i As Integer

s = 0

N = Val(Text1.Text)

For i = _____ To _________

s = ________________

Next i

Msgbox(_____ )

End Sub

10、编写一个计算矩形面积的Sub过程,然后调用该过程计算矩形面积。

Private Sub Form_Click()

Dim A As Single, B As Single

A = Val(InputBox("What is the length? "))

B = Val(InputBox("What is the width? "))

Call Recarea(A, B)

End Sub

Sub Recarea(Rlen As Single, Rwid As Single)

Dim Area As Single

Area = _______________________

MsgBox "Total Area is " & ________________ '输出矩形面积

End Sub

11、用物理天平测量物体的质量时,测得物体的质量为a克(a为整数,并小于1千克),问:这时在天平的砝码盘中应有哪几个砝码?请选用最少数量的砝码(称质量为1千克的物体,天平

的砝码由下列质量的砝码组成:500克1个,200克1个,100克2个,50克1个,20克1个,10克2个,5克1个,2克2个,1克1个)。

为了实现这一目标,请参照右边的流程图完善下面的VB程序,在划线处填入合适的语句或表达式,完成程序设计。

Dim a(1 To 12) As Integer

Dim i As Integer, x As Integer

Private Sub Command1_Click()

a(1) = 500: a(2) = 200: a(3) = 100: a(4) = 100

a(5) = 50: a(6) = 20: a(7) = 10: a(8) = 10

a(9) = 5: a(10) = 2: a(11) = 2: a(12) = 1

x = Val(Text1.Text)

i = 1

Do While ____________

If x >= a(i) Then

List1.AddItem Str(a(i))

____________________

End If

i = i + 1

Loop

End Sub

12、有一个单击按纽过程,其作用是产生50个60~100的随机数,统计其中被6整除余2的个数,并将这些数输出。请补充下面的程序:

Private Sub command1_click()

Dim X, N As Integer

Dim counter As Integer 'counter 用来保存能被6整除余2的数据的个数

Randomize Timer '随机数初始化,以时钟为随机数种子

For N = 1 To 50

X = ___________+ int(Rnd * 40) '随机产生50个60~100的随机数

If X Mod 6 = 2 Then

List1.AddItem Str(X)

_________________________

End If

Next N

Print counter

End Sub

13、下面是一个检测密码的程序(界面如图7-4,其功能是:当用户输入的密码正确时,在窗体上显示“欢迎您使用本系统”;否则显示“密码错误!请重新输入密码:”。正确的密码是0123456789。

仔细阅读程序,请问程序中划线处的语句应为___________________。

Private Sub Form_Load()

Text1.Text = "": Text1.MaxLength = 10

Text1.PasswordChar = "*" '表示密码用*显示

Label2.Caption = "": Label2.Alignment = 2

End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)

Label2.Caption = ""

If KeyAscii = 13 Then 'KeyAscii=13表示是回车键

If ______________________________________________ Then

Label2.Caption = "欢迎您使用本系统!"

Else

Label2.Caption = ____________________________

'以下两语句的作用是使程序能自动选中错误的密码,使用户可直接重新输入

Text1.SelStart = 0

Text1.SelLength = Len(Text1.Text)

End If

End If

End Sub

14、猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早晨又将剩下的桃子吃了一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第十天早上再想吃时,见只剩一个桃子了。问:第一天猴子共摘了多少个桃子。

为了实现这一目标,完善下面的VB程序,在划线处填入合适的语句或表达式,完成程序设计。Visual Basic 程序如下:

Sub Command1_Click( )

Dim i, s As Integer

____________________

For i=1 to 9

_______________________

Next i

Text1.Text = Str(s)

End Sub

15、下面程序(界面如图7-3)的功能是:将0到255之间的十进制整数转换为二进制整数的表示形式。在如图中上面的文本框(Text1)中输入一个0到255之间的十进制整数,单击“转换”按钮,该十进制整数的二进制形式会显示在下面的文本框(Text2)中。为了实现这一目标,程序中划线处的语句应为_____________.

Private Sub Command1_Click()

Dim a As Integer

Dim s As String

Dim i As Integer

Dim c(1 To 8) As Integer

a =val( Text1.Text)

If a < 0 Or a > 255 Then

Text2.Text = "输入数据错误,请重新输入!"

Else

For i = 1 To 8

c(i) = a Mod 2

a = ________________

s = Str(c(i)) + s

Next i

Text2.Text = s

End If

End Sub

16、个位数字是6,且能被3整除的3位数共有多少个?下面程序用于解决这一问题,在划线处填入合适的语句或表达式,设共有n个这样的数,Visual Basic程序如下:

Sub Command1_Click()

Dim i As Integer, n As Integer

m = 106

n = __________

Do While m <= 996

If _______________________ Then n = n + 1

m = __________

Loop

Text1.Text = Str(n)

End Sub

17、求两个整数的最大公约数分析:求最大公约数的算法思想:

(1) 对于已知两数m,n,使得m>n;

(2) m除以n得余数r;

(3) 若r=0,则n为求得的最大公约数,算法结束;否则执行(4);

(4) m←n,n←r,再重复执行(2)。

例如: 求m=14 ,n=6 的最大公约数. m n r

14 6 2

6 2 0

请根据以上思路补充下面的程序代码:

Private Sub Command1_Click()

m = InputBox("m=")

n = InputBox("n=")

If m < n Then t = m: m = n: n = t

r = ________________

Do While (r <> 0)

m = n

n = r

r = m Mod n

Loop

Print "最大公约数=", n

End Sub

18、以下程序的功能是:从键盘上输入若干个学生的考试分数,统计并输出

最高分数和最低分数,当输入负数时结束输入,输出结果,请将程序补充完

整。

Private Sub Form_Click()

Dim x, amax, amin As Single

x = InputBox("Enter a score")

amax = x

amin = x

Do While _____________

If x > amax Then

amax = x

End If

If _____________ Then

amin = x

End If

x = InputBox("Enter a score")

Loop

Labe1.Text= amax

Label2.Text=___________

End Sub

19、从键盘键入一个整数x,将x插入到一列有序数据:-5,3,4,12,20,45,70中,并使数据序列仍保持有序,试求出x应插入的位置。

为了实现这一目标,请参照右边的流程图,完善下面的VB程序,在划线处填入合适的语句或表达式,完成程序设计。

Dim a(1 To 8) As Integer

Dim n, i, j, x As Integer

Private Sub Command1_Click()

x = Val(Text2.Text)

If x > a(n) Then

______________________

Else

i = 1

Do While x > a(i)

_________________

Loop

End If

Text3.Text = Str(i)

End Sub

Private Sub Text1_KeyPress(KeyAscii As Integer)

If KeyAscii = 13 Then

n = n + 1

a(n) = Val(Text1.Text)

List1.AddItem Str(a(n))

Text1.Text = "": Text1.SetFocus

End If

End Sub

20、输入100个数,统计其中负数、零及正数的个数。

Private Sub Form_Click()

Dim i , fs, zs, ns As Integer ‘fs, ns, zs分别代表负数、零及正数的个数

Dim k As Double

For i = 1 To 100

k = Val(InputBox("输入一个数据"))

If k > 0 Then

____________

ElseIf k < 0 Then

fs = fs + 1

Else

_________

End If

Next i

Print "负数、零及正数的个数分别是:"; fs, ns, zs

End Sub

21、有一个数组DATA存放了N个数据,现从中删除了一个元素,其余的元素依次向前递补(假设删除的是第3个元素,则要将第4个元素移到第3个元素处,第5个元素移到第4个元素处,以此类推),然后输出数组内容。填写程序中的空缺

Private Sub Command1_Click()

Dim data(10) As Integer

Dim I, N, T As Integer

N = 10

For I = 1 To N

data(I) = I * 2

Next I

T = InputBox("删除第几个元素")

For I = ____________________

data(I - 1) = data(I)

Next I

__________________

For I = 1 To N

Print data(I);

Next I

End Sub

22、寻找100以内的勾股数。“勾三股四弦五”大家都知道32+42=52,3,4,5就是勾股数,寻找100以内的勾股数。请完成下面的程序填空:

Private Sub Command1_Click()

Dim sum As Integer

Dim i, j, k As Integer

List1.Clear '假定k>j>i,可以避免重复寻找

sum = 0

For i = 1 To 100

For j = 1 To 100

For k = j To 100

If __________________________ Then

List1.AddItem (Str(i) + Str(j) + Str(k))

sum = sum + 1 '统计个数

End If

Next k

Next j

Next i

Label1.Caption = "组数:" + Str(sum)

End Sub

23、随机产生10个1-100之间的正整数,按从小到大的次序排序并输出。为了实现这一目标,完善下面的VB程序,在划线处填入合适的语句或表达式,完成程序设计:

Sub Command1_Click()

Const n = 10

Dim i As Integer, j As Integer, t As Integer

Dim a(1 To 100) As Integer

For i = 1 To 10

a(i) = 100 * Rnd(1) + i

Next i

For i = 1 To n - 1

For j = i + 1 To n

If ___________________ Then

k = a(i): a(i) = a(j): a(j) = k

End If

Next j

Next i

For i = 1 To 10

List1.AddItem Str(a(i))

Next i

End Sub

24、有30个人,其中有男人、女人和小孩。他们在一家饭馆里花去500元。已知,每个男人花30元,每个女人花20元,每个小孩花10元。问:男人、女人、小孩各为多少人。为了实现这一目标,完善下面的VB程序,在划线处填入合适的语句或表达式,完成程序设计。

Private Sub Command1_Click()

Dim man As Integer, woman As Integer, child As Integer

For man = 1 To 15

For woman = 1 To 23

child = _________________________

s = 30 * man + 20 * woman + 10 * child

If _____________________ Then

List1.AddItem Str(man) + "" + Str(woman) + "" + Str(child)

End If

Next woman

Next man

End Sub

25、在我国古代《孙子算经》中曾经提出这样一个问题。原文是这样的:“今有物,不知其数,三三数之,剩二;五五数之,剩三;七七数之,剩二;问物几何?”试用枚举法来解决这一问题。现分析如下,所寻找之数为满足如下条件的自然数:以3除余2,以5除余3,以7除余2,程序将从自然数1开始依次寻找,逐一判断某一自然数是否满足全部条件,直至在指定范围内找到满足条件的所有自然数。程序代码如下,请补充完整:

Private Sub Command1_Click()

Dim sum As Integer 'sum用来统计符合条件的自然数个数

Dim n, max As Integer

List1.Clear

sum = 0

max = _________________ '指定查找范围的最大自然数,在text1框中输入

n = 0

Do While n <= max

n = n + 1 '从自然数1开始不断往上寻找

If _________________________________________________ Then

List1.AddItem Str(n) '找到后在list1中显示结果

_________________________________

End If

Loop

List1.AddItem ("共计" + Str(sum) + "个")

End Sub

26、下面程序若用于计算s=1!+2!+3!+4!+5!+6!+7!+8!+9!+10!,则程序中划线处的语句应为

__________________ 。

s = 0: t = 1

For i = 1 To 10

___________________

s = s + t

Next i

27、用VB编写一个计算S=1-1/3!+1/5!-1/7!+……+(-1)n--1/(2n-1)!的程序,程序代码如下,请补充完整:

Private Sub Command1_Click()

Dim i, n As Integer

Dim j, s As Double

j = 1

s = 1

n = Val(Text1.Text)

For i = 2 To n

j = ______________________ '计算1/(2*i-1)!

s = __________________________ '累加通项式

Next i

Text2.Text = Str(s) '结果显示到文本框text2中

End Sub

28、设有n盏灯,放在一排,从1~n依次顺序编号。有n个人也从1到n依次编号。第1个人(1号)将灯全部关闭,第2个人(2号)将凡是2的倍数的灯打开,第3个人(3号)

将凡是3的倍数的灯做相反处理(该灯如为打开的,则将它关闭,如关闭的则将它打开),

以后的人都和3号一样,将凡是自己号数倍数的灯做相反处理。试计算,当n个人操作后,

哪几盏灯是亮的。(提示:亮灯为0,关闭为1)为了实现这一目标,完善下面的VB程序。

根据右面的流程图,在划线处填入合适的语句或表达式,完成程序设计。

Private Sub Command1_Click()

Const n = 20

Dim i, j As Integer

Dim a(1 To n) As Integer

For i = 1 To n

a(i) = 0

Next i

For i = 1 To n

For j = 1 To n

If j Mod i = 0 Then

_______________________

End If

Next j

Next i

For i = 1 To n

If ____________ Then List1.AddItem Str(i) Next i

End Sub

VB新题库(填空题)

所有填空题 1、VB6.0是运行于______操作系统环境下的一个快速可视化程序开发工具,用它进行程序设计,有两个基本的特点,即______和______。 答案:1:Windows9x/NT#Windows9x/NT#Windows9x\NT#Windows9x\NT#Windows9x#Windows NT#Windows9x#WindowsNT#windows9x/NT#windows9x/NT#windows9x\NT#windows9x\NT#windows9x#windows NT#windows9x#windowsNT 2:事件驱动编程#可视化设计 3:可视化设计#事件驱动编程 等级:1难度:1 知识点:VB知识点/VB简介 2、VB是一种面向______的可视化编程语言,它采用______的编程机制。 答案:1:对象 2:事件驱动 等级:1难度:1 知识点:VB知识点/VB的编程环境 3、在VB集成开发环境中,运行应用程序的方法有两种:______或______。 答案:1:编译运行模式#解释运行模式#编译运行#解释运行 2:解释运行模式#编译运行模式#解释运行#编译运行 等级:1难度:1 知识点:VB知识点/VB简介 4、VB的对象主要分为______和______两大类。 答案:1:窗体#控件 2:控件#窗体 等级:1难度:1 知识点:VB知识点/VB的对象、属性、方法和事件 5、VB中,用来描述一个对象的状态或特征的量称之为对象的______。 答案:1:属性 等级:1难度:1 知识点:VB知识点/VB的对象、属性、方法和事件 6、在VB中,最基本的对象是______。 答案:1:窗体 等级:1难度:1 知识点:VB知识点/VB的对象、属性、方法和事件 7、一个对象响应某个事件后所执行的操作是通过一段程序代码来实现,这段程序代码称______。 答案:1:事件过程 等级:1难度:1

vb程序设计试题(含答案)

第一套试题 一、选择题(每题2分,共30分) 1.在VB环境中,工程文件的扩展名是( C ) (A).frm (B).bas (C).vbp (D).frx 2.下面4项中不属于面向对象系统三要素的是( A ) (A)变量(B)事件(C)属性(D)方法 3. \、/、Mod、*这4个算述运算符中,优先级别最低的是( C ) (A)\ (B)/ (C)Mod (D)* 4.要使Print方法在Form_Load事件中起作用,要对窗体的( C )属性进行设置(A)BackColor (B)ForeColor (C)AutoRedraw (D)Caption 5.不论何控件,共同具有的属性是( B ) (A)Text (B)Name (C)ForeColor (D)Caption 6.要使Form1窗体的标题栏显示“欢迎使用VB”,以下语句正确的是( D ) (A)Form1.Caption=“欢迎使用VB”(B)Form1.Caption=ˊ欢迎使用VBˊ(C)Form1.Caption=欢迎使用VB (D)Form1.Caption=〞欢迎使用VB〞 7.VB提供了结构化程序设计的3种基本结构,这3种基本结构是( D ) (A)递归结构,选择结构,循环结构(B)选择结构,过程结构,顺序结构 (C)过程结构,输入、输出结构,转向结构(D)选择结构,循环结构,顺序结构 8.给变量赋值a=123+MID(“123456”,3,2),a变量中的值是( D ) (A)“12334”(B)123 (C)12334 (D)157 9.下面If语句统计满足性别为男、职称为副教授以上、年龄小于40岁条件的人数,不正确的语句是( D ) (A)If sex=“男”And age<40 And InStr(duty,“教授”)>0 Then n=n+1 (B)If sex=“男”And age<40 And (duty=“教授”Or duty=“副教授”) Then n=n+1 (C)If sex=“男”And age<40 And Right(duty,2)= “教授” Then n=n+1 (D)If sex=“男”And age<40 And duty=“教授”And duty=“副教授” Then n=n+1 10.若要清除列表框的所有内容,可用来实现的方法是( C )

VB程序填空复习题

二级VB程序设计练习 程序填空 1.下面程序按每行10个数打印出30个介于-300到300间无重复的随机整数,并显示其中的最小值。数组b(30)存放所产生的无重复的随机整数,运行结果如图所示。 Private Sub Command1_Click() Dim b(30), j As Integer, k As Integer Dim y As Integer, x As Single, min As Integer For j = 1 To 30 lb: x = Rnd If x > 0.5 Then y = 1 Else y = -1 b(j) = y * Int(Rnd*301) k = 1 Do While k

If b(j) = b(k) Then Goto lb k = k + 1 Loop Print b(j); If j Mod 10=0 Then Print Next j min = b(1) For j = 1 To 30 If b(j) < min Then min=b(j) Next j Print min End Sub 2.下面程序用于对9位的号进行校验。参数mno存放号,mjy存放产生的校验位,tag判断校验正确否,若校验正确tag置1,否则为0。产生校验位的算法为:取号右边的8位之和关于9的模作为校验值,号最左边的一位为校验位。 Public Sub foe(ByVal mno As String, mjy As Integer, Tag As Integer) Dim msum As Integer, m As String msum = 0 for j=2 to 9 m = Mid(mno, j, 1)

VB程序题

VB程序设计结构:顺序结构、分支结构、循环结构。 一、顺序结构题: 二、分支结构: IF <条件> Then <语句组1> Else <语句组2> Endif IF <条件> Then <语句组> Endif 答案:1、a=6 b=5 2、Value=60 3、a=9 4、a=9:b=7 5、a=7 b=9 1、以下程序段的执行结果是? A=1 b=5 c=4 a=b b=c c=a Print a;b;c 2、该程序段运行后, 变量b的值为? a=7 b=8 a=a+b b=a-b 当条件满足时,执行语句组1 当条件不满足时,执行语句组2 执行完语句组1或语句组2后执行 Endif下面的语句。 4、该程序段运行后,变量a的值 为? a=8 b=7 z=a a=b b=z 5、经过几下几条语句,A和B的值分别为多少? A=6 B=7 C=A A=B B=C 6、Text1和Text2中分别输入5,6, 求Labe7l中值? Dim X AS Single, Y AS Single, Z AS Single X=Val(Text1.text) Y=Val(Text2.text) Z=X*Y/10 Label7.caption=Z 当条件满足时,执行语句组,接着执行Endif下面的语句。 当条件不满足时,执行Endif下面的语句。 1 、以下程序段的执行结果为? A=5 B=6 If A=10 Then Value=5*x Else Value=4*x End If Select case 表达式

VB题库程序填空

程序填空〖第1题〗『程序填空』(1分)(题号:59) '------------------------------------------------------- '【程序填空】 '------------------------------------------------------- ' 功能:输入一个数,若大于0,则显示"+";若小于0, ' 则显示 "-";若等于"0",则显示"零"。 '------------------------------------------------------- Private Sub Command1_Click( ) x = Val Select Case x '**********SPACE********** Case is > 0 = "+" Case Is < 0 '**********SPACE********** = "-" '**********SPACE********** Case is = = "零" End Select End Sub 答案: 1). Case Is > 0 2). = "-" 3). Case 0 或 Case Else 或 Case Is = 0 〖第2题〗『程序填空』(1分)(题号:60) '------------------------------------------------------- '【程序填空】 '------------------------------------------------------- '功能:输入任何一个英文字母x, ' 若x的值为"a","c","d-f" ,则显示x的大写字母; ' 若x的值为"m","o","p-z",则显示x的小写字母; ' 若x的值为其它的值,则显示xa(如输入的X的值是g,则显示ga)。 '------------------------------------------------------- Private Sub Command1_Click() x = '**********SPACE********** 【】 '**********SPACE********** Case 【】 = UCase(x) Case "m", "o", "p" To "z" = LCase(x) Case Else '**********SPACE********** 【】 End Select End Sub 答案: 1). Select Case x 2). "a", "c", "d" To "f" 3). = Trim(x) + "a" 或 = x + "a" 〖第3题〗『程序填空』

vb课后练习答案习题解答 (5)

第5章数组与记录 5.1 填空题 1.若要定义一个包含10个字符串元素,且下界为1的一维数组s,则数组说明语句为()。 答案:Dim s(1 To 10) As String 2.若要定义一个元素为整型数据的二维数组a,且第一维的下标从0到5,第二维下标从-3到6,则数组说明语句为()。 答案:Dim a(0 To 5,-3 To 6) As Integer 3.如果数组元素的下标值为实数,则VB系统会按()进行处理。 答案:四舍五入原则 4.数组元素个数可以改变的数组称为();数组元素可以存放不同类型数据的数组称为()。 答案:可调数组、可变类型数组 5.数组刷新语句用于()。若被刷新的数组是数值数组,则把所有元素置();若被刷新的数组为字符串数组,则把所有元素置()。 答案:清除指定数组内容、0、空字符串 10.控件数组是由一组类型和()相同的控件组成,共享()。 答案:名字、同一个事件过程 11.控件数组中的每一个控件都有唯一的下标,下标值由()属性指定。 答案:Index 12.建立控件数组有两种方法:()和()。 答案:在设计阶段通过相同Name属性值来建立、在程序代码中使用Load方法 5.2 选择题 1.下列一维数组说明语句错误的是()。 a) Dim b(100) AS Double b) Dim b(-5 To 0) AS Byte c) Dim b(-10 To –20) AS Integer d) Dim b(5 To 5) AS String 答案:c 2.若有数组说明语句为:Dim a(-3 To 8),则数组a包含元素的个数是()。 a) 5 b) 8 c) 11 d) 12 答案:d 3.设有数组说明语句:Dim c(1 To 10),则下面表示数组c的元素选项中()是错误的。 a) c(i-1) b) c(5+0.5) c) c(0) d) c(10) 答案:c 4.下列数组说明语句中正确的是()。 a) Dim a(-1 To 5,8)AS String b) Dim a(n,n)AS Integer c) Dim a(0 To 8,5 To –1)AS Single d) Dim a(10,-10)AS Double

《VB程序设计》考试题型练习 答案

《VB 程序设计》考试题型练习 一. 填空 1. VB 中的对象具有 属性 、 事件 、和 方法 三种特性,它们是构成对象的三个基本要素。 2. VB 中的常量分为哪三种: 文字常量 、 符号常量(用户自定义常量) 系统内部常量 。 3. 变量的三要素是指: 变量的名 、 变量的数据类型 、 变量的值 。 4. VB 中日期型数据的表示格式为: #mm/dd/YYYY#或#mm-dd-YYYY# 。 5. 在VB 中,“\”是 整除 运算符;“/”是 浮点除 运算符。两个字符串可以使用连接符 &或+ 串接起来。 6. 2 22z y x z y x ++++的VB 表达式为 (x+y+z )/sqr(x^2+y^2+z^2) 。 7. a ac b b 242-+的VB 表达式为 (b+sqr(b^2-4*a*c))/(2*a) 。 8. 计时器控件的 Interval 属性用于设置Timer 事件发生的时间间隔,为了使计时器控件Timer1每隔0.5秒触发一次Timer 事件,应将该属性设置为 500 ;为了暂时关闭计时器,应把该计时器的 Enable 属性设置为False 。 二. 单选题 1. 如果要使VB 程序运行时不能对文本框中的内容进行编辑,需将文本框的哪个属性设置为True ( D )。 A )MultiLine B )Visible C )TabStop D )Locked 2. 表达式Right("asdf", 2)+Ucase("as" )的值为( A )。 A )dfAS B )asAS C )dfas D )asas 3. 执行如下语句: a =InputBox("Today", "Tomorrow", "Yesterday") 将显示一个输入对话框,在对话框的输入区中的默认值是( C )。 A) Today B) Tomorrow C) Yesterday D) Today Tomorrow Yesterday 4. 设a=3,b=5,则以下表达式值为真的是( B )。 A) a>=b And b>10 B) (a>b) Or (b>0) C) (a<0) Or Not (b>0) D) (-3+5>a) And (b>0)

VB编程题目及答案

1.输入3个数,输出最大的数 2.有一元二次方程:aX2+bX+c=0,依次输入a,b,c,判断此方程是否有实根 3.输入一个百分制的成绩,若大于等于60,则用消息框弹出,显示“恭喜!成绩通过!”, 若小于60,则弹出消息框,显示“抱歉!成绩没有通过!” 4.输入一年份,判断它是否为闰年,并显示有关信息。(判断闰年的条件是:年份能被4 整除但不能被100整除,或者能被400整除) 5.输入学生的百分制成绩,转换输出为五级制成绩,90~100分转换为优秀,80~89转换 为良好,70~79转换为中等,60~69转换为及格,0~60转换为不及格。 6.随机产生一个三位正整数,然后逆序输出,产生的数与逆序数同时显示。例如,产生 246,输出是642。 7.输入两个整数,求它们的最大公约数。 8.编程求200--400范围内5的倍数或7的倍数之和。(一个数如果同时是7和5的倍数, 则只能加一次。。 9.计算100~300之间所有能被3和7整除的数之和 10.分别统计1-100中,满足3的倍数、7的倍数的数各有多少。 11.某次歌曲大奖赛,有7个评委。如果分别输入7个评委对某个参赛者的打分数,按照去 掉一个最高分和一个最低分的计算办法,求出该参赛者的平均得分。 12.输入一串字符,统计其中字母A(不区分大小写)出现的次数。 13.我国目前有13亿人口,按人口年增长率0.8%计算,多少年后我国人口将超过26亿。 14.小猴有桃若干,第一天吃掉一半多一个;第二天吃剩下桃子的一半多一个;以后每天都 吃尚存桃子的一半多一个,到第7天只剩一个,问小猴原有桃多少? 15.求100以内的素数 16.百元买百鸡问题。假定小鸡每只5角,公鸡每只2元,母鸡每只3元,编程求解购鸡方 案。 17.编程求斐波那契数列前11项。(斐波那契数列:F(0)=f(1)=1, F(n)=F(n-1)+F(n-2) n>=2 ) 18.将输入的字符串以反序显示。例如:输入“ASDFGT”,显示“TGFDSA” 19.随机产生10个[30,100]内的整数,求最大值及所对应的下标 20.随机产生10个[30,100]内的整数,求最大值、最小值和平均值。 21.随机产生10个[30,100]内的整数,求最小值及所对应的下标。 22.随机生成一个整型的二维数组,范围在[10,20]之间,以下三角形式输出该数组。 23.随机产生10个1~100的正整数放入数组,显示产生的数,求最大值、最小值、平均值。 24.利用随机函数生成一个4×4的矩阵(即二维矩阵),范围是[20,50]内的整数,输出该矩阵所 有数据之和 25.已知有序数组a(),编程插入x(x的值为14)。数组a中的元素分别为{12,6,4,89, 75,63,100,20,31}。 26.编写一函数,计算Double类型一维数组所有元素的平均值。 27.用函数过程求表达式1+1/2+1/3+1/4+…+1/n的和. 28.编一子过程ProcMin,求一维数组a中的最小值,子过程的形参自己确定。 29.编一个函数,求一维数组a中的最大值,函数的形参自己确定。 30.编写一个过程计算并输出区间[100,1000]内所有素数的和(要求判断素数使用过程(函 数或子过程)来实现。调用该过程。(提示:只能被1和自身整除的自然数称为素数。) (注:本答案第一行代码应在题目之后,自行调整)

vb题库(选择与填空)

一、单选题(每小题1分,共99 分) 1. 假定Picture1 和Text1 分别为图片框和文本框的名称,下列语句中不正确的是______ 。 A Picture1.Print 25 B Text1.Print 25 C Print 25 D Debug.Print 25 2. 在Visual Basic 中要将一个窗体从内存中释放,应该使用以下语句中的______ 。 A UnLoad B Stop C Close D Hide 3. 如果组合框ComBo1中已有10项数据,应使用语句______将数据"Mydata"插入到第5项。 A ComBo1.Insert "Mydata", 4 B ComBo1.Insert "Mydata", 5 C ComBo1.AddItem "Mydata", 5 D ComBo1.AddItem "Mydata", 4 4. 如果列表框List1中已有10项数据,应使用语句______将数据"Mydata"插入到列表框的第3项。 A List1.Insert "Mydata", 3 B List1.AddItem "Mydata", 2 C List1.AddItem "Mydata" ,3 D List1.Insert "Mydata", 2 5. 语句If x=1 Then y=1,下列说法正确的是____________。 A x=1和y=1为赋值语句 B x=1为赋值语句,y=1为关系表达式 C x=1为关系表达式,y=1为赋值语句 D x=1和y=1均为关系表达式 6. 删除列表框中指定的项目所使用的方法为______ 。 A Move B Clear C Remove D RemoveItem 7. 不论何控件,共同具有的属性是______________。 A ForeColor B Name C Text

vb6.0练习题及答案

一、选择题 1.在设计应用程序时,可以查看到应用程序工程中的所有部分的窗口是()。 A.窗体设计.代码C.属性D.工程资源管理器窗口>> 答案:d 2.窗体的Load事件的触发时机是()。 A.用户单击窗体时B.窗体被加载时C.窗体显示之后D.窗口被卸载时>> 答案:b 3.与传统的程序设计语言相比,Visual Basuc最突出的特点是()。 A.结构化程序设计B.程序开发环境C.事件驱动编程机制D.程序调试技术 答案:C 4.VB6.0集成开发环境的主窗口不包括()。 A.标题栏B.菜单栏C.状态栏D.工具栏 答案:c 5.如果对象的名称为Mytext,而且对象有一个属性Text,那么在代码中引用该属性的正确格式是()。 A.Text.Mytext B.Mytext.text C.Mytext.(Text)D.Mytext*Text 答案:b 6.下列可以激活属性窗口的操作是()。 A.用鼠标双击窗体的任何部位B.执行“工程”菜单中的“属性窗口”命令C.按Ctrl+F4 D.按F4键 答案:b d 7.假定已在窗体上画了多个控件,并有一个控件是活动的,为了在属性窗口中设置窗体的属性,预先应制造的操作是()。 A.单击窗体上没有控件的地方B.单击任一个控件C.不执行任何操作D.双击窗体的标题栏 答案:a 8.如果在文本框中键入字符时,只显示某个字符,如星号(*),应设置文本框的()属性。 A.Caption B.PasswordChar C.Text D.Char 答案:b 9.如果想让文本框中的内容在运行时不能编辑,需将文本框的()属性设置为True。 A.Locked B.MultiLine C.TabStop D.Visible 答案:a 10.对于定时器(Timer)控件,设计其定时是否开启的属性是()。 A.Index B.Tag C.Enabled D.Left 答案:c 11.要在窗体Form1内显示“myfrm”,使用的语句是()。 A.Form.Caption=“myfrm”B.Form1.Caption=“myfrm”C.Form1.Print=“myfrm”D.Form.Print=“myfrm” 答案:b 12.对象的性质和状态特性称为()。 A.事件B.方法C.属性D.类 答案:c 13.下列正确的赋值语句是()。 A.x+y=20 B.y=x+20 C.3x=y D.s=π*r*r

vb程序阅读题与填空题

VB程序阅读题与程序填空题综合练习 1、阅读下面程序,当单击窗体之后,窗体上输出的是。 Private Sub Form_Click( ) Dim i As Integer, j As Integer Dim k As Integer k=0 For i = 0 To 10 Step 3 For j = 1 To 10 If j > = 5 Then i = i +4: Exit For j = j + 1 k = k + 1 Next If i > 8 Then Exit For Next Print k End Sub 2、阅读下面的事件过程。单击窗体后,在文本框Text1和Text2中显示的内容分别 是和;若将程序中A语句与B语句的位置互换,再次执行程序,单击窗体后在Text1和Text2中显示的内容分别是和。 Private Sub Form_Click( ) Dim x As Integer, y As Integer x = 1 : y = 0 Do While x < 3 y = y + x 'A语句 x = x + 1 'B语句 Loop Text1.Text = x Text2.Text = y End Sub 3、下面程序段中,k循环共执行次,在窗体上显示的结果是。 Dim b As Integer, k As Integer b = 1 For k =1 To 5 b = b * k If b > = 15 Then Exit For Else

k = k + 1 End If Next k Print k, b 4、以下是按钮cmdl的Click事件过程,求1~100之间的所有质数。质数的个数显示在窗 体上,在划线处填上缺少的内容。 Private Sub cmdl_Click( ) Dim intNum As Integer, int1 As Integer, int2 As Integer intNum = 0 For int1 = For int2 = 2 To int1 \2 If (int1 Mod int2) = 0 Then intNum=1 End If Next If sNum = sNum + 1 End If Next Print End Sub 5、若命令按钮的名称为CmdExit,程序要求单击以上命令按钮时,程序停止运行。请在画线处中填入适当的内容。 Private Sub CmdExit_ ( ) End Sub 6、下面的事件过程判断文本框txt1中输入的数所在区间,并在文本框txt2中输出判断结果。在画线处填入正确的内容。 Private Sub Comandl_Click( ) Dim int1 As Integer int1 =val (txt1.Text) Select Case int1 Case txt2.Text = "值为0" Case txt2.Text = "值在1和10之间(包括1和10)" Case txt2.Text = "值大于10"

VB题库-填空练习题

填空题 第1题表达式 1 and 0的值 ______________________ 答案: False 第2题把"Visual Basic程序设计"添加到列表框 lstBooks____________________________ 答案: lstBooks.AddItem "Visual Basic 程序设计" 第3题 For k=35 to 0 step 3 next k 语句的循环次数是_______________________答案:0 第4题 Val("123.55ab456")的值是多少 _____________________________ 答案:123.55 第5题每隔定时器控件的Interval属性值时间间隔,单位为毫秒,定时器会触发一次 ________________________事件 答案:Timer 第6题表达式(-3) And 8 的值为 _______________________. 答案:True 第7题 Print "x=" & (2=4) 的结果为 ________________________. 答案: x=False 第8题要使同一类型控件组成一个控件数组,必须要求_______________________. 答案: Name 相同或名称相同 第9题循环语句FOR K=1 TO 10 STEP –1控制的循环次数为___________________. 答案: 0 第10题设a=2,b=3,c=4,d=5,则NOT a<=c OR 4*c=b^2 AND b<> a+c 的值为______________. 答案: False 第11题声明定长为10个字符变量Sstr的语句为______________________. 答案: Dim Sstr as String*10 或 Sstr as String*10 第12题在VB中,若要将字符串"12345"转换成数字值应使用的类型转换函数是 ____________. 答案: VAL 或 Cint 第13题在一条Dim语句中可以声明多个变量,如Dim strVar,intVar,sngVar As Integer, 则strVar、intVar与sngVar的数据类型分别是Variant、Variant和_____________________. 答案: Integer 第14题滚动条控件主要支持两个事件,它们是scroll和____________________事件. 答案: change 第15题所有控件都具有的共同属性是 ____________________属性. 答案: name 〖第16题〗Visual Basic为添加到窗体上的第一个图片框picture提供的默认对象名为 ______. 答案: Picture1 〖第17题〗A和B同为正整数或同为负整数的VB 表达式为________________. 答案: A=INT(A)★AND★ B=INT(B)★ AND ★ A*B>0 〖第18题〗变量min@表示_______________类型的变量. 答案:货币数据变量或货币 〖第19题〗表达式 32\7 MOD 3^2 的值是____________________. 答案: 4 〖第20题〗把整型数1赋给一个逻辑型变量,则逻辑变量的值为___________________. 答案: True 〖第21题〗求x与y之积除以z的余数的VB表达式为_________________________. 答案: x*y★Mod★z 〖第22题〗以图片框Pic1的中心位置为圆心,以700为半径在Pic1上画一个圆的方法是 ______ 答案: pic1.Circle (pic1.width/2,pic1.height/2),700 〖第23题〗要使一个按钮设为默认按钮,应把此按钮的_____________属性的值设为True. 答案: Default 〖第24题〗在VB中,若要使一个文本框(Text)中的内容在超过文本框的宽度时能够自动换行显示,应当将这个文本框的______________属性的值设置为True. 答案: MultiLine 〖第25题〗设置计时器控件只能触发 ____________________事件. 答案: timer 〖第26题〗VisualBasic6.0用于开发 ____________________环境下的应用程序. 答案: WINDOWS

vb练习题及答案.doc

vb 练习题及答案 【篇一:vb 习题(含答案)】 lass=txt>1 、vb 程序中,通常不会产生错误提示的是( )。(1 分) a、编译错误 b、逻辑错误 c、运行时错误 d、实时错误 2、在设计阶段,双击窗体上任一空白处,打开的窗口是( )。(1 分) a、工程资源管理器窗口 b、代码窗口 c、工具箱窗口 d、属性窗口 3、下列说法中,正确的说法是( )。(1 分) a、窗体名称和该窗体文件名必须一致 b、窗体名称和该窗体文件名 可以不相同 c、窗体名称和该窗体文件名不能使用汉字 d、窗体名称不能使用汉字、但该窗体文件名能使用汉字 4、visual basic 有完备的help 联机帮助功能,可以通过按下功能 键( )得到帮助。( 1 分) a、f9 b 、f8 c、f1 d 、f5 5、以下( )控件可作为容器使用。( 1 分) a、label b 、picturebox c、textbox d 、image 6、将窗体的boderstyle 属性设置为( )可使窗口不显示标题栏。( 1 分) a、0 b 、1 c、2 d 、5 7、文本框没有( )属性(1 分) a、text b 、name c、caption d 、borderstyle 23、下列( )是不合法的常量。( 1 分) a、100 b 、10e02 c、100.0 d 、10e0.5 24、下列对变量的定义中,定义x 为变体型变量的是( )。(1 分) a、dim x as double b 、dim x c、dim x! d 、x%=23

25、设有如下变量声明:dim testdate as date ,为变量testdate 正确赋值的表达方式是( )。(1 分) a、textdate=#1/1/2002# b 、testdate=#1/1/2002# c、textdate=date(1/1/2002) d 、 testdate=format(m/d/yy,1/1/2002) 26、在立即窗口中运行以下语句,a=beijing :b=shanghai :print a,b 对其输出结果的描述中,正确的是( )。(1 分) a、beijing 和shanghai 中间没有空格 b、beijing 和shanghai 中 间有1 个空格 c、beijing 和shanghai 中间有 6 个空格 d、beijing 和shanghai 前面有7 个空格 27、语句段a=3: b=5:t=a :a=b: b=t 执行后( )。(1 分) a、a 值为3,b 值为3 b 、a 值为3,b 值为5 c、a 值为5,b 值为5 d 、a 值为5,b 值为3 28、下列语句中,正确的是( )。(1 分) a、if x3*y and xy then y=x^3 b 、if x3*y and xy then y=3x c、if x3*y : xy then y=x^3 d 、if x3*y and xy then y=x**3 29、下面程序段dim x%: x=5: if x then y=x+1 else y=x 运行后, y 结果是( )。(1 分) a、5 b 、6 c、1 d 、显示出错信息 30、执行语句 a = inputbox(today, tomorrow, yesterday, 5, 5) , 将显示一个输入对话框,在对话框的输入区中显示的信息是( )。(1 分) a、today b 、tomorrow c、yesterday d 、5 31、窗体上有一个命令按钮command1, 编写如下事件过 程: private sub command1_click() :x = val(inputbox(x=)) : y = inputbox(y=) : print x + y : end sub, 单击命令按钮,先后在两个输 入对话框中输入123 和321 ,窗体显示的内容是( )。(1 分) a、444 b 、123321 c、123+321 d 、出错信息 32、执行语句msgbox aaa, 2, bbb 后,所产生的消息框的标题是 ( )。(1 分) a、aaa b 、bbb

VB--过程练习题

《Visual Basic 程序设计》寒假作业 一、选择题 1.要想在过程调用后返回两个结果,下面过程定义语句中语法正确的是_______。 A. Sub swap(By Val m,By Val n) B. Sub swap(m, By Val n) C. Sub swap(m, n) D. Sub swap(By Val m, n) 2.在过程调用中,参数的传递可以分为按值传递和_______两种方式。 A.按参数传递 B.按数值传递 C.按地址传递 D.按位置传递 3.Sub过程与Function过程最根本的区别是_______。 … A. Sub过程可以直接使用过程名调用,而Function过程不可以 B. Function过程可以有参数,而Sub过程不可以 C.两种过程参数传递方式不同 D. Sub过程的过程名不能返回值,而Function过程能通过过程名返回值 4.在参数传递过程中,使用关键字_______来修饰参数,可以使之按值传递。 A. ByVal B. ByRef C. Value D. reference 5.可以执行“工具”菜单中的_______命令来建立通用过程。 A.添加过程 B.通用过程 C.添加模块 D.添加窗体 】 6.假定已定义一个过程Public Sub Cir(a As Single, b As Single),则正确的调用语句是_______。A,2 A. Cir 3,8 B. Call Cir x, y C. Call Cir 2*x, y D. Call Cir (3,8, y) 7. 在窗体上添加一个名称为Command1的命令按钮,再添加两个名称分别为Label1、Label2的标签,然后编写如下程序代码: Private x As Integer Private Sub Command1_Click() a = 6: b = 4 Call sub1(a, b) = a : = b End Sub Private Sub sub1(ByVal x As Integer, ByVal y As Integer) a = x * x b = y * y End Sub 程序运行后单击命令按钮,则两个标签中显示的内容分别是_______。

VB 程序阅读题

(三) 五、阅读分析程序,选择结果(每小题4分,共20分) 1、运行程序后,单击窗体,窗体上输出的结果是() Private Sub Form_Click() Dim s As String , t As String s=”” st=Text1.Text For k=Len(st) To 1 Step -1 If k=Len(st) Then s=s+Mid(st,k,1) Else s=s+”_”+Mid(st,k,1) End If Next k Label1.Caption=s End Sub (A) (B) (C) (D) ??2、在窗体上放置一个命令按钮,然后编写如下事件过程。运行后,单击命令按钮,输出结果为() Sub S(x As Single , y As Single) t = x x= t /y y= t Mod y End Sub Private Sub Command1_Click() Dim a As Single Dim b As Single a=5 b=2 Call S(a,b+2) Print a , b End Sub (A) 5 4 (B)1 1 (C)1.25 4 (D)1.25 2 3、对窗体编写如下事件过程,程序运行后,单击鼠标右键,则输出结果为() Private Sub Form_MouseDown(Button As Integer,Shift As Integer, X As Single ,Y As

Single) If Button=2 Then Print “AAAAA” End If End Sub Private Sub Form_MouseUp(Button As Integer,Shift As Integer, X As Single ,Y As Single) If Button=2 Then Print “BBBBB” End If End Sub (A) AAAAA(B) BBBBB (C) AAAAA (D) BBBBB BBBBB AAAAA 4、下面程序运行后输出的图形是() Private Sub Form_Click() Const angle=3.14159/180 For i=0 To 360 Step 30 X1=1000+900*Cos(angle*i) Y1=1000+900*Sin(angle*i) X2=1000+500*Cos(angle*i) Y2=1000+500*Sin(angle*i) Line(x1,y1)-(x2,y2) Next i Circle (1000,1000),480 End Sub (A) (B) (C)( D) 5、单击命令按钮Command1后,窗体上显示的运行结果为() Private Sub Commad1_Click() Dim a(10) As Integer Dim p(3) As Integer For i=1 To 10 A(i)=i Next i For i=1 To 3 P(i)=a(i*i) Next i For i=1 to 3 k=k+p(i)*2 Next i Print k End Sub (A) 35 (B) 33 (C) 31 (D) 28

程序设计语言VB单项选择题及答案

《程序设计语言VB》单选题 1. Visual Basic是一种面向()的程序设计语言。 A. 用户 B. 事件 C. 程序 D. 对象 2.在Visual Basic6.0中规定工程文件的扩展名是()。 A. vbp B. for C. frm D. bas 3. Visual Basic6.0中规定窗体文件的扩展名是()。 A. for B. frm C. vbp D. bas 4.如何使一个标签或按钮控件在运行时不可用()。 A. 把它的Visible属性设置成False B. 把它的Visible属性设置成True C. 把它的Enabled属性设置成False D. 把它的Enabled属性设置成True 5.控件的字体可在属性窗口的()属性中调整? A. Font B. Color C. Text D. Caption 6.若要将某命令按钮设置为默认命令按钮。则应设置为True的属性是()。 A. Value B. Cancel C. Default D. Enabled 7.在VB中,记录对象数据的是()。 A. 方法 B. 事件 C. 属性 D. 语句

8.在文本框上显示文本的属性是()。 A. Value B. Text C. Print D. Enabled 9. InputBox函数返回值的类型为()。 A. 字符串 B. 数值 C. 变体 D. 数值或字符串(视输入的数据而定) 10.设有语句:a = InputBox("请输入数值:","输入示例", "100") 程序执行后,若从键盘上输入数值20并按回车键,则变量a的值是()。 A. 字符串"20" B. 字符串"120" C. 默认值100 D. 数值120 11.下列控件中可用于接受用户输入文本,又可用于显示文本的是()。 A. Label控件 B. TextBox控件 C. Timer控件 D. CommandButton控件 12.语句PRINT "25*4"的输出结果是()。 A. 25*4 B. "100" C. 100 D. 出现错误信息 13.只能用来显示字符信息的控件是()。 A. 文本框 B. 标签框 C. 图片框 D. 图像框 14.下列可作为Visual Basic变量名的是()。 A. A%A B. 4A C. ?xy D. Stemp 15.下列哪个符号不能作为VB中的变量名()。 A. timefly B. pass4

VB期末复习题库Visual Basic(填空题)

VB期末复习题库Visual Basic(填空题) 1 假定当前日期为2002年7月12日,星期六,则执行语句Print day(now)后,输出结果是______(提示:不能出现符号#)。12 2 语句a%=3.14156:Print a%的输出结果是______。 3 3 "以下循环的执行次数是_____。 K=0 Do While k<=10 k=k+1 Loop" 11 4 Fix(5.8)的值是_______。 5 5 "下列程序段的执行后输出的结果为_____。 I=4:A=5 Do I=I+1:A=A+2 Loop Until I>=7 Print ""A="";A" A=11 6 表达式3/6*5的值是_______。 2.5 7 "下列程序的作用是将三个数按从大到小进行排序,请补充完该程序。 If a