VB第6章课后练习答案

合集下载

vb6.0第六章 习题解答

vb6.0第六章 习题解答

习题六一、选择题答案Aadcc dc二、填空题答案1、a(I,j)+b(I,j)2、下标越界3、64、1 2 2 4 3 6第六章选择题部分解析3、sum表示a数组各元素的和X表示a数组元素和的平均值最后打印出a数组中大于平均值的元素Sum=1+2+3+4+5=15,x=3大于3的有4,55、倒着看文本框中显示什么?答:显示的是array1(1,3)+array2(2,3)的和接着往前看程序发现array1(i,j)=i+j所以array1(1,3)=1+3=4Array2(2,3)=2+3=5所以4+5=9二、填空题解析2、x数组最大元素是x(6)退出for循环时,i=7然后print x(i)相当于print x(7)但是没有x(7)这个元素,超出最大下标了。

若把print x(i)改为print x(a)则值是36第六章编程题1、Private Sub Form_Click()Dim a(1 To 20) As Integer, i As IntegerDim j As Integerj = 0 '用来表示小于60的个数Picture1.Print "产生的数组为:"Picture1.PrintPicture2.Print "其中小于60的元素有:"Picture2.PrintFor i = 1 To 20a(i) = Int(Rnd * 100 + 1)Picture1.Print a(i);If i Mod 10 = 0 Then Picture1.PrintIf a(i) < 60 Thenj = j + 1Picture2.Print a(i); " ";If j Mod 10 = 0 Then Picture2.PrintEnd IfNext iEnd SubPrivate Sub Form_Load()RandomizeEnd Sub2、Private Sub Form_Click()Dim a(1 To 10) As IntegerDim max As Integer, min As Integer, i As IntegerFor i = 1 To 10a(i) = Int(Rnd * 90 + 10)Picture1.Print a(i);If i Mod 5 = 0 Then Picture1.PrintNext imax = a(1)min = a(1)For i = 2 To 10If a(i) > max Then max = a(i)If a(i) < min Then min = a(i)Next iLabel1.Caption = "最大数为:" & maxLabel2.Caption = "最小数为:" & minEnd SubPrivate Sub Form_Load()RandomizeEnd Sub3、Dim a(1 To 20) As IntegerPrivate Sub Command1_Click()Dim x As Integer, flag As Integer, i As Integerflag = 0 '标志,表示数组中是否存在xx = InputBox("请输入x的值,为整数", "输入", 1) For i = 1 To 20If x = a(i) Thenflag = 1 'flag改变,说明存在Exit ForEnd IfNext iIf flag = 1 ThenPrint "数组中存在" & xPrint "位置:" & iElsePrint "数组中不存在" & xEnd IfEnd SubPrivate Sub Form_Click()Dim i As IntegerFor i = 1 To 20 '生成数组a(i) = Int(Rnd * 100) '题目没要求,随便的范围Next iFor i = 1 To 19 '冒泡排序For j = 20 To i + 1 Step -1If a(j) > a(j - 1) Thent = a(j)a(j) = a(j - 1)a(j - 1) = tEnd IfNext jNext iFor i = 1 To 20 '打印数组Print a(i);If i Mod 5 = 0 Then PrintNext iEnd SubPrivate Sub Form_Load()RandomizeEnd Sub4、Private Sub Form_Click()Dim a(1 To 15) As SingleDim i As Integer, c1 As Integer, c2 As Integer, c3 As Integer, avg As SingleFor i = 1 To 15a(i) = InputBox("请输入第" & i & "个学生的成绩", "输入成绩", 60)avg = avg + a(i)Next iavg = avg / 15For i = 1 To 15If a(i) > avg Then c1 = c1 + 1If a(i) < 60 Then c2 = c2 + 1If a(i) >= 90 Then c3 = c3 + 1Next iPrint "高于平均分的人数"; c1Print "<60的人数"; c2Print ">=90的人数"; c3End Sub5、Dim a(1 To 4, 1 To 4) As Integer, b(1 To 4, 1 To 4) As Integer, c(1 To 4, 1 To 4) As IntegerPrivate Sub Command1_Click()‘(2)题For i = 1 To 4For j = 1 To it = a(i, j)a(i, j) = a(j, i)a(j, i) = tNext jNext iPicture2.ClsPicture2.Print "a转置后:"Picture2.PrintFor i = 1 To 4For j = 1 To 4Picture2.Print a(i, j); " ";Next jPicture2.PrintNext iEnd SubPrivate Sub Command2_Click()‘(3)题Picture2.ClsMax = c(1, 1)t1 = 1t2 = 1For i = 1 To 4For j = 1 To 4If c(i, j) > Max ThenMax = c(i, j)t1 = it2 = jEnd IfNext jNext iPicture2.Print "max=", MaxPicture2.Print "c("; i; ","; j; ")"End SubPrivate Sub Command3_Click()‘(4)题Picture1.ClsPicture2.ClsFor i = 1 To 4For j = 1 To iPicture1.Print a(i, j); " ";Next jPicture1.PrintNext iFor i = 1 To 4For j = i To 4Picture2.Print Tab(j * 5); b(i, j);Next jPicture2.PrintNext iEnd SubPrivate Sub Command4_Click()‘(5)题Picture1.ClsFor i = 1 To 4t = a(1, i)a(1, i) = a(3, i)a(3, i) = tNext iFor i = 1 To 4For j = 1 To 4Picture1.Print a(i, j); " ";Next jPicture1.PrintNext i End SubPrivate Sub Command5_Click()‘(1)题Picture3.Print "c矩阵:"Picture3.PrintFor i = 1 To 4For j = 1 To 4c(i, j) = a(i, j) + b(i, j)Picture3.Print c(i, j); " ";Next jPicture3.PrintNext iEnd SubPrivate Sub Form_Load()ShowPicture1.Print "a矩阵:"Picture1.PrintPicture2.Print "b矩阵:"Picture2.PrintFor i = 1 To 4For j = 1 To 4a(i, j) = Int(Rnd * 40 + 30)b(i, j) = Int(Rnd * 35 + 101)Picture1.Print a(i, j); " ";Picture2.Print b(i, j); " ";Next jPicture1.PrintPicture2.PrintNext iEnd Sub。

