当前位置:文档之家› 一VB程序设计基础练习题库

一VB程序设计基础练习题库

一、单选题(共15小题,每小题2分,共30分)1.以下叙述中,错误的是(B )。

A) 在Visual Basic中,对象所能响应的事件是由系统定义的B) 对象的任何属性既可以通过属性窗口设定,也可以通过程序语句设定C) Visual Basic中允许不同对象使用相同名称的方法D) Visual Basic中的对象具有自己的属性和方法2.下列叙述中,错误的是(C )。

A、VB是可视化程序设计语言B、VB采用事件驱动编程机制C、VB是面向过程(对象)的程序设计语言D、VB应用程序可以以编译方式执行3.下列(A )是合法的变量名。

A、x_y (合法变量名以字母或下划线头)B、x-yC、2xD、and4.选拔身高T超过1.7米且体重W小于62.5公斤的人,表示该条件的布尔表达式为(C )。

A、T>=1.7 And W<=62.5B、T<=1.7 Or W>=62.5C、T>1.7 And W<62.5D、T>=1.7 Or W<62.55.设a=”Visual Basic”,下面使b=”Basic”的语句是(B )A.b=Left(a,8,12)B.b=Mid(a,8,5)C.b=Right(a,5,5)D.b=Left(a,8,5)取字符串a第8个字符开始的5个6.如果x小于y的平方,则在窗体上输出“OK”。

完成该要求的单行条件语句是(C )。

A、If x < y ^ 2 Then "OK"B、If x < y ^ 2 Then Show "OK"C、If x < y ^ 2 Then Print "OK"D、f x < y ^ 2 Then Put "OK"7.要使循环体至少执行一次,应使用(D )循环。

A、For …NextB、While …WendC、Do …Loop[While/Until]D、Do[While/Until] …Loop(先做在判断,所以会执行一次的)8.下面程序段求两个数中的大数,不正确的语句是(D )。

A、Max=Iif(x>y,x,y)B、if x>y Then Max=x Else Max=yC、Max=xD、if y>=x Then Max=y(Else)If y>=x Then Max=y Max=x9.以下条件语句错误的是( A )。

A、If X Then Y = Y + 1B、If X = 0 Then Y = 0C、If X > 0 Then Y = 1: Print YD、If X > Y Then Print Y End If10.若要求从文本框中输入密码时在文本框中只显示*号,则应用在此文本框的属性窗口中设置(D )。

A、Text属性值为*B、Caption属性值为*C、Password属性值为空D、PasswordChar属性值为*11.设置标签Label1的属性使它不可见的语句是(D )。

A、Label1.Visible = -1B、Label1.Visible = 1C、Label1.Visible = trueD、Label1.Visible = False12.修改控件属性,既可以使用属性窗口,也可以通过(D )为控件属性赋值。

A、属性B、事件C、方法D、代码13.在程序代码中引用一个控件时,应使用控件的(B )属性。

A)Caption B)Name C)Text D)Index14.若要获得列表框中被选中的列表框的内容,可以通过访问( B )属性来实现。

A)Name B)ListIndex C)ListCount D)Text15.以下叙述中正确的是(B )。

16.A.一个Sub 过程至少要一个Exit Sub 语句(×)B.一个Sub 过程必须有一个End Sub 语句C.可以在Sub 过程中定义一个Function 过程,但不能定义Sub 过程D.调用一个Function 过程可以获得多个返回值填空题(共8空,每空2分,共16分)1.InputBox函数返回值的类型为 string。

2.与事件相关的一段程序代码称为事件过程代码。

3.循环语句FOR k=2 TO 30 STEP 5 使循环体执行的次数是 6 。

4.可表示[50,100]之间的随机数的语句是 int(rnd*51+50) 。

5.Print方法分区输出时,用逗号分隔多个表达式。

当输出多个表达式或字符串时,各表达式用分隔符(逗号、分号或空格)隔开。

如果输出的各表达式之间用逗号分隔,则按标准输出格式(分区输出格式)显示数据项。

6.强制性退出For…Next循环的语句是exit for 。

7.当程序运行时,要求窗体中的文本框呈现空白,则在设计时,应当在此文本框的属性窗口中,把此文本框的 caption 属性设置成空白。

8.为了把焦点移到某个指定的控件,所使用的方法是setfocus。

基本操作题(共2小题,每小题10分,共20分)1.打开工程文件A3-1.vbp,完成以下操作,并以原文件名保存。

P65[1] 设置窗体运行后出现在屏幕中心;(2分) [2] 设置口令的长度小于等于6;(3分) [3] 设置输入的口令以“*”显示;(3分) [4] 设置“确定”按钮为缺省按钮。

