30题VB上机练习题答案200806
(一)不含界面的程序设计题1.编写计算下列函数的程序,结果在窗体上打印出来。
自变量x ,y 的值用InputBox 函数输入。
⎪⎩⎪⎨⎧>>-<<+=其他00,00,062),(y x yx y x yx y x fPrivate Sub Form_Click()Dim x As Single, y As Single, f As Singlex = InputBox("请输入x :")y = InputBox("请输入y :")If x < 0 And y < 0 Thenf = 2 * x + 6 * yElseIf x > 0 And y > 0 Thenf = x - yElsef = 0End IfPrint "f="; fEnd Sub2.从键盘上输入月份的值(即1-12之间的整数),打印出该月份的季节。
12月、1月和2月为冬季,3月、4月和5月为春季,其余类推。
例如,输入7,则打印出SUMMER 。
Private Sub Form_Click()Dim x As Integerx = InputBox("请输入月份:")Select Case xCase 1, 2, 12Print "WANTER"Case 3 To 5Print "SPING"Case 6 To 8Print "SUMMER"Case 9 T o 11Print "AUTUMN ”End SelectEnd Sub3. 设sum=11×22×32×…×n 2,求sum 不大于100000时最大的n 。
Private Sub Form_Click()Dim n As Integer, sum As Long, x As Longn = 0sum = 1While sum <= 100000n = n + 1x = n * nsum = sum * xWendPrint "n="; n - 1End Subn=54. 在窗体上输出1900——2010年之间哪些年是闰年,每行5个。
闰年判断条件:年份能被4整除但不能被100整除,或者年份能被400整除。
Private Sub Form_Click()Dim year As Integer, n As Integern = 0For year = 1900 To 2010If year Mod 4 = 0 And year Mod 100 <> 0 Or year Mod 400 = 0 Then Print year;n = n + 1If n Mod 5 = 0 Then PrintEnd IfNext yearEnd Sub5.换零钱问题。
如果要将一元人民币换成零钱(换成1分,2分,5分),共有多少种换法?Private Sub form_click()Dim one As Integer '一分硬币个数Dim two As Integer '二分硬币个数Dim five As Integer '五分硬币个数Dim k As Integer '取法数量k = 0For one = 0 To 100For two = 0 To 50For five = 0 To 20If one + two * 2 + five * 5 = 100 Thenk = k + 1Print "one="; one; "two="; two; "five="; fiveEnd IfNext five,two,onePrint "k="; kEnd SubOne=0 two=0 five=20One=0 two=5 five=18One=0 two=10 five=16One=0 two=15 five=14One=0 two=20 five=12One=0 two=25 five=10…………k=5416. 从键盘输入一行字符,分别统计出其中字母、数字和其他字符的个数;Private Sub Form_Click()Dim Str As String, ch As String, n As Integer,i As IntegerDim a As Integer , b As Integer , c As IntegerStr = InputBox(“输入一行字符”)n = Len(Str)a=0 : b=0 : c=0For i = 1 To nch = Mid(Str, i, 1)If ch >= "A" And ch<= "Z" Or ch >= "a" And ch <= "z" Thena = a + 1ElseIf ch >= "0" And ch <= "9" Then、b = b + 1 Elsec = c + 1End IfNext iPrint "字母的个数:"; aPrint "数字的个数:"; bPrint "其他字符的个数:"; cEnd Sub或:Private Sub Form_Click()Dim Str As String, ch As String, n As Integer, i As IntegerDim a As Integer , b As Integer , c As IntegerStr = InputBox("输入一行字符")n = Len(Str)For i = 1 To nch = Mid(Str, i, 1)Select Case chCase "A" T o "Z", "a" T o "z"a = a + 1Case "0" To "9"b = b + 1Case Elsec = c + 1End SelectNext iPrint "字母的个数:"; aPrint "数字的个数:"; bPrint "其他字符的个数:"; cEnd Sub7.设计一个程序,求下式s 的值,其中x 、n 的值用inputbox 函数输入。
程序要求:先对x 值进行检查,是否满足-1<x<1,若不满足该条件,则重新输入x 值。
!)1(!4!3!21432n x x x x x s nn +-+⋅⋅⋅+-+-=Private Sub Form_Click()Dim x As Single, s As Single, n As Integer, flag As IntegerDim i As Integer, t As Single, a As Single, b As Singlex = InputBox("请输入x 的值:")Do While x >= 1 Or x <= -1MsgBox "超出范围,重新输入x 的值!"x = InputBox("请输入x 的值:")Loopn = InputBox("请输入一个正整数n")s = 0a = 1b = 1flag = -1For i = 1 To na = a * ib = b * xflag = -flagt = flag * b / as = s + tNext iPrint "s="; sEnd Subx=0.5, n=10, s=0.39346948. 输入x 的值,计算)1ln(2x x ++,其中-1<x<1。
......!7654321!54321!321)1ln(7532+⋅⋅⋅-⋅⋅+⋅-=++x x x x x x 直到最后一项的绝对值小于10-5为止。
程序要求:先对x 值进行检查,是否满足-1<x<1,若不满足该条件,则重新输入x 值。
Private Sub Form_Click()Dim i As Integer , flag As IntegerDim x As Single , a As Single, b As Single, t As SingleDim s As SingleDox = InputBox("输入-1~1的数")Loop While x <= -1 Or x >= 1s = 0a = xb = 1t = a / bflag = 1i = 1While Abs(t) >= 0.00001s = s + ta = a * (2 * i - 1) * x * xb = b * 2 * i * 2 * i * (2 * i + 1)flag = -flagi = i + 1t = flag * a / bWendPrint "s="; sEnd Subx=0.5 s=0.4896819. 找出所有小于或等于100的自然数对。
自然数对是指两个自然数的和与差都是平方数。
如16与20的和16+20=36,16与20的差20-16=4都是平方数,则16和20称自然数对。
Private Sub Form_Click()Dim x As Integer, y As IntegerFor x = 1 To 99For y = x + 1 T o 100If Int(Sqr(y + x)) = Sqr(y + x) And Int(Sqr(y - x)) = Sqr(y - x) Then Print x; " "; yEnd IfNext y,xEnd Sub10. 编写程序,打印如下图形,层数n由键盘输入。
(10>n>0)Private Sub Form_Click()Dim i As Integer, j As Integer, m As Integer, n As IntegerDon = Val(InputBox("n=", "输入1-9之间的整数"))Loop While n <= 0 Or n >= 10For i = 1 To nPrint T ab(n - i + 1);For j = 1 To 2 * i - 1Print "*";Next jPrintNext iFor i = n-1 To 1 Step -1Print T ab(n - i + 1);For j = 1 To 2 * i - 1Print "*";Next jPrintNext iEnd Sub11. 编程输出下列图案,层数n由键盘输入。
2008年(秋)vb(上机)VB01-04
江苏省高等学校非计算机专业学生计算机基础知识和应用能力等级考试上机试卷(2008秋)二级Visual Basic语言(试卷代号VB01)(本试卷完成时间70分钟)一.改错题(14分)[题目]本程序的功能是:随机生成一个有n个元素的数组(n由inputBox函数),找出其中的最大元素并将它删除,再输出删除后的数组。
Option ExplicitOption Base 1Dim a() as integer,n as integerPrivate Sub Command1-Click()Dim i As Integern=InputB ox(“请输入数组个数”,10)ReDim a(n)For i=1 To na(i)=Int(Rnd*100)+1Text1=Text1&Str(a(i))Next iCall Lookup(a)For i=1 To nText2=Text2 &Str(a(i))Next iEnd SubPrivate Sub Lookup(a() As Integer)Dim Maxv As Integer,maxp As Integer ,i As IntegerMaxv=a(1):maxp=1For i= 2 To nif a(i)>Maxv ThenMaxv=a(i): maxp=iEnd IfNext iCall move_f(a,maxp)End SubPrivate Sub move_f(a() As Integer,k As Integer)Dim i As IntegerFor i=k+1 to UBound(a)a(i)=a(i+1)Next iReDdim a(UBound(a)-1)End Sub[要求]1.新建工程,输入上述代码,改正程序中的错误;2.改错时,不得增加或删除语句,但可适当调整语句位置;3.将窗体文件和工程文件分别命名为F1和P1,并保存到T盘的根目录下。
VB上机综合测试题(十五套)
VB上机综合测试题(一)一、如下所示,在窗体上,放置一个文本框text1(文本框中的文字为“改变字形”,居中显示)。
三个复选框check1,check2和check3,如图设置属性。
要求:当用户单击“加粗”、“斜体”、“下划线”这三个复选框时(即当复选框被选中时)能将文本框的字形变为“粗体、斜体、加下划线" (25分)二、在窗体上添加一个命令按钮(名称为Cmd1,标题为”输出平均值").程序运行后,单击命令按钮完成以下工作:①随机产生20个0到1000的整数,将其放入一个一维数组中②求出所有元素的平均值,并显示在窗体上(如下图所示)(35分)三、请设计如下图所示窗体界面。
运行程序时,先向左侧文本框中输入一个不超过10的正整数,然后选择"N的阶乘"或"(N+2)的阶乘”单选钮,即可进行计算,计算结果在右侧文本框中显示。
请编写程序完成上述功能。
(40分)答案:一、界面设计—--——-10分Private Sub Check1_Click()Text1。
FontBold = Check1。
Value --—-——5分End SubPrivate Sub Check2_Click()Text1。
FontItalic = Check2.Value-—--—-5分End SubPrivate Sub Check3_Click()Text1.FontUnderline = Check3.Value -——--—5分End Sub二、界面设计——-———10分Private Sub Cmd1_Click()--———-2分Dim a%(19), i%, sum!, aver! --—--—4分Randomize -—-—--3分For i = 0 To 19—---——3分a(i) = Int(Rnd *1001)-—-——-3分sum = sum + a(i) -————-3分Next i ——————2分aver = sum / 20 ---———3分Print aver ---—-—2分End Sub三、界面设计----——10分Dim n%-—--——2分Private Sub Form_Load()End SubPrivate Sub Option1_Click()-—---—2分Dim i% —---—-2分n = Val(Text1)—--—-—3分m = 1 -——---1分For i = 1 To n —-——-—2分m = m *i ---——2分Next i -—————2分Text2 = m -—-——-2分End SubPrivate Sub Option2_Click()————-—1分Dim i%-——---2分m = 1 -——--—1分For i = 1 To n + 2 --—-—-2分m = m * i -——--—2分Next i --—---2分Text2 = m -———-—2分End SubVB上机综合测试题(二)1.设计如图所示界面,编程实现如下功能:在文本框中输入平时成绩和考试成绩,单击“确定”按钮,将最终成绩显示到第三个文本框中,其中,平时成绩占最终成绩的30%,考试成绩占最终成绩的70%;单击“清除”按钮,清除文本框中的内容;单击“退出”按钮,关闭窗口.(35分)2.设计左图所示界面,编程实现如下功能:单击任何复选框,则把所有选中的复选框后面的文字罗列在文本框中(见右图)(25分)。
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 、f8c、f1 d 、f55、以下( )控件可作为容器使用。
( 1 分)a、label b 、pictureboxc、textbox d 、image6、将窗体的boderstyle 属性设置为( )可使窗口不显示标题栏。
( 1 分)a、0 b 、1c、2 d 、57、文本框没有( )属性(1 分)a、text b 、namec、caption d 、borderstyle23、下列( )是不合法的常量。
( 1 分)a、100 b 、10e02c、100.0 d 、10e0.524、下列对变量的定义中,定义x 为变体型变量的是( )。
(1 分)a、dim x as double b 、dim xc、dim x! d 、x%=2325、设有如下变量声明: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 :printa,b 对其输出结果的描述中,正确的是( )。
2008年二级VB模拟试题及答案
(19) 在Visual Basic中,要使标签的标题栏居中显示, 则将其Alignment属性设置为 A) 0 B) 2 C) 1 D) 3
解析:本题考查的是标签的Alignment属性的设置。 Alignment属性用来设置标签中标题的位置,可将其
设置为0,1,2,作用如下: 0:标题靠左显示(默认)。 1:标题靠右显示。 2:标题居中显示。
燕子老师 2008.9
(28) 下列程序段的执行结果为
a=75 If a > 60 Then I=1 If a > 70 Then I=2 If a > 80 Then I=3 If a < 90 Then I=4 Print "I="; I A) I=1 B) I=2 C) I=3
D) I=4
解析:此题为If Then 结构的条件语句,如果a > 60 , 则I = 1;如果a > 70 ,则I = 2;如果a > 80 ,则 I = 3;如果 a < 90,则I = 4;本题的条件是a= 75,所以输出结果应该是I = 4。
燕子老师 2008.9
(21) 当滚动条位于最左端或最上端时,Value属性被设
置为
A) Min
B) Max
C) Max和Min之间 D) Max和Min之外
解析:一般情况下,垂直滚动条的值由上往下递增, 最上端代表最小值,最下端代表最大值;水平滚动 条的值从左到右递增,最左端代表最小值,最右端 代表最大值。因此当滚动条位于最左端或最下端时, Value属性被设置为Min。
燕子老师 2008.9
(16) 根据变量的作用域,可以将变量分为3类,分别为 A) 局部变量、模块变量和全局变量 B) 局部变量、模块变量和标准变量 C) 局部变量、模块变量和窗体变量 D) 局部变量、标准变量和全局变量
2008年秋VB笔试试卷及答案
h = Text1 h1 = Left(h, 1): h2 = Right(h, 1) Text2 = h2b(h1) & h2b(h2) End Sub Private Function h2b(p As String) As String Dim st As String, i As Integer st = "0123456789ABCDEF" For i = 1 To Len(st) If (18) Then Exit For Next i i=i-1 Do h2b = (19) i=i\2 Loop Until i <= 0 h2b = (20) End Function 8.下面程序的功能是:输入一个 n 位的整数(n≤10) ,求出由这 n 个数字组成的最大整数 和最小整数。 Option Explicit Option Base 1 Private Sub Command1_Click() Dim n As Long, a() As Integer, i As Integer Dim large As String, small As String n = Text1 Call change(n, a) Call sort(a) For i = 1 To UBound(a) large = a(i) & large small = (21) Next i Text2 = large For i = 1 To Len(small) If (22) Then Exit For Next i If i <> 1 Then small = Mid(small, i, 1) & Left(small, i - 1) & Right(small, Len(small) - i) End If Text3 = small End Sub Private Sub sort(a() As Integer) ‘冒泡法排序 Dim i As Integer, j As Integer, t As Integer For i = 1 To UBound(a) - 1
(完整word版)VB本科期末上机考试练习题答案
1、单击窗体在窗体上输出10个两位随机整数,并求出其平均数。
运行效果如下图所示:Private Sub Form_Click()Dim a(10) As Integer, i As Integer, s As IntegerFor i = 1 To 10a(i) = Int(Rnd * (99 - 10 + 1)) + 10s = s + a(i)Print a(i)Next iPrint "平均数为" & s / 10End Sub2、随机产生20个200~400之间的随机整数,按每行5个输出到窗体上,并求出其中的最大值。
Private Sub Form_Click()Dim i As Integer, a(20) As Integer, max As IntegerPrint "原始数据为:"max = 0For i = 1 To 20a(i) = Int(Rnd * (400 - 200 + 1)) + 200Print a(i);If i Mod 5 = 0 Then PrintIf max < a(i) Then max = a(i)Next iPrint "最大值为:" & maxEnd Sub3、产生20个两位的随机整数,输出这20个数(以每行5个的形式输出这20个数,其中的偶数用红色显示),找出其中的最大值和最小值,计算并输出平均值。
运行效果如下图所示:Private Sub Form_Click()Dim a(20) As Integer, i As Integer, max As Integer, min As Integer, s As IntegerPrint "原数组为:"max = 0min = 100Form1.ForeColor = vbBlackFor i = 1 To 20a(i) = Int(Rnd * (99 - 10 + 1)) + 10If a(i) Mod 2 = 0 ThenForm1.ForeColor = vbRedElseForm1.ForeColor = vbBlackEnd IfPrint a(i); 先变色,再输出If i Mod 5 = 0 Then Prints = s + a(i)If max < a(i) Then max = a(i)If min > a(i) Then min = a(i)Next iPrintForm1.ForeColor = vbBlackPrint "max=" & maxPrint "min=" & minPrint "aver=" & s / 20End Sub4、产生10个随机两位正整数,放入一数组中,并按从小到大的顺序排列。
vb考试试题和答案
vb考试试题和答案**VB考试试题和答案**一、单项选择题(每题2分,共20分)1. 在VB中,以下哪个选项是正确的数据类型?A. IntegerB. IntC. DoubleD. All of the above**答案:D**2. VB中,哪个函数用于计算一个数的平方根?A. SqrB. PowC. LogD. Abs**答案:A**3. 下列哪个选项是VB中的保留字?A. MyB. MeC. DimD. All of the above**答案:D**4. 在VB中,下列哪个选项用于声明一个变量?A. ConstB. DimC. FunctionD. Sub**答案:B**5. VB中,哪个控件用于显示文本,但不能编辑?A. TextBoxB. LabelC. ComboBoxD. CheckBox**答案:B**6. 在VB中,下列哪个选项用于循环遍历数组中的每个元素?A. For EachB. ForC. WhileD. Do**答案:A**7. VB中,哪个函数用于将字符串转换为大写?A. LCaseB. UCaseC. StrCompD. Trim**答案:B**8. 在VB中,哪个事件用于响应按钮点击?A. ClickB. DoubleClickC. MouseDownD. MouseUp**答案:A**9. VB中,哪个属性用于设置控件的可见性?A. VisibleB. EnabledC. CaptionD. BackColor**答案:A**10. 在VB中,下列哪个选项用于声明一个过程?A. FunctionB. SubC. ClassD. Module**答案:B**二、填空题(每题2分,共20分)1. 在VB中,声明一个整型变量的关键字是________。
**答案:Integer**2. VB中,用于定义一个函数的关键字是________。
**答案:Function**3. VB中,用于定义一个子程序的关键字是________。
vb考试题库及答案word版
vb考试题库及答案word版一、选择题(每题2分,共20分)1. 在VB中,以下哪个选项是正确的数据类型?A. IntegerB. StringC. DoubleD. All of the above答案:D2. VB中的哪个函数可以用来计算一个数的平方?A. SqrB. PowC. SquareD. Both A and B答案:D3. 在VB中,以下哪个是正确的循环结构?A. For...NextB. Do...LoopC. While...WendD. All of the above答案:D4. VB中用于声明变量的关键字是什么?A. DimB. VarC. DeclareD. Let答案:A5. 在VB中,哪个控件用于显示文本,但不能编辑?A. TextBoxB. LabelC. ComboBoxD. CheckBox答案:B6. VB中的哪个事件是在窗体加载时触发的?A. LoadB. ClickC. ChangeD. Activate答案:A7. 在VB中,以下哪个选项是正确的逻辑运算符?A. AndB. OrC. NotD. All of the above答案:D8. VB中用于打开文件的函数是什么?A. OpenB. CreateC. CloseD. Both A and B答案:D9. 在VB中,以下哪个是正确的数组声明方式?A. Dim arr(10)B. Dim arr(0 To 10)C. Dim arr(1 To 10)D. All of the above答案:D10. VB中用于输出信息到立即窗口的函数是什么?A. Debug.PrintB. PrintC. MessageBox.ShowD. MsgBox答案:A二、填空题(每题2分,共20分)1. VB中的________关键字用于声明常量。
答案:Const2. 在VB中,________事件是在按钮被点击时触发的。
2008春VB上机试卷VB06答案
2008年(春)上机 Visual Basic(VB06)答案一、改错【题目】本程序的功能是生成一个n行3列的数组,并在多行文本框中输出。
n通过InputBox 函数输入,数组第一列元素为随机生成的11~99之间的整数,第二列元素是第一列相应元素的逆序数,第三列元素是第一、二列对应元素的最大公约数。
Option ExplicitDim n As Integer, a() As IntegerPrivate Sub Command1_Click()Dim i As Integer, 'err, n As Integern = InputBox("输入n:", , 3)ReDim a(n, 3)For i = 1 To na(i, 1) = Int(Rnd * 89) + 11a(i, 2) = nx(a(i, 1))a(i, 3) = gcd(a(i, 1), a(i, 2))Next iEnd SubPrivate Sub Command2_Click()Dim i As Integer, j As IntegerText1 = "运行结果是:" & vbCrLfFor i = 1 To nFor j = 1 To 3Text1 = Text1 & Str(a(i, j))Next jText1 = Text1 & vbCrLfNext iEnd SubPrivate Function nx(x As Integer) As Integernx = (x Mod 10) * 10 + x \ 10End FunctionPrivate Function gcd(ByVal a As Integer, ByVal b As Integer) As Integer 'err 无Byval Dim r As IntegerDor = a Mod ba = bb = rLoop Until r = 0gcd = a 'err gcd = bEnd Function二、编程题【题目】编写程序,输入一个N位不含数字0的整数,求出由组成该数的数字构成的一个最小整数。
vb上机题库及答案
vb上机题库及答案【篇一:vb期末考试上机题编程答案】xt>1.新建一个工程,编写一个找出所有四位幸运数显示在列表框中,并将幸运数的个数显示在文本框中。
所谓幸运数是指凡前两位数字之和等于后两位数字之和的四位数。
将原窗体文件和工程文件分别另存为为f.frm和p.vbp,保存在d盘的vbtest文件夹中。
如不按要求保存,造成文件无法上传,后果自负!具体要求:1、程序参考界面如图所示,编程时不得增加或减少界面对象或改变对象的种类,窗体及界面元素大小适中,且均可见;2、单击查找按钮,则开始查找并在列表框中显示结果,并在文本框中显示幸运数的个数;3、单击“清除”按钮,则将列表框和文本框清空;4、单击“退出”按钮,结束程序运行;5、程序中应包含一个过程,用于判断一个数是否是幸运数。
解:private sub command1_click()dim i as integer, a as integerfor i = 1000 to 9999if k(i) then list1.additem i: a = a + 1next itext1.text = aend subprivate sub command2_click()list1.cleartext1.text =end subprivate sub command3_click()endend subprivate function k(n as integer) as integerdim i as integer, a as integer, s1 as integer, s2 as integer dims as strings = cstr(n)for i = 1 to len(s) / 2s1 = s1 + mid(s, i, 1)s2 = s2 + mid(s, len(s) + 1 - i, 1)next iif s1 = s2 then k = trueend function2. 新建一个工程,编写求某一自然数因子和的程序。