VB第6章课后练习答案

VB第6章课后练习答案

第6章过程与函数一、填空题1.数组名作为过程或函数实参,相应的形参传递方式为____按地址传递____。

2.一维长整型数组a作过程形参写作:a() As Long,二维长整型数组b作过程形参写作:____b() As Long ____。

3.过程形参为整型,对应实参为5.64,传递给形参的值为____6____。

4.调用过程时对形参的改变不会导致相应实参变量的改变,则该形参采用____按值传递____方式。

5.调用过程时对形参的改变就是对相应实参变量的改变,则该形参采用____按地址传递____方式。

6.声明Single类型全局变量x,写作____Public x As Single(或 Publicx!)____;声明Integer类型静态变量x,写作____Static x As Integer (或Static x%)____。

7.在窗体Form1的过程中引用窗体Form2中的全局变量y,写作____Form2.y____。

8.阅读如下代码,单击窗体后,窗体上的显示结果为____s = 2 s = 5 s = 9____。

Dim i As Integer, n As IntegerPrivate Sub Form_Click()Dim i As IntegerFor i = 1 To 3s = sum(i): Print "s ="; s;Next iEnd SubPrivate Function sum(n As Integer)Static j As Integerj = j + n + 1: sum = jEnd Function二、选择题1.VB程序设计语言中,函数过程与子过程必须分别用关键字( C)声明。

(A)Private,Public (B)Public,Private(C)Function, Sub (D)Sub, Function2.要调用一个已经定义好的函数myfunction( ),用语句的方式调用函数,下列写法哪个是正确的( D)(A)Call myfunction (B)myFunction(C)myFunction ( ) (D)CallmyFunction( )3.定义过程时,如果在过程名前加关键字Private,则该过程为( A)。

VB课后练习答案.doc

VB课后练习答案.doc

VB课后练习答案P12第一章课后练习答案:一、选择题二、填空题第二章(P39)选择题答案:填空题答案:1.Cmdl, Click2.Text 1.Text二"Hello"P64第三章课后练习答案一、选择题二、填空题1.(Y Mod 4=0 And Y Mod 10000) Or Y Mod 400=0 2.a<>0 And b*2-4*a*c>=0 3.X Mod 5=0 And X Mod 2=0 或 Tnt(x/5)=X/5 And Int(X/2)=X/2 4. 注意:返回的均是字符型。

