VB习题(含答案)
- 格式:pdf
- 大小:138.27 KB
- 文档页数:12
vb练习题及答案VB练习题及答案VB(Visual Basic)是一种广泛应用于Windows操作系统的编程语言,它以其简单易学的特点受到了许多初学者和专业开发者的青睐。
为了帮助大家更好地掌握VB编程,下面将提供一些VB练习题及其答案,希望能对大家有所帮助。
练习题一:计算器程序编写一个VB程序,实现一个简单的计算器功能。
要求用户输入两个数字和一个操作符(+、-、*、/),然后根据操作符进行相应的计算,并输出结果。
解答:```vbPrivate Sub btnCalculate_Click(sender As Object, e As EventArgs) Handles btnCalculate.ClickDim num1 As Double = CDbl(txtNum1.Text)Dim num2 As Double = CDbl(txtNum2.Text)Dim operator As String = cmbOperator.SelectedItem.ToString()Dim result As DoubleSelect Case operatorCase "+"result = num1 + num2Case "-"result = num1 - num2Case "*"result = num1 * num2Case "/"result = num1 / num2End SelectlblResult.Text = "Result: " & result.ToString()End Sub```练习题二:学生成绩管理系统编写一个VB程序,实现一个简单的学生成绩管理系统。
要求用户输入学生的姓名和成绩,然后将其保存到数组中。
用户可以通过输入姓名来查询学生的成绩。
解答:```vbPrivate Structure StudentPublic Name As StringPublic Score As DoubleEnd StructurePrivate students() As StudentPrivate Sub btnAdd_Click(sender As Object, e As EventArgs) Handles btnAdd.ClickDim newStudent As Student = txtName.TextnewStudent.Score = CDbl(txtScore.Text)ReDim Preserve students(students.Length)students(students.Length - 1) = newStudenttxtName.Text = ""txtScore.Text = ""End SubPrivate Sub btnSearch_Click(sender As Object, e As EventArgs) Handles btnSearch.ClickDim searchName As String = txtSearchName.TextDim found As Boolean = FalseFor Each student As Student In studentsIf = searchName ThenlblSearchResult.Text = "Score: " & student.Score.ToString()found = TrueExit ForEnd IfNextIf Not found ThenlblSearchResult.Text = "Student not found."End IfEnd Sub```练习题三:简单的文本编辑器编写一个VB程序,实现一个简单的文本编辑器功能。
第1章习题与答案一、选择题1. 在VB集成环境创建VB应用程序时,除了工具箱窗口、窗体窗口、属性窗口外,必不可少的窗口是:(A)窗体布局窗口(B)立即窗口(C)代码窗口(D)监视窗口2. 保存新建的工程时,默认的路径是:(A)My Documents (B)VB98 (C)\ (D)Windows3. 将调试通过的工程经“文件”菜单的“生成.exe文件”编译成.exe后,将该可执行文件转到其他机器上不能运行的主要原因是:(A)运行的机器上无VB系统所需的动态连接库(B)缺少.frm窗体文件(C)该可执行文件有病毒(D)以上原因都不对4.当需要上下文帮助时,选择要帮助的“难题”,希望出现MSDN窗口及显示所需“难题”的帮助信息。
应按的键的(A)Help (B)F10 (C)Esc (D)F15.Visual Basic中提供的On Error Resume Next错误陷阱语句的功能是:(A)当发生错误时,使程序跳转到语句标号为0的程序块(B)当发生错误时,不使用错误处理程序块(C)当发生错误时,忽略错误行,继续执行下一语句(D)当发生错误时,终止本过程程序执行,继续执行下一过程6.在VB环境中,工程文件的扩展名是:(A).frm (B).bas (C).vbp (D).frx7.将一个VB程序保存在磁盘上,至少会产生的文件是:(A).doc、.txt (B)aaa、.exe (C).vbp、.frm (D).bat、.sys8.下面关于对象的描述中,错误的是:(A)对象就是自定义结构变量(B)对象代表正在创建的系统中的一个实体(C)对象是一个状态和操作(或方法)的封装体(D)对象之间的信息传递是通过消息进行的9.下面4项中不属于面向对象系统三要素的是(A)变量(B)事件(C)属性(D)方法10.下面各种高级语言中,不是面向对象程序设计语言的是(A)Visual Basic (B)C++ (C)Pascal (D)Java二、填空题1.当进入VB集成环境后,发现没有显示“工具箱”窗口,应选择【1】菜单的【2】选项,使“工具箱”窗口显示。
一、选择题一、选择题1.在设计应用程序时,可以查看到应用程序工程中的所有部分的窗口是(.在设计应用程序时,可以查看到应用程序工程中的所有部分的窗口是( )。
A.窗体设计.代码C.属性D.工程资源管理器窗口.工程资源管理器窗口 >> 答案:d 2.窗体的Load事件的触发时机是(事件的触发时机是( )。
A.用户单击窗体时B.窗体被加载时C.窗体显示之后D.窗口被卸载时.窗口被卸载时 >> 答案:b答案:b3.与传统的程序设计语言相比,Visual Basuc最突出的特点是(最突出的特点是( )。
A.结构化程序设计B.程序开发环境C.事件驱动编程机制D.程序调试技术.程序调试技术答案:C 4.VB6.0集成开发环境的主窗口不包括(集成开发环境的主窗口不包括( )。
A.标题栏.状态栏 D.工具栏.工具栏.标题栏 B.菜单栏.菜单栏 C.状态栏答案:c 5.如果对象的名称为Mytext,而且对象有一个属性Text,那么在代码中引用该属性的正确格式是( )。
格式是(A.Text.Mytext B.Mytext.text C.Mytext.(Text)D.Mytext*Text 答案:b 6.下列可以激活属性窗口的操作是(.下列可以激活属性窗口的操作是( )。
A.用鼠标双击窗体的任何部位命令 C.按Ctrl+F4 用鼠标双击窗体的任何部位 B.执行“工程”菜单中的“属性窗口”命令D.按F4键答案: b d 答案:7.假定已在窗体上画了多个控件,并有一个控件是活动的,为了在属性窗口中设置窗体的属性,预先应制造的操作是( )。
属性,预先应制造的操作是(A.单击窗体上没有控件的地方.不执行任何操作 D.双击窗体.单击任一个控件 C.不执行任何操作.单击窗体上没有控件的地方 B.单击任一个控件的标题栏的标题栏答案:a 8.如果在文本框中键入字符时,应设置文本框的(()属性。
只显示某个字符,如星号(*),应设置文本框的如果在文本框中键入字符时,只显示某个字符,A.Caption B.PasswordChar C.Text D.Char 答案:b 9.如果想让文本框中的内容在运行时不能编辑,需将文本框的(.如果想让文本框中的内容在运行时不能编辑,需将文本框的( )属性设置为True。
<大学程序设计基础-Visual Basic>教材课后习题答案第1章一、选择题1 2 3 4 5 6 7B D BC B B D第2章一、选择题1 2 3 4 5 6 7 8 9 10B C B C B C A A A A11 12 13 14A B A A二、填空题1.rem或’ _ :2.“” # #3.5x2-3x-2sinA/34.3214565.300三、操作题1、程序段:Private Sub Command1_Click()Dim x As Integer, y As IntegerDim s As Long, c As Longx = Text1.Texty = Text2.Texts = x * yc = (x + y) * 2Label3.Caption = "长方形的面积为" + Str(s)Label4.Caption = "长方形的周长为" + Str(c)End Sub3、程序段:Private Sub Command1_Click()Text1.Text = "第一"End SubPrivate Sub Command2_Click()Text1.Text = "第二"End Sub4、程序代码:Private Sub Text1_Change()Text1.MaxLength = 10End Sub5、程序代码:Private Sub Text1_Click()Text1.SelStart = 0Text1.SelLength = Len(Text1.Text)End Sub第3章一、选择题1 2 3 4 5 6 7D A D B A D B二、填空题1. False2.B^2-4*a*c else三、操作题1.从键盘输入三个值,判断它们能否构成三角形的三个边。
如果能构成一个三角形,则计算三角形的面积。
VB复习题允许上机调试一、选择题1 设窗体上有一个文本框,名称为text1,程序运行后,要求该文本框不能接受键盘输入,但能输出信息,以下属性设置正确的是: BA)text1.maxlength=0 B)text1.enabled=falseC)text1.visible=false D)text1.width=02 以下能在窗体Form1的标题栏中显示“VisualBasic窗体"的语句是 CA) ="VisualBasic窗体"B) Form1.Title="VisualBasic窗体"C) Form1.Caption="VisualBasic窗体"D) Form1.Text="VisualBasic窗体”3 在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:CPrivate Sub Command1_Click()x=InputBox("Input")Select Case xCase 1,3Print "分支1"Case Is >4Print "分支2"Case ElsePrint "Else 分支"End SelectEnd Sub程序运行后,如果在输入对话框中输入2,则窗体上显示的是A)分支1 B)分支2 C)Else分支D) 程序出错4 以下关于MsgBox的叙述中,错误的是 D (见书P88-92)A)MsgBox函数返回一个整数B) 通过MsgBox函数可以设置信息框中图标和按钮的类型C) MsgBox语句没有返回值D) MsgBox函数的第一个参数是一个整数,该参数只能确定对话框中显示的按钮数量5 在窗体上画一个名称为Timer1的计时器控件,要求每隔0.5秒发生一次计时器事件,则以下正确的属性设置语句是 DA)Timer1.InterV al=0.5 B) Timer1.Interval=5C) Timer1.Interval=50 D) Timer1.Interval=5006 在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:BPrivate Sub Command1_Click()Static x As IntegerClsFor i=1 To 2y=y+xx=x+2NextPrint x,yEnd Sub程序运行后,连续三次单击Command1按钮后,窗体上显示的是A) 4 2 B) 12 18 C) 12 30 D) 4 67 以下叙述中错误的是DA)事件过程是响应特定事件的一段程序B)不同的对象可以具有相同名称的方法C)对象的方法是执行指定操作的过程D)对象事件的名称可以由编程者指定8 以下合法的V isual Basic标识符是AA) ForLoop B) Const C) 9abc D) a#x9 当一个复选框被选中时,它的V alue属性的值是 CA) 3 B) 2 C) 1(复选框被选中显示1,不选中显示0)D) 010 表达式5 Mod 3+3\5*2的值是BA) 0 B) 2 C)4 D) 611 设x=4,y=8,z=7,以下表达式的值是Dx<y And (Not y>z) Or z<xA) 1 B) -1 C) True D) False12 在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程: A Private Sub Command1_Click()a$="VisualBasic"Print String(3,a$)End Sub程序运行后,单击命令按钮,在窗体上显示的内容是A)VVV B) Vis C) sic D) 1113设有如下程序段:x=2For i=1 To 10 Step 2x=x+iNext运行以上程序后,x的值是 BA) 26 B) 27 C) 38 D) 5714 以下叙述中错误的是BA) 在KeyPress事件过程中不能识别键盘的按下与释放B) 在KeyPress事件过程中不能识别回车键C) 在KeyDown和KeyUp事件过程中,将键盘输入的"A"和"a"视作相同的字母D) 在KeyDown和KeyUp事件过程中,从大键盘上输入的"1"和从右侧小键盘上输入的"1"被视作不同的字符15 执行如下两条语句,窗体上显示的是Da=9.8596Print Format(a,"$00,00.00")A) 0,009.86 B) $9.86 C) 9.86 D) $0,009.8617 在窗体上画一个名称为Command1的命令按钮,并编写如下程序:DPrivate Sub Command1_Click()Dim x As IntegerStatic y As Integerx=10y=5Call f1(x,y)Print x,yEnd SubPrivate Sub f1(ByRef x1 As Integer, y1 As Integer)x1=x1+2y1=y1+2End Sub程序运行后,单击命令按钮,在窗体上显示的内容是A) 10 5 B) 12 5 C) 10 7 D) 12 718 在窗体上画一个名称为Command1的命令按钮,然后编写如下事件过程:BOption Base 1Private Sub Command1_Click()Dim aa= Array(1,2,3,4,5)For i=1 To UBound(a)a(i) = a(i)+i-1NextPrint a(3)End Sub程序运行后,单击命令按钮,则在窗体上显示的内容是A) 4 B) 5 C) 6 D)719 阅读程序Option Base 1Private Sub Form_Click()Dim arr,SumSum = 0arr = Array(1,3,5,7,9,11,13,15,17,19)For i=1 To 10If arr(i)/3 = arr(i)\3 ThenSum =Sum+arr(i)End IfNext iPrint SumEnd Sub程序运行后,单击窗体,输入结果为 CA)13 B)14 C)27 D)1520 在窗体上画一个名称为Command1的命令按钮,然后编写如下程序:D Option Base 1Private Sub Command1_Click()Dim a As V arianta=Array(1,2,3,4,5)Sum=0For i=1 To 5Sum = sum+a(i)Next ix=Sum/5For i =1 To 5If a(i)>x Then Print a(i);Next iEnd Sub程序运行后,单击命令按钮,在窗体上显示的内容是A)1 2 B) 1 2 3 C) 3 4 5 D)4 521.在V isual Basic设计界面中不能隐藏的窗口是( A)。
1. 选择题(1) 假定窗体的名称(Name属性)为Form1,则把窗体的标题设置为“VB Test”的语句为(B)。
A. Form1="VB Test"B. Caption="VB Test"C. Form1.Text="VB Test"D. ="VB Test"(2) 下列不能打开代码窗口的操作是(D)。
A.双击窗体上的某个控件B.双击窗体C.按F7键D.单击窗体或控件(3) 为了保存一个Visual Basic应用程序,应当(D)。
A.只保存窗体文件(.frm)B.分别保存工程文件和标准模块文件(.bas)C.只保存工程文件(.vbp)D.分别保存工程文件、窗体文件和标准模块文件(4) 为了装入一个Visual Basic应用程序,应当(C)。
A.只装入窗体文件(.frm)B.分别装入工程文件和标准模块文件(.bas)C.只装入工程文件(.vbp).D分别装入工程文件、窗体文件和标准模块文件(5) 不为了使窗体的大小可以改变,必须把它的BorderStyle属性设置为(A)。
A.1 B.2 C.3 D.42. 填空题(1) 在用Visual Basic开发应用程序时,通常首先需要新建工程、其次还要经过、、、和5步。
(2) 控件和窗体的Name属性只能通过属性窗口设置,不能在运行期间设置。
(3) 代码窗口分为左右两栏,左边一栏称为对象,右边一栏称为事件。
(4) 为了在输入程序时能自动进行语法检查,必须执行菜单中的命令,打开对话框,然后选择“编辑器”选项卡中的选项。
(5) 在保存VB应用程序中,窗体文件和工程文件的扩展名分别为 .frm 和.vbp 。
(6) 为了把一个Visual Basic应用程序装入内存,只要装入工程文件即可。
(7) Visual Basic应用程序通常由3类模块组成,即、和。
(8) 在窗体上画两个文本框和一个命令按钮,然后在命令按钮的代码窗口中编写如下事件过程:Private Sub Command1_Click( )Text1.Text=“VB Programming”Text2.Text=Text1.TextText1.Text=“ABCD”End Sub程序运行后,单击命令按钮,两个文本框中显示的内容分别为ABCD 和VB Programming 。
vb练习题及答案VB练习题及答案一、选择题1. 在VB中,以下哪个是正确的数据类型?A. IntegerB. IntC. Both A and BD. None of the above答案:C2. VB中,哪个关键字用于声明变量?A. DimB. DeclareC. DefineD. Set答案:A3. 在VB中,以下哪个是正确的循环结构?A. ForB. WhileC. RepeatD. All of the above答案:D4. VB中,以下哪个是正确的条件语句?A. IfB. SwitchC. CaseD. A and B only答案:A5. 在VB中,以下哪个是正确的数组声明方式?A. Dim myArray(5) As IntegerB. Dim myArray As Integer(5)C. Both A and BD. None of the above答案:A二、填空题1. 在VB中,使用________关键字可以定义一个类。
答案:Class2. VB中,使用________方法可以为控件添加事件处理程序。
答案:AddHandler3. 在VB中,________方法用于结束程序的执行。
答案:End4. VB中,________属性用于获取或设置一个控件的文本。
答案:Text5. 在VB中,________方法用于打开一个文件。
答案:Open三、简答题1. 请简述VB中的事件和事件处理程序的概念。
答案:在VB中,事件是用户或程序触发的特定动作,如按钮点击或键盘敲击。
事件处理程序是一个过程,当特定的事件发生时,会被自动调用以响应该事件。
2. 描述VB中如何使用For循环。
答案:在VB中,For循环用于重复执行一段代码直到满足特定条件。
基本语法是:```For counter = start To end [Step increment]' 循环体Next [counter]```3. 解释VB中什么是继承,并给出一个简单的示例。
1.下列控件中没有Caption属性的是。
A)框架B)列表框C)复选框D)单选按钮2.复选框的Value属性为1时,表示。
A)复选框未被选中B)复选框被选中C)复选框内有灰色的勾D)复选框操作有误3.用来设置斜体字的属性是。
A)FontItalicB)FontBoldC)FontNameD)FontSize4.将数据项“China”添加到列表框Listl中成为第二项应使用语句。
A)List1.AddItem“China”,1B)List1.AddItem“China”,2C)List1.AddItem1,“China”D)List1.AddItem2,“China”5.引用列表框Listl最后一个数据项,应使用语句。
A)List1.List(List1.ListCount)B)List1.List(ListCount)C)List1.List(List1.ListCount-1)D)List1.List(ListCount-1)6.假如列表框Listl有四个数据项,那么把数据项“China”添加到列表框的最后,应使用语句。
A)List1.AddItem3,“China”B)List1.AddItem“China”,List1.ListCount-1C)List1.AddItem“China”,3D)List1.AddItem“China”,List1.ListCount7.执行了下面的程序后,列表框中的数据项有。
PrivateSubForm_Click()Fori=1to6List1.AddItemiNextiFori=1to3List1.RemoveItemiNextiEndSubA)1,5,6B)2,4,6C)4,5,6D)1,3,58.如果列表框List1中没有选定的项目,则执行List1.RemoveItemList1.ListIndex语句的结果是。
A)移去第一项B)移去最后一项C)移去最后加入列表中的一项D)以上都不对9.如果列表框List1中只有一个项目被用户选定,则执行Debug.PrintList1.Selected(List1.ListIndex)语句的结果是。
VB练习题(上机)含答案VB练习题(上机)含答案第一部分1 在窗体上添加一个命令按钮(名称为Cmd1,标题为"输出平均值")。
程序运行后,单击命令按钮完成以下工作:①随机产生20个0到1000的整数,将其放入一个一维数组中②求出所有元素的平均值,并显示在窗体上(如下图所示)Private Sub Cmd1_Click()Dim a%(19), i%, sum!, aver!RandomizeFor i = 0 To 19a(i) = Int(Rnd * 1001)sum = sum + a(i)Next iaver = sum / 20Print averEnd Sub2 请在名称为Form1的窗体上添加一个名称为Text1的文本框和一个名称为C1、标题为"转换"的命令按钮,如下图所示。
在程序运行时,单击"转换"按钮,可以把Text1中的小写字母转换为大写,把大写字母转换为小写,其他字符不变。
Private Sub C1_Click()Dim ch As String, ch1 As String, i%ch = Text1For i = 1 To Len(ch)If Asc(Mid(ch, i, 1)) >= 65 And Asc(Mid(ch, i, 1)) <= 90 Thench1 = ch1 + LCase(Mid(ch, i, 1)) Elsech1 = ch1 + UCase(Mid(ch, i, 1)) End IfNext iText1 = Text1 + vbCrLfText1 = Text1 + ch1End Sub3 在窗体上添加一个命令按钮(名称为MyCmd1,标题为"输出最大值")。
程序运行后,单击命令按钮完成以下工作:①随机产生30个0~1000的整数,将其放入一个一维数组中②求出其中的最大值,并显示在窗体上。
VB习题答案(1-3章)习题一一、选择题1.C 2.C 3.A 4.C 5.C 6.C 7.B二、填空题1.学习版、专业版、企业版2.窗体界面3.Alt+F4三、简答题1.简述Visual Basic语言的特点。
Visual Basic是Windows操作平台下的可视化编程语言,它继承和发展了BASIC语言的基本功能,具有简单易学、功能强大等特点。
Visual Basic提供了可视化设计工具,以图形用户界面(GUI)为PC机用户提供了一个直观的工作环境。
支持面向对象的程序设计(OOP),采用事件驱动方式,提供对象的链接与嵌入(OLE)和访问数据库等功能。
2. Visual Basic 6.0的集成开发环境由哪些部分组成,各部分的主要功能是什么?1. 标题栏:用来显示打开的工程名称和系统的工作状态。
2. 菜单栏:菜单栏中包括“文件”、“编辑”、“视图”、“工程”、“格式”、“调试”、“运行”、“查询”、“图表”、“工具”、“外接程序”、“窗口”和“帮助”共有13个菜单项。
这是一组下拉式菜单,提供了设计、编辑、编译和调试应用程序所需要的绝大部分功能和命令。
3. 工具栏: Visual Basic 6.0提供了“编辑”、“标准”、“窗体编辑器”和“调试”4种工具栏。
工具栏上形象直观的排列着一些最常用的命令按钮,对应特定的常用操作命令。
4. 控件箱:控件箱提供了一组控件。
设计界面时,用户可以用鼠标双击控件箱中的控件,在窗体中画出该控件,或用鼠标单击控件箱中的控件,然后在窗体中拖动鼠标画出所需的控件。
5. 窗体设计器:窗体设计器是应用程序最终面向用户的窗口。
各种控件、图形、数据以及程序的运行结果都在窗体设计器窗体中显示出来。
6. 工程资源管理器:在工程资源管理器窗口中(图1-2),列出了应用程序的工程以及工程中的窗体和模块。
7. 属性窗口:属性窗口主要用来设置Visual Basic窗体及各控件的属性特征,属性窗口的主体部分分为左右两列,左边是控件的属性名列表,右边是控件的属性值列表。
计算机与程序设计基础(VB)练习题一.单选题(每小题1分,共27分)1.根据冯·诺依曼1946年提出的计算机的程序存储原理而设计了现代的计算机。
下面的说法正确的是_________。
A.计算机能够智能地自动编制好程序,并执行B.计算机内的程序和数据,都是用十进制数表示C.计算机内的程序和数据,都是用二进制表示的D.笔记本电脑不是冯•诺依曼结构的计算机2.计算机硬件主要由运算器、_________、存储器、输入设备及输出设备等构成。
A.屏幕B.控制器C.键盘D.打印机3.断电会使存储数据丢失的存储器是_________。
A.ROM B.U盘C.硬盘D.RAM4.下列存储器中读写速度最快的存储器是_________。
A.光盘B.内存储器C.硬盘D.高速缓冲存储器5.1MB = _________。
A.1000B B.1024B C.1000KB D.1024KB6.下列设备中,属于计算机输入设备的是_________。
A.鼠标B.音箱C.打印机D.显示器7.下面的_________不是操作系统。
A.Java B.Mac OS C.Linux D.Windows8.下面4个不同进制的数中,最小的是_________。
A.(200)10B.(11000111)2C.(306)8D.(C9)169.十进制数125所对应的八进制数为_________。
A.177 B.157 C.161 D.17510.二进制数10110110所对应的十六进制数为_________。
A.C6 B.D6 C.B6 D.E611.下面不属于对象的基本特征的是_________。
A.属性B.事件C.方法D.函数12.以下能在窗体的标题栏显示“窗体”的语句是_________。
A. = "窗体" B.Form1.Title = "窗体"C.Form1.Text = "窗体" D.Form1.Caption = "窗体"13.下列可作为变量名的是_________。
第1章VB集成环境与VB概述一、选择题第2章常用控件与界面设计一、选择题第3章数据、表达式与简单程序设计一、选择题第4章选择分支与循环一、选择题二、填空题1.5 7 13 12 14 112. 3 1 5 3 4 13. right(a$,i)4. 45. 6-i6. 6 11 10 21 13 347. 5 14 138. Is else end select9. a*(2*i-1)*(-1)*x/(2*i+2) i+110. 0 n-111. 1 t*(-1)*x^2/((2*k-1)*(2*k)) Abs(t)>eps12. count1=count+1 count1>013. sum=0 sum+j st & k & “+”14. 9 x三、编程题1.Option ExplicitPrivate Sub Command1_Click()Dim s As String, i As Integer, ch As String * 1Dim a As Integer, b As Integer, c As Integers = Text1.TextFor i = 1 To Len(s)ch = Mid(s, i, 1)If (ch >= "0" And ch <= "9") Thena = a + 1ElseIf (ch >= "A" And ch <= "Z") Or (ch >= "a" And ch <= "z") Thenb = b + 1Elsec = c + 1End IfNextPrint "数字个数"; aPrint "字符个数"; bPrint "其他字符"; cEnd Sub2.Option ExplicitPrivate Sub Command1_Click()Dim i As Integer, n As IntegerDim a As Integer, b As Integer, c As IntegerFor i = 1 To 50n = Int(Rnd * 90 + 10)Print n;If i Mod 10 = 0 Then PrintIf n <= 40 Thena = a + 1ElseIf n <= 70 Thenb = b + 1Elsec = c + 1End IfNext iPrint "小于等于40的个数:"; aPrint "大于40小于等于70的个数:"; bPrint "大于70的个数:"; cEnd Sub3.Option ExplicitPrivate Sub Command1_Click()Dim x As SingleDim t As Long, n As Integerx = 1t = 1n = 1Do While 1 / t >= 0.0001x = x + 1 / tn = n + 1t = t * nLoopPrint xEnd Sub4.Option ExplicitPrivate Sub Command1_Click()Dim k As Integer, sum As Integer, i As Integerk = InputBox("请输入一个正整数k", "输入框")For i = 1 To Len(CStr(k))sum = sum + Mid(k, i, 1)Next iMsgBox k & "的各位数字之和" & sumEnd Sub5.Option ExplicitPrivate Sub Command1_Click()Dim i As Integer, iSum As LongFor i = 1 To 20iSum = iSum + i ^ 4NextPrint iSumEnd Sub6.Option ExplicitPrivate Sub Command1_Click()Dim a As Integer, b As IntegerDim sum1 As Integer, sum2 As LongDim i As Integer, j As IntegerFor a = 2 To 3000sum1 = 0sum2 = 0For i = 1 To a \ 2If a Mod i = 0 Then sum1 = sum1 + i Next ib = sum1For j = 1 To b \ 2If b Mod j = 0 Then sum2 = sum2 + j Next jIf sum2 = a And a < b Then Print a, bNextEnd Sub7.Private Sub Command1_Click() '打印菱形Dim i As Integer, j As IntegerClsFor i = 1 To 6 '打印菱形上边6行Print Tab(20);Print Spc(6 - i);For j = 1 To 2 * (i - 1) + 1If j = 1 Or j = 2 * (i - 1) + 1 ThenPrint "*";ElsePrint " ";End IfNext jPrintNext iFor i = 5 To 1 Step -1 '打印下半部分Print Tab(20);Print Spc(6 - i);For j = 1 To 2 * (i - 1) + 1If j = 1 Or j = 2 * (i - 1) + 1 ThenPrint "*";ElsePrint " ";End IfNext jPrintNext iEnd Sub8.Option ExplicitPrivate Sub Command1_Click()Dim i As Integer, j As Integer, iSum As IntegerPrint "连续和为1250的正整数是:"For i = 1 To 500iSum = 0For j = i To 500iSum = iSum + jIf iSum >= 1250 Then Exit ForNextIf iSum = 1250 ThenPrint i; " ~"; jEnd IfNextEnd Sub9.Option ExplicitPrivate Sub Command1_Click()Dim a As Integer, b As Integer, c As IntegerFor a = 1 To 50For b = a To 50For c = b To 50If a ^ 2 + b ^ 2 = c ^ 2 ThenPrint a, b, cEnd IfNext cNext bNext aEnd Sub第5章数组一、选择题二、填空题1.Variant2.ReDim A(N)A(1)If M < A(I) Then M = A(I)3.Int(26 * Rnd) + 65Chr(t)i + 1 To 10A(i) > A(j)4.InStr(s, ",")Right(s, Len(s) - n)s5.T – 1I + 16.k = 6 - i – jmax = m7.j = 48j = j-38.i + 1i = i + 19. 23710. 3103511.numi + 1a(j)=temp三、编程题1.Option ExplicitOption Base 1Private Sub Command1_Click()Dim a(10) As IntegerDim i As Integer, max As IntegerFor i = 1 To 10a(i) = Int(90 * Rnd) + 10Print a(i);Next iPrinti = 1max = 0Do While i <= 10If a(i) Mod 3 = 0 ThenIf a(i) > max Thenmax = a(i)End IfEnd Ifi = i + 1LoopIf max = 0 ThenPrint "无要找的数"ElsePrint max & "是最大的能被3整除的数"End IfEnd Sub2.Option ExplicitOption Base 1Private Sub Command1_Click()Dim A() As IntegerDim I As Integer, m As IntegerDim K As IntegerReDim A(10)Print "原数组:";For I = 1 To 10A(I) = IPrint A(I);Next IPrintm = InputBox("????m")K = 9 + mReDim Preserve A(K)For I = 11 To KA(I) = A(I - 10)Next IFor I = 1 To 10A(I) = A(I + m - 1)Next IPrint "平移后的数组:";For I = 1 To 10Print A(I);Next IPrintEnd Sub3.Option ExplicitOption Base 1Private Sub Command1_Click()Dim I As Integer, J As Integer, K As IntegerDim a() As Integer, n As Integer, p As Integer Dim s As String, Flag As Booleanp = 1For K = 10 To 100I = 1Do While I <= 10 And Not FlagJ = 1Do While J <= 10 And Not Flagn = I ^ 2 + J ^ 2If n = K ThenFlag = TrueReDim Preserve a(p)a(p) = Kp = p + 1s = I & Str(J) & Str(K)List1.AddItem sEnd IfJ = J + 1LoopI = I + 1LoopFlag = FalseNext KEnd Sub4.Option ExplicitPrivate Sub Command1_Click()Dim A(10) As IntegerDim B(10) As Integer, S As StringDim I As Integer, J As Integer, X As IntegerA(1) = Int(90 * Rnd) + 10S = A(1)For I = 2 To 10DoX = Int(90 * Rnd) + 10For J = 1 To I - 1If X = A(J) Then Exit ForNext JIf J = I ThenA(I) = XS = S & " " & A(I)Exit DoEnd IfLoopNext IText1.Text = SB(1) = Int(90 * Rnd) + 10S = B(1)For I = 2 To 10DoX = Int(90 * Rnd) + 10For J = 1 To I - 1If X = B(J) Then Exit ForNext JIf J = I ThenB(I) = XS = S & " " & B(I)Exit DoEnd IfLoopNext IText2.Text = SS = ""For I = 1 To 10For J = 1 To 10If A(I) = B(J) ThenS = S & " " & A(I)End IfNext JNext IIf S = "" ThenText3.Text = "没有重复"ElseText3.Text = SEnd IfEnd SubPrivate Sub Command2_Click()Text1.Text = ""Text2.Text = ""Text3.Text = ""Text1.SetFocusEnd Sub5.Option ExplicitPrivate Sub Command1_Click()Dim I As Integer, J As IntegerDim a() As Integer, K As Integer, Sum As Integer K = Val(Text1.Text)I = 1DoJ = K Mod 10ReDim Preserve a(I)a(I) = JSum = Sum + JK = K \ 10I = I + 1Loop Until K = 0Text2.Text = SumEnd Sub6.Option ExplicitPrivate Sub Command1_Click()Dim a(100, 2) As Integer, K As IntegerDim I As Integer, J As IntegerDim M As Integer, N As IntegerK = 1For I = 1 To 99For J = 1 To 99If I > J ThenM = I - JN = I + JIf Sqr(M) = Int(Sqr(M)) And Sqr(N) = Int(Sqr(N)) ThenList1.AddItem I & " " & Ja(K, 1) = Ia(K, 2) = JK = K + 1End IfEnd IfNext JNext IEnd Sub7.Option ExplicitOption Base 1Dim a(5, 5) As IntegerPrivate Sub Command1_Click() '生成数组并显示Dim i As Integer, j As IntegerPicture1.ClsPicture2.ClsPicture3.ClsRandomizeFor i = 1 To 5For j = 1 To 5a(i, j) = Int(90 * Rnd) + 10Picture1.Print a(i, j);NextPicture1.PrintNextEnd SubPrivate Sub Command2_Click()Dim i As Integer, j As Integer, max As IntegerDim b(5) As Integer, c(5) As IntegerFor i = 1 To 5max = a(i, 1)For j = 1 To 5If max < a(i, j) Thenmax = a(i, j)End Ifb(i) = maxIf max = a(i, j) Then c(i) = jNext jNext iFor i = 1 To 5Picture2.Print b(i)Picture3.Print c(i)NextEnd Sub8.Option ExplicitOption Base 1Dim a(5, 5) As IntegerPrivate Sub Command1_Click() '生成数组并显示Dim i As Integer, j As IntegerPicture1.ClsPicture2.ClsLabel3.Caption = "最大值?"Label4.Caption = "最小值?"RandomizeFor i = 1 To 5For j = 1 To 5a(i, j) = Int(90 * Rnd) + 10Picture1.Print a(i, j);NextPicture1.PrintNextEnd SubPrivate Sub Command2_Click() '交换并显示Dim i As Integer, j As Integer, t As IntegerDim maxi As Integer, mini As Integer, max As Integer, min As Integer max = 10: min = 99For i = 1 To 5For j = 1 To 5If max < a(i, j) Thenmax = a(i, j)maxi = iEnd IfIf min > a(i, j) Thenmin = a(i, j)mini = iEnd IfNextNextIf maxi <> mini ThenFor j = 1 To 5t = a(maxi, j)a(maxi, j) = a(mini, j)a(mini, j) = tNext jFor i = 1 To 5For j = 1 To 5Picture2.Print a(i, j);NextPicture2.PrintNextLabel3.Caption = "最大值" & max & "在第" & maxi & "行"Label4.Caption = "最小值" & min & "在第" & mini & "行"ElsePicture2.Print "最小值和最大值在一行"Label3.Caption = "最大值" & max & "在第" & maxi & "行"Label4.Caption = "最小值" & min & "在第" & mini & "行"End IfEnd SubPrivate Sub Form_click()Picture1.ClsPicture2.ClsLabel3.Caption = ""Label4.Caption = ""End Sub9.Option Base 1Private Sub Command1_Click()Dim i As Integer, j As Integer, n As Integer, a() As Integern = InputBox("请输入一个奇数N:")If n Mod 2 = 0 ThenMsgBox ("请重新输入奇数!")End IfReDim a(n, n)For i = 1 To nFor j = 1 To nIf i = (n + 1) / 2 And j = (n + 1) / 2 Thena(i, j) = -1ElseIf i = j Or i + j = n + 1 Thena(i, j) = 1Elsea(i, j) = 0End IfNext jFor i = 1 To nFor j = 1 To nPrint a(i, j);Next jPrintNext iEnd Sub10.Option Base 1Dim a(10) As IntegerPrivate Sub Command1_Click()Dim i As IntegerPrint "生成的数组:"RandomizeFor i = 1 To 10a(i) = Int(Rnd * 90) + 10Print a(i);NextPrintEnd SubPrivate Sub Command2_Click()Dim i As Integerx = InputBox("请输入要删除的数组元素下标:") Print "删除第" & x & "个数组元素后:"For i = x + 1 To 10a(i - 1) = a(i)NextFor i = 1 To 9Print a(i);NextEnd Sub11.Option ExplicitDim a(20) As Integer, i As IntegerPrivate Sub Command1_Click()RandomizeFor i = 1 To 20a(i) = Int(Rnd * 9) + 1Text1 = Text1 & a(i) & " "If i = 10 Then Text1 = Text1 & vbCrLf NextPrivate Sub Command2_Click()Dim j As Integer, k As Integer, b(20) As Boolean 'b(2)用来记录a(2)是否和前面的数相同,相同记为true,不再统计For i = 1 To 20k = 1If b(i) = False Then '如果b(i)=False,表示a(i)没有被统计过For j = i + 1 To 20If a(i) = a(j) Thenk = k + 1b(j) = TrueEnd IfNext jList1.AddItem a(i) & "出现次数:" & kEnd IfNextEnd SubPrivate Sub Command3_Click()Text1 = ""List1.ClearEnd Sub第6章过程一、选择题二、填空题1. 6 .2. 4 20 1013.第一行是 6 26 、第三行是-2 984.第一行10 6 、第二行 5 -55.第一行 6 5 、第三行8 76.第一行11 、第二行77.Fun(i)Fun=p8.第一行 4 、第二行2079.第一行29 、第二行28.710.J=kb( ) As Integerb( k-1) =b(k)i11.第一行gec 、第二行ge 、第四行 312.p1 = True And p2 = True 或p1 And p2= isp(i)Isp = Truem Mod i = 013.Convert(st)Len(s)"A" To "F"k = k + p * h14.isualVisualVisu15.s + an + 1x As Single, n As Integer 、p * (x + i) / ((2 * i - 1) * i * x)16.27617.Left(s, 1)Mid(s, i - 1, 1) = Mid(s, i, 1)n = 1c & CStr(n)18.chtempTrue19.val(mid(s,i,j))n as longprime=True20.A(2,2)的值是 6 ,A(3,1) 的值是8 ;A(4,2) 的值是 321.Option1(i)X22.1023.第一行7 6 ,第二行16 16 ,第三行,4524.第一行15 1 ,第二行35 3 ,第三行,50三、改错题1、Option Base 1Private Sub Command1_Click()Dim A() As Integer, I As Integer, J As Integer, Logic As Boolean Dim K As IntegerReDim A(1)A(1) = 50————————'K=1For I = 51 To 149K = 1 '位置错Logic = FalseCall Sub1(A, I, Logic)If Logic ThenK = K + 1ReDim A(K) 'ReDim Preserve A(K)A(K) = IEnd IfNext IFor I = 1 To UBound(A)Text1 = Text1 & Str$(A(I))If I Mod 5 = 0 Then Text1 = Text1 & vbCrLfNext IEnd SubPrivate Sub Sub1(A() As Integer, N As Integer, F As Boolean) Dim I As Integer, J As Integer, Ub As IntegerUb = UBound(A)For I = 1 To UbFor J = 2 To A(I)If A(I) Mod J = 0 And N Mod J = 0 ThenExit For 'Exit SubEnd IfNext JF = TrueNext IEnd Sub2、Option ExplicitOption Base 1Private Sub Command1_Click()Dim I As Integer, Flg As Boolean, S1 As Integer, S2 As IntegerDim J As Integer, K As Integer, P() As IntegerReDim P(1)P(1) = 2For I = 3 To 150 Step 2For J = 2 To Sqr(I)If I Mod J = 0 Then Exit ForNext JIf J > Sqr(I) ThenReDim Preserve P(UBound(P) + 1)P(UBound(P) + 1) = I 'P(UBound(P)) = IEnd IfNext IFor I = 80 To 125If fun(I, P, S1, S2) Then 'If fun(I, P, S1, S2)Text1 = Text1 & Str$(I) & "=" & Str(S1) & "*" & Str$(S2) & vbCrLf End IfNext IEnd SubPrivate Function fun(N As Integer, P() As Integer, S1 As Integer, S2 As Integer) As Boolean Dim I As Integer, J As IntegerFor I = 1 To UBound(P)For J = 1 To UBound(P) - 1If N = P(I) * P(J) ThenS1 = P(I)S2 = P(J)'fun = TrueExit Functionfun = True '位置错End IfNext JNext IEnd Function3、Option ExplicitPrivate Sub Get_Chess(Chess() As Integer, idx As Integer, Over As Integer) 'ByVal idx As IntegerDim Ub As Integer, Counter As Integer, K As IntegerUb = UBound(Chess)Chess(idx) = 0Counter = 1K = 0 '位置错Do Until Counter = Ub - 1Do Until K = 2idx = idx + 1If idx > Ub Then idx = 1K = K + Chess(idx)LoopChess(idx) = 0Counter = Counter + 1LoopFor Over = 1 To UbIf Chess(Over) <> 0 Then Exit ForNext OverEnd SubPrivate Sub Command1_Click()Dim Chess(32) As Integer, I As Integer, J As IntegerDim K As Integer, idx As IntegerFor I = 1 To 32For J = 1 To 32Chess(J) = 1Next JCall Get_Chess(Chess, I, K)If K = 23 ThenText1 = "从第" & Str$(I) & "号棋子开始取"Exit ForEnd IfNext IEnd Sub4、Option ExplicitPrivate Sub Form_Click()Dim S As String, Flg As BooleanDoS = InputBox("输入一个自然数")If S = "" Or Not IsNumeric(S) ThenMsgBox "请重新输入", 48 + vbOKOnlyElseExit DoEnd IfLoopjudge(S, Flg) ' Call judge(S, Flg) 或judge S, Flg If Flg ThenPrint S; "是回文数"ElsePrint S; "不是回文数"End IfEnd SubPrivate Sub judge(Ch As String, F As Boolean)Dim L As Integer, I As IntegerL = Len(Ch)F = True ' F = FalseFor I = 1 To LIf Mid$(Ch, I, 1) <> Mid$(Ch, L + 1 - I, 1) Then Exit Sub Next IF = False ' F = TrueEnd Sub四、编程题1.Private Function Prime(a As Integer) As BooleanDim i As IntegerFor i = 2 To Sqr(a)If a Mod i = 0 Then Exit FunctionNext iPrime = TrueEnd Function'方法一Private Sub Command1_Click()Dim m As Integer, i As Integerm = InputBox("请输入一个大于2 的偶数")If m <= 2 Or m Mod 2 <> 0 Then MsgBox "请输入大于2的偶数": Exit Sub If Prime(2) And Prime(m - 2) ThenPrint m & "=2 +" & m - 2ElseDoi = i + 1If Prime(2 * i + 1) And Prime(m - (2 * i + 1)) ThenPrint m & "=" & 2 * i + 1 & "+" & m - (2 * i + 1)Exit DoEnd IfLoop While 2 * i + 1 < m - (2 * i + 1)End If'方法二Private Sub Command2_Click()Dim m As Integer, i As Integer, p() As Integer, n As IntegerDim flg As Booleanm = InputBox("请输入大于2的偶数")If m <= 2 Or m Mod 2 <> 0 Then MsgBox "请输入大于2的偶数": Exit Sub ReDim p(1)p(1) = 2n = 1For i = 3 To m - 2 Step 2If Prime(i) Thenn = n + 1ReDim Preserve p(n)p(n) = iEnd IfNext iFor i = 1 To nFor j = 1 To nIf p(i) + p(j) = m ThenPrint m & "=" & p(i) & "+" & p(j)flg = TrueExit ForEnd IfNext jIf flg = True Then Exit ForNext iEnd Sub2.Private Function Fact(a As Integer) As LongIf a = 0 Or a = 1 ThenFact = 1ElseFact = a * Fact(a - 1)End IfEnd FunctionPrivate Sub Command1_Click()Dim n As Integer, m As Integer, result As Singlen = Val(Text1.Text)m = Val(Text2.Text)If n >= m Thenresult = Fact(n) / Fact(m) / Fact(n - m)Text3.Text = resultMsgBox "要求n>=m,请重新输入"Text1.Text = ""Text2.Text = ""Text1.SetFocusEnd IfEnd SubPrivate Sub Command2_Click()Text1.Text = ""Text2.Text = ""Text3.Text = ""Text1.SetFocusEnd Sub3.Private Function Istgs(n As Integer) As BooleanDim s As String, L As IntegerL = Len(CStr(n))s = CStr(n ^ 2)If Right(s, L) = n Then Istgs = TrueEnd FunctionPrivate Sub Command1_Click()Dim n As IntegerFor n = 10 To 300If Istgs(n) Then List1.AddItem n & "^2" & "=" & n ^ 2 Next nEnd SubPrivate Sub Command2_Click()EndEnd Sub4.Private Sub Command1_Click()Dim a(3, 4) As Integer, i As Integer, j As IntegerDim m As Integer, mj As IntegerRandomizeFor i = 1 To 3For j = 1 To 4a(i, j) = Int(900 * Rnd + 100)Print a(i, j);Next jPrintNext iFor i = 1 To 3m = 0Call max(a, i, m, mj)Print "第" & i & "行最大值为" & m & ",在第" & mj & "列"Next iEnd SubPrivate Sub max(a() As Integer, i As Integer, m As Integer, maxj As Integer) Dim j As Integerm = a(i, 1): maxj = 1For j = 2 To UBound(a, 2)If a(i, j) > m Thenm = a(i, j)maxj = jEnd IfNext jEnd SubPrivate Sub Command2_Click()EndEnd Sub5.Private Function Judge(n As Integer) As BooleanDim sum As Integersum = yz(n)If yz(sum) = 2 * n Then Judge = TrueEnd FunctionPrivate Function yz(n As Integer) As IntegerDim i As IntegerFor i = 1 To nIf n Mod i = 0 Then yz = yz + iNext iEnd FunctionPrivate Sub Command1_Click()Dim n As IntegerFor n = 1 To 500If Judge(n) Then Print nNext nEnd SubPrivate Sub Command2_Click()EndEnd Sub6.Private Sub Command1_Click()Dim n As Integer, j As Integer, flg As BooleanFor n = 2 To 30flg = FalseFor j = 2 To nIf pfs(j) And n Mod j = 0 Thenflg = TrueExit ForEnd IfNext jIf flg = False Then Print n;Next nEnd SubPrivate Function pfs(n As Integer) As BooleanIf Sqr(n) = Int(Sqr(n)) Then pfs = TrueEnd Function7.Private Function fxs(n As Long) As LongDim i As Integer, s As StringFor i = 1 To Len(CStr(n))s = Mid(CStr(n), i, 1) & sNext ifxs = sEnd Function'判断某数是否为回文数Private Function Hws(n As Long) As BooleanDim i As Integer, s As String, L As Integers = CStr(n): L = Len(s)For i = 1 To Len(s) / 2If Mid(s, i, 1) <> Mid(s, L + 1 - i, 1) Then Exit Function Next iHws = TrueEnd FunctionPrivate Sub Command1_Click()Dim x As Long, t As Longx = InputBox("请输入一个正整数:")t = xDo While Hws(t) = FalsePrint t; "+"; fxs(t); "="; t + fxs(t)t = t + fxs(t)LoopEnd Sub8.Private Function fxs(n As Long) As LongDim i As Integer, s As StringFor i = 1 To Len(CStr(n))s = Mid(CStr(n), i, 1) & sNext ifxs = sEnd FunctionPrivate Sub Command1_Click()Dim n As Long, t As LongFor n = 1 To 999t = fxs(n)If t ^ 2 = fxs(n ^ 2) And n Mod 10 <> 0 And n < t ThenList1.AddItem n & " " & tList2.AddItem n & "^2" & "=" & n ^ 2 & " " & t & "^2" & "=" & t ^ 2 End IfNext nEnd Sub9.Private Function fxs(n As Long) As LongDim i As Integer, s As StringFor i = 1 To Len(CStr(n))s = Mid(CStr(n), i, 1) & sNext ifxs = sEnd FunctionPrivate Function Judge(n As Integer) As BooleanDim i As Integer, L As Integer, a(9) As Integer, t As IntegerIf Sqr(n) = Int(Sqr(n)) ThenL = Len(CStr(n))For i = 1 To Lt = Mid(CStr(n), i, 1)a(t) = 1Next iFor i = 0 To 9Sum = Sum + a(i)Next iIf Sum = L - 1 Then Judge = TrueEnd IfEnd FunctionPrivate Sub Command1_Click()Dim a As IntegerFor a = 300 To 2000If Judge(a) Then List1.AddItem aNext aEnd Sub10.Private Function F(n As Integer) As BooleanDim i As IntegerFor i = 1 To Len(CStr(n))If i Mod 2 = 1 And Mid(CStr(n), i, 1) Mod 2 <> 1 Then Exit FunctionIf i Mod 2 = 0 And Mid(CStr(n), i, 1) Mod 2 <> 0 Then Exit Function Next iF = TrueEnd FunctionPrivate Sub Command1_Click()Dim a(8) As Integer, i As Integer, j As IntegerRandomizeDot = Int(900 * Rnd + 100)For j = 1 To iIf t = a(j) Then Exit ForNext jIf j = i + 1 Theni = i + 1a(i) = tList1.AddItem a(i)If F(a(i)) Then List2.AddItem a(i)End IfLoop Until i = 8End SubPrivate Sub Command2_Click()List1.ClearList2.ClearEnd SubPrivate Sub CmdEnd_Click()EndEnd Sub11.Private Function prime(a As Integer) As BooleanDim i As IntegerFor i = 2 To Sqr(a)If a Mod i = 0 Then Exit FunctionNext iprime = TrueEnd FunctionPrivate Function nx(n As Integer) As IntegerDim i As Integer, s As StringFor i = 1 To Len(CStr(n))s = Mid(CStr(n), i, 1) & sNext inx = Val(s)End FunctionPrivate Sub Command1_Click()Dim n As Integer, t As IntegerFor n = 100 To 900t = nx(n)If prime(n) And prime(t) And n < t ThenList1.AddItem "(" & n & "," & t & ")"End IfNext nEnd SubPrivate Sub Command2_Click()List1.ClearEnd Sub12.Option Base 1Dim a(4, 5) As IntegerPrivate Sub Command1_Click()Dim i As Integer, j As IntegerRandomizeFor i = 1 To 4For j = 1 To 5a(i, j) = Int(Rnd * 90 + 10)Picture1.Print a(i, j);Next jPicture1.PrintNext iEnd SubPrivate Sub Fp(a() As Integer, i As Integer, maxj As Integer, Flg As Boolean) Dim max As Integer, j As Integer, t As Integermax = a(i, 1): maxj = 1For j = 2 To UBound(a, 2)If a(i, j) > max Thenmax = a(i, j)maxj = jEnd IfNext jFor t = 1 To UBound(a, 1)If a(t, maxj) > max ThenFlg = FalseExit SubEnd IfNextFlg = TrueEnd SubPrivate Sub Command2_Click()Dim i As Integer, m As Integer, mj As Integer, f As BooleanFor i = 1 To 4f = Falsem = 0: mj = 0Call Fp(a, i, mj, f)If f = True ThenText1.Text = Text1.Text & "(" & i & "," & mj & "):" & a(i, mj) & vbCrLf End IfNext iEnd SubPrivate Sub Command3_Click()Picture1.ClsText1 = ""End Sub13.Private Sub Command1_Click()Dim a(30) As Integer, i As Integer, j As IntegerDim Flag As BooleanRandomizeDot = Int(900 * Rnd + 100)For j = 1 To iIf t = a(j) Then Exit ForNext jIf j = i + 1 Theni = i + 1a(i) = tText1.Text = Text1.Text + Str(a(i))If i Mod 10 = 0 Then Text1.Text = Text1.Text + vbCrLfIf IsDown(a(i)) ThenList1.AddItem a(i)Flag = TrueEnd IfEnd IfLoop Until i = 30If Flag = False Then List1.AddItem "无降序数"End SubPrivate Function IsDown(n As Integer) As BooleanDim i As Integer, S As StringS = CStr(n)For i = 1 To Len(S) - 1If Mid(S, i, 1) < Mid(S, i + 1, 1) Then Exit FunctionNext iIsDown = TrueEnd FunctionPrivate Sub Command2_Click()List1.ClearText1 = ""End Sub14.Option ExplicitPrivate Sub CmdFind_Click()Dim i As Integer, p As String, st As String, st1 As StringFor i = 100 To 999st = ""If csum(i) = zyz(i, st) Thenp = CStr(i)st1 = Left(p, 1) & "+" & Mid(p, 2, 1) & "+" & Right(p, 1)List1.AddItem i & ": " & st1 & "=" & Left(st, Len(st) - 1)End IfNext iIf List1.ListCount = 0 ThenList1.AddItem "无满足要求的数!"End IfEnd SubPrivate Function csum(m As Integer) As Integer '求各位数字之和Dim i As Integer, p As Stringp = CStr(m)For i = 1 To Len(p)csum = csum + Val(Mid(p, i, 1))Next iEnd FunctionPrivate Function zyz(ByVal m As Integer, st As String) As Integer '求所有质因子之和Dim i As Integeri = 2DoIf m Mod i = 0 Thenzyz = zyz + ist = st & i & "+"m = m \ iElsei = i + 1End IfLoop Until m = 1End Function15.Private Sub Command1_Click()Dim k As Integer, i As Integerk = InputBox("请输入要求的数列项数:")List1.AddItem "共输出前" & k & "项数列"For i = 0 To kList1.AddItem p(i)NextEnd SubPrivate Function p(n As Integer) As IntegerIf n = 0 Or n = 1 Or n = 2 Thenp = 1Elsep = p(n - 2) + p(n - 3)End IfEnd Function第7章文件一、选择题二、填空题1.顺序文件和随机文件2. EOF3. Write和Print4.返回或设置当前的工作目录5.5116.文件的写语句7.Append8.LOF9.关闭10.Pattern11.【1】For Input 【2】#2 【3】Not EOF(2) 12.【1】”END”【2】Text1.Text 或者Text113.【1】Input 【2】ch 【3】Len(mystr) 14.【1】Number 【2】s15.【1】For Append As #1 【2】"end" 【3】ct,nt 16.【1】For Input 【2】For Output As #2 【3】Not EOF(1) 【4】Line Input #1,str1 【5】Close #1,#2 【6】Kill “C:\old.txt 17.【1】Open "C:StuData.txt" For OutPut As #1 【2】Write 18.【1】"C:\data.txt" 【2】#1, a(i) 【3】k>1 And a(k-1)>b 【4】k = k -1三、综合题1.Option Base 1Dim arr(100) As IntegerPrivate Sub Command1_Click()Dim i As IntegerOpen "c:\in18.txt" For Input As #6For i = 1 To 100Input #6, arr(i)Next iClose #6End SubPrivate Sub Command2_Click()Dim i As IntegerText1.Text = ""Open "c:\out18.txt" For Output As #8For i = 1 To 100If arr(i) Mod 2 <> 0 ThenText1.Text = Text1.Text & Str(arr(i))Write #8, arr(i)End IfNext iClose #8End Sub2.Dim str As StringDim n As LongPrivate Sub Command1_Click()CommonDialog1.Filter = "文本文件(*.txt)|*.txt|All Files(*.*)|*.*"CommonDialog1.FilterIndex = 1CommonDialog1.Action = 1Open CommonDialog1.FileName For Input As #2n = LOF(2)str = Input(n, #2)Text1.Text = strClose #2End SubPrivate Sub Command2_Click()Dim i As IntegerFor i = 1 To Len(str)If Asc(Mid(str, i, 1)) <= Asc("Z") And Asc(Mid(str, i, 1)) >= Asc("A") Then Mid(str, i, 1) = LCase(Mid(str, i, 1))ElseIf Asc(Mid(str, i, 1)) <= Asc("z") And Asc(Mid(str, i, 1)) >= Asc("a") Then Mid(str, i, 1) = UCase(Mid(str, i, 1))End IfNext iText1.Text = strEnd SubPrivate Sub Command3_Click()Open "D:\out.txt" For Output As #3Print #3, strClose #3End Sub第8章程序调试一.选择题二.改错题1.a(i)=int(Rnd*19)+1 →a(i)=int(rnd*20)+1For l=1 to a(i)+1 →for i=2 to a(i)+1If l=a(i) →if l <> a(i)K=k+1 →k=k-1。
Visual Basic程序设计练习题1.Visual Basic是一种面向对象的可视化程序设计语言,采取了A的编程机制。
A.事件驱动B.按过程顺序执行C.从主程序开始执行D.按模块顺序执行2.在Visual Basic中最基本的对象是C,它是应用程序的基石,是其他控件的容器。
A.文本框B.命令按钮C.窗体D.标签3.多窗体程序是由多个窗体组成。
在缺省情况下,VB在应用程序执行时,总是把B 指定为启动窗体。
A.不包含任何控件的窗体B.设计时的第一个窗体C.包含控件最多的D.命名为Frm1的窗体4.若有程序代码如下:text1.text="Visual Basic"则:text1,text和"Visual Basic" 分别代表C。
A.对象,值,属性B.对象,方法,属性C.对象,属性,值D.属性,对象,值5.Visual Basic是一种面向对象的程序设计语言,A不是面向对象系统所包含的三要素。
A.变量B.事件C.属性D.方法6.在VB集成环境创建VB应用程序时,除了工具箱窗口、窗体中的窗口、属性窗口外,必不可少的窗口是C。
A.窗体布局窗口B.立即窗口C.代码窗口D.监视窗口7.保存新建的工程时,默认存放的位置是B。
A.My Documents B.VB98 C.\ D.Windows 8.若要使标签控件显示时不覆盖其背景内容,要对D属性进行设置。
A.BackColor B.BorderStyle C.ForeColor D.BackStyle 9.若要使命令按钮不可操作,要对A属性设置。
A.Enabled B.Visible C.BackColor D.Caption 10.文本框没有D属性。
A.Enabled B.Visible C.BackColor D.Caption 11.不论何控件,共同具有的是B属性。
A.Text B.Name C.ForeColor D.Caption 12.要使Form1窗体的标题栏显示“欢迎使用VB”,以下D语句是正确的。
习题2(程序设计入门)一、选择题1.如果把一个人当作对象,那么血型相当于这个对象的:A(A) 属性(B) 方法(C) 事件(D) 特征2.下列哪一种方法不能改变窗体的大小:A(A) 设计时在窗体布局窗口中进行调整(B) 设计时在属性窗口中设置相应的属性(C) 运行时设置相应属性的值(D) 运行时调用窗体的Move方法3.一个对象可以执行的动作和可被对象识别的动作分别称为:B(A) 事件、方法(B) 方法、事件(C) 属性、方法(D) 过程、事件4.在窗体Form1的Click事件过程中有以下语句:Label1.Caption = "Visual Basic"若本语句执行之前,标签控件Label1的Caption属性为默认值,则标签控件的Name 属性和Caption属性在执行本语句之前的值分别为:A(A) "Label"、"Label" (B) "Label"、"Caption"(C) "Label1"、"Label1" (D) "Caption"、"Label"5.见上题。
该语句执行后,标签控件的Name属性和Caption属性的值分别为:B(A) "Label"、"VisualBasic" (B) "Label1"、"Visual Basic"(C) "Label1"、"Caption" (D) "Label"、"Label1"6.下面哪种对象没有Caption属性:B(A) Form (B) TextBox (C) CommandButton (D) Label7.文本框对象的默认属性是:B(A) Name (B) Text (C) Visible (D) Enabled8.Visual Basic源程序的续行符是:D(A) 单引号(B) 双引号(C) 冒号(D)空格与下划线9.下面的动作中,不能引发按钮Click事件的是:B(A) 在按钮上单击鼠标左键(B) 在按钮上单击鼠标右键(C) 把焦点移至按钮上,然后按回车键(D) 如果按钮有快捷字母,按“Alt+该字母”二、判断题1.标签控件是专门用来显示信息的,所以不能响应鼠标的单击事件。
Visual Basic程序设计教程(李杰主编清华大学出版社 2011.2)习题答案习题2参考答案2.2 单选题1、B2、C3、A4、D5、A6、B7、D8、C9、B 10、D2.3 填空题1、事件驱动2、Cancel3、Name4、Private Sub Form1_Click()5、运行程序6、代码窗口7、Text1.Text = "我是一个学生"8、LostFocus()事件9、Label1.Caption = "请输入用户名"Label1.ForeColor = vbGreen10、(Text1.Text)*22.4 事件练习题1、①该事件的对象是标签Label1,单击标签触发该事件。
②缺省Label1对象的代码是针对窗体,其余有Label1对象的代码是针对标签的。
③Label1.AutoSize = True语句使标签的大小自动随文字的多少而改变。
2、程序运行后,单击命令按钮,在Text1文本框显示"知音海外版",在Text2文本框显示"计算机世界"。
3、单击“显示文本框”命令按钮触发的事件过程Private Sub Command1_Click()Text1.Visible = TrueText1.ForeColor = vbRedText1.Text = "VB程序设计"End Sub单击“隐藏文本框”命令按钮触发的事件过程Private Sub Command2_Click()Text1.Visible = FalseEnd Sub习题3参考答案3.2 单选题1 C2 C3 D4 B5 B6 B7 B8 C9 D3.3填空题1.REM(或‘) _ :2 双引号(“”)#3 $ %4 UCASE()5.(log(1+d*d)-exp(2))^(5/2) [ 还有一种理解方式:(log(1+d*d)-e*e)^(5/2)]6. &O113 &H4B习题4参考答案4.2 单选题BDCBD4.3 填空题1.MsgBox("是否删除? ", vbOkCancel + vbQuestion, "删除")2.The Length of 12345=53. 变量或表达式4. 15. loop4.4 程序设计题1.Private Sub Command1_Click()If Text1.Text = "asdf" ThenMsgBox "密码正确!"ElseMsgBox "密码错误", vbRetryCancel, "错误"End IfEnd Sub2. < 题目中的“连续产生n*n个字母”应该改为“连续产生n个字母”> Private Sub Command1_Click()Dim n%, y%, i%n = Val(Text1.Text)If n > 10 Or n<=0 ThenMsgBox "数据超界!"Text1.Text=””Text1.SetFocusElsey = Int((90 - 65 + 1) * Rnd) + 65For i = 1 To nPrint Chr(y + i)Next iEnd IfEnd Sub3.Private Sub Form_Click()Dim a!, b!, c!, x1!, x21, d!a = Val(Text1.Text)b = Val(Text2.Text)c = Val(Text3.Text)d = b * b - 4 * a * cIf d >= 0 Thenx1 = (-b + Sqr(d)) / (2 * a)X2 = (-b - Sqr(d)) / (2 * a)Print x1; X2ElsePrint "没有实根"End IfEnd Sub4.Private Sub Form_Click()Dim i%, j%, s%, n%,q%n = InputBox("enter n:")q = 0For i = 1 To ns = 0For j = 1 To is = s + jNext jq = q + sNext iPrint qEnd Sub5.Private Sub Form_Click()Dim i%, j%, n%, k%n = 0For i = 1 To 3For j = 1 To 3For k = 1 To 3Print i & j & k,n = n + 1If n Mod 5 = 0 Then PrintNext kNext jNext iPrintPrint "n="; nEnd Sub6.Private Sub Form_Click()Dim i%, j%, n%, k%For i = 1 To 9For j = 0 To 9For k = 0 To 9n = i * 100 + j * 10 + kIf n = i ^ 3 + j ^ 3 + k ^ 3 Then Print n,Next kNext jNext iEnd Sub习题5参考答案5.2 单选题1 A2 B3 C4 C5 D6 D7 A8 C9 D 10 A 11 A 12 B 5.3 填空题1.False2.Caption3.0 ListCount-14.Print List1.List(3)5.Combo1.ReMoveItem 36.LargeChange7.Timer8.5009.Shape10.Borderstyle5.4 程序设计题1.Dim op1, op2, result As SingleDim operator As IntegerPrivate Sub Command1_Click(Index As Integer)If Index >= 0 And Index <= 10 ThenIf txt1.Text = "" Thentxt1.Text = CStr(Index + 1)Elsetxt1.Text = txt1.Text + CStr(Index + 1) End IfEnd IfIf Index >= 12 And Index <= 15 Thenop1 = CDbl(txt1.Text)operator = Indextxt1.Text = ""End IfIf Index = 11 Thenop2 = CDbl(txt1.Text)Select Case operatorCase 12result = op1 + op2Case 13result = op1 - op2Case 14result = op1 * op2Case 15result = op1 / op2End Selecttxt1.Text = CStr(result)End IfEnd SubPrivate Sub Command2_Click()op1 = 0op2 = 0result = 0txt1.Text = ""End SubPrivate Sub Command3_Click()EndEnd Sub2.Private Sub chkBold_Click()If chkBold.Value = vbChecked ThenTxt1.FontBold = TrueElseTxt1.FontBold = FalseEnd IfEnd SubPrivate Sub chkUnderline_Click()If chkUnderline.Value = vbChecked Then Txt1.FontUnderline = TrueElseTxt1.FontUnderline = FalseEnd IfEnd SubPrivate Sub Opt18_Click()Txt1.FontSize = 18End SubPrivate Sub Opt22_Click()Txt1.FontSize = 22End Sub3.Private Sub Form_Load()List1.AddItem "上海"List1.AddItem "北京"List1.AddItem "天津"List1.AddItem "广东"List1.AddItem "辽宁"List1.AddItem "陕西"List1.AddItem "河南"List1.AddItem "深圳"List1.AddItem "四川"List1.AddItem "重庆"End SubPrivate Sub List1_DblClick()For i = 0 To 9If List1.ListIndex = i ThenList2.AddItem List1.List(i)List1.RemoveItem iEnd IfNext iEnd Sub4.Private Sub Command1_Click()Timer1.Enabled=TrueTimer1.Tag=Text1.Text*60Frame1.Caption=“现在开始倒计时”End SubPrivate Sub Timer1_ Timer()Timer1.Tag=Timer1.Tag-1If m<0 ThenTimer1.Enabler=FalseMsgBox“预定的时间到了!”,0,“倒计时”Frame1.Caption=“请输入计时的分钟数:”Text1.Text=0Exit SubEnd Ifn1=Format(m Mod 60,“00”)n2=Format(m \ 60)Mod 60,“00:”)n3=Format(m \ 3600),“00:”)Text1.Text=n3&n2&n1End Sub习题6参考答案6.1单选题1.C2.C3.B4.B5.B6.D7.B8.B9.A 10.A6.2 填空题1.Option Base 12.变体类型3.preserve (注意:教材上面写成perserve, 教材错误)4.Variant变体类型5.96.相同,索引号7.1).通过复制粘贴的方式创建控件数组2).在设计时候添加多个同类型的类型控件,然后通过“属性”窗口将这些控件的名称改为相同,并把Index属性设为不同的下标值。