VB第八章自测题及答案

合集下载

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大一程序设计第八章习题答案1

vb大一程序设计第八章习题答案1

第八章1.Sub过程与Function过程的主要区别是 BA.Sub过程可以通过Call语句调用,而Function过程不可以B.Sub过程不能通过过程名返回值,而Function过程可以C.Sub过程与Function过程的参数传递方式不一样D.Function过程只能返回1个值,而Sub过程可以返回多个值2.以下叙述中错误的是C.。

A.在Sub过程中可以调用Function过程B.可以在程序的任何地方调用以Public声明的过程C.在Sub过程中可以嵌套定义Function过程D.用Static声明的过程中的局部变量都是Stati变量3.以下关于函数过程的叙述中,正确的是A 。

A.函数过程虚参的类型与函数返回值的类型没有关系B.在函数过程中,过程的返回值可以有多个C.当数组作为函数过程的参数时,既能以按值方式传递,也能以按址方式传递D.若不指明函数过程参数的类型,则该参数没有数据类型4.以下叙述中错误的是B 。

在VB应用程序中,A.过程的定义不可以嵌套,但过程的调用可以嵌套B.过程的定义可以嵌套,但过程的调用不能嵌套C.程序设计人员不能任意指定事件过程的名称D.在Function过程中可以Sub过程5. 下列描述中正确的是(A )(A)VB只能通过调用Sub过程(B)Sub过程可以嵌套定义也可以嵌套调(C)可以在Sub过程中定义1个Function过程,但不能定义Sub过程(D)Sub过程和Function过程都必须带返回值6.下列叙述中正确的是((B))(A)一个Sub过程至少要有一个Exit Sub语句(B)一个Sub过程必须有一个End Sub语句(C)可以在Sub过程中定义一个Function过程,但不能定义Sub过程(D)调用一个Function过程可以获得多个返回值7.以下语句用来定义过程subP,其中正确的是 D 。

A.Dim Sub subP(x , y) B.Public subP(x , y)C.Private Sub subP(x , y) As Integer D.Sub subP(x , y)8.在窗体上放置2个标签和一个命令按钮,其名称分别为Label1. 、Label2、command1 Private Sub Command1_Click()a = Val(Label2.Caption)Call func(Label1, a)Label2.Caption = aEnd SubPrivate Sub Form_Load()Label1.Caption = "ABCDE"Label2.Caption = 10End SubPrivate Sub func(L As Label, ByVal X As Integer)L.Caption = "1234"a = a * aEnd Sub程序运行后,单击命令按钮在2个标签中显示的内容分别是1234 10 9. Option Base 1Sub subp(b() As Integer)For i = 1 To 3b(i) = 3 * iNext iEnd SubPrivate Sub Command1_Click()Dim a(3) As Integerarr = Array(8, 4, 3)For i = 1 To 3a(i) = arr(i)Next isubp a()For i = 1 To 3Print a(i)Next iEnd Sub运行程序后,在窗体上输出的内容为(A)A)3 6 9 B)8 4 3 C)9 6 3 D)3 4 8 10. Function func(a As Integer, b As Integer) As IntegerStatic x As Integer, y As Integerx = 0: y = 2y = y + x + 1: x = y + a + bfunc = xEnd FunctionPrivate Sub Command1_Click()Static k As Integer, m As IntegerDim p As Integerk = 5: m = 2p = func(k, m)Print pp = func(k, m)Print pEnd Sub输出结果是10 1011. Sub s1(ByVal x As Integer, ByVal y As Integer)Dim t As Integert = x: x = y: y = tEnd SubPrivate Sub Command1_Click()Dim a As Integer, b As Integera = 10:b = 30s1 a, bPrint "a="; a; "b="; bEnd Sub运行程序后,在窗体上输出的内容为(C)A)a = 30 b = 10B)a = 30 b = 30C)a = 10 b = 30D)a = 10 b = 1012. Sub s(x As Single, y As Single)t = x: x = t / y: y = t Mod yEnd SubPrivate Sub Command1_Click()Dim a As Single, b As Singlea = 5:b = 4s a, bPrint a; bEnd Sub输出结果1.25 113. Function subl(a As Integer, ByVal b As Integer) As Integera = Val(b)subl = aPrint sublEnd FunctionPrivate Sub Command1_Click()Call subl(-15.1, 2.54)End Sub运行程序后,在窗体上输出的内容为(A)A)3 B)2 C)-15 D)提示错误运行结果3 14. 假定有以下两个过程:Sub S1(ByVal x As Integer, ByVal y As Integer)Dim t As Integert=x: x=y: y=tEnd Sub SubS2(x As Integer, y As Integer)Dim t As Integert=x: x=y: y=tEnd Sub则以下说法中正确的是(B )A.用过程S1可以实现交换两个变量值的操作,S2不能实现B.用过程S2可以实现交换两个变量值的操作,S1不能实现C.用过程S1和S2都可以实现交换两个变量值的操作D.用过程S1和S2都不能实现交换两个变量值的操作15.下列关于过程及过程参数的描述中,错误的是(C )A.过程的参数可以是控件名称B.用数组作为过程的参数时,使用的是“传地址”方式C.只有函数过程能够将过程中处理的信息传回调用的程序中D.窗体可以作为过程的参数16.以下说法正确的是( D )A)事件过程也是过程,与通用过程完全一样B)事件过程是程序员编写的各种子过程C)事件过程通常放在标准模块中D)事件过程是用来处理由用户操作或系统激发的事件的代码17. 执行“工程”菜单中的(D )命令可以添加一个标准模块。

