VB程序设计基础习题解答_第1页
VB程序设计基础习题解答_第2页
VB程序设计基础习题解答_第3页
VB程序设计基础习题解答_第4页
VB程序设计基础习题解答_第5页
已阅读5页,还剩58页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

1、PAGE 62PAGE 61程序设计基础习题解答董 琴盐城工学院第一章 Visual Basic概述VB是用于开发_环境下应用程序的工具。 (B)A. DOS B. Windows C. DOS和Windows D. UNIXVB6.0是_位操作系统下的应用程序开发工具。 (A)A. 32 B. 16 C. 32或16 D. 64一个对象可执行的动作与可被一个对象所识别的动作分别称为_(B)A.事件、方法 B.方法、事件 C.属性、方法 D.过程、事件有一个红色、充满氢气的气球,如果人不小心松开手抓的引线,就会飞走;如果用针刺它,则会爆破。请问,对于气球对象,哪些是属性、哪些是事件、哪些是方法

2、?答:属性是红色、氢气;事件是松开、针刺;方法是飞走、爆破。简述事件驱动过程程序的设计原理?答:使用VB不仅可以非常便捷地设计出Windows应用程序的窗口界面,设置界面中各种对象的属性,而且可以通过编写程序代码段,为对象规定在被某个“事件”激活时应发生的各种动作以及所要进行的信息处理的具体内容,这样的代码段称为“过程”。为各个对象编写的过程集合在一起,就构成一个完整的应用程序。VB的集成开发环境都有哪些元素些组成?答:VB的集成开发环境由标题条、菜单条、弹出式菜单(上下文菜单)、工具栏、控件工具箱、初始窗体、工程资源管理器子窗口、属性子窗口、窗体布局子窗口、代码编辑器窗口、立即、本地和监视窗

3、口等。简述用VB开发应用程序的一般步骤?答:VB开发应用程序的一般步骤是:创建程序的用户界面;设置界面上各个对象的属性;编写对象响应事件的程序代码;保存工程;测试和调试应用程序,检查并排除程序中的错误;创建可执行程序。第二章 创建用户界面窗体的属性主要可分为几类?Caption属性和Name属性有何不同?答:窗体的属性主要可分为:杂项、外观、行为、字体、位置等五类。Caption:窗体标题,是出现在窗体标题栏上的文本内容;Name:窗体名称,在程序代码中被作为对象的标识名。以下窗体名中哪些是非法的窗体名? (A B E)A. aform B. 3frm C. f_1 D. frm5 E. f_

4、1*VB为什么要提供多种窗体边框风格?试从已学习过的各种Windows应用程序的窗口中举例说明?答:VB中提供了六种窗体的边框风格,如设定值为1和3,它表示Windows应用程序中的对话框,其大小不可改变;设定值为2表示Windows应用程序中的窗口,其大小可以改变。在桌面上存在多个窗口时,改变窗口的工作状态会引发何种事件?改变窗口大小呢?答:改变窗口的工作状态会引发激活事件和失去激活事件;改变窗口大小会引发Resize事件。有程序代码如下:Form2.Caption=”Help”,试问:Form2、Caption和Help分别代表_ (C)A.对象、值、属性 B.值、属性、对象C.对象、属性

5、、值 D.属性、对象、值对象的属性是否只能在设计界面时在属性窗口中进行设置?属性窗口中的属性列表是否包括了一个对象的所有属性?答:属性的设置既可以在属性窗口中进行设置,也可以在程序代码中进行设置,但有些对象的有些属性只能在属性窗口中进行设置,如文本框的多行属性,有些对象的有些属性只能在程序代码中进行设置,如列表框的列表项数目属性;属性窗口中的属性列表中不包括一个对象的所有属性,如列表框的ListIndex属性、ListCount属性就不在属性列表中。VB的常用控件中,哪些控件具有Caption属性,而没有Text属性?哪些控件具有Text属性,却没有Caption属性?答:具有Caption属