第四章课后答案:P79一、选择题答案为:$$41.50010二、填空题三、程序设计题(提示)1、鸡的头数为x,兔的头数为y,则可列方程式:\x-\- y = h (兀 * 2 + y * 4 =于求得x, y 的值再在窗体上输出结果。

2、 利用Format 格式函数,再通过窗体的Print 将格式化后的信息输出到窗体上。

3、 厶员I 的周长=2加" $岡的面积=加25、通过Inputbox 函数或用文本框输入三边和圆的半径a,b,c, r,利用公式:. a + b + cn 二 ---------2 S 三角形面积=Jh (h - - b )(h - c )P97第五章课后练习答案:第9题| D一、选择题答案D 改为:30二、填空题第]题Y Mod 4二0 And Y Mod 100二0 Or Y Mod 400二0 第2题笫3题笫4题Private Sub Command l_Click()X=Val(Textl.Text)Select Case XCase Is>200. Isv-10()Print “xv 100 Or x>200"Case ls<=0Y=l()()-XCase Isv二100Y=100+XCase Is<=200Y=400End SelectText2.Text=yEnd Sub三、程序设计题(提示)1、判断条件:假设一个整数为xX Mod 3=0 Or x Mod 5=0 或x/3=x\3 Or x/5=x\52、选项按钮的知识点在P182,利用该控件的Wlue属性判断是否选中该项。

vb教程答案第六章

vb教程答案第六章

1.阅读程序,写出程序结果答: 6 7 92 5 81 3 42.提示:在交换首尾对称位置的数组元素时注意,循环的终值只能到数组的一半,而不能到数组的最大下标,否则会将数组元素值又还原成原来的数值。

程序界面如下图5-2所示:图5-2参考程序如下:Private Sub Command1_Click()Dim a(15) As Integer, i As Integer, j As Integer, t As Integer'给数组赋值,并输出在文本框1中For i = 1 To 15a(i) = Int(Rnd * 100) + 1Text1.Text = Text1.Text & Str(a(i))Next i'交换数组对称位置的数据For i = 1 To 7t = a(i)a(i) = a(16 - i)a(16 - i) = tNext i'输出交换后的数组内容For i = 1 To 15Text2.Text = Text2.Text & Str(a(i))Next iEnd Sub3.提示:可以对数组的每个元素与其后面的所有元素逐个进行比较,如果有相同的数,将后面出现的数值清为0,最后统计所有不为0的数据个数。

参考程序如下:Private Sub Command1_Click()Dim a(20) As Integer, i As Integer, j As Integer, k As Integer'给数组赋值,并输出在窗体上RandomizeFor i = 1 To 20a(i) = Int(Rnd * 100) + 1Print a(i);Next iPrint'统计有多少个不相同的数For i = 1 To 19For j = i + 1 To 20If a(j) = a(i) Then a(j) = 0Next jNext i'统计不相同的数,并输出在窗体上For i = 1 To 20If a(i) <> 0 Then k = k + 1Next iPrint "一共有" & k & "个不相同的数"End Sub4.本题的主要思路是:先给数组的20个数赋值并输出,然后按照求最大值的算法思想,先将前4个数之和赋给存放最大值的变量max,同时记录4个数中第一个数的下标,然后对剩下的每4个数求和,判断是否大于max,如果是,将新的最大值送给max,同时记录其首数据的下标,最后,只要输出四个相邻数之和的最大值,并输出这四个数即可。

VB程序设计课后习题答案

VB程序设计课后习题答案

VB课后习题解答第一、二章:1、简述VB6.0的主要特点答:方便、直观的可视化设计工具;面向对象程序设计方法;事件驱动的编程机制;易学易用的应用程序集成开发环境;结构化程序设计语言;完备的联机帮助功能;强大的多媒体、数据库和网络功能。

2、当正常安装VB6.0后,误把Windows子目录删除。

当重新安装Windows后,是否需要再次安装VB6.0?答:要重新安装的。

因为安装VB6.0时,有些VB程序被系统自动安装在Windows目录下,所以一旦删除Windows子目录,就必须重新安装VB6.0。

3、Visual Basic 6.0分为学习版、专业版和企业版,如何知道所安装的是哪个版本?答:在VB6.0的启动界面上,能显示对应的版本。

4、叙述建立一个完整应用程序的过程答:首先建立用户界面的控件对象(简称控件);然后对控件属性进行设置;再对控件事件过程及编程;保存应用程序;程序调试和运行。

5、Visual Basic 6.0有多种类型窗口,若要在设计时看到代码窗口,应怎样操作?答:选择“视图”—>“代码窗口”命令或单击“工程资源管理器”窗口中的“查看代码”按钮。

6、当建立好一个简单的应用程序后,假定该工程仅有一个窗体模块。

试问该工程涉及多少个要保存的文件?若要保存该工程的所有文件,应先保存什么文件?再保存什么文件?若不这样做,系统会出现什么信息?答:涉及两个文件要保存。

先保存窗体文件(.frm),再保存工程文件(.vbp)。

若先保存工程文件,系统也会先弹出“文件另存为”对话框,要求先保存窗体文件。

7、保存文件时,若不改变目录名,则系统默认的目录是什么?答:系统默认的目录是VB988、安装Visual Basic 6.0后,帮助系统是否也已安装?答:没有。

VB6.0的帮助系统在两张光盘上,即MSDN Library,其中还包含了VC、VFP等其他语言的帮助系统。

9、如何使用Visual Basic 6.0的帮助系统?答:最方便的方法是选定要帮助的内容,然后按F1功能键,这时系统打开MSDN Library查阅器,直接显示与选定内容有关的帮助信息。

vb习题答案(1-9章)最全的

vb习题答案(1-9章)最全的

第一章VB程序设计概述二、选择题CADAB ACDAB CBDBB第二章VB可视化编程基础二、选择题ABDCA CACBC DADAD BDBBB三、填空题1.可视2.LEFT TOP WIDTH HEIGHT3.按字母序4.查看代码5.工具、选项6.Form1 Font7.Multiline8.只读属性9.工程属性通用Form1.show10.tabindex 0第三章VB语言基础二、选择题BCADB ADBBC DBCBA DAABB三、填空题1.整型、长整型、单精度、双精度2.sin(30*3.14/180)+sqr(x+exp(3))/abs(x-y)-log(3*x)3.160 今天是:3-224.False5.-4 3 -3 3 -4 46.“CDEF”7.(x mod 10)*10+x\108.(35\20)*20=20 ( 35 \ 20 ) * 20 = 209.x mod 3=0 or x mod 5=010.27.6 8.2 8 1 100 397 true false第四章VB程序控制结构二、选择题DBCAD ABCAB D25BAC CBACB DABBC三、填空题1.字符型整型2. 1 2 33.x>74.x<amin5.10246.117.128.6 I “*”;9.0 100 i+1 10.2*I 6 “*”;三、编程题1.Private Sub Form_Click()Dim n As Integer, i As Integer, s As Longs = 1n = Val(InputBox("请输入一个整数:"))For i = 1 To ns = s * iNext iMsgBox n & "!=" & sEnd Sub2.Private Sub Form_Click()Dim i%, k%For j = 3 To 100k = Int(Sqr(j))For i = 2 To kIf j Mod i = 0 Then Exit ForNext iIf i > k Theny$ = y$ & " " & jEnd IfNext jMsgBox y, , "显示质数"End Sub3.Private Sub Form_Click()Dim i%, s%For i = 1 To 100s = s + iNext iMsgBox "1+2+3+……+100=" & sEnd Sub4.Private Sub Form_Click()Dim x%, y%For x = 1 To 50For y = 1 To 33z = 100 - x - yIf 2 * x + 3 * y + 0.5 * z = 100 ThenPrint "小鸡、公鸡、母鸡分别为:"; x; y; z End IfNext yNext xEnd Sub5.Private Sub Command1_Click()Dim a%, b%, c%, p!, s!doa = Val(InputBox("请输入三角形的第一条边"))if a=-1 then exit dob = Val(InputBox("请输入三角形的第二条边"))c = Val(InputBox("请输入三角形的第三条边"))If a + b > c And a + c > b And b + c > a Thenp = (a + b + c) / 2s = Sqr(p * (p - a) * (p - b) * (p - c))Print sElseMsgBox "你输入的三边不能构成三角形,请重新输入"End IfloopEnd Sub6. Private Sub Form_Click()Dim i As Integer, j As Integer,k as integerFor i = 1 To 8For k=1 to 8-iPrint spc(3);Next kFor j = 1 To 2 * i - 1Print i;Next jPrintNext iEnd Sub7. Private Sub Form_Click()Dim i As Integer, j As Integer, k As IntegerFor i = 1 To 30For j = 1 To 30For k = 1 To 30If i ^ 2 + j ^ 2 = k ^ 2 ThenPrint i & " ^ 2 + " & j & "^ 2 =" & k & "^ 2"End IfNext kNext jNext iEnd Sub8.Private Sub Form_Click()Dim x As Integer, a As Integer, b As Integer, c As Integer, ss As String ss = ""For x = 100 To 999a = Int(x / 100)b = Int((x - 100 * a) / 10)c = x - 100 * a - 10 * bIf a ^ 3 + b ^ 3 + c ^ 3 = x Thenss = ss & " " & xEnd IfNext xPrint ssEnd Sub9.Dim sr As Long, r As Singlesr = Val(InputBox("请输入收入:"))Select Case srCase Is < 200r = 0Case 200 To 400r = (sr - 200) * 0.04Case 400 To 5000r = sr * 0.04Case Is >= 5000r = sr * 0.05End SelectPrint "收入为" & sr & "时所缴纳的税为:" & rEnd Sub10.Private Sub Form_Click()Dim t As Single, wf As Singlet = Val(InputBox("请输入上网时间:"))Select Case tCase Is < 10wf = 50Case 10 To 60wf = t * 6Case Is >= 60wf = t * 4End SelectIf wf >= 200 Thenwf = 200End IfPrint "上网时间为" & t & "小时上网的费用为:" & wf End Sub11. Private Sub Form_Click()Dim yf As Integeryf = Val(InputBox("请输入月份"))Select Case yfCase 12, 1, 2MsgBox yf & "月份是冬季"Case 3, 4, 5MsgBox yf & "月份是冬季"Case 6, 7, 8MsgBox yf & "月份是冬季"Case 9, 10, 11MsgBox yf & "月份是冬季"Case ElseMsgBox "输入错误,请重新输入"End SelectEnd Sub12.if的方法Private Sub Form_Click()Dim x As Single, f As Singlex = Val(InputBox("请输入一个数"))If x < 0 Thenf = 2 * x - 1ElseIf x = 0 Thenf = 4 * xElseIf x > 0 Thenf = 7 * x - 5End IfPrint "f(" & x & ")=" & fEnd SubSelect case语句:Private Sub Form_Click()Dim x As Single, f As Singlex = Val(InputBox("请输入一个数"))Select Case xCase Is < 0f = 2 * x - 1Case 0f = 4 * xCase Is > 0f = 7 * x - 5End SelectPrint "f(" & x & ")=" & fEnd Sub第五章数组一、选择题DCACD DBCDC BADAD二、填空题1.名称Index2.preserve3.变体4.235.1 2 3 1 4 16.1 2 3 2 4 67. max max=arr1(i)三、编程题1.Option Base 1Private Sub Form_Click()Dim a(10) As Integer, i%, temp%For i = 1 To 10a(i) = Val(InputBox("请输入第" & i & "个整数")) Next iPrint "原来各元素的值为:"For i = 1 To 10Print a(i);Next iFor i = 1 To 5temp = a(11 - i)a(11 - i) = a(i)a(i) = tempNext iPrintPrint "交换后各元素的值为:"For i = 1 To 10Print a(i);Next iEnd Sub2.Option Base 1Private Sub Form_Click()Dim a As Variant, b As Variant, c As Variant, i%a = Array(2, 8, 7, 6, 4, 28, 70, 25)b = Array(79, 27, 32, 41, 57, 66, 78, 80)ReDim c(8)For i = 1 To UBound(a)c(i) = a(i) + b(i)Next iFor i = 1 To UBound(c)Print c(i);Next iEnd Sub3.Option Base 1Private Sub Form_Click()Dim a() As Variant, i%, j%, n%, m%, max%, hh%, lh%n = Val(InputBox("请输入一个整数:"))m = Val(InputBox("请输入一个整数:"))ReDim a(n, m)For i = 1 To n - 1For j = 1 To m - 1a(i, j) = Int(Rnd * 101 + 50)If max < a(i, j) Then max = a(i, j): hh = i: lh = jNext jNext iPrint "最大值为:"; max; "所在的行号为:"; hh; "所在的列号为:"; lh End Sub4.Option Base 1Private Sub Form_click()Dim a(50) As Integer, b(9) As Integer, i%, j% For i = 1 To 50a(i) = Int(Rnd * 90 + 10)j = Int(a(i) / 10)b(j) = b(j) + 1Next iFor j = 1 To 9Print b(j);Next jEnd Sub5.Option Base 1Private Sub Command1_Click(Index As Integer) Select Case IndexCase 0Text3 = Val(Text1) + Val(Text2)Case 1Text3 = Val(Text1) - Val(Text2)Case 2Text3 = Val(Text1) * Val(Text2)Case 3Text3 = Val(Text1) / Val(Text2)End SelectEnd Sub6.Private Sub Form_click()Dim s!, i&, j&i = 3s = 1j = 0Doj = j + 1s = s + (-1) ^ j / ii = i + 2Loop While 1 / i > 10 ^ (-6)Print 4 * sEnd Sub7.Option Base 1Private Sub Form_click()Dim a(40) As Long, i As Integera(1) = 1a(2) = 1For i = 3 To 39a(i) = a(i - 1) + a(i - 2)Next iFor i = 1 To 40Print a(i);Next iEnd Sub8.冒泡法:Option Base 1Private Sub Form_click()Dim a(10) As Single, ok As Boolean, i%, j%, x!For i = 1 To 10a(i) = Val(InputBox("请输入第" & i & "个数"))Print a(i);Next iFor i = 10 To 2 Step -1ok = TrueFor j = 1 To i - 1If a(j) > a(j + 1) Thenx = a(j)a(j) = a(j + 1)a(j + 1) = xok = FalseEnd IfNext jIf ok Then Exit ForNext iPrintPrint "冒泡排序的结果为:"For i = 1 To 10Print a(i);Next iEnd Sub选择法:Option Base 1Private Sub Form_click()Dim a(10) As Single, p!, i%, j%, min!For i = 1 To 10a(i) = Val(InputBox("请输入第" & i & "个数"))Print a(i);Next iFor i = 1 To 9p = iFor j = i + 1 To 10If a(j) < a(p) Then p = jNext jIf p <> i Thenmin = a(i)a(i) = a(p)a(p) = minEnd IfNext iPrintPrint "排序后的结果为:"For i = 1 To 10Print a(i);Next iEnd Sub第六章过程一、选择题CDBAB DBCCC ABCBD CDB二、填空题1.sub function2.形式实际3.内存的同一地址4.myf(a%,b() as integer ) as Boolean5.值传递地址传递6.lbound ubound7.局部8.通用任何过程9.2 5 9 10.2411.2 12.30 7013.-1三、编程题1. Option Base 1Private Sub Form_Click()Dim m1%, m2%, b() As IntegerFor i = 3 To 7 Step 2ReDim b(i)For j = 1 To ib(j) = Int(Rnd * 90 + 10)Print b(j);Next jm1 = b(1)m2 = b(1)Call mm(m1, m2, b())PrintPrint "最大值为:"; m1Print "最小值为:"; m2Next iEnd SubPublic Sub mm(max%, min%, a() As Integer) Dim i%For i = LBound(a) To UBound(a)If a(i) > max Then max = a(i)If a(i) < min Then min = a(i)Next iEnd Sub2.sub过程:Public Sub jc(n%, s&)Dim i%s = 1For i = 1 To ns = s * iNext iEnd SubPrivate Sub Form_click()Dim s&, a%, b%, c%, s1&a = Val(InputBox("请输入一个整数:"))b = Val(InputBox("请输入一个整数:"))c = Val(InputBox("请输入一个整数:")) Call jc(a, s1)s = s1 + sCall jc(b, s1)s = s1 + sCall jc(c, s1)s = s1 + sPrint a & "!+" & b & "!+" & c & "!=" & s End SubFunction过程:Public Function jc(n%) As LongDim i%, s%s = 1For i = 1 To ns = s * iNext ijc = sEnd FunctionPrivate Sub Form_click()Dim s&, a%, b%, c%, s1&a = Val(InputBox("请输入一个整数:"))b = Val(InputBox("请输入一个整数:"))c = Val(InputBox("请输入一个整数:"))s1 = jc(a) + jc(b) + jc(c)Print a & "!+" & b & "!+" & c & "!=" & s1 End Sub3.Public Sub jo(n As Integer)If n Mod 2 = 0 ThenPrint "false"ElsePrint "true"End IfEnd Sub4.Private Sub Form_click()Dim b(1 To 100) As Integer, i%For i = 1 To 100b(i) = Int(Rnd * 100 + 1)Next iCall sort(b())For i = 1 To 100If i Mod 10 = 0 Then PrintPrint b(i);Next iEnd SubPublic Sub sort(a() As Integer)Dim n%, ok As Boolean, k As Integern = UBound(a)For i = 1 To n - 1ok = TrueFor j = 1 To n - iIf a(j) > a(j + 1) Thenk = a(j): a(j) = a(j + 1): a(j + 1) = k: ok = False End IfNext jIf ok Then Exit ForNext iEnd Sub5.Private Sub Form_click()Dim b(1 To 10) As Integer, i%For i = 1 To 10b(i) = Val(InputBox("请输入第" & i & "个整数")) Next iCall sort(b())Print "排序后的结果"For i = 1 To 10Print b(i);Next iEnd SubPublic Sub sort(a() As Integer)Dim n%, p%, k As Integern = UBound(a)For i = 1 To n - 1p = iFor j = i + 1 To nIf a(j) < a(p) Then p = jNext jIf p <> i ThenMin = a(i)a(i) = a(p)a(p) = MinEnd IfNext iEnd Sub6.Public Sub gys(m%, n%)Dim r%, t%If m <> 0 And n <> 0 ThenIf m < n Thent = m: m = n: n = tEnd Ifr = m Mod nDo While r <> 0m = nn = rr = m Mod nLoopEnd IfEnd Sub7.Public Sub ws(n%, s%)Dim k%, i%For i = 1 To n - 1If n Mod i = 0 Then s = s + iNext iEnd SubPrivate Sub Form_click()Dim m%, sum%, c$For m = 1 To 999sum = 0Call ws(m, sum)If sum = m Then c = c & sum & " " Next mMsgBox cEnd Sub8.Public Function ef(a(), k%, wz%) As Integer Dim i%, low%, mid%, top%low = LBound(a)top = UBound(a)Do While low <= topmid = (low + top) / 2If k > a(mid) Thenlow = mid + 1ElseIf k = a(mid) Thenwz = midExit FunctionElsetop = mid - 1End IfLoopwz = -1End Function9.Function MaxGY(x As Integer, y As Integer) Dim Temp As IntegerTemp = x Mod yIf Temp = 0 ThenMaxGY = yElseMaxGY = MaxGY(y, Temp)End IfEnd FunctionPrivate Sub Form_click()Dim m%, n%m = Val(InputBox("请输入第一个整数:"))n = Val(InputBox("请输入第二个整数:")) Print "最大公约数是:"; MaxGY(m, n)End Sub10. Function Ss(n%)If n = 1 ThenSs = 10ElseSs = Ss(n - 1) + 2End IfEnd FunctionPrivate Sub Form_click()Dim r%, x%r = 5x = Ss(5)Print "第5个小孩的岁数为:"; xEnd Sub第七章应用程序界面设计一、选择题BCDCA CDBBD CADAA CADBD DAAAB CAA二、填空题1.form1.show unload form12.form2.show form1.hide3.属性方法事件4、工程属性工程属性5.子窗体主窗体6、keypress list(i) additem7.0 list1.listindex list1.listcount-18、1000 true time() 9、AA10、下拉式组合框、简单组合框和下拉式列表框第八章VB图形操作一、选择题DCCDA CDAAA BABBC CAAA二、填空题1、不会也不会 2.、Scaleheight Scalewidth3、(300,-150)4、右上5、twip6、0~157、B 8、-2π~09、逆10、drawwidth11、右上12、move13、cls 14、坐标原点、坐标度量单位、坐标轴的长度与方向15、VB程序设计vbprogramming三、编程题1、Private Sub Command1_Click()Const pi = 3.14159P1.Circle (Val(Text1), Val(Text2)), Val(Text3)End SubPrivate Sub Command2_Click()P1.ClsText1 = ""Text2 = ""Text3 = ""End Sub2、Private Sub Form_Load()Pic1.Picture = LoadPicture("F:\VB程序设计\上课课件\tea.jpg")End SubPrivate Sub Pic1_Click()Pic2.Picture = Pic1.PicturePic1.Picture = LoadPicture("")End Sub3、Dim a1!, b1!Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) a1 = Xb1 = YEnd SubPrivate Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single) Circle (a1, b1), Sqr((a1 - X) ^ 2 + (b1 - Y) ^ 2)End Sub4、Dim a1!, b1!Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 1 Thena1 = Xb1 = YEnd IfEnd SubPrivate Sub Form_MouseUp(Button As Integer, Shift As Integer, X As Single, Y As Single)If Button = 1 ThenLine (a1, b1)-(X, Y), vbGreen, BFEnd IfEnd Sub5、Private Sub Form_Click()Scale (-200, 200)-(200, -200)Dim i!For i = 0 To 140 Step 20Line (-i - 10, i + 10)-(i + 10, -i - 10), , BNext iEnd Sub第9章vb文件操作一、选择题BDDCC BBAAB二、填空题1、驱动器列表框、目录列表框和文件列表框2、change 3\file1.path=dir1.path4、name “D:\old.doc” as “c:\new.doc”5、dir1.path=drive1.drive file1.path=dir1.path6、filecopy “d:\text.doc”,”e:\text.doc”7、eof 8、input not eof(1)9、for inputFor outputnot eof(1)str1Close #110、pattern 11、空12、字节。