《vb教学资料》vb习题参考答案(第8章).doc

《vb教学资料》vb习题参考答案(第8章).doc

一、判断题1. V2. X 9. X 10. V3.X4.V 5.V 6. X 7. X8. V二、选择题1. C2. C3 .B4.D 5.B 6. C 7. B8. A三、填空题1.关闭文件2.不能3.write4. Close四、程序阅读题程序 1. y= 1 a= 1y= 3 a= 2y= 6 a= 3y= 10 a= 4程序2.NO. 1NO. 2NO. 3NO. 434711程序3.窗体:36文件:125 16 9 4 14 9 16 25 36程序4.256487程序5.17111321314851五、程序填空题注意:本大题只要求掌握前2道!1. (1) Dim n As Integer (2) Commondialogl,FileName (3) Output (4) End2. (1) Output (2) EOF(l) (3) 0 (4) "temp.dat" As "e:\al.dat"3. (1) Pl.ScaleMode=6 (2) Y1=Y (3) vbYellow, B (4) Write #1, XI, Yl, X, Y 注意:第3小题与第六大题第4小题非常类似4. (1) Input (2) Text 1.text (3) Listl.Listindex (4) Command4_Click5. (1) Append (2) bz = false (3) Write #2, xm, xh, m, e (4) "temp" As "aaa.txt"六、程序设计题注意:本大题不要求,仅供感兴趣的同学参考!As #3 Inpu t k = 0 #1, xm, xh,cl,c2 c3,读入一行数据,一行记录一个学生If I f cl c 2 60 60 ThenThen,k 记录当前学生不及格的If c 3 60 The n k = k k < 2 Then'不及格科数kv2表示pass If Write #3, xm, xh, cl r c2rc3 cl As Byte1.界面设计如图8-16和8-17所示,程序设计如下:Private Sub Commandl_Click()Dim i As Integer, j As Integer, a(4, 5) As Single, max As Single Open n aaa. txt n For Input As #1,开打aaa. txt 读入所有数据到二维数组a For i = 1 To 4For j = 1 To 4Input #1, a (i, j)Next jNext iClose #1Open "bbb.txt n For Output As #1For i = 1 To 4max = a (i z 1)For j = 2 To 4 '求得第i 行的最大绝对值并存放于max 中 If Abs(a(i f j)) > Abs(max) Then max = a(i, j) Next jFor j = 1 To 4,将第i 行上的所有数都除以maxa (i, j) = a (i, j) / maxIf j < 4 Then Write #1, a(i, j), Else Write #1, a(i A j)Next jNext iClose #1End Sub2. 界面设计如图8-18所示,程序设计如下:Private Sub Commandl_Click()Dim xm As String, xh As String,Dim k As Byte, c2 As Byte, c3 As Byte Open "score.txt n For Input As #1Open "bad.txt" For Output As #2Open "pass.txt n For Output Do While Not EOF(1)Else '不及格科数k>=2表示badWrite #2r xm, xh, cl, c2, c3End IfLoop Close ,利用该句可一次性关闭上述所有文件Else3. 界面设计如图8-19所示,程序设计如下:Private Sub Commandl_Click()Dim me As String, lb As String, pp As String, si As IntegerOpen "kucun.txt n For Input As #1Open "temp.txt n For Output As #2Do While Not EOF(1)Input #1, me, lb, pp, si ,sJL 记录当前商品的库存量,为0的商品须删除If si <> 0 Then Write #2f me, lb A pp, siLoopCloseKill "kucun.txt 1*Name "temp.txt n As "kucun.txt”End Sub4. 界面设计如图8-20、8-21和8-22所示,程序设计如下:Dim xl As Single, yl As Single, x2 As Single, y2 As Single, k As Byte Private Sub Commandl_Click()Open " record. txt ** For Input As #1Do While Not EOF(1)Input #l f k, xl, yl, x2, y2If k = 1 ThenP2.Line (xl r yl)-(x2, y2)ElseP2.Line (xl r yl)-(x2, y2)r , BEnd IfLoopClose #1End SubPrivate Sub Pl_MouseDown(Button As Integer, Shift As Integer A _X As Single, Y As Single) xl = X: yl = YEnd SubPrivate Sub Pl_MouseUp(Button As Integer, Shift As Integer, _X As Single, Y As Single)Open "record. txt n For Append As #1 ,记录图形类别和两个点的坐标If Optionl.Value = True Then '图形类别1--直线Pl.Line (xl r yl)-(X, Y) Write #1, 1, xl r yl, X, Y'图形类别2--矩形 Pl.Line (xl, yl)-(X, Y), , B Write #1, 2r xl, yl, X, YClose #1End Sub5.界面设计如图8-23〜26所示,程序设计如下:Private Sub Commandl_Click() ,将:List 1中选中的姓名保存到bbb. txt中Dim i As IntegerOpen n bbb.txt" For Output As #1For i = 0 To Listl.ListCount - 1If Listl.Selected(i) Then Print #1, Listl.List(i)Next iClose #1End SubPrivate Sub Form_Load() '将所aaa.txt中所有姓名加入到listlDim name As StringOpen n aaa.txt n For Input As #1Do While Not EOF(1)Input #1, nameListl.Additem nameLoopClose #1End Sub。