(2分)2.打开工程文件A3-2.vbp ,完成以下操作,并以原文件名保存。

P111[1] 在文本框中输入课程名称,单击“添加”按钮,将该课程添加到列表框中,并清文本框的内容;(3分)[2] 选中列表框某课程,单击“删除”按钮,将选中的课程从列表框中删除;(4分) [3] 单击“清除”按钮,清除列表框中的所有课程。

(3分)程序填空(共4小题,每小题2空,每空3分,共24分)说明:打开已有的工程文件,根据要求实现的功能,在“???????”处用相应的代码代替(不得删除原有的代码,必须在???????处填写),使程序能正常运行。

1. 打开考试目录下的“A4-1.vbp ”,完善程序并保存。

要求:(1) 圆的半径r 利用InputBox 函数从键盘输入(r>0)。

(2) 圆周率定义为符号常量。

(3) 求圆的周长lenth 和面积area 。

(4) 用Print 方法输出圆的周长和面积。

原程序:Private Sub Command1_Click() Dim r As SingleDim lenth As Single, area As Single Const ??????? PI=3.14159r = ?????? Val(InputBox(“圆的半径”,0) lenth = 2 * PI * r area = PI * r * rPrint "半径="; r, "周长="; lenth, "面积="; area End Sub2. 打开考试目录下的“A4-2.vbp ”,完善程序并保存。

要求实现功能:利用Do While …Loop语句求s=12+22+…+1002。

(运行效果如下图所示)。

原程序:Private Sub Command1_Click()Dim n As Integer, s As Longn = 1: s = 0Do While ??????? n<101s = ??????? s+n*nn = n + 1LoopPrint "s="; sEnd Sub3.打开考试目录下的“A4-3.vbp”,完善程序并保存。

已知计算机等级考试的百分制成绩mark,要求用Select Case语句将百分制成绩mark转换成对应五级制的评定grade。

评定条件如下:mark≥85,优60≤mark<85,合格mark<60,不合格要求实现功能:用文本框输入成绩mark,在图片框中用print方法输出评定结果grade 的值。

当单击清除按钮时,会清除文本框及图片框显示的内容(运行效果如下图所示)。

原程序:Private Sub Command1_Click()Dim a As Integera = Val(Text1)Select Case aCase Is > =85grade = "优"Case 60 To 84grade = "合格"?????? Case Is<=59grade = "不合格"End SelectPicture1.Print "成绩评定为:"; gradeEnd SubPrivate Sub Command2_Click()Text1 = ""Picture1. ?????? ClsEnd Sub4.打开考试目录下的“A4-4.vbp”,完善程序并保存。

要求实现的功能是:从键盘上输入若干个学生的考试分数,当输入负数时结束输入,然后输出其中的最高分数和最低分数。

(运行效果如下图所示)。

原程序:Private Sub Command1_Click()Dim x As Single, amax As Single, amin As Singlex = InputBox("Enter a score")amax = xamin = xDo While ?????? x>0If x > amax Thenamax = xEnd IfIf ?????? x<=amin Thenamin = xEnd Ifx = InputBox("Enter a score")LoopPrint "最高分="; amax, "最低分="; aminEnd Sub五、程序设计题(10分)编写程序实现以下功能:随机生成10个两位整数,求数组元素之和sum及平均值aver,然后先按原顺序输出数组各元素,再按相反的顺序输出数组各元素,并输出元素之和sum 及平均值aver。

工程文件命名为A5-1.vbp,窗体文件命名为A5-1.frm,程序运行界面如图5-1所示。

(10分)图5-1 程序运行界面1.求随机10个整数的最大值、最小值、平均值以及和;Dim a(1 To 10)Private Sub Command1_Click()RandomizePicture1.Print "产生的随机数为:"For i = 1 To 10a(i) = Int(Rnd * 99 + 1)Picture1.Print a(i);Next iPicture1.PrintEnd SubPrivate Sub Command2_Click()Dim max, min, avemax = a(1)min = a(1)ave = 0.1 * a(1)For i = 2 To 10If a(i) > max Then max = a(i)If a(i) < min Then min = a(i)ave = ave + 0.1 * a(i)Next iPicture1.Print "最大数为:"; maxPicture1.Print "最小数为:"; minPicture1.Print "平均数为:"; aveEnd Sub2.求水仙花数Private Sub Form_Click()Dim a, b, c As Integer 'a(个)b(十)c(百)For a = 0 To 9For b = 0 To 9For c = 1 To 9If a ^ 3 + b ^ 3 + c ^ 3 = a + 10 * b + 100 * c Then MsgBox 100 * c + 10 * b + aEnd IfNext cNext bNext aEnd Sub3.百元买百鸡问题;Option ExplicitConst a = 5, b = 3, c = 1Private Sub Form_Activate()Dim i As Integer, j As Integer, k As Integer, n As IntegerFor i = 1 To 100For j = 1 To 100For k = 1 To 100If i * a + j * b + k * c = 100 Thenn = n + 1List1.AddItem " 公鸡:" & i & " 母鸡:" & j & " 小鸡:" & k End IfNext: Next: NextMsgBox "共有组合:" & nEnd Sub求1000以内的所有完数一个按钮里调用的过程Private Sub Command1_Click()OutputWanNumber 1000 End Sub4.'求完数的过程Private Sub Form_Click() Dim i, j As IntegerFor i = 4 To 100temp = 1For j = 2 To i / 2If i Mod j = 0 Then temp = temp + jEnd IfNext jIf temp = i ThenPrint iEnd IfNext iEnd Sub5.求各位数字之和input a:'输入任意数dob=a mod 10:'取a的末位数sum=sum+b:'求和a=a \ 10:'去掉末位数loop until a=0print "sum=";sum:'输出end(dim n as stringinput nfor i = 1 to len(n)sum=sum+val(mid(n,i,1))next iprint sum)6.求最小公倍数Private Sub Form_Load()Form1.AutoRedraw = TrueDim n1%, m1%, m%, n%, r%n1 = InputBox("输入n1")m1 = InputBox("输入m1")If m1 > n1 Then '为了求最小公倍数,增加m,n变量m = m1: n = n1Elsem = n1: n = m1End IfDor = m Mod nIf r = 0 Then Exit Dom = nn = rLoopPrint n1; ","; m1; "的最大公约数为"; n Print "最小公倍数=", m1 * n1 / nEnd Sub7.求逆序数(感觉题目类型太多)8. 级数有限项求和问题(题目类型太多)9. 求质因子问题Private Sub Command1_Click()Dim N As Integer, I As IntegerN = Val(InputBox("请输入2的整数:"))I = 2DoIf N Mod I = 0 ThenPrint I;N = N \ IElseI = I 1End IfLoop While N 1End Sub10. 字符统计Option Base1Option ExplicitPrivate Sub Command1_Click()Dim i as integer,A(26) as integer,n as integer Dim S as string*1,Strl as stringStrl=Text1n=Len(Strl)For i=1 To nS=Mid(Strl,i,1)If UCase(S)>=”A” And UCase(S)<=”Z” ThenA(Asc(UCase(S))-64)+1End IfNext iFor i=1 To 26List1.Additem Chr(64+i) & “:” & A(i)Netx iEnd SubPrivate Sub Command_Click()EndEnd Sub第二大题1. 判定素数过程Function isprime(Num As Long) As BooleanIf Num < 2 Then isprime = False: Exit Function Dim i As LongFor i = 2 To Sqr(Num)If (Num Mod i) = 0 Thenisprime = FalseExit FunctionEnd IfNext iisprime = TrueEnd FunctionPrivate Sub Command1_Click()Dim i As LongFor i = 1 To 1000If isprime(i) ThenPrint iEnd IfNext iEnd Sub2.求最大公约数过程;Function Max公约数(A As Long, B As Long) '求出两个数的最大公约数Dim X As Long, Y As Long, K As LongX = IIf(A >= B, A, B) 'x存入最大值Y = IIf(A <= B, A, B) 'y 存入最小值Do '辗转相除法K = X Mod Y: If K = 0 Then Exit DoX = Y: Y = KLoopMax公约数= YEnd Function3.冒泡排序过程Private Sub Command1_Click()Dim a(9) As IntegerDim i As IntegerFor i = 0 To 9a(i) = InputBox("输入整数")NextSort aFor i = 0 To 9Print a(i)NextEnd SubPrivate Sub Sort(ByRef a() As Integer) Dim i As IntegerDim j As IntegerDim t As IntegerFor i = LBound(a) + 1 To UBound(a) For j = UBound(a) To i Step -1If a(j - 1) > a(j) Thent = a(j - 1)a(j - 1) = a(j)a(j) = tEnd IfNextNextEnd Sub4顺序查找过程Private Sub Command1_Click()Dim i, j, t, a(1 To 10)RandomizePrint "原数组:"For i = 1 To 10a(i) = Rnd * 10Print "a(" & i & ") =" & a(i) & Space(2),If i Mod 2 = 0 Then Print Next iPrintFor i = 1 To 9For j = i + 1 To 10If a(j) < a(i) Thent = a(i)a(i。

相关主题