VB6.0程序设计实践教程 习题及答案

VB6.0程序设计实践教程 习题及答案
410??456????xyz??8416102visualbasic算术表达式ab产生一个100999之间的中存放了一个二位数要将两位数交换位置例如49变成94实现的表达式是2
Vb6.0
第一章 一、判断题 1.属性是 Visual Basic 对象性质的描述,对象的数据就保存在属性中。 2.控件的属性值不可以在程序运行时动态地修改。 3.许多属性可以直接在属性表上设置、修改,并立即在屏幕上看到效果。 4.所谓保存工程,是指保存正在编辑的工程的窗体。 5.面向对象的程序设计是一种以对象为基础,由事件驱动对象执行的设计方法。 6.为了使一个控件在运行时不可见,应该将该控件的 Enabled 属性设置为 False。 7. 保存 Visual Basic 文件时, 若一个工程包含多个窗体或模块, 则系统先保存工程文件, 再分别保存各窗体或模块文件。 8.事件是由 Visual Basic 预先定义的对象能够识别的动作。 9.方法是 Visual Basic 对象可以相应的用户操作。 10.窗体中的控件,是使用工具箱中的工具在窗体上画出的各图形对象。 11.由 Visual Basic 语言编写的应用程序有解释和编译两种执行方式。 12.在打开一个 Visual Basic 工程进行修改后,要另存为一个版本,只需单击“工程另 存为…”就行,因为系统将同时保存其他文件。 13.当用 Load 命令将窗体装入内存时,一定触发窗体的 load 事件和 Activate 事件. 二、选择题 1.要使某个控件不可操作,要对 属性进行设置。 A、Enabled B、Visibale C、Caption D、Name 2.下列不属于对象的基本特征的是 。 A、属性 B、方法 C、事件 D、函数 3.当运行程序时,系统自动执行启动窗体的 事件过程。 A、Click B、Load C、DblClick D、Unload 4.Visual Basic 中“程序运行”允许使用的快捷键是 。 A、F2 B、F5 C、Alt+F3 D、F8 5.改变控件在窗体中的左右位置应修改该控件的 属性。 A、Top B、Left C、Width D、Right 6.工程文件的扩展名为 。 A、.vbp B、.bas C、.frx D、.frm 7.在 Visual Basic 中,称对象的数据为 。 A、属性 B、方法 C、事件 D、封装 8.下列选项中不属于属性的是 。 A、Name B、Caption C、Show D、Text 9.将 Visual Basic 编制的程序保存在磁盘上,至少会产生何种文件 。 A、.doc 与.txt B、.com 与.exe C、.bat 与.frm D、.vbp 与.frm 10.下列关于属性设置的叙述错误的是 。 A.一个控件具有什么属性是 VB 预先设计好的,用户不能改变它 B.一个控件具有什么属性值是 VB 预先设计好的,用户不能改变它 C.一个控件的大多数属性既可以在属性窗口中设置,也可以用程序代码设置 D.一个控件的属性在属性窗口中设置后,还可以再利用程序代码为其设置新值