VB复习题答案_第八章.docx

VB复习题答案_第八章.docx

第八章程序界面设计第一题:是非题(共1()分,每项1分)1.在-个窗体代码屮不能使用Unload语句來卸载本窗体,即一个窗体只能由其他的窗体卸载。

4A.对B.错J2.窗休的Enabled屈性设为False时,窗体题的按钮、文本框控件就不会对川户的操作做出反应。

A.对V 8.错3.菜单项的快捷键不能任意设置。

6A.対JB.错4.每个菜单项都是一个控件,与其他控件一样也有白己的屈性和事件。

7A.对JB.错5.菜单选项“Enabled”属性与“Visible”属性是相同的。

5A.对B.错J6.窗体的Enabled属性设为False时,窗体题的按钮、文本椎控件就不会対用八的操作做出反应。

2A.对JB.错7.定义菜单项时,可以不设査分隔线的菜单项控件名称。

7A.对B.错J&普通窗体与子窗体建立的方法是相同的,不同之处是子窗体的MDIChild属性设置为False,而普通窗体的MDIChild属性设置为True。

2A.对VB.错9.除了Click事件Z外,菜单项还能响应其他的事件。

5A.对B.错J10.窗体的Moveabel属性设为False时,不能改变窗体的大小,只能移动窗体。

3A.对B.错J11.显示和隐藏窗体比载入和卸载窗体要快得多。

4A.对V 8.错12.用户在“文件打开”通用对话框中选择一个文件时,对话框控件的FileName属性含有所选文件名字。

4A.对J8.错第二题、单选题(共45分,每项1.5分)1.为减少语句的使用,将一个窗体加载到内存中并显示出来,所使用的语句或方法是o 6A.LoadB.UnloadC.Show JD.Hide2.下列不能打开菜单编辑器的操作是____ o 6A.按Ctrl+EB.单击工具栏中的“菜单编辑器”按钮C.执行“工具”菜单中的“菜单编辑器”命令D.按Shift + Alt + M V3.利用菜单编辑器设计菜单时,如果要在菜单中加入一个分隔符,菜单分隔符的标题必须设置为____ 0 10A.+B.- VC.*D./4.窗体从加载到显示,依次引发的事件冇。

「第八章vb6.0程序调试」

「第八章vb6.0程序调试」

