1、国二VB语言辅导讲解18题定稿2母版十八题精讲第1题(二叉树).某二叉树共有7个结点,其中叶子结点只有1个,则该二叉树的深度为(假设根结点在第1层)( D)。A) 3 B) 4 C) 6 D) 7.一棵二叉树共有25个结点,其中5个是叶子结点,则度为1的结点数为(A)。A) 16 B) 10 C) 6 D) 4.设有下列二叉树:对此二叉树中序遍历的结果为(D)。A) ACBDEF B) DEBFCA C) ABDECF D) DBEAFC第2题(变量的范围).标准模块中有如下程序代码:Public x As Integer,y As IntegerSub var_pub() x10y20End
2、 Sub在窗体上有1个命令按钮,并有如下事件过程:Private Sub Command1_Click() Dim x As Integer Call var_pub xx100 yy100 Print x;yEnd Sub运行程序后单击命令按钮,窗体上显示的是(B同名时优先使用局部变量x )。A) 100100 B) 100120 C) 110100 D) 110120.在窗体上画一个名称为Command1的命令按钮,再画两个名称分别为Label1、Label2的标签,然后编写如下程序代码:Private X As IntegerPrivate Sub Command1_Click() X5
3、:Y3 Call proc(X, Y) Label1.CaptionX Label2.CaptionY End Sub Private Sub proc(a As Integer, ByVal b As Integer) Xa * a Ybb End Sub 程序运行后,单击命令按钮,则两个标签中显示的内容分别是(A)。A) 25和3 B) 5和3 C) 25和6 D) 5和6.工程文件中包含一个模块文件和一个窗体文件。模块文件的程序代码是:Public x As IntegerPrivate y As Integer窗体文件的程序代码是:Dim a As IntegerPrivate Sub
4、 Form_Load()Dim b As Integera2:b3:x10:y20End SubPrivate Sub Command1_Click()aa5:bb5:xx5:yy5Print a; b; x; y End Sub运行程序,单击窗体上的命令按钮,则在窗体上显示的是(D)。A) 5 5 15 5 B) 7 5 15 25C) 7 8 15 5 D) 7 5 15 5第3题(静态变量).窗体上有名称为Command1的命令按钮,名称分别为Label1、Label2、Label3的标签。编写如下程序:Private x As IntegerPrivate Sub Command1_C
5、lick()Static y As IntegerDim z As Integern5zznyynxxyLabel1xLabel2yLabel3zEnd Sub运行程序,连续3次单击命令按钮后,3个标签中分别显示的是(D)。A) 555 B) 15105 C) 151515 D) 30155.窗体上有1个名称为Command1的命令按钮,事件过程及函数过程如下:Private Sub Command1_Click()Dim p As Integerpm(1)m(2)m(3)Print pEnd SubPrivate Function m(n As Integer)As IntegerStati
6、c s As IntegerFor i1 To nss1NextmsEnd Function运行程序,第2次单击命令按钮Command1时的输出结果为(D)。A) 6 B) 10 C) 16 D) 28 第4题(运算符).下面程序运行时,若输入 395 ,则输出结果是(B)。Private Sub Command1_Click()Dim x%xInputBox(请输入一个3位整数)Print x Mod 10,x100,(x Mod 100)10End SubA) 395 B) 539 C) 593 D) 359第5题(控制结构与数组).窗体上有一个名称为Command1的命令按钮,事件过程如
7、下:Private Sub Command1_Click()Dim arr_x(5,5) As IntegerFor i1 To 3For j2 To 4arr_x(i,j)i * jNext jNext iPrint arr_x(2,1); arr_x(3,2); arr_x(4,3)End Sub运行程序,并单击命令按钮,窗体上显示的内容为(A)。A) 060 B) 260 C) 0612 D) 2612.在窗体上画一个名称为Command1的命令按钮,并编写如下程序:Function Fun(x)y0If x10 Then Exit For Next Text1.TextStr(n) E
8、nd Sub 程序运行后,单击命令按钮,在文本框中显示的值是(B)。A) 2 B) 3 C) 4 D) 5.设有如下事件过程:Private Sub Command1_Click()Dim aaArray(12,3,8,5,10,3,5,9,2,4)For k1 To 9Print fun(a(k1),a(k); ;Next kEnd SubPrivate Function fun(x,y)As IntegerDo While xyxxyLoopfunxEnd Function程序运行时的输出结果是(B)。A) 401030040 B) 033513512C) 953572472 D) 933
9、573572第6题(复杂程序的阅读).在窗体上画一个名称为Command1的命令按钮,然后编写如下程序:Option Base 1Private Sub Command1_Click()d0c10xArray(10,12,21,32,24)For i1 To 5If x(i)c Thenddx(i)cx(i)ElseddcEnd IfNext iPrint dEnd Sub程序运行后,如果单击命令按钮,则在窗体上输出的内容为(C 列表法)。A) 89 B) 99 C) 23 D) 77.编写如下程序:Private Sub Command1_Click() Dim str1 As String
10、, str2 As String str1InputBox(输入一个字符串) subf str1,str2 Print str2End SubSub subf(s1 As String,s2 As String) Dim temp As String Static i As Integer ii1 tempMid(s1, i, 1) If temp Then subf s1,s2 s2s2 & tempEnd Sub程序运行后,单击命令按钮Command1,且输入abcdef,则输出结果为(C递归)。A) afbecd B) cdbeaf C) fedcba D) adbecf.设有如下Com
11、mand1的单击事件过程及fun过程:Private Sub Command1_Click()Dim x As IntegerxVal(InputBox(请输入一个整数)fun(x)End SubPrivate Sub fun(x As Integer)If x Mod 20 Then fun(x / 2)Print x;End Sub执行上述程序,输入6,结果是(A递归)。A) 36 B) 63 C) 6 D) 程序死循环第7题(传值、传引用).某人编写了下面的程序:Private Sub Command1_Click() Dim a As Integer,b As Integer aInp
12、utBox(请输入整数) bInputBox(请输入整数) pro a pro b Call pro(ab) End Sub Private Sub pro(n As Integer) While(n0)Print n Mod 10;nn10 Wend Print End Sub此程序功能是:输入2个正整数,反序输出这2个数的每一位数字,再反序输出这2个数之和的每一位数字。例如:若输入123 和234,则应该输出:321432753但调试时发现只输出了前2行(即2个数的反序),而未输出第3行(即2个数之和的反序),程序需要修改。下面的修改方案中正确的是(A)。A) 把过程pro 的形式参数 n
13、 As Integer 改为 ByVal n As IntegerB) 把Call pro(ab)改为 pro abC) 把nn10 改为 nn / 10D) 在pro b语句之后增加语句 c%ab ,再把 Call pro(ab)改为 pro c第8题(组合框).在窗体上画一个组合框,一个命令按钮和一个文本框,其名称分别为Combo1,Command1和Text1,然后编写如下事件过程:Private Sub Form_Load() Combo1.AddItem AAAAA Combo1.AddItem BBBBB Combo1.AddItem CCCCC Combo1.AddItem DD
14、DDD Combo1.AddItem EEEEEEnd Sub程序运行后,如果单击命令按钮,则在文本框中显示组合框的项目CCCCC。为了实现该操作,在命令按钮的Click事件过程中应使用的语句为(A)。A) Text1.TextCombo1.List(2) B) Text1.TextCombo1.TextC) Text1.TextCombo1.List(3) D) Text1.TextCombo1.ListIndex第9题(定时器).(第2套 静态变量)Private Sub C1_Click() Timer1.Enabled = ?End SubPrivate Sub Timer1_Time
15、r() Static a% a = a + 1 If P1.Top P2.Top + P2.? Then P1.Move P1.Left, P1.Top - 5 - a, P1.Width, P1.Height Else Timer1.Enabled = ? End IfEnd Sub.(第10套)Private Sub Form_Load()Picture1(0).Left = 0Picture1(0).Top = 100For k = 1 To 7Picture1(k).Visible = ?NextEnd SubPrivate Sub Command1_Click()Timer1.Ena
16、bled = ?End SubPrivate Sub Command2_Click()Timer1.Enabled = FalseEnd SubPrivate Sub Timer1_Timer()Static i As IntegerPicture1(i).Visible = Falsei = i + 1If i = ? Theni =?End IfPicture1(i).Visible = TrueEnd Sub.(第12套) Dim left0 As IntegerConst blue color =&HFF0000, red color = &HFF&Private Sub Comman
17、d1_Click()Timer1.Enabled = ?End SubPrivate Sub Command2_Click()Timer1.Enabled = FalseEnd SubPrivate Sub Form_Load()left0 = Shape1.LeftEnd SubPrivate Sub Timer1_Timer()If Shape1.FillColor = blue color ThenIf Shape1.Left 0 Then Shape1.Height = Shape1.Height + 100Shape1.Width = Shape1.Width + 100Shape1
18、.Left = Shape1.Left - 50Shape1.Top = Shape1.Top - 50ElseShape1.FillColor = ?End IfEnd IfIf Shape1.FillColor = red color ThenIf Shape1.Left left0 ThenShape1.Height = Shape1.Height - 100Shape1.Width = Shape1.Width - 100? = Shape1.Left + 50? = Shape1.Top + 50ElseShape1.FillColor = ?End IfEnd IfEnd Sub第
19、10题(字符串).(第13套 读字符串 插入单词)Private Sub Command1_Click()Dim st$, ch$Open App.Path & in3.txt For Input As #1Do While Not EOF(1) Input #1, chst= ? & chLoopClose #1Text1 = stEnd SubPrivate Sub Command2_Click()Dim st$, word$, c$st = Text1n = Len(st)For k = 1 To n?= Mid(st, k, 1) If c Thenword = word & c El
20、seList1.AddItem word?= End IfNextList1.AddItem wordEnd Sub.(单字符)单击大小写转换按钮,可以把Text1中的大写字母转换为小写,把小写字母转换为大写。Private Sub Cmd1_Click() Dim a$, b$, k%, n% a$ = n% = Asc(a) - Asc( “A” ) For k% = 1 To Len(Text1.Text) b$ = Mid(Text1.Text, k%, 1) If b$ = a And b$ = A And b$ = Z Then b$ = String(1, Asc(b$)+ n%
21、 ) End If End If a$ = a$ + b$ Next k% Text1.Text = a$ End Sub第11题(一维及控件数组).参考答案Private Sub Command1_Click() Dim a() As Long Dim i As Integer Dim n As Integer For i = 0 To Op1.Count - 1 If Op1(i).Value = True Then n = Val(Op1(i).Caption) Exit For End If Next ReDim a(n) a(1) = 1 a(2) = 1 For i = 3 To
22、n a(i) = a(i - 1) + a(i - 2) Next Text1.Text = a(n)End Sub拓展条件:奇数、偶数、被3整除、被7整除、素数、大于?等个数(和)、下标为奇(偶)数的数组元素的和偶数分解为两个素数之和。第12题(两个及以上一维数组).(第6套)程序提供代码Option Base 1Dim Arr1(20) As IntegerDim Arr2(20) As IntegerSub ReadData1()Open App.Path & & datain1.txt For Input As #1For i = 1 To 20 Input #1, Arr1(i)Ne
23、xt iClose #1End SubSub ReadData2()Open App.Path & & datain2.txt For Input As #1For i = 1 To 20 Input #1, Arr2(i)Next iClose #1End SubSub WriteData(Filename As String, Num As Integer)Open App.Path & & Filename For Output As #1Print #1, NumClose #1End Sub参考答案Private Sub C1_Click() Call ReadData1 Call
24、ReadData2End SubPrivate Sub C2_Click() Dim Arr3(1 To 20) As Integer Dim sum As Integer sum = 0 For i = 1 To 20 Arr3(i) = Arr1(i) - Arr2(i) sum = sum + Arr3(i) Next i Print sum=; sum WriteData dataout.txt, sumEnd Sub拓展条件:两个有序的一维数组,合并后有序存入第三个数组;除10截尾后相乘放入第3个数组中,再求和。第13题(二维数组).(第10套) 程序提供代码Dim a(5, 5)
25、As IntegerDim b(5) As IntegerDim c(5) As IntegerPrivate Sub Command1_Click()N = 5For i = 1 To N考生编写程序开始考生编写程序结束Next iSaveEnd SubPrivate Sub Form_Load()readEnd SubPublic Sub read()Open App.Path & Data5.txt For Input As #1Do While Not EOF(1)For i = 1 To 5For j = 1 To 5Input #1, a(i, j)Next jNext iLoop
26、Close #1End SubPublic Sub Save()Open App.Path & out5.txt For Output As #1For i = 1 To 5Print #1, b(i), c(i)Next iClose #1End Sub参考答案 Max = a(i, 1) For j = 1 To 5 If Max a(i, j) Then Max = a(i, j) End If b(i) = Max If Max = a(i, j) Then c(i) = j Next j拓展条件:主对角线、副对角线、四周、各列、上三角、下三角等数据(最大最小值)输出(求和);交换两列或两行。第14题(顺序文件的读写及排序).(第4套)程序提供代码
copyright@ 2008-2022 冰豆网网站版权所有
经营许可证编号:鄂ICP备2022015515号-1