第6-10章 VB课后参考答案

第6-10章 VB课后参考答案

第6章习题参考答案一、判断题题号 1 2 3 4 5 6答案√√×√√×二、选择题题号 1 2 3 4 5答案 D C A D B三、程序填空题1.(1)nsp=true(2) m mod i=0(3) p1 and p2(4) p1=nsp(i)2.(1)number(i,7)(2) (int n, int m)(3) number=number*10+m四、程序阅读1. a=9 b=42.(1) 362516941(2)1499413.64. 1 4 6五、编写程序1.Public Function fact(x As Integer) As Single '求x!Dim f As Single, i As Integerf = 1For i = 1 To xf = f * i '累积Next ifact = fEnd FunctionPrivate Sub Form_Click()Dim n%, m%, y!Dom% = Val(InputBox("m="))n% = Val(InputBox("n="))Loop Until m >= n And n >= 0y = fact(m) / (fact(n) * fact(m - n))Print yEnd Sub2 private sub Insertfun(a%(), y%)Dim i as integer,n as integern=ubound(a)Redim preserve a(n+1)For i=ubound(a)-1 to 0 step -1If y <a(i) thena(i+1)=a(i)If i=0 then a(i)=yElsea(i+1)=yexit forend ifnext i3. '判断是否为回文函数Private Function Judge(str As String) As BooleanDim i As IntegerJudge = True '假设为回文For i = 1 To Len(str) \ 2 '依次判断对应位置的两个字符,只要有一组不等即不是回文If Mid(str, i, 1) <> Mid(str, Len(str) + 1 - i, 1) ThenJudge = FalseExit FunctionEnd IfNext iEnd Function4.Private Sub Form_Click()Dim n%,x!n = Val(InputBox("n="))x = Val(InputBox("x="))Print fe(n, x) '调用求值函数过程End Sub'求值函数过程Public Function fe(n%, x!) As SingleDim i As Integer, t As Singlefe = 1: t = 1For i = 1 To nt = t * x / i 't为通项fe = fe + tNext iEnd Function5.。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。