第八章程序调试8.1 程序错误分类VB中常见的程序错误可分为编译错误、运行错误和逻辑错误3类。

1.编译错误编译错误也称为语法错误,在编写程序时,如果语句不符合VisualBasic的语法规则,就会产生这类错误。

例如,输入了不正确的关键字、遗漏了某个必需的标点符号、缺少表达式、类型不匹配或者应该配对的语句没有配对等,都会产生编译错误。

在编写代码或运行程序时,很容易检查出这类错误。

在编写代码时,VB会自动对程序进行语法检查,某些类型的语法错误能够被即时检查出来,并且会弹出一个出错消息框,出错的那一行以高亮度显示。

例如,当输入“I=”后没有接着输入表达式,而是切换到其他行,则会弹出如图8.1所示的消息框。

还有一些类型的语法错误,在编写代码时VB检查不出来,例如,If语句后没有对应的End If语句、输入了错误的属性名等。

在运行程序时,VB将弹出错误消息框,提示用户错误所在,如图8.2所示。

8.2调试工具栏为了调试程序的方便,用户可以使用VB的调试工其栏。

在默认情况下,VB界面上不显示调试工具栏。

打开【视图】菜单,指向【工具栏】选项,则弹出【工具栏]子菜单,执行其中的【调试】命令即可打开调试工具栏。

其中各按钮的功能如表8.1所示。

8.3 设置断点断点是告诉VB挂起程序执行的一个标记,当程序执行到断点处即暂停程序的执行,进入中断模式,此时可以在【代码】窗口中查看程序内变量、属性的值。

在代码中设置断点是常用的一种调试方法。

在VB中,断点的设置有两种办法:(1)将光标放置在需要设置断点的地方,执行【调试】菜单中的【切换断点】命令或单击调试工具栏中的l切换断点l按钮,即可在该行语句上设置一个断点。

(2)设置断点更简便的办法是,直接在要设置断点的行的左边单击鼠标。

设置了断点的行将以粗体显示,并且在该行左边显示一个黑色的圆点,作为断点的标记。

在代码中可以设置多个断点。

设置完断点后,运行程序,运行到断点处,程序就暂停下来,进入中断模式。

vb教程答案第八章

vb教程答案第八章

1.向一个顺序文件写数据时,可以Output或Append两种方式打开顺序文件。

二者在执行写操作时何不同。

答:Output和Append都是打开一个文件,对文件进行写操作。

使用Output方式时若文件不存在,新建一个文件写入内容,若文件已存在,重写该文件,文件原内容丢失;使用 Append时若文件不存在,新建一个文件写入内容,若文件已存在,把字符追加到该文件尾部。

2.用Print #语句和用Write #语句向顺序文件写入数据,最大的区别是什么?答:用Print #语句写入数据时,输出表列可以用“,”或“;”分隔,用“,”时输出表列呈标准格式,用“;”时输出表列呈紧凑格式;用Write #语句写入数据时,各输出表列只用“,”,紧凑格式输出,并给字符数据加“”。

3.在D盘根目录上用记事本程序建立一个名为Data.txt的数据文件,数据文件的内容为以下数据:37,45,23,84,79,32,66,54,72,19编写程序,从文件中读取上述数据,从小到大进行排序,再将排好序的数据写入新的文件Data1.txt中。

(要求读取的数据和排序结果用文本框显示)答:Option Base 1Dim a() As Integer, i As Integer, j As Integer, temp As IntegerPrivate Sub Command1_Click()Open "C:\Data.txt" For Input As 1Do While Not EOF(1)i = i + 1ReDim Preserve a(i)Input #1, a(i)Text1.Text = Text1.Text & Str(a(i)) LoopFor i = 1 To UBound(a) - 1For j = i + 1 To UBound(a)If a(i) > a(j) Thentemp = a(i)a(i) = a(j)a(j) = tempEnd IfNext jNext iOpen "C:\data1.txt" For Output As #2For i = 1 To UBound(a)Print #2, a(i);Text2.Text = Text2.Text & Str(a(i)) Next iEnd Sub4.有一个名为“Sorce”的文本文件,每行记录一个学生的考试成绩,数据排列形式是:学号,姓名,英语成绩,数学成绩,计算机成绩。

vb练习题(有答案)(打印)

vb练习题(有答案)(打印)

《大学Visaul Basic程序设计》复习题第一章Visual Basic程序设计概述第一题:是非题(共10分,每项1分)1. VB6.0只能运行在Windows 2000下,不能运行在Windows 98下。