6、性而没有Text属性的控件有:标签、命令按钮、复选框、选项按钮、框架;具有Text属性而没有Caption属性的控件有:文本框、组合框、列表框。除窗体之外,还有哪些控件可作为其他控件的容器使用?答:还有:框架、图片框常用控件中具有Value属性的控件有哪些?它们的取值及类型有何异同?答:常用控件中具有Value属性的控件有:选项按钮、复选框、滚动条;选项按钮的取值为逻辑型,选中该选项按钮时,其值为True,未选中该选项按钮时,其值为False;复选框的取值为数值型,选中该复选框时,其值为1,未选中该复选框是,其值为0,复选框变灰时,其值为2;滚动条的取值为数值型,其值为滚动块在滚条中的位置。以

7、下使用方法的代码中,正确的是_ (C)A. Label1.SetFocus B. Form1.ClearC. Text1.SetFocus D. Combo1.Cls将复选框的Value属性设为2,其效果与把它的Enabled属性设置为False有何异同?若把一个控件的Visible属性设为False,意味着什么?答:将复选框的Value属性设为2,表示该复选框暂时变灰,启动后仍然可以对其操作,而将复选框的Enabled属性设置为False,表示该复选框灰化,启动后不可以对其操作,直到将Enabled属性设置为True,才能对其操作。若把一个控件的Visible属性设为False,表示该控件不

8、可见。如何给一个列表框或组合框控件增添列表项?已有的列表项如何删除?答:给列表框或组合框控件增添列表项,可用属性窗口中的List属性,或在程序代码中使用AddItem方法。如果删除所有的列表项可用Clear方法,如果删除某一列表项可用RemoveItem方法。第三章 VB语言基础如果编写的过程要被多个窗体及其对象调用,应将这些过程放在哪一类模块中? (B)A.窗体模块 B.标准模块 C.工程 D.类模块事件过程与通用过程的主要区别是什么?答:事件过程是指为窗体以及窗体上的各种对象编写的用来响应由用户或系统引发的各种事件的代码行;通用过程是指一个应用程序中的多个窗体可以共享一些代码,或者一个窗体

9、内不同的事件过程可以共享的一些代码;事件过程是由用户或系统响应某个事件而执行的,通用过程是由事件过程或其他通用过程调用而执行的。通用过程只能存在于标准模块中,这种说法对吗?答:不对,通用过程既可存在于标准模块中,也可存在于窗体模块中。VB有哪些数据类型?答:VB中的数据类型有:整型、长整型、单精度、双精度、定长字符型、变长字符型、逻辑型、字节型、日期型、货币型、对象型、变体型。字符型常量与日期型常量在使用时有何区别?下列常量中哪些是字符串型常量,哪些是日期型常量?哪些什么也不是?A. “I am a student.” B. “江苏南京” C. #02/25/1999#D. #January

10、1,1993# E. “02/25/1999# F. #January 1,1993”答:字符型常量在使用时要加西文的双引号,日期型常量再使用时要加#号;字符型常量有:A、B;日期型常量有:C、D。下列符号中哪些是VB合法的变量名?A. blnFrag B. _a5b C. lngNum D. Area_TriangleE. User&Input F. 5Name答:合法的变量名有:A、C、D变量作用域包括几个等级?说明的方式有何区别?答:变量作用域包括三个等级:过程级、窗体级、全局级。局部(过程级):用Dim、Static在过程中定义,作用范围:该过程,脱遇该过程后无效,也就是在其它过程中无