第6章过程与函数
一、填空题
1.数组名作为过程或函数实参,相应的形参传递方式为____按地址传递____。

2.一维长整型数组a作过程形参写作:a() As Long,二维长整型数组b作过程形
参写作:____b() As Long ____。

3.过程形参为整型,对应实参为5.64,传递给形参的值为____6____。

4.调用过程时对形参的改变不会导致相应实参变量的改变,则该形参采用____按
值传递____方式。

5.调用过程时对形参的改变就是对相应实参变量的改变,则该形参采用____按地
址传递____方式。

6.声明Single类型全局变量x,写作____Public x As Single(或 Public
x!)____;声明Integer类型静态变量
x,写作____Static x As Integer (或
Static x%)____。

7.在窗体Form1的过程中引用窗体Form2中的全局变量y,写作
____Form2.y____。

8.阅读如下代码,单击窗体后,窗体上的显示结果为____s = 2 s = 5 s = 9____。

Dim i As Integer, n As Integer
Private Sub Form_Click()
Dim i As Integer
For i = 1 To 3
s = sum(i): Print "s ="; s;
Next i
End Sub
Private Function sum(n As Integer)
Static j As Integer
j = j + n + 1: sum = j
End Function
二、选择题
1.VB程序设计语言中,函数过程与子过程必
须分别用关键字( C)声明。