13A.对B.错√2. 用户控件和系统控件都可以加载到工具箱上,并且永久保留。

4A.对B.错√第二题、单选题(共45分,每项1.5分)1. VB中的工具栏可以从______菜单上的“工具栏”命令中移进或移出。

15A.工具B.编辑C.视图√D.调试2. 在VB的集成环境中创建VB应用程序时,除了工具箱窗口、窗体设计窗口、属性窗口外,必不可少的窗口是______。

2A.窗体布局窗口B.立即窗口C.代码窗口√D.监视窗口第二章VB的编程机制第一题:是非题(共10分,每项1分)1. 在事件驱动的应用程序中,代码是按照预定的路径执行的。

15A.对B.错√2. 标签控件即可以用来显示用户不能编辑和修改的文本,也可以用来编辑和修改文本。

9A.对B.错√3. 每一个控件实质上都是一个微型程序。

2A.对√B.错4. 窗体上的控件同样可以借助于剪贴板进行剪切、复制和粘贴。

A.对√B.错第二题、单选题(共45分,每项1.5分)1. 文本框没有_____属性。

21A.EnabledB.VisibleC.BackColorD.Caption√2. 文本框(Text1)中有选定的文本,执行Text1.SelText=”Hello”的结果是___。

9A.“Hello”将替换掉原来选定的文本√B.“Hello”将插入到原来选定的文本之前C.Text1.SelLength为5D.文本框中只有“Hello”3. 要判断“命令按钮”是否被鼠标单击,应在“命令按钮”的______事件中判断。

3A.ChangB.KeyDownC.Click√D.KeyPress4. 如果文本框的Enabled属性设为False,则___。

6A.文本框的文本将变成灰色,并且此时用户不能将光标置于文本框上B.文本框的文本将变成灰色,用户仍然能将光标置于文本框上,但是不能改变文本框中的内容√C.文本框的文本将变成灰色,用户仍然能改变文本框中的内容D.文本框的文本正常显示,用户能将光标置于文本框上,但是不能改变文本框中的内容第三题、简单程序(共15分,每项1.5分)1. 以下程序的输出结果是______。

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、字节。

  1. 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
  2. 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
  3. 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
