VB第六章习题答案(上海立信会计学院)
- 格式:doc
- 大小:412.50 KB
- 文档页数:3
习题六一、选择题答案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。
上海立信会计学院本科实验报告班级:学号:姓名:指导教师:系部:专业:实验时间:实验4 循环结构一、实验目的1.掌握For语句的使用2.掌握Do语句的各种形式的使用。
3.掌握如何控制循环条件,防止死循环或不循环。
二、实验要求1.在C:\下建立子文件夹“VB实验4”,按照题目要求,在该文件夹下为各题保存相应的文件,如本实验中的第一题,需保存的文件有:工程文件(41.vbp)、窗体文件(41.frm) 及可执行文件(41.exe),本实验中的第二题,需保存的文件有:工程文件(42.vbp)、窗体文件(42.frm) 及可执行文件(42.exe),其余实验依此类推。
2.撰写实验过程中出现了哪些问题、错误,你是如何解决的,做一个小结。
三、实验内容:1.编一程序利用单循环结构显示如图4-1所示的界面。
要求:循环体内显示的内容用String函数来实现,找出循环控制变量与String函数内字符个数的关系:即String(2*i-1,Trim(Str(i)))。
窗体显示字体默认、大小为小四,通过单击窗体触发程序运行。
图4-1Private Sub Form_Click()For i = 1 To 9Print Tab(15 - i); String(2 * i - 1, Trim(Str(i)))Next iEnd Sub2.计算π的近似值,π的计算公式为:)12()12()2(75653431222222+⨯-⨯⋅⋅⋅⨯⨯⨯⨯⨯⨯⨯=n n n π,要求:单击按钮同时显示当n=10、100、1000时的结果,利用Format 函数保留5位小数。
窗体中所有控件字体默认、大小为小四。
效果如图4-2所示。
图4-2Private Sub Command1_Click()pi = 2For i = 1 To 10pi = pi * (2 * i) ^ 2 / ((2 * i - 1) * (2 * i + 1))Next iPrint " n=10 ∏近似值="; Format(pi, "0.00000")pi = 2For i = 1 To 100pi = pi * (2 * i) ^ 2 / ((2 * i - 1) * (2 * i + 1))Next iPrint " n=100 ∏近似值="; Format(pi, "0.00000")pi = 2For i = 1 To 1000pi = pi * (2 * i) ^ 2 / ((2 * i - 1) * (2 * i + 1))Next iPrint " n=1000 ∏近似值="; Format(pi, "0.00000")End Sub3. 求Sn=a+aa+aaa+aaaa+…+aa …aaa(n 个a),其中a 是一个由随机数产生的1~9(包括1、9)中的一个正整数,n 是一个由随机数产生的4~9(包括4、9)中的一个正整数,产生随机数需使用Randomize 语句。
第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课后练习答案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属性判断是否选中该项。
vb6.0实验六习题与答案实验六专业_____________ 班级________年级________姓名______________学号_______________ 一、实验目的1、认识常用控件:单选按钮、复选框、框架、列表框、组合框、滚动条、滑动器(Slider)、时钟、图形控件;2、学习在窗体中创建常用控件2、学习在属性窗口和在程序代码中设置属性3、学习调用控件的方法4、学习编写各控件和鼠标与键盘的事件过程二、实验内容1、单选按钮、复选框、框架1)设置窗体F1的标题为“复选框、框架和单选按钮”;在窗体中设置复选框Ch1、Ch2 Ch1和Ch2的高度和宽度分别为360和1000;并程序运行时,Check2处于非少许状态。
框架Fr1包含单选按钮Op1和Op2。
2)设计窗体,要求①标题为“设置字体”;②在窗体中设置有边框的标签控件Label1,高度和宽度分别为450和3800,标题为“欢迎使用VB”,字号为“四号”,居中显示;③标题为“字体”框架包含两个标题分别为“楷体_GB2312”和“华文新魏”的单选按钮Op1和Op2;④标题为“斜体”框架包含两个标题分别为“是”和“否”的单选按钮。
⑤编写相应控件的事件过程,使得程序运行时,单击“楷体_GB2312”,标签控件的字体为楷体_GB2312,单击“华文新魏”,标签控件的字体为华文新魏;单击“是”,标签控件的字体为斜体,单击“否”,标签控件的字体取消斜体。
Private Sub Option1_Click()Label1.FontName = Option1.CaptionEnd SubPrivate Sub Option2_Click()Label1.FontName = Option2.CaptionEnd SubPrivate Sub Option3_Click() Label1.FontItalic = TrueEnd SubPrivate Sub Option4_Click() Label1.FontItalic = FalseEnd Sub3)在窗体是设置设置框Text1,其中文字为:黑体、四号、居中;设置单选按钮Option1和Option2,标题分别为“福州大学”和“阳光学院”,编写行当的事件过程,使得程序时,单击“福州大学”或“阳光学院”,在文本框中显示“福州大学”或“阳光学院”。
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,同时记录其首数据的下标,最后,只要输出四个相邻数之和的最大值,并输出这四个数即可。
上海立信会计学院班级:学号:姓名:指导教师:系部:专业:习题六p150一、简述子过程与函数过程的共同点和不同之处。
答:相同之处:都是功能相对独立的一种子程序结构,它们有各自的过程头、变量声明和过程体,在程序的设计过程中可以提高效率。
不同之处:(1)声明的关键字不同。
子过程为Sub,而函数过程为Function。
(2)了过程无值就无类型说明,函数过程有值因此有类型的说明(3)函数的过程名称同时是结果变量,因此在函数过程体内至少要对函数的过程名赋值一次数据,而子过程内不能赋值。
(4)调用的方式不同,子过程是一条独立的语句,可以用Call子过程名或省略Call直接以子过程名调用;函数的过程不是一条独立的语句,是一个函数值,必须参与表达式运算。
(5)通常,函数过程可以被子过程代替,只需要在调用的过程中改变一下过程调用的形式,并在子过程的形参表中增加一个地址传递的形参来传递结果。
二、什么是形参,实参什么是值引用地址引用地址应用对实参有什么限制答:形参:在定义过程时的一种假设的参数,只代表该过程的参数的个数、类型,它的名字不重要,没有任何的值,只表示在过程体内将进行的一种操作。
实参:在调用子过程时提供过程形参的初始值,或通过过程体处理后的结果。
值引用:系统将实际参数的值传到形参之后,实参与形参断开联系,过程中对于形参的修改不会影响到实际参数的变化。
地址引用:实参与形参共同使用一个存储单元,在过程中对形参进行修改,则对应的实际参数也同时变化。
在地址引用时,实参只能是变量,不能是常量或表达式。
三、指出下面过程语句说明中的错误:(1)Sub f1(n%) as Integer(2)Function f1%(f1%)(3)Sub f1(ByVal n%())(4)Sub f1(x(i) as Integer)答:(1)Sub子过程名没有返回值,因此就没有数据的类型(2)函数名与形参名称相同(3)形参n为数组,不允许声明为ByVal值传递(4)形参x(i)不允许为数组元素四、已知有如下求两个平方数和的fsum子过程:Public Sub fsum(sum%, ByVal a%, ByVal b%)sum = a * a + b * bEnd Sub在事件过程中若有如下变量声明:Private Sub Command1_Click()Dim a%, b%, c!a = 10:b = 20则指出如下过程调用语句的错误所在:(1)fusum 3, 4, 5(2)fsum c, a, b(3)fsum a + b, a, b(4)Call fsum(Sqr(c), Sqr(a), Sqr(b))(5)Call fsum c,a,b答:(1)furm子过程的第一个形参是地址传递,因此对应的实参3不能是常量(2)furm的第一个形参是整型而且是地址传递,对应的实参c是单精度,数据类型不匹配(3)furm的第一个形参是地址传递,因此对应的实参a+b不应当是表达式(4)furm的第一个形参是地址传递,因此对应的实参Sqr(c)不应当是表达式(5)用Call语句调用furm子过程时,必须用圆括号来描述实参六、要使变量在某事件过程中保留值,有哪几种变量声明的方法答:声明为static或者全局变量七、为了使某变量在所有的窗体中都能使用,应在何处声明该变量答:应在窗体\模块的通用声明段用Public关键字声明为全局变量。
第一章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、字节。
第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章Visual Basic 6.0一、判断题1--5:√×√×√6――10:××√×√11――13:√××二、选择题1――5:ADBBB 6――10:.CACDB三、填空题1、图片框和框架2、对象3、控件屏幕4、Load5、Load Activate四、程序设计题1、Private Sub Command1_Click()Print Text1.TextEnd SubPrivate Sub Command2_Click()EndEnd Sub2、Private Sub Command1_Click()Form1.FontSize = Form1.FontSize + 3Print "青春无悔"End SubPrivate Sub Command2_Click()FontSize = FontSize - 3Print "青春无悔"End SubPrivate Sub Command3_Click()Form1.FontBold = TruePrint "青春无悔"End SubPrivate Sub Command4_Click()FontBold = FalsePrint "青春无悔"End Sub3、Private Sub Command1_Click()Text1.Visible = FalseEnd SubPrivate Sub Command2_Click()Text1.Visible = TrueText1.FontName = "楷体_gb2312"Text1.FontSize = 15Text1.Text = "我学会了创建一个应用程序了!"End Sub第二章判断题:1~5错错错错错第3章顺序结构程序设计一、思考题略二、程序阅读题1.A=2 B=1 C=22.123.BABCBACBC4. 1 2 False5.1-12-123-1234-三、选择题1.B2.D3.B4.B5.D6.C四、程序设计题1.Private sub form_click()Dim r!,s!R=val(inputbox(“r=”))S=3.14159*r*rPrint “s=”;sEnd sub2.Private sub form_click() Dim x as singleX=val(inputbox(“x=”))Print fix(x*x*1000)/1000,fix(sqr(x)*1000)/1000End sub第4章选择结构程序设计一、判断题1.错2.错3.错4.错5.对二、选择题1.A 2. D 3.A 4.B 5.A 6.A三、程序阅读题1.X=3 y=72.w=4w=13w=135w=313.X_`a12 Uvw&4.12 9四、程序填空题1.(1) chr(keyascii) (2) chr(keyascii)=”)” (3)count1=count1-1 (4)count1=0 (5)count1>02.(1) max (2)min (3)c>max (4)c<min3.(1)x mod 3=2 and x mod 5=3 and x mod 7=4 then(2)text1.setfocus (3) text1.selstrat=0 (4)text1.sellength=len(text1.text)五、1.Private Sub Command1_Click()Dim y As Integery = Val(InputBox("y="))If (y Mod 4 = 0 And y Mod 100 <> 0) Or (y Mod 400 = 0) Then Print "是闰年"ElsePrint "不是闰年"End IfEnd SubPrivate Sub Command1_Click()Dim y As Integer,y1 as stringy = Val(InputBox("y="))If (y Mod 4 = 0 And y Mod 100 <> 0) Or (y Mod 400 = 0) Then Y1= "是闰年"ElseY1= "不是闰年"End If? y,y1End SubPrivate Sub Command1_Click()Dim y As Integer,y1 as stringy = Val(InputBox("y="))Y1= "不是闰年"If (y Mod 4 = 0 And y Mod 100 <> 0) Or (y Mod 400 = 0) Then Y1= "是闰年"End If? y,y1End Sub2.Private Sub Command1_Click()Dim a%, b%, c%, x!,s!a = Val(InputBox("a="))b = Val(InputBox("b="))c = Val(InputBox("c="))If a + b > c And a + c > b And b + c > a Thenx = (a + b + c) / 2s = Sqr(x * (x - a) * (x - b) * (x - c))Print "s="; sElsePrint "不是三角形,重输a,b,c"End IfEnd SubPrivate Sub Command1_Click()Dim a%, b%, c%, x!,s!,t%a = Val(InputBox("a="))b = Val(InputBox("b="))c = Val(InputBox("c=")) ‘a,b,c=3,4,5t=0If a + b > c And a + c > b And b + c > a Thenx = (a + b + c) / 2s = Sqr(x * (x - a) * (x - b) * (x - c))t=1End IfIf t=0 then“不是“endifEnd Sub3.Private Sub Command1_Click()Dim x!, y!x = Val(InputBox("x="))y = x * x - x – xIf x < 0 And x <> -3 Theny = x * x + x - 6ElseIf 0 <= x And x < 10 And x <> 2 And x <> 3 Then y = x * x - 5 * x + 6End IfPrint "x="; x, "y="; yEnd SubPrivate Sub Command1_Click()Dim x!, y!x = Val(InputBox("x="))If x < 0 And x <> -3 Theny = x * x + x – 6elseIf 0 <= x And x < 10 And x <> 2 And x <> 3 Theny = x * x - 5 * x + 6elsey=x^2-x-1End IfPrint "x="; x, "y="; yEnd SubPrivate sub form_click()Dim y%,z%,dj%,p!,t!Y=val(inputbox(“月”))Z= val(inputbox(“订票数”))Dj= val(inputbox(“票价”))Select case ycase 7,8,9If z>=20 then p=0.15 else p=0.05case 1 to 5,10,11If z>20 then p=0.3 else p=0.2Case elseP=0.2End selectT=z*dj*p? tend sub5.private sub form_click()dim m1%,m2%,m3%,dj$m1=val(inputbox(“m1=”)): m2=val(inputbox(“m2=”)): m3=val(inputbox(“m3=”))if (m1+m2+m3)/3>=95 or ( a=100 and b=100 and c>=80) or ( a=100 and c=100 and b>=80) or ( c=100and b=100 and a>=80) thendj=”一等”elseif (m1+m2+m3)/3>=90 or ( a=100 and b>=75 and c>=75) or ( b=100 and a>=75 and c>=75) or ( c=100 and b>=75 and a>=75) thendj=”二等”elseif a>=75 and b>=75 and c>=75 then dj=”三等” else dj=”没有” endif ? “dj=”;dj end sub第5章 循环结构程序设计1.判断题×√√√××√×2.选择题BBBBCC 3.填空题(1)7(2)Do/Loop For/Next While/Wend (3)-364.程序阅读题(1) (2)(3)4 (4)5.程序填空题(1)①sign=1 ②For i=2 to 19(2)①Len(str1) ②length-1 ③Mid(str1,i,2) ④Sum=0(3)①I mod 7=5 and i Mod 5 = 3 And i Mod 3=2 ②i<1000(4)①last_one = last_two ②last_two = this_one ③i=i+1 ④i-2(5)①I>int(sqr(m)) ②Int(Sqr(n-m))6.编程题(1)Private Sub Form_Click()Dim i As Integer, j As IntegerDim s As Double, Sum As Doubles = 188688646886424688642 1 2 3 4Sum=10# # # # # ## # # # ## # # ## # ## ##For i = 1 To 11 Step 2For j = 1 To is = s * jNext jSum = Sum + sNext iPrint SumEnd Sub(2)Private Sub Form_Click()Dim m%, n%, mn%, r%, t%m = Val(InputBox("m="))n = Val(InputBox("n="))If n <= 0 Or m <= 0 ThenMsgBox "数据有误"EndEnd Ifmn = m * nIf m < n Thent = m: m = n: n = tEnd IfDo While (n <> 0)r = m Mod n: m = n: n = rLoopForm1.Print "最大公约数="; mForm1.Print "最小公倍数="; mn / m End Sub(3)Private Sub Form_Click()Dim i%, j%For i = 1 To 5Print Spc(20 - i);For j = 1 To 2 * i - 1Print Trim(Str(i));Next jPrintNext iFor i = 4 To 1 Step -1Print Spc(20 - i);For j = 1 To 2 * i - 1Print Trim(Str(10 - i));PrintNext iEnd Sub(4)Private Sub Form_Click()Dim x As IntegerDim y As IntegerDim z As IntegerFor x = 0 To 100For y = 0 To 100 - xz = 100 - x - yIf 5 * x + 3 * y + z / 3 = 100 Then Print x, y, zNext yNext xEnd Sub(5)Private Sub Form_Click()Dim x As Single, y As Single, a As Single, i As Integerx = Val(InputBox("输入x:"))a = 1: y = a: i = 0While a >= 0.00001i = i + 1: a = a * x / i: y = y + aWendPrint "y="; yEnd Sub第六章答案一、判断题1.错2.错3.错4.错(可以为小数,不过仍然是当作整数来处理)5.错6.错二、选择题1.C2.C3.A4.D三、程序填空1.(1)N-1 (2)T = A(J): A(J) = A(J + 1): A(J + 1) = T(3)Print A(I)2.(1)a(i, j) = 1(2)Print四、程序阅读1.52.1 2 3 41 2 3 41 2 3 41 2 3 41 1 1 12 2 2 23 3 3 34 4 4 43.(前面空4个空格)1 12 11 102 13 16 93 14 15 84 5 6 7第7章过程判断题:1、对2、错3、错4、错5、对6、对7、错选择题:1.B 2、D 3、D 4、C 5、A程序阅读题:1、y=5 a=52、n=1z=4y=15 a=10n=2z=7y=30 a=15n=3z=103、32 644、2 2 216648644645、A1=10 B1=20A2=20 B2=10程序填空题:1、(1)hwstring(str) (2)"" (3)As Boolean(4)n=len(strtxt) (5) True (6)False2.(1)Xsch(Nman,Nkcen) (2)n(3)sum=sum+x(i,j) (4)tt/n (5)x(i,m+1)<1.2*ver and x(i,m+1)>=1.1*ver 3.(1)number(i)(2)Byval n as Integer (3)number= number+7*10^ (i-1)4.(1)temp=1 (2)temp (3)nFactor( i ) (4)sum 程序设计题:1、具体程序为:Function Maxnum(ByRef a() As Integer, ByVal n As Integer) As IntegerDim i As IntegerMaxnum = a(1)For i = 2 To nIf a(i) > Maxnum Then Maxnum = a(i)Next iEnd FunctionFunction Avenu(ByRef a() As Integer, ByVal n As Integer) As SingleDim i As Integer, sum As IntegerFor i = 1 To nsum = sum + a(i)Next iAvenu = sum / nEnd FunctionSub Sortrnum(ByRef a() As Integer, ByVal n As Integer)Dim i As Integer, j As Integer, k As IntegerDim temp As IntegerFor i = 1 To nk = iFor j = i + 1 To nIf a(k) > a(j) Then k = jNext jIf i <> k Thentemp = a(i)a(i) = a(k)a(k) = tempEnd IfNext iEnd SubPrivate Sub Form_Click()Dim b(10) As Integer, i As IntegerFor i = 1 To 10b(i) = InputBox("请输入整数", "输入")Next iCall Sortrnum(b(), 10)Print "从小到大排序为:"For i = 1 To 10Print b(i);NextPrintPrint "最大数为:"; Maxnum(b(), 10)Print "平均数为:"; Avenu(b(), 10)End Sub2、具体程序为:Function fe(n%, x!) As SingleDim temp As Single, i As Integerfe = 1temp = 1For i = 1 To ntemp = temp * x / ife = fe + tempNext iEnd FunctionPrivate Sub Form_Click()Dim n As Integer, x As Singlen = Val(InputBox("请输入n", "输入"))x = Val(InputBox("请输入x", "输入"))Print "e的值为:"; fe(n, x)End Sub3、具体程序为:Sub sort(a() As Single, n As Integer)Dim i As Integer, j As Integer, k As Integer Dim temp As SingleFor i = 1 To nk = iFor j = i + 1 To nIf a(k) < a(j) Then k = jNext jIf i <> k Thentemp = a(i)a(i) = a(k)a(k) = tempEnd IfNext iEnd SubPrivate Sub Form_Click()Dim a(10) As Single, i As IntegerFor i = 1 To 10a(i) = Val(InputBox("请输入数据", "输入")) Next iCall sort(a(), 10)Print "从大到小为:"For i = 1 To 10Print a(i);If i Mod 5 = 0 Then PrintNext iEnd Sub第8章常用控件参考答案:一、判断题1、×2、×3、√4、√5、×6、×7、×8、×9、× 10、×11、× 12、√ 13、× 14、√ 15、√二、单选题1、A2、B3、A4、C5、B6、D7、A8、B9、C 10、C11、A 12、A 13、C 14、B 15、A三、填空题1、Autosize WordWrap2、Enabled Visible3、文本框和列表框4、拖动滚动框5、Change6、Command1.Setfocus7、Timer8、MaxLength 9、AddItem 10、定时器屏蔽12345.五、程序填空题1、(1) Label1.left (2) –Label1.Width2、(1) List1.ListIndex<0 (或者List1.ListIndex = -1)(2) List1.RemoveItem List1.ListIndex(3) Text1.Text=”” (4) List1.AddItem Text1.Text3、(1) 1 to 2*I-1 (2) Command2.Enabled=True(3) Command2.Enabled=False4、(1) ndec<>0 (2) ndec mod 16 (3) ai=ndec(4) end (5) ai & shex (6)shex5、(1) Timer1.Enabled=True (2) x \ 3600 (3) (x-h*3600)\60(4) x=x+16、(1) m<len(str1)/2 (2) mid (str1,m+1,1) (3)mid (str1,len(str1)-m,1)六、程序设计题1、P rivate Sub Command1_Click()If Text1.Text = "" ThenMsgBox "请先输入添加项"ElseList1.AddItem Text1.TextEnd IfEnd SubPrivate Sub Command2_Click()If List1.ListIndex < 0 Then ‘或者if list1.listindex=-1 then MsgBox "请选择一删除项"ElseList1.RemoveItem List1.ListIndexEnd IfEnd SubPrivate Sub Command3_Click()If List1.ListIndex < 0 ThenMsgBox "请选择一修改项"ElseText1.Text = List1.TextEnd IfCommand4.Enabled = TrueEnd SubPrivate Sub Command4_Click()Dim a As IntegerIf List1.Text = Text1.Text ThenMsgBox "请先修改此项"Elsea = List1.ListIndexList1.RemoveItem List1.ListIndexList1.AddItem Text1.Text, aEnd IfEnd SubPrivate Sub Form_Load()Command4.Enabled = FalseEnd Sub2、D im a As IntegerPrivate Sub Command1_Click()a = Int(Rnd * 100) + 1End SubPrivate Sub Text1_KeyPress(KeyAscii As Integer)Static i As IntegerIf KeyAscii = 13 ThenIf Val(Text1.Text) > a ThenLabel1.Caption = "太大了,请重输"i = i + 1ElseIf Val(Text1.Text) = a ThenLabel1.Caption = "恭喜你,你答对了!"i = 0Command1_ClickElseLabel1.Caption = "太小了,请重输!"i = i + 1End IfIf i > 10 ThenMsgBox "你失败了!"EndEnd IfEnd IfEnd Sub3、Private Sub Command1_Click()Dim n As Integer: n = Len(Text1.Text)Dim s(1 To 1000) As String, i As Integer, j As Integer, t AsString, a As StringFor i = 1 To ns(i) = Mid(Trim(Text1.Text), i, 1)Next iFor i = 1 To n - 1For j = i + 1 To nIf s(i) > s(j) Thent = s(i): s(i) = s(j): s(j) = tEnd IfNext j, iFor i = 1 To n: a = a + s(i): Next iPrint aCommand1.Enabled = False: Command2.Enabled = TrueEnd SubPrivate Sub Command2_Click(): End: End SubPrivate Sub Form_Load()Text1.MaxLength = 200Command2.Enabled = False: Command1.Enabled = TrueEnd Sub4、Dim a(1 To 1000) As String, b(1 To 1000) As String, c(1 To 1000) As Double, d(1 To 1000) As DoublePrivate Sub Combo1_click()Text1.Text = a(Combo1.ListIndex + 1)Text2.Text = b(Combo1.ListIndex + 1)Text3.Text = c(Combo1.ListIndex + 1)Text4.Text = d(Combo1.ListIndex + 1)End SubPrivate Sub Command1_Click()Combo1.AddItem Text1.Texta(Combo1.ListCount) = Text1.Textb(Combo1.ListCount) = Text2.Textc(Combo1.ListCount) = Val(Text3.Text)d(Combo1.ListCount) = Val(Text4.Text)End SubPrivate Sub Command2_Click()For i = Combo1.ListIndex + 1 To Combo1.ListCount - 1a(i) = a(i + 1)b(i) = b(i + 1)c(i) = c(i + 1)d(i) = d(i + 1)Next ia(i) = ""b(i) = ""c(i) = 0d(i) = 0Combo1.RemoveItem Combo1.ListIndexText1.Text = ""Text2.Text = ""Text3.Text = ""Text4.Text = ""End SubPrivate Sub Form_Load()Dim i As IntegerCombo1.AddItem "张三"Combo1.AddItem "李四"Combo1.AddItem "王五"a(1) = "张三": a(2) = "李四": a(3) = "王五"b(1) = "浙江林学院": b(2) = "浙江工业大学": b(3) = "浙江大学"c(1) = 311300: c(2) = 310027: c(3) = 310014d(1) = 63742212: d(2) = 88394277: d(3) = 88326531End Sub5、Private Sub Check1_Click()If Check1.Value = 1 ThenLabel1.FontBold = TrueElseLabel1.FontBold = FalseEnd IfEnd SubPrivate Sub Check2_Click()If Check1.Value = 1 ThenLabel1.FontItalic = TrueElseLabel1.FontItalic = FalseEnd IfEnd SubPrivate Sub Option1_Click()Label1.FontName = "宋体"End SubPrivate Sub Option2_Click()Label1.FontName = "楷体_gb2312"End Sub6、Private Sub Command1_Click()Dim a As String, i As Integer, n As IntegerDim s As Integer, q As Integer, l As Integern = Len(Text1.Text)For i = 1 To na = Mid(Text1.Text, i, 1)If a >= "a" And a <= "z" Thens = s + 1 '大写个数ElseIf a >= "A" And a <= "Z" Thenq = q + 1 '小写个数ElseIf a >= "0" And a <= "9" Thenl = l + 1End IfNext iText2.Text = sText3.Text = qText4.Text = lEnd SubPrivate Sub Form_Load()Text1.SetFocusEnd Sub7、Private Sub Form_Click()Dim i As Integer, j As Integer, t As IntegerFor i = 0 To List1.ListCount - 1List3.AddItem List1.List(i)Next iList1.ClearDo While List2.ListCountList3.AddItem List2.List(0)List2.RemoveItem 0LoopFor i = 0 To List3.ListCount - 2For j = i + 1 To List3.ListCount - 1If List3.List(i) > List3.List(j) Thent = List3.List(i): List3.List(i) = List3.List(j): List3.List(j) = tEnd IfNext j, iEnd SubPrivate Sub Form_Load()Dim i As Integer, n As Integern = InputBox("")For i = 1 To nList1.AddItem Int(Rnd * 90) + 10List2.AddItem Int(Rnd * 90) + 10Next iEnd Sub第9章对话框和菜单1.判断题:×√√(题中应把flag改为flags)√√××√√× ××√××2.选择题:DDCCD BDCCB3.填空题1.-2.一级子菜单3.将顶级菜单设置为不可见4.popupmenu pmenu,0,x,y5.showfont6.工程、部件7.click8.代码窗口,click9.下拉式,弹出式打开/另存为、颜色,字体、打印、帮助4. 程序阅读题打开对话框2、*.txt3、allfiles*.exe*.txt*.doc4、Checking,No File Selectd,重试(R),取消5. 程序填空题“c:\winnt”commondialog1.showopen,loadpicture(commondialog1.filename)6. 程序设计题1、界面如图:代码如下:Private Sub Command1_Click()CommonDialog1.FileName = ""CommonDialog1.Flags = 4096CommonDialog1.Action = 1If CommonDialog1.FileName = "" ThenMsgBox "No File Selectd", 5 + vbExclamation, "Checking"ElseList1.AddItem CommonDialog1.FileNameEnd IfEnd Sub2、代码如下:Private Sub a_Click()CommonDialog1.ShowColorText1.ForeColor = CommonDialog1.ColorEnd SubPrivate Sub b_Click()CommonDialog1.Flags = 1CommonDialog1.ShowFontText1.FontSize = CommonDialog1.FontSizeEnd SubPrivate Sub c_Click()CommonDialog1.Flags = 1CommonDialog1.ShowFontText1.FontName = CommonDialog1.FontNameEnd SubPrivate Sub d_Click()EndEnd Sub第10章 图形操作和图形控件一、判断题×√×××√×√××二、选择题BAADACAA三、填空题(1)pic1.Circle (pic1.ScaleLeft + pic1.ScaleWidth / 2, pic1.ScaleTop + pic1.ScaleHeight / 2), 700(2)在图片框picture1中,以(800,1000)为圆心画一个半径为500的圆(3)Form1.Scale (-200, 250)-(300, -100)(4)Autosize stretch四、程序阅读题1、窗体宽和高的1/4为起点,画一个边长为1000的正方形,并画出其正向对角线2、在图片框中交替画出实心和空心的矩形,空心矩形是黄色边框。
vb6.0练习题及答案第一篇:vb6.0练习题及答案一、选择题1.在设计应用程序时,可以查看到应用程序工程中的所有部分的窗口是()。
A.窗体设计.代码C.属性D.工程资源管理器窗口 >> 答案:d2.窗体的Load事件的触发时机是()。
A.用户单击窗体时B.窗体被加载时C.窗体显示之后D.窗口被卸载时 >> 答案:b3.与传统的程序设计语言相比,Visual Basuc最突出的特点是()。
A.结构化程序设计B.程序开发环境C.事件驱动编程机制D.程序调试技术答案:C4.VB6.0集成开发环境的主窗口不包括()。
A.标题栏 B.菜单栏 C.状态栏 D.工具栏答案:c5.如果对象的名称为Mytext,而且对象有一个属性Text,那么在代码中引用该属性的正确格式是()。
A.T ext.Mytext B.Mytext.text C.Mytext.(Text)D.Mytext*Text答案:b6.下列可以激活属性窗口的操作是()。
A.用鼠标双击窗体的任何部位B.执行“工程”菜单中的“属性窗口”命令 C.按Ctrl+F4 D.按F4键答案: b d7.假定已在窗体上画了多个控件,并有一个控件是活动的,为了在属性窗口中设置窗体的属性,预先应制造的操作是()。
A.单击窗体上没有控件的地方 B.单击任一个控件 C.不执行任何操作 D.双击窗体的标题栏答案:a8.如果在文本框中键入字符时,只显示某个字符,如星号(*),应设置文本框的()属性。
A.Caption B.PasswordChar C.Text D.Char答案:b9.如果想让文本框中的内容在运行时不能编辑,需将文本框的()属性设置为True。
A.Locked B.MultiLine C.TabStop D.Visible答案:a10.对于定时器(Timer)控件,设计其定时是否开启的属性是()。
A.Index B.Tag C.Enabled D.Left答案:c11.要在窗体Form1内显示“myfrm”,使用的语句是()。
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、保存文件时,若不改变目录名,则系统默认的目录是什么?答:系统默认的目录是VB98& 安装Visual Basic 6.0后,帮助系统是否也已安装?答:没有。
VB6.0的帮助系统在两张光盘上,即MSDN Library,其中还包含了VC、VFP等其他语言的帮助系统。
9、如何使用Visual Basic 6.0的帮助系统?答:最方便的方法是选定要帮助的内容,然后按F1功能键,这时系统打开MSDN Library查阅器,直接显示与选定内容有关的帮助信息。
第1章 习题参考答案一、思考题 略二、选择题1. C2. B第2章 习题参考答案一、判断题二、填空题1. 窗体font2. 不能在代码中设置 3. selstart 4. Locked5. TabIndex 、 0 6. vbModal 或 17. Activate 、 Deactivate 8.PictureBox 和 Frame -三、选择题第3章 习题参考答案一、思考题1、double2、 xyC@abc , 15eyd , Is , #END X8[P]3、变量有 (1) (4) (6) (8),常量有 (2)字符串型 (3)逻辑型 (5)字符串型 (7)字符串型 (9)日期型 (10)实型 4、 fe d cb a++5、 (1) 26 (2) 3.75 (3) 36、写出下列Visual Basic 表达式的值:(1) False (2) True (3) True (4) False (5) True(6) True (7) False (8) False7、将下列命题用Visual Basic布尔表达式表示:(1) z>x and z>y (2) abs(a)<=abs(b+2) or a > b+2(3) p mod q=0 (4) x<-5 or x>-2 and x<2 or x>5(5) x<z and y>z or x>z and y<z (6) a<b and a mod 2=08、写出下列函数的值:(1) -4 (2) 换行符(3) –3 (4) -1 (5) hello(6) ello (7) 16 (8) “-459.65” (9) 5二、填空题1.整型、长整型、双精度型、双精度型2.(X mod 10)*10+X\103.sin(1/4*3.14)+sqr(x+2*exp(y))/abs(x-y)4.(a+b)/(c*d-sqr(1-a^2))5.x mod 5=0 or x mod 9=06.False7.-3 、 2 、-2 、 28.CDEF9.x>0 and y>0 or x<0 and y<0 或x*y>010.s>=”A” and s<=”Z” or s>=”a” and s<=”z”三、选择题四、编程题1、Private Sub Form_Click()Dim x%, Ten%, hundred%x = Val(Text1.Text)Ten = (x \ 10) Mod 10hundred = x \ 100Print "百位数是: " & hundredPrint "十位数是: " & TenEnd Sub2Private Sub Form_Click()Dim char As String * 1Form1.CurrentX = Rnd * Form1.ScaleWidthForm1.CurrentY = Rnd * Form1.ScaleHeightchar = Chr(Int(Rnd * 16) + 65)Print charEnd Sub第4章习题参考答案一、判断题二、选择题三、程序阅读写出下列各段程序执行后的输出结果。
第6章思考题与习题一.思考题(解略)1.在Windows程序中,用户和计算机程序的交互过程主要表现在哪些方面?在VB中是通过什么途径提供用户交互的?2.如何实现弹出式菜单的设计和执行?3.在这本章我们介绍了剪切板的一些概念,如何在VB程序中使用剪切板?如果不是文本文件,那么应该如何使用剪切板?4.在键盘事件中,KeyPress和KeyDown及KeyUp之间有什么区别?在什么情况下使用KeyPress事件?5.如何确定鼠标是哪个按钮被按下?如果多个程序都使用鼠标,系统应该如何设计?6.如果需要编写一个程序,判断输入的单词是否是VB的关键字,那么应当如何设计这个程序?二.填空题1.mouseup*2.产生对象.Dragover事件*3.一个对象的DragMode属性要么是1,要么是0,它在属性窗口或程序代码中被设置。
4.MouseMove5.指针类型,17 996,Shift*7.拖放8.move9.KeyPress,对应按键的ASCII码。
KeyDown或KeyUp,Shift10.Click,当前窗体的输出位置11.右键,菜单12.AL T13.Visible,Enabled14.Click,115.Enabled False16.连接符”-”17.518.Clipboard.Clear19.文本,Clipboard.GetText20.PopupMenu,Call PopupMenu 菜单名称上机实验一.在一个窗体上放置一个文本框,向该文本框输入0~15(其他数提示为输入错误,要求重新输入),根据在文本框中的数字显示不同的鼠标指针。
Private Sub Text1_Change()If V al(Text1.Text) >= 0 And V al(Text1.Text) <= 15 ThenMe.MousePointer = V al(Text1.Text)ElseMsgBox "数据输入错误,请输入0-15的数"Text1.SelStart = 0Text1.SelLength = Len(Text1.Text)End IfEnd Sub二.设计一个程序,从键盘上读入一个字符,如果是在0~9,a~z之间,直接存入该字符到窗口中的文本框中,并给出它们对应的ASCII码,如果是A~Z,则将其转换为小写后在文本框中显示原来的字符和转换后小写的字符及其ASCII码,如果是其他字符,直接在文本框中显示提示信息“您输入亚的是字母和数字以外的符号”。
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查阅器,直接显示与选定内容有关的帮助信息。
上海立信会计学院
班级:学号:姓名:指导教师:
系部:专业:
习题六p150
一、简述子过程与函数过程的共同点和不同之处。
答:相同之处:都是功能相对独立的一种子程序结构,它们有各自的过程头、变量声明和过程体,在程序的设计过程中可以提高效率。
不同之处:
(1)声明的关键字不同。
子过程为Sub,而函数过程为Function。
(2)了过程无值就无类型说明,函数过程有值因此有类型的说明
(3)函数的过程名称同时是结果变量,因此在函数过程体内至少要对函数的过程名赋值一次数据,而子过程内不能赋值。
(4)调用的方式不同,子过程是一条独立的语句,可以用Call子过程名或省略Call直接以子过程名调用;函数的过程不是一条独立的语句,是一个函数值,必须参与表达式运算。
(5)通常,函数过程可以被子过程代替,只需要在调用的过程中改变一下过程调用的形式,并在子过程的形参表中增加一个地址传递的形参来传递结果。
二、什么是形参,实参?什么是值引用?地址引用?地址应用对实参有什么限制?
答:形参:在定义过程时的一种假设的参数,只代表该过程的参数的个数、类型,它的名字不重要,没有任何的值,只表示在过程体内将进行的一种操作。
实参:在调用子过程时提供过程形参的初始值,或通过过程体处理后的结果。
值引用:系统将实际参数的值传到形参之后,实参与形参断开联系,过程中对于形参的修改不会影响到实际参数的变化。
地址引用:实参与形参共同使用一个存储单元,在过程中对形参进行修改,则对应的实际参数也同时变化。
在地址引用时,实参只能是变量,不能是常量或表达式。
三、指出下面过程语句说明中的错误:
(1)Sub f1(n%) as Integer
(2)Function f1%(f1%)
(3)Sub f1(ByVal n%())
(4)Sub f1(x(i) as Integer)
答:(1)Sub子过程名没有返回值,因此就没有数据的类型
(2)函数名与形参名称相同
(3)形参n为数组,不允许声明为ByVal值传递
(4)形参x(i)不允许为数组元素
四、已知有如下求两个平方数和的fsum子过程:
Public Sub fsum(sum%, ByVal a%, ByVal b%)
sum = a * a + b * b
End Sub
在事件过程中若有如下变量声明:
Private Sub Command1_Click()
Dim a%, b%, c!
a = 10:
b = 20
则指出如下过程调用语句的错误所在:
(1)fusum 3, 4, 5
(2)fsum c, a, b
(3)fsum a + b, a, b
(4)Call fsum(Sqr(c), Sqr(a), Sqr(b))
(5)Call fsum c,a,b
答:(1)furm子过程的第一个形参是地址传递,因此对应的实参3不能是常量
(2)furm的第一个形参是整型而且是地址传递,对应的实参c是单精度,数据类型不匹配(3)furm的第一个形参是地址传递,因此对应的实参a+b不应当是表达式
(4)furm的第一个形参是地址传递,因此对应的实参Sqr(c)不应当是表达式
(5)用Call语句调用furm子过程时,必须用圆括号来描述实参
六、要使变量在某事件过程中保留值,有哪几种变量声明的方法?
答:声明为static或者全局变量
七、为了使某变量在所有的窗体中都能使用,应在何处声明该变量?
答:应在窗体\模块的通用声明段用Public关键字声明为全局变量。
八、在同一模块、不同过程中声明的相同变量名,两者是否表示同一个变量?两者之间有没有联系?
答:不能作为同一个变量应用,
没任何联系,各自在过程中有效。