(A)Private,Public (B)Public,
Private
(C)Function, Sub (D)Sub, Function
2.要调用一个已经定义好的函数
myfunction( ),用语句的方式调用函
数,下列写法哪个是正确的( D)
(A)Call myfunction (B)myFunction
(C)myFunction ( ) (D)Call
myFunction( )
3.定义过程时,如果在过程名前加关键字
Private,则该过程为( A)。

(A)它是私有过程,仅在定义该过程的
模块内有效,模块内的过程可以调用该
过程
(B)它是公有过程,在整个工程内有效,
模块外的过程可以调用该过程
(C)它是私有过程,在整个工程内有效,
模块外的过程可以调用该过程
(D)它是公有过程,仅在定义该过程的
模块内有效,模块内的过程可以调用该
过程
4.在过程中用Dim保留字定义的变量是
( B)
(A)全局变量 (B)局部变量 (C)静态变
量 (D)以上都不是
5.防止递归函数进入死锁的机制是
( A)
(A)在适当的条件下返回 (B)通过Stop
语句终止递归调用
(C)通过End语句终止递归函数 (D)不
需要返回
6.关于函数与子程序的关系,下面说法正确
的是( A)
(A) 函数执行完后将得到一个返回值,
而子程序只是执行一系列动作
(B) 函数可以不带参数,而子程序必须
带参数
(C) 在函数中只用到传地址的方式,而
子程序只能用到传值方式
(D)子程序可以被其他子程序调用,而
函数不能被其他函数调用
7.Visual Basic 6.0 中缺省的参数传递机
制是( B)
(A) 传值 (B) 传址 (C) 传值和传地
址 (D)从实参到形参
8.使用( C)语句可以实现过程的特殊
出口。