1.8
2.480
四.程序填空题
1.(1)f = Sin(a) / (Sin(b) * Sin(c))
(2)f(x, x - y, x - z) + f(y, y - z, y - x) + f(z, z - x, z - y)
2.(3)p (i)
(4)p (i)
8.2过程与变量的作用域
自测题
一.填空题(共20分,每小题4分)
a = 24: b = Hale Waihona Puke 6Call s(a, b)
End Sub
Private Sub s(ByVal u As Integer, ByVal v As Integer)
Dim m As Integer
While v
m = u Mod v
u = v
v = m
Wend
Print u
End Sub
2.
c) KeyDown和KeyUp
d) KeyPress和KeyMove
5.当同时按下shift、ctrl和Alt键时,会发生KeyDown事件,系统转去执行KeyDown事件过程,此时,该事件过程中的Shift参数的值为()。
a)1
b)2
c)4
d)7
参考答案
单项选择题
1. c 2. c 3. a 4. a 5. d
8.7递归
自测题
一.写出下列事件过程的执行结果。(50分)
该过程。
3.若在窗体模块或标准模块中以关键字private定义函数过程,则该函数过程只能在
()中使用。
4.在函数过程定义中一般至少有一个赋值语句把所得函数值赋给()。
三.写出下列事件过程的执行结果。(共30分,每小题15分)
1.
Private Sub Command1_Click()
Dim a As Integer, b As Integer
Print "a="; a, "b="; b, "c="; c
End Sub
Private Sub s(x As Integer, y As Integer, z As Integer)
z = y - x
End Sub
二.下面程序的功能是对两个整型变量的值进行交换,在横线上填上适当内容。(50分)
Private Sub Command1_Click()
Dim a As comp, b As comp
a.re = InputBox("输入a的实部")
a.im = InputBox("输入a的虚部")
b.re = InputBox("输入b的实部")
b.im = InputBox("输入b的虚部")
(1)
Print "c="; c.re; "+"; c.im; "i"
Print a(i),
If i Mod 4 = 0 Then Print
Next i
Print
(1)
End Sub
Private Sub s((2))
Dim i%, k%
For i = 1 To n
If a(i) Mod 3 = 2 Then
If k Mod 4 = 0 Then Print
Print a(i),
c)KeyDown
d)DragDown
3.当用户()时,会引发焦点所在对象的KeyPress事件。
a)在键盘上按下有ASC码的键
b)释放键盘上有ASC码的键
c)单击鼠标左键
d)单击鼠标右键
4.当用户在键盘上按下一个有ASC码的键时会发生()事件。
a) KeyPress和KeyDown
b) KeyPress和KeyUp
a) p b) call p 0.5,a,100
c) call p (0.5,cos(0.1),a+10) d) p (0.5,1.2,100)
4.设已定义函数过程f,它有三个整型数值参数,再设a,b和c为实型变量,则调用该函数过程使用的语句为()。
a)f b) f( a+b, b+c )
c)f ( a+b, b+c ,c+a ) c) f a+b, b+c, c+a
第8章自测题及其参考答案
8.1过程的定义与调用
自测题
一.单项选择题(共20分,每小题4分)
1.标准模块中的内容存放在以()为扩展名的文件中。
a).frm b).bas c).cls d).txt
2.下列过程不能包含在标准模块中定义的是()。
a)事件过程b)子过程c)函数过程d)公共过程
3.设已定义子过程p,它有三个数值型数值参数,再设a为实型变量,则调用该子过程使用的语句为()。
Private Sub Command1_Click()
Dim m%
m = max(35, -21, 480)
m = max(max(m, 75, 100), 380, 28)
Print "max="; m
End Sub
Private Function max(ByVal x As Integer, ByVal y As Integer, ByVal z As Integer)
5.整个应用程序
二.单项选择题
1.d
2.b
三.给定下列窗体模块,写出单击命令按钮Comman1后的执行结果。
1.10
30
30
20
30
2.x=1 y=1
x=1 y=2
x=1 y=3
3.u=1 v=1
u=2 v=2
u=3 v=3
8.3数组和记录作为过程的参数
自测题
一.下面窗体模块的功能是:用随机函数产生10个不大于100的整数存入一维数组a中,
Call s1
Print x
Call s2
Print x
End Sub
Private Sub s1()
x = x + 20
Print x
End Sub
Private Sub s2()
Dim x As Integer
x = x + 20
Print x
End Sub
2.
Private Sub Command1_Click()
If x > y Then max = x Else max = y
If z > max Then max = z
End Function
四.程序填空题(共30分,每空10分)
1.设
,下面窗体模块的功能是从键盘上输入x,y和z的值,求f (x,y,z)的值,在横线上填上适当内容。
Private Function f(ByVal a As Single, ByVal b As Single, ByVal c As Single)
Dim a As Integer, b As Integer
a = 10: b = 20
Print "a="; a, "b="; b
(1)
Print "a="; a, "b="; b
End Sub
Private Sub swap(ByRef a As Integer, ByRef b As Integer)
并找出这组数中能被3整除余2的数,在横线上填上适当内容。(50分)
Private Sub Command1_Click()
Dim i%
Const n = 10
Dim a(1 To n) As Integer
Randomize
For i = 1 To n
a(i) = Int(Rnd * 100 + 1)
(1)
End Function
Private Sub Command1_Click()
Dim x!, y!, z!, s!
x = InputBox("x=")
y = InputBox("y=")
z = InputBox("z=")
s =(2)
Print "s="; s
End Sub
2.下面窗体模块的功能是在窗体上显示如下图形,在横线上填上适当内容。
a)全局级过程的作用域为整个工程
b)在某一窗体模块中定义的全局级过程,若被该模块外的模块所调用,必须在该过程名前加上窗体名称
c)在不同模块中定义的模块级过程可以同名
d)在不同模块中定义的工程级过程不能同名
2.关于变量的作用域,正确的描述是()。
a)模块级变量的作用域为它所在的模块
b)同一模块中不同级的变量不能同名
Dim i%
For i = 1 To 3
Call s4
Next i
End Sub
Static Sub s4()
u = u + 1: v = v + 1
Print "u="; u, "v="; v
End Sub
参考答案
一.填空题
1.过程的作用域
2.全局级过程或工程级过程
3.它所在模块
4.变量的使用范围
s3 (1): s3 (1): s3 (1)
End Sub
Private Sub s3(ByVal a As Integer)
Dim x As Integer
Static y As Integer
x = x + a: y = y + a
相关文档
最新文档