11、效;Static:静态变量,脱离该过程后,变量的值不消失,用于子过程或函数过程中;窗体(模块)级:用Private、Dim在通用/声明部分定义,作用范围:该窗体中所有过程,脱遇该窗体后无效,也就是在其它窗体的过程中无效;全局(公有的):用Public在通用/声明部分定义;如果在标准模块中定义,则作用范围为该工程的所有窗体,调用时直接使用变量名;如果在窗体模块中定义,则作用范围为该工程的所有窗体,但本窗体调用时直接使用变量名,该工程中其它窗体调用时,须加定义时的窗体名作为前缀。写出下面数学式对应的算术表达式。 a/(b+c/d) (x+Sqr(x*x+1)(1/3) 2*y/(a*x+b*y)*

12、(a*x-b*y) 1+1/(1+1/m) (d/3)(2*x)/2 Log(y+cos(x)2) Abs(Exp(x)+Sin(x)3)/(x+y) Log(Exp(x*y)+Abs(Tan(z)(-1)+Cos(x)3)/(x+y-z)指出并改正下面数学式对应的VB算术表达式中的错语。 A+B/A-B (A+B)/(A-B) ABC/(D+1)*Y A*B*C/(D+1)*Y) XY5 (X*Y)5将下面的条件用VB的逻辑表达式表示。X+Y小于10且X-Y要大于0X、Y都是正整数或都是负整数A、B之一为零但不得同时为零C1+C2+C3大于等于255或C1与C2分别大于90且C3大于80答:

13、(1)X+Y0(2)X*Y0 And X=Int(X) And Y=Int(Y)(3)A*B=0 And AB 或A=0 Xor B=0(4)C1+C2+C3=255 Or C190 And C290 And C380求下列表达式的运算结果:Mid(“Visual Basic”,1,12)=Right(“Programming Language Visual Basic”,12) True“ABCRG”=“abcde” FalseInt(134.69)=Cint(134.69) False78.9/32.77-4.98 FalseStr(32.345)=Cstr(32.345) False下列

14、语句代码哪些可正常执行(正常执行是指系统不给出出错提示)?A. Print 32765+3 溢出B. Print 5+7=14 FalseC. Print 256/128 2D. Print “14”+ 32 46E. Print “14”& 32 “1432”答:能正常执行的语句有:B、C、D、E,具体执行结果见上。VB只有求自然对象的函数Log(X),如果计算式中需要使用常用对数或以2为底的对数,应如何处理?答:使用换底公式。常用对数:Ln(x)应用Log(x)/Log(10)表示;Log 2(x)应用Log(x)/Log(2)表示。执行语句代码Print Format(7543.568,

15、 “#,#0.00”),以下答案中那一个是正确的结果。 (C)A. 7543.57 B. 7,543.56 C. 7,543.57 D. 7543.56第四章 算法基础及VB的基本语句设X与Y是同一类型的变量,试设计一个算法,把X与Y中的数据相互交换。答:S1:输入X与Y S2:X = A S3:Y = X S4:A = Y S5:输出X与Y界面如下:程序代码如下:Option ExplicitPrivate Sub Command1_Click() Dim X As Integer, Y As Integer Dim a As Integer X = Val(Text1.Text) Y =

16、Val(Text2) a = X X = Y Y = a Text3.Text = CStr(X) Text4 = CStr(Y)End SubPrivate Sub Command2_Click() Text1.Text = Text2.Text = Text3 = Text4 = Text1.SetFocusEnd Sub设A、B、C是同一类型的变量,并分别被赋予不同大小的数据,设计一个算法,使得执行的结果为ABC答:S1:输入A、B、C S2:如果AB,则A与B交换 S3:如果AC,则A与C交换 S4:如果BC,则B与C交换S5:输出A、B、C界面如下:程序代码如下:Option Exp

17、licitPrivate Sub Command1_Click() Dim A As Integer, B As Integer Dim C As Integer, x As Integer A = Val(Text1.Text) B = Val(Text2) C = Val(Text3.Text) If A B Then x = A: A = B: B = x End If If A C Then x = A: A = C: C = x If B N - 1 Then Print N & 是素数 Else Print N & 不是素数 End IfEnd Sub设计一个判断某正整数是一个回文

18、数的算法。所谓回文数是指左右数字完全对称的自然数。答:S1:输入一个数字字符串S S2:I=1 S3:如果第I个数字与倒数第I个数字不同,则转S7 S4:I=I+1S5:如果I小于等于字符串长度的一半,则返回S3S6:输出S是回文数,程序结束S7:输出S不是回文数,程序结束。界面如下:程序代码如下:Option ExplicitPrivate Sub Form_Click() Dim S As String, i As Integer Dim Flg As Boolean S = InputBox(请输入一个正整数) S = Trim(S) Flg = True For i = 1 To Le

19、n(S) 2 If Mid(S, i, 1) Mid(S, Len(S) + 1 - i, 1) Then Flg = False Exit For End If Next i If Flg Then Print S & 是回文数 Else Print S & 不是回文数 End IfEnd Sub设计一个算法,求出给定的自然数的所有因子。答:S1:输入一个正整数N S2:I=1 S3:如果N能被I整数,则输出I S4:I=I+1S5:如果I小于等于N则转S3S6:程序结束界面如下:程序代码如下:Option ExplicitPrivate Sub Form_Click() Dim N As

20、Integer, i As Integer N = InputBox(请输入一个自然数) Print N & 的因子有:; For i = 1 To N If N Mod i = 0 Then Print i; End If Next i PrintEnd Sub在文本框Text1与Text2中分别输入35与48,变量S与X分别为字符型与整型,试问以下赋值语句的执行结果是什么?S=Text1.Text + Text2.Text “3548”X=Text1.Text + Text2.Text 3548S=Text1.Text & Text2.Text “3548”X=Text1.Text & T

21、ext2.Text 3548S=Val(Text1.Text) + Text2.Text “83”X=Val(Text1.Text) + Text2.Text 83S=Val(Text1.Text) & Text2.Text “3548”X=Val(Text1.Text) & Text2.Text 3548根据下图填空: z = InputBox(输入一个数: , 程序示例 , 1.5 )写出显示如下图所示信息框的MsgBox函数。MsgBox(Z的值 & Str(z) & 大于0 , 48 , 程序示例 )阅读程序,写出执行结果。Private Sub Form_Click() Dim a

22、As Integer, b As Integer a = 1: b = 0 Do While a = 20 Then Exit For Next i Print i, pEnd Sub运行结果为: 6 5Private Sub Form_Click() Dim p As Integer, i As Integer, n As Integer p = 2: n = 20 For i = 1 To n Step p p = p + 2 n = n - 3 i = i + 1 If p = 10 Then Exit For Next i Print i, p, nEnd Sub运行结果为: 11 1

23、0 8编写程序,随机生成100个两位整数,并统计出其中小于等于40、大于40且小于等于70及大于70的数据个数。答:程序代码如下:Option ExplicitPrivate Sub Form_Click() Dim i As Integer, x As Integer Dim c1 As Integer, c2 As Integer, c3 As Integer For i = 1 To 100 x = Int(Rnd * 90) + 10 Print x; If i Mod 10 = 0 Then Print If x = 40 Then c1 = c1 + 1 ElseIf x = 70

24、 Then c2 = c2 + 1 Else c3 = c3 + 1 End If Next i Print Print 40且70的数有:, c3End Sub随机生成20个100以内的正整数,将其中的奇数和偶数分两行显示在窗体上。答:程序代码如下:Option ExplicitOption Base 1Private Sub Form_Click() Dim a(20) As Integer, i As Integer Print 生成的20个数如下: For i = 1 To 20 a(i) = Int(Rnd * 100) + 1 Print Right( & a(i), 3); If

25、 i Mod 10 = 0 Then Print Next i Print 其中的偶数如下: For i = 1 To 20 If a(i) Mod 2 = 0 Then Print Right( & a(i), 3); Next i Print Print 其中的奇数如下: For i = 1 To 20 If a(i) Mod 2 = 1 Then Print Right( & a(i), 3); Next i PrintEnd Sub编写程序求出100以内的所有勾股数,所谓勾股数是指满足条件a2+b2=c2(ab)的自然数。答:程序代码如下:Private Sub Form_Click(

26、) Dim a As Integer, b As Integer, c As Integer For a = 1 To 100 For b = 1 To 100 For c = 1 To 100 If a * a + b * b = c * c And a b Then Print a & 2 + & b & 2 = & c & 2 End If Next c Next b Next aEnd Sub设计一个用二分法求方程x3-x4+4x2-1=0在区间0,1上的一个实根。答:程序代码如下:Option ExplicitPrivate Sub Command1_Click() Dim e As

27、 Double, a As Single Dim b As Single, c As Single Dim fa As Single, fb As Single Dim fc As Single e = 0.0000001 a = 0: b = 1 c = (a + b) / 2 Do fa = a 3 - a 4 + 4 * a 2 - 1 fb = b 3 - b 4 + 4 * b 2 - 1 fc = c 3 - c 4 + 4 * c 2 - 1 If fa * fc 0 Then a = c Else b = c c = (a + b) / 2 Loop Until Abs(b -

28、 c) e Text1.Text = CStr(c)End SubPrivate Sub Command2_Click() EndEnd Sub第五章 数 组随机生成15个100以内的正整数并显示在一个文本框中,再将所有对称位置的两个数据对调后显示在另一个文本框中。答:界面如下:程序代码如下:Option Base 1Option ExplicitDim a(15) As IntegerPrivate Sub Command1_Click() Dim i As Integer For i = 1 To 15 a(i) = Int(Rnd * 100) + 1 Text1.Text = Text

29、1 & Str(a(i) Next iEnd SubPrivate Sub Command2_Click() Dim i As Integer For i = 15 To 1 Step -1 Text2.Text = Text2.Text & Str(a(i) Next iEnd SubPrivate Sub Command3_Click() EndEnd Sub随机生成20个100以内的两位正整数,统计其中有多少个不相同的数。答:界面如下:程序代码如下:Option Base 1Option ExplicitPrivate Sub Form_Click() Dim a(20) As Inte

30、ger, i As Integer Dim j As Integer, k As Integer For i = 1 To 20 a(i) = Int(Rnd * 90) + 10 Print a(i); If i Mod 10 = 0 Then Print Next i For i = 1 To 19 If a(i) 0 Then For j = i + 1 To 20 If a(i) = a(j) Then a(j) = 0 Next j End If Next i For i = 1 To 20 If a(i) 0 Then k = k + 1 Next i Print 不相同的数有:

31、& Str(k)End Sub参照下图所示界面,编写一个求由一位随机整数构成的数组每一行与每一列之和。答:界面如下:程序代码如下:Option Base 1Option ExplicitDim a() As Integer, n As Integer, m As IntegerPrivate Sub Command1_Click() Dim i As Integer, j As Integer n = InputBox(请输入数组的行数:) m = InputBox(请输入数组的列数:) ReDim a(n, m) For i = 1 To n For j = 1 To m a(i, j) =

32、 Int(Rnd * 9) + 1 Picture1.Print a(i, j); Next j Picture1.Print Next iEnd SubPrivate Sub Command2_Click() Dim i As Integer, j As Integer, sum As Integer For j = 1 To m sum = 0 For i = 1 To n sum = sum + a(i, j) Next i Text2 = Text2 & Str(sum) Next jEnd SubPrivate Sub Command3_Click() Dim i As Intege

33、r, j As Integer, sum As Integer For i = 1 To n sum = 0 For j = 1 To m sum = sum + a(i, j) Next j Text1 = Text1 & Str(sum) & Chr(13) & Chr(10) Next iEnd SubPrivate Sub Command4_Click() Picture1.Cls Text1 = Text2 = End SubPrivate Sub Command5_Click() EndEnd Sub在一个数列中,删除其中的重复数,使得数列只保留不同的数。答:界面如下:程序代码如下

34、:Option Base 1Option ExplicitPrivate Sub Form_Click() Dim a() As Integer, n As Integer Dim i As Integer, j As Integer, k As Integer n = InputBox(请输入数据个数:) ReDim a(n) Print 生成的 & n & 个数如下: For i = 1 To n a(i) = Int(Rnd * 90) + 10 Print a(i); If i Mod 10 = 0 Then Print Next i i = 1 Do While i = n - 1

35、j = i + 1 Do While j = n If a(i) = a(j) Then For k = j To n - 1 a(k) = a(k + 1) Next k n = n - 1 ReDim Preserve a(n) Else j = j + 1 End If Loop i = i + 1 Loop Print 不相同的数如下: For i = 1 To n Print a(i); If i Mod 10 = 0 Then Print Next i PrintEnd Sub有20个数围成一圈,找出每四个相邻数之和中的最大值,并指出是哪四个相邻的数。答:界面如下:程序代码如下:O

36、ption ExplicitPrivate Sub Form_Click() Dim a(19) As Integer, i As Integer, max As Integer Dim p As Integer, m As Integer, j As Integer For i = 0 To 19 a(i) = Int(Rnd * 90) + 10 Print a(i); If (i + 1) Mod 10 = 0 Then Print Next i max = a(0) + a(1) + a(2) + a(3) Print max; m = 0 For i = 1 To 19 p = 0

37、For j = i To i + 3 p = p + a(j Mod 20) Next j If max p Then max = p m = i End If Print p; If (i + 1) Mod 10 = 0 Then Print Next i Print Print 最大数是: & Str(max) Print 四个相邻的数是:; For j = m To m + 3 Print a(j Mod 20); Next j PrintEnd Sub设有一个二维数组A(5,5),试编写程序计算(1)所有元素之和;(2)所有靠边元素之和;(3)两条对角线元素之和。答:界面如下:程序代码

38、如下:Option Base 1Option ExplicitDim a(5, 5) As IntegerPrivate Sub Command1_Click() Dim i As Integer, j As Integer For i = 1 To 5 For j = 1 To 5 a(i, j) = Int(Rnd * 9) + 1 Picture1.Print a(i, j); Next j Picture1.Print Next iEnd SubPrivate Sub Command2_Click() Dim i As Integer, j As Integer Dim s1 As I

39、nteger, s2 As Integer, s3 As Integer For i = 1 To 5 For j = 1 To 5 s1 = s1 + a(i, j) If i = 1 Or i = 5 Or j = 1 Or j = 5 Then s2 = s2 + a(i, j) If i = j Or i + j = 6 Then s3 = s3 + a(i, j) Next j Next i Text1 = Str(s1) Text2 = Str(s2) Text3.Text = Str(s3)End SubPrivate Sub Command3_Click() Picture1.

40、Cls Text1 = Text2 = Text3 = End SubPrivate Sub Command4_Click() EndEnd Sub找出一个m*n数组的“鞍点”。所谓鞍点是指一个在本行中最大,在本列中最小的数组元素,若找到了鞍点,则输出鞍点的行号和列号,若数组中不存在鞍点,则输出鞍点不存在。答:界面如下:程序代码如下:Option ExplicitOption Base 1Private Sub Command1_Click() Dim a() As Integer, m As Integer Dim n As Integer, i As Integer Dim j As In

41、teger, max As Integer Dim cj As Integer, k As Integer Dim l As Boolean m = InputBox(请输入数组的行数:) n = InputBox(请输入数组的列数:) m = 3: n = 4 ReDim a(m, n) For i = 1 To m For j = 1 To n a(i, j) = Int(Rnd * 90) + 10 Picture1.Print a(i, j); Next j Picture1.Print Next i For i = 1 To m max = a(i, 1) cj = 1 l = Tr

42、ue For j = 2 To n If max a(i, j) Then max = a(i, j) cj = j End If Next j For k = 1 To m If a(k, cj) max Then max = sum maxi = i End If If sum min Then min = sum mini = i End If Next i Print Print 最大行是第 & maxi & 行 Print 最小行是第 & mini & 行 Print For j = 1 To 5 k = a(maxi, j) a(maxi, j) = a(mini, j) a(mi

43、ni, j) = k Next j For i = 1 To 4 For j = 1 To 5 Print a(i, j); Next j Print Next iEnd Sub求一个n*n阶的矩阵A的转置矩阵。N从键盘输入,A矩阵和它的转置矩阵分别显示在两个文本框中。答:界面如下:程序代码如下:Option ExplicitOption Base 1Dim a() As Integer, b() As IntegerDim n As IntegerPrivate Sub Command1_Click() Dim i As Integer, j As Integer n = InputBox(

44、请输入N的值:) ReDim a(n, n) For i = 1 To n For j = 1 To n a(i, j) = Int(Rnd * 90) + 10 Text1.Text = Text1 & Str(a(i, j) Next j Text1 = Text1 & Chr(13) & Chr(10) Next iEnd SubPrivate Sub Command2_Click() Dim i As Integer, j As Integer ReDim b(n, n) For i = 1 To n For j = 1 To n b(i, j) = a(j, i) Text2 = T

45、ext2 & Str(b(i, j) Next j Text2 = Text2 & Chr(13) & Chr(10) Next iEnd SubPrivate Sub Command3_Click() Text1 = Text2 = Command1.SetFocusEnd Sub有如下一个二维数组,找出不同行、不同列的三个数组元素的乘积最大的一组,并将这三个元素按下面的形式打印出来。A(1,*)=*A(2,*)=*A(3,*)=*答:界面如下:程序代码如下:Option Base 1Option ExplicitPrivate Sub Form_Click() Dim a(3, 3) As

46、 Integer, i As Integer, m As Single Dim j As Integer, k As Integer, max As Single Dim ci As Integer, cj As Integer, ck As Integer Print 生成的二维数组: For i = 1 To 3 For j = 1 To 3 a(i, j) = Int(Rnd * 9) + 1 Print a(i, j); Next j Print Next i Print 不同行不同列的三个数的乘积是: max = a(1, 1) * a(2, 2) * a(3, 3) ci = 1:

47、 cj = 2: ck = 3 For i = 1 To 3 For j = 1 To 3 For k = 1 To 3 If i j And j k And i k Then m = a(1, i) * a(2, j) * a(3, k) Print m; If m max Then max = m ci = i cj = j ck = k End If End If Next k Next j Next i Print Print 最大值为: & Str(max) Print A(1, & CStr(ci) & )= & Str(a(1, ci) Print A(2, & CStr(cj)

48、 & )= & Str(a(2, cj) Print A(3, & CStr(ck) & )= & Str(a(3, ck)End Sub编写打印N阶幻阵的程序。答:界面如下:程序代码如下:Option ExplicitOption Base 1Private Sub Form_Click() Dim a() As Integer, n As Integer Dim i As Integer, j As Integer, k As Integer n = InputBox(请输入N的值(N为奇数)) If n Mod 2 = 0 Then MsgBox 输入的N为偶数,请重新输入 n = In

49、putBox(请输入N的值(N为奇数)) End If ReDim a(n, n) i = n: j = (n + 1) / 2: k = 1 a(i, j) = k k = k + 1 Do While k n And j + 1 = n Then i = 1: j = j + 1: a(i, j) = k ElseIf i + 1 n Then i = i + 1: j = 1: a(i, j) = k ElseIf i + 1 n And j + 1 n Then i = i - 1: a(i, j) = k ElseIf i + 1 = n And j + 1 = n And a(i

50、+ 1, j + 1) 0 Then i = i - 1: a(i, j) = k Else i = i + 1: j = j + 1: a(i, j) = k End If k = k + 1 Loop For i = 1 To n For j = 1 To n Print Right( & a(i, j), 4); Next j Print Next i PrintEnd Sub第六章 程序调试下面是一个有错误的程序,它的功能是把一个正整数序列重新排列,新序列的排列规则是:奇数在序列左边,偶数在序列右边,排列时,奇、偶数依次从序列两端向序列中间排放。答:界面如下:原程序代码如下:Optio

51、n Base 1Option ExplicitPrivate Sub Command1_Click() Dim a(10) As Integer, i As Integer, j As Integer Dim b(10) As Integer, k As Integer For i = 1 To 10 a(i) = Int(Rnd * 100) + 1 Picture1.Print a(i); Next i Picture1.Print j = 1: k = 5 将其中的K=5改为K=10 For i = 1 To 10 If a(i) Mod 2 = 0 Then 将其中的=0改为=1或改为

52、0 b(j) = a(i) j = j + 1 Else b(k) = a(i) k = k + 1 将其中的K=K+1改为K=K-1 End If Next i For i = 1 To 10 Picture2.Print b(i); Next i Picture2.PrintEnd SubPrivate Sub Command2_Click() Picture1.Cls Picture2.ClsEnd SubPrivate Sub Command3_Click() EndEnd Sub第八章 过 程在过程中声明的局部变量和在过程中声明的静态变量有什么不同?答:局部变量离开过程后,该变量的值

53、就消失,而静态变量离开过程后,该变量的值不消失,下次调用时该变量保留上一次的值。在VB程序中调用程序向过程传递数据有哪几种方式?它们之间有什么不同?答:在VB程序中调用程序向过程传递数据有两种:按值传递与按地址传递。按值传递是指调用时将实参的值复制给形参,形参的值改变与实参没有任何关系;按地址传递是指调用时实参与形参共用同一个存储单元,形参的值发生变化实参的值也发生变化,实参的值发生变化,形参的值也发生变化。举例说明按值传递与按地址传递方式的异同?答:按值传递举例:Private Sub Command1_Click() Dim a As Integer a = 2 Call abc(a) P

54、rint aEnd SubPrivate Sub abc(ByVal b As Integer) b = b + 2 Print bEnd Sub单击命令按钮,事件过程中的实参A的值为2,调用ABC子过程,形参B的值为2,然后执行子程序,B的值为4,返回事件过程后,A的值仍为2。按地址传递举例:Private Sub Command1_Click() Dim a As Integer a = 2 Call abc(a) Print aEnd SubPrivate Sub abc(b As Integer) b = b + 2 Print bEnd Sub单击命令按钮,事件过程中的实参A的值为2

55、,调用ABC子过程,形参B的值为2,然后执行子程序,B的值为4,返回事件过程后,A的值也变为4。阅读程序,给出输出结果:Option ExplicitOption Base 1Private Sub Form_Click() Dim St As String, Char As String Dim Data() As String, I As Integer, J As Integer St = 10281018123811181038 For I = 1 To Len(St) If Mid(St, I, 1) 8 Then Char = Char & Mid(St, I, 1) Else J

56、 = J + 1 ReDim Preserve Data(J) Data(J) = Char Char = End If Next I Call Conver(Data, Char) Print CharEnd SubPrivate Sub Conver(a() As String, Ch As String) Dim I As Integer, J As Integer Dim N As Integer, Dec As Integer For I = 1 To UBound(a) N = Len(a(I) For J = 1 To N Dec = Dec + Val(Mid(a(I), J,

57、 1) * 8 (N - J) Next J Ch = Ch & Chr(Dec) Dec = 0 Next IEnd Sub输出结果为:BASICOption ExplicitPrivate Sub Form_Click() Dim N As Integer, I As Integer N = 2 For I = 9 To 1 Step -1 Call Sub2(I, N) Print I, N Next IEnd SubPrivate Sub Sub2(X As Integer, Y As Integer) Static N As Integer Dim I As Integer For

58、I = 3 To 1 Step -1 N = N + X X = X - 1 Next I Y = Y + NEnd Sub输出结果为:6 2662 -2 98Option ExplicitPrivate Sub Form_Click() Dim A As Integer A = 2 Call Sub1(A)End SubPrivate Sub Sub1(X As Integer) X = X * 2 + 1 If X 10 Then Call Sub1(X) End If X = X * 2 + 1 Print XEnd Sub输出结果为:23 47编写一个摄氏温度与华氏温度转换的通用过程。

59、摄氏(C)与华氏(F)温度转换的公式如下:F=C*9/5+32答:界面如下:程序代码如下:Option ExplicitPrivate Sub Command1_Click() Dim C As Single, F As Single C = Val(Text1.Text) Call CtoF(C, F) Text2.Text = CStr(F)End SubPublic Sub CtoF(C As Single, F As Single) F = C * 9 / 5 + 32End SubPrivate Sub Command2_Click() Text1 = Text2 = Text1.S

60、etFocusEnd SubPrivate Sub Command3_Click() EndEnd Sub编写一个验证一个数是否是素数的通用过程。用InputBox函数输入一个正整数,调用该过程判断其是否是素数,在文本框中显示判断结果,如输入11,则显示11是素数。答:界面如下:程序代码如下:Option ExplicitPrivate Sub Command1_Click() Dim N As Integer, Flg As Boolean N = InputBox(请输入一个正整数:) Call Prime(N, Flg) If Flg Then Text1 = Str(N) & 是素数

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论