(A) Public Sub/Function (B) Call 过
程名
(C) Exit Sub/Function (D)Private
Sub/Function
三、思考题
1.静态变量和动态变量的区别是什么?
2.函数过程与子程序过程有什么区别?
3.子过程调用有哪几种形式?
4.什么是形参?什么是实参?什么是值引
用?什么是地址引用?对应的实参有
没有限制?
5.怎样引用其他模块的过程和变量?
6.编制通用函数过程,计算Double类型一
维数组所有元素的平均值。

7.编制通用Sub过程,将Single类型一维
数组反序排放(如实参数组元素依次为
6、5、9、7,调用后为
7、9、5、6;若
为-3.2、4、2.6、31、7.3,调用后为
7.3、31、2.6、4、-3.2)。

8.编制通用Sub过程,在一个m行n列二维数组中查找绝对值最大的元素,以及
该元素的行号、列号(提示:Sub过程
的形参列表如x() As Single, m As
byte, n As Byte, xmax As Single,ki
As Byte,kj As Byte)。

9.输出100—300间的素数,要求:
(1)用函数判断素数。

(2)每行输出10个数。

10.设计一个将一维数组按降序排列的子过程(假设数据个数不知道),然后编程:(1)自动产生并输出100个[100,999]间的正整数,并要求每行输出10个数
据。

(2)调用该过程对数据按降序排列后再按每行10个输出。

6-3-7解答:
Private Sub Form_Click()
Dim a() As Single
ReDim a(10)
Print "反序前:"
For i = 1 To 10
a(i) = Rnd * 201 - 100
Print Format(a(i), "###.## "); Next i
Print
Call inver(a(), 10)
Print "反序后:"
For i = 1 To 10
Print Format(a(i), "###.## ");
Next i
Print
End Sub
Private Sub inver(a() As Single, n As Integer)
Dim i As Integer, t As Single
For i = 1 To n \ 2
t = a(n - i + 1)
a(n - i + 1) = a(i)
a(i) = t
Next i
End Sub
6-3-8解答:
6-3-9解答:
Private Sub Form_Click()
s = 0
For i = 100 To 300
If prime(i) Then
Print i;: s = s + 1
If s Mod 10 = 0 Then Print
End If
Next i
End Sub
Private Function prime(x) As Boolean If x < 2 Then
prime = False
Exit Function
End If
k = Sqr(x)
For i = 2 To k
If x Mod i = 0 Then
prime = False
Exit Function
End If
Next
prime = True
End Function
6-3-10解答:
Private Sub Form_Click()
Dim i As Integer, n As Integer Dim a(100) As Integer
Print "排序前:"
For i = 1 To 100
a(i) = Int(900 * Rnd() + 100) Print a(i);
If i Mod 10 = 0 Then Print
Next i
Print
Print "排序后:"
Call ss(a(), 100)
For i = 1 To 100
Print a(i);
If i Mod 10 = 0 Then Print
Next i
End Sub
Private Sub ss(a() As Integer, n As Integer)
For i = 1 To n - 1
For j = i + 1 To n
If a(i) < a(j) Then
t = a(i): a(i) = a(j): a(j) = t
End If
Next j
Next i
End Sub。

相关文档
最新文档