VB程序填空题电子教案.doc
如有侵权,请联系网站删除,仅供学习与交流VB程序填空题【精品文档】第 12 页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=aEnd 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 sEnd Sub3、已知一元二次方程的二次项系数、一次项系数、常数项分别为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=b2-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 IfEnd Sub4、如果下面程序执行后输出的结果是132,请将程序补充完整:Private Sub Command1_Click()i = 12: s = 1Do While _s = s * ii = i - 1LoopMsgBox (s)END Sub5、下面的程序是求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 Sub7、下列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 Sub9、利用文本框输入一个正整数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 SubSub Recarea(Rlen As Single, Rwid As Single) Dim Area As Single Area = _ MsgBox "Total Area is " & _ '输出矩形面积End Sub11、用物理天平测量物体的质量时,测得物体的质量为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 IntegerDim i As Integer, x As IntegerPrivate Sub Command1_Click()a(1) = 500: a(2) = 200: a(3) = 100: a(4) = 100a(5) = 50: a(6) = 20: a(7) = 10: a(8) = 10a(9) = 5: a(10) = 2: a(11) = 2: a(12) = 1x = Val(Text1.Text)i = 1Do While _ If x >= a(i) Then List1.AddItem Str(a(i) _ End If i = i + 1LoopEnd Sub12、有一个单击按纽过程,其作用是产生50个60100的随机数,统计其中被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个60100的随机数 If X Mod 6 = 2 Then List1.AddItem Str(X) _ End If Next NPrint counterEnd Sub13、下面是一个检测密码的程序(界面如图74,其功能是:当用户输入的密码正确时,在窗体上显示“欢迎您使用本系统”;否则显示“密码错误!请重新输入密码:”。正确的密码是0123456789。 仔细阅读程序,请问程序中划线处的语句应为_。Private Sub Form_Load() Text1.Text = "": Text1.MaxLength = 10 Text1.PasswordChar = "*" '表示密码用*显示 Label2.Caption = "": Label2.Alignment = 2End SubPrivate 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 Sub14、猴子吃桃问题。猴子第一天摘下若干个桃子,当即吃了一半,还不过瘾,又多吃了一个。第二天早晨又将剩下的桃子吃了一半,又多吃了一个。以后每天早上都吃了前一天剩下的一半零一个。到第十天早上再想吃时,见只剩一个桃子了。问:第一天猴子共摘了多少个桃子。为了实现这一目标,完善下面的VB程序,在划线处填入合适的语句或表达式,完成程序设计。Visual Basic 程序如下: Sub Command1_Click( ) Dim i, s As Integer _ For i=1 to 9 _ Next i Text1.Text = Str(s)End Sub15、下面程序(界面如图7-3)的功能是:将0到255之间的十进制整数转换为二进制整数的表示形式。在如图中上面的文本框(Text1)中输入一个0到255之间的十进制整数,单击“转换”按钮,该十进制整数的二进制形式会显示在下面的文本框(Text2)中。为了实现这一目标,程序中划线处的语句应为_.Private Sub Command1_Click()Dim a As IntegerDim s As StringDim i As IntegerDim c(1 To 8) As Integera =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 = sEnd IfEnd Sub16、个位数字是6,且能被3整除的3位数共有多少个?下面程序用于解决这一问题,在划线处填入合适的语句或表达式,设共有n个这样的数,Visual Basic程序如下:Sub Command1_Click()Dim i As Integer, n As Integerm = 106n = _Do While m <= 996 If _ Then n = n + 1 m = _LoopText1.Text = Str(n)End Sub17、求两个整数的最大公约数分析:求最大公约数的算法思想:(1) 对于已知两数m,n,使得m>n;(2) m除以n得余数r;(3) 若r=0,则n为求得的最大公约数,算法结束;否则执行(4);(4) mn,nr,再重复执行(2)。例如: 求 m=14 ,n=6 的最大公约数. m n r14 6 26 2 0请根据以上思路补充下面的程序代码:Private Sub Command1_Click()m = InputBox("m=")n = InputBox("n=")If m < n Then t = m: m = n: n = tr = _Do While (r <> 0)m = nn = rr = m Mod nLoopPrint "最大公约数=", nEnd Sub18、以下程序的功能是:从键盘上输入若干个学生的考试分数,统计并输出 最高分数和最低分数,当输入负数时结束输入,输出结果,请将程序补充完 整。 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 IntegerDim n, i, j, x As IntegerPrivate Sub Command1_Click()x = Val(Text2.Text)If x > a(n) Then_Elsei = 1Do While x > a(i)_LoopEnd IfText3.Text = Str(i)End SubPrivate Sub Text1_KeyPress(KeyAscii As Integer)If KeyAscii = 13 Thenn = n + 1a(n) = Val(Text1.Text)List1.AddItem Str(a(n)Text1.Text = "": Text1.SetFocusEnd IfEnd Sub20、输入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, zsEnd Sub21、有一个数组DATA存放了N个数据,现从中删除了一个元素,其余的元素依次向前递补(假设删除的是第3个元素,则要将第4个元素移到第3个元素处,第5个元素移到第4个元素处,以此类推),然后输出数组内容。填写程序中的空缺Private Sub Command1_Click()Dim data(10) As IntegerDim I, N, T As IntegerN = 10For I = 1 To N data(I) = I * 2Next IT = InputBox("删除第几个元素")For I = _data(I - 1) = data(I)Next I_For I = 1 To N Print data(I);Next IEnd Sub22、寻找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 Sub23、随机产生10个1100之间的正整数,按从小到大的次序排序并输出。为了实现这一目标,完善下面的VB程序,在划线处填入合适的语句或表达式,完成程序设计:Sub Command1_Click()Const n = 10Dim i As Integer, j As Integer, t As IntegerDim a(1 To 100) As IntegerFor i = 1 To 10a(i) = 100 * Rnd(1) + iNext iFor i = 1 To n - 1 For j = i + 1 To n If _ Then k = a(i): a(i) = a(j): a(j) = k End IfNext jNext iFor i = 1 To 10 List1.AddItem Str(a(i)Next iEnd Sub24、有30个人,其中有男人、女人和小孩。他们在一家饭馆里花去500元。已知,每个男人花30元,每个女人花20元,每个小孩花10元。问:男人、女人、小孩各为多少人。为了实现这一目标,完善下面的VB程序,在划线处填入合适的语句或表达式,完成程序设计。Private Sub Command1_Click()Dim man As Integer, woman As Integer, child As IntegerFor 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 manEnd Sub25、在我国古代孙子算经中曾经提出这样一个问题。原文是这样的:“今有物,不知其数,三三数之,剩二;五五数之,剩三;七七数之,剩二;问物几何?”试用枚举法来解决这一问题。现分析如下,所寻找之数为满足如下条件的自然数:以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 Sub26、下面程序若用于计算s=1!+2!+3!+4!+5!+6!7!+8!+9!+10!,则程序中划线处的语句应为_ 。 s = 0: t = 1For i = 1 To 10 _ s = s + tNext i27、用VB编写一个计算S11/3!+1/5!1/7!+(1)n-1/(2n1)! 的程序,程序代码如下,请补充完整: 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 Sub28、设有n盏灯,放在一排,从1n依次顺序编号。有n个人也从1到n依次编号。第1个人(1号)将灯全部关闭,第2个人(2号)将凡是2的倍数的灯打开,第3个人(3号)将凡是3的倍数的灯做相反处理(该灯如为打开的,则将它关闭,如关闭的则将它打开),以后的人都和3号一样,将凡是自己号数倍数的灯做相反处理。试计算,当n个人操作后,哪几盏灯是亮的。(提示:亮灯为0,关闭为1)为了实现这一目标,完善下面的VB程序。根据右面的流程图,在划线处填入合适的语句或表达式,完成程序设计。Private Sub Command1_Click()Const n = 20Dim i, j As IntegerDim a(1 To n) As IntegerFor i = 1 To na(i) = 0Next iFor i = 1 To nFor j = 1 To nIf j Mod i = 0 Then_End IfNext jNext iFor i = 1 To nIf _ Then List1.AddItem Str(i)Next iEnd Sub