VB程序填空题

合集下载
  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

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="负数"
=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
b=Val
c=Val
d=b^2-4*a*c
If d________ Then
x1=(-b+Sqr(d))/(2*a)
x2=(-b-Sqr(d))/(2*a)
=x1
=x2
_______
=______
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
= 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 =_______________________
= Str(x)
= 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
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
i = 1
Do While ____________
If x >= a(i) Then
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
Str(X)
_________________________
End If
Next N
Print counter
End Sub
13、下面是一个检测密码的程序(界面如图7-4,其功能是:当用户输入的密码正确时,在窗体上显示“欢迎您使用本系统”;否则显示“密码错误!请重新输入密码:”。

正确的密码是09。

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

Private Sub Form_Load()
= "": = 10
= "*" '表示密码用*显示
= "": = 2
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
= ""
If KeyAscii = 13 Then 'KeyAscii=13表示是回车键
If ______________________________________________ Then
= "欢迎您使用本系统!"
Else
= ____________________________
'以下两语句的作用是使程序能自动选中错误的密码,使用户可直接重新输入
= 0
= Len
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
= 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(
If a < 0 Or a > 255 Then
= "输入数据错误,请重新输入!"
Else
For i = 1 To 8
c(i) = a Mod 2
a = ________________
s = Str(c(i)) + s
Next i
= 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
= 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
= amax
=___________
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
If x > a(n) Then
______________________
Else
i = 1
Do While x > a(i)
_________________
Loop
End If
= Str(i)
End Sub
Private Sub Text1_KeyPress(KeyAscii As Integer)
If KeyAscii = 13 Then
n = n + 1
a(n) = Val
Str(a(n))
= "":
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
'假定k>j>i,可以避免重复寻找
sum = 0
For i = 1 To 100
For j = 1 To 100
For k = j To 100
If __________________________ Then
(Str(i) + Str(j) + Str(k))
sum = sum + 1 '统计个数
End If
Next k
Next j
Next i
= "组数:" + 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
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
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
sum = 0
max = _________________ '指定查找范围的最大自然数,在text1框中输入
n = 0
Do While n <= max
n = n + 1 '从自然数1开始不断往上寻找
If _________________________________________________ Then
Str(n) '找到后在list1中显示结果
_________________________________
End If
Loop
("共计" + 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
For i = 2 To n
j = ______________________ '计算1/(2*i-1)!
s = __________________________ '累加通项式
Next i
= 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 Str(i) Next i
End Sub。

相关文档
最新文档