您的当前位置:首页正文

VB习题汇总

2024-03-24 来源:好走旅游网
习 题 1

一、叙述题

1.简述事件驱动的程序设计原理。 2.简述VB具有哪些特点。

3.VB的集成开发环境由哪些元素组成?

4.VB集成开发环境的工具栏能否自行定义?标准工具栏中包含一些什么按钮?

5.当创建只有一个窗体的应用程序后,该工程涉及多少个要保存的文件?若要保存该工程中的所有文件,应先保存什么文件?后保存什么文件?若不这样做,系统有什么信息?

6.简述用VB开发应用程序的一般步骤。 二、单选题

1.VB是用于开发________环境下应用程序的工具。 A.DOS或Windows C.Windows A.可视化

2.VB采用了________的编程机制。

B.事件驱动 C.面向过程 D.面向对象

B.编写源程序代码

3.窗体编辑器的主要功能是________。 A.设计窗体的外观

C.设计用户界面 D.设置对象属性 4.VB是________的应用程序的开发工具。

A.8位 B.16位 C.32位 D.64位 5.VB集成开发环境开发的应用程序不适宜的运行环境是________。

A.Windows32 B.Windows 9X C.WindowsNT

D.Windows2000

B.学习版、工程版和专业版 D.学习版、企业版和专业版 B.状态栏的最右方 D.标题栏的中括号内 B.编写代码状态 D.中断状态

6.VB共有三个版本,按功能从弱到强的顺序排列应是________。

A.学习版、专业版和工程版 C.学习版、专业版和企业版 A.状态栏的最左方 C.状态栏的中括号内 A.设计状态 C.运行状态 9.不能打开代码窗口的操作是________。

A.双击窗体设计器的任何地方 B.按下F4键

C.单击工程窗口中的“查看代码”按钮 D.选择“视图”下拉菜单中的“代码窗口” 10.工程文件的扩展名是________。

A..frm B..vbp C..bas D..frx

B.DOS D.UNIX

7.VB集成开发环境有三种工作模式,工作模式显示在________。

8.下面不属于VB集成开发环境三种工作模式之一的是________。

1

第1章 概述

11.窗体文件的扩展名是________。

A..frm B..vbp C..bas D..frx 12.标准模块文件的扩展名是________。

A..frm B..vbp 13.VB集成开发环境可以________。

A.编辑、调试、运行程序,但不能生成可执行程序 B.编辑、生成可执行程序、运行程序,但不能调试程序 C.编辑、调试、生成可执行程序,但不能运行程序 D.编辑、调试、运行程序,也能生成可执行程序 14.要设置窗体上各控件的属性,可在________中进行。

A.窗体布局窗口 C.属性窗口

B.工程资源管理器窗口 D.窗体窗口

C..bas D..vbg

15.不能打开属性窗口的操作是________。

A.单击工具栏中的“属性窗口”按钮

B.选取“视图” 菜单中的“属性窗口”子菜单项

C.在对象上单击右键,从弹出的快捷菜单中选择“属性窗口”选项 D.选取“工程”菜单中的“属性窗口”子菜单项 16.扩展名为.vbp的工程文件中包含有__________。 A.工程中所有模块的有关信息

B.每个窗体模块中的所有控件的有关信息 C.每个模块中所有变量的有关信息 D.每个模块中所有过程的有关信息

17.在以下有关对象属性的叙述中,错误的是_________。 A.一个对象的属性可分为外观、行为等若干类 B.不同属性可能具有不同的数据类型

C.一个对象的所有属性都可在属性窗口的列表中进行设置 D.属性窗口中的属性列表既可按字母排列也可按类别排列

18.假设窗体上已有一个控件是活动的,为了在属性窗口中设置窗体的属性,预先要执行的操作是________。

A.单击窗体上没有控件的地方 C.双击任一个控件

B.单击任一个控件

D.双击窗体上没有控件的地方

19.在代码窗口中,当从对象列表框中选定了某一对象后,在________中会列出适用该对象的事件。

A.“过程”下拉列表框 B.“属性”窗口 C.“事件”下拉列表框 D.工具栏

20.一个应用程序________窗体。

A.只许有一个 B.可以没有 C.应该有两个 D.可包括多个

21.工程管理器窗口标题栏下的________按钮用于切换到“窗体编辑窗口”,显示和编辑正在设计的窗体。

A.“查看代码”按钮 三、填空题

1.VB是一种________的程序设计语言,采用________的编程机制。

2

B.“查看对象”按钮

C.“切换文件夹”按钮 D“查看文件夹”按钮

第1章 概述

2.VB提供两种运行程序的方式,一种是________方式,另一种是________方式。 3.VB的三种工作模式分别是________模式、________模式和________模式。 4.启动运行当前工程的快捷键是________。

5.VB提供了4种工具栏,分别为标准工具栏、窗体编辑器工具栏、编辑工具栏和________工具栏。

6.在工程管理器的标题栏下方有3个工具按钮,分别是:“查看代码”按钮、“查看对象”按钮和“________”按钮。 四、编程及上机调试

1.新建一个工程,在窗体中放置一个Image(图像)控件,通过属性窗口设置Image控件的如下属性:

Width(宽) Height(高)

3000 2300

Stretch(调整图形大小) True Left(左边位置) 800 Top(顶边位置) 300

Picture(加载图形) 图形由本地磁盘中搜索

启动运行程序,观察图形有什么变化。将图像控件的Stretch属性值改为False后运行程序,图形又有什么变化。

2.在窗体上放置一个标签控件,当单击窗体时,在标签上显示“你单击了窗体”;当双击窗体时,在标签上显示“你双击了窗体”。

习 题 2

一、叙述题

1.什么是类,什么是对象,什么是事件过程? 2.Caption和Name属性有何不同?

3.除窗体之外,还有哪些控件可作为其他控件的容器使用?

4.哪些控件不能获得焦点?若在一个应用程序窗体上,依次创建了命令按钮、文本框、标签等控件,则在程序启动时,哪个控件将会首先获得焦点?

5.要使文本框获得焦点的方法是什么? 二、单选题

1.下列窗体名中哪个是合法的?

A._aform B.3frm C.f_1 D.frm 4 2.有程序代码如下:

Form2.Caption = \"Visual Basic \"

试问:Form2、Caption和\"Visual Basic \"分别代表________。 A.对象、值、属性 C.对象、属性、值

B.值、属性、对象 D.属性、对象、值

3.不能在窗体上选择多个控件的方法是________。

A.按住Ctrl键同时单击 B.单击每个控件 C.通过鼠标拖动一方框将它们选定

D.按住Shift键同时单击每个控件

3

第1章 概述

4.能被对象所识别的动作与对象可执行的活动分别称为对象的________。 A.方法、事件 B.事件、方法 C.事件、属性 D.过程、方法 5.下列关于VB编程的说法中,不正确的是________。

A. 属性是描述对象特征的数据 C.方法指示对象的行为

6.以下有关对象属性的说法中正确的是________。 A.对象所有的属性都罗列在属性窗口列表中 B.不同对象不可能有同名属性 C.不同对象的同名属性取值一定相同

D.对象的某些属性既可在属性窗口中设置,也可通过程序代码设置或改变

7.多窗体程序由多个窗体组成。在缺省情况下,VB在执行应用程序时,总是把______指定为启动窗体。

A.不包含任何控件的窗体 C.命名为Frm1的窗体 时,都将光标定位在文本框Text1上。 A.Text1.Text=\"\" C.Form1.SetFocus

B.Text1.SetFocus D.Text1.Visible=True

B.设计时的第一个窗体 D.包含控件最多的窗体 B.事件是能被对象识别的动作 D.VB程序采用的运行机制是面向对象

8.窗体上有多个控件,在Form_Activate()事件过程中添加________语句,就可确保每次运行程序

9.双击窗体中的对象后,VB打开的窗口是________。

A.工具箱 B.工程窗口 C.代码窗口 D.属性窗口 10.Load事件是在窗体被装入工作区时________触发的事件。

A.用户 B.程序员 C.手工 D.自动

11.在VB中可以作为容器的是________。

A.Form、TextBox、PictureBox C.Form、TextBox、Label A.Load - Initialize - Activate C.Load - Activate- Initialize

B.Form、PictureBox、Frame D.PictureBox、TextBox、ListBox B.Initialize - Load - Activate D.Initialize - Activate - Load

12.第一次显示某窗体时,将引发一系列事件,事件发生的正确顺序是________。

13.若要将窗体从内存中卸载,其实现的方法是_________。

A.show B.Unload C.Load D.Hide 14.窗体Form1的名称属性是frm,它的Load事件过程名是_______。

A.Form1_Load

B.frm_Load C.Form_Load

D.Me_Load

15.对于某对象的SetFocus和GotFocus描述正确的是________。

A.SetFocus是方法,GotFocus事件 B.SetFocus是事件,GotFocus是事件

C.SetFocus是方法,GotFocus是方法 D.SetFocus是事件,GotFocus是方法 16.对象在响应某个事件时,计算机要执行一段程序,以完成相应的操作,这样的程序片段叫做_______过程。

A.方法 B.事件 C.调用 D.编译 17.一个对象可执行的动作与可被对象所识别的动作分别称为________。

A.事件、方法 B.方法、事件 C.属性、方法 D.过程、事件

18.VB6.0的控件有________三类。

4

第1章 概述

A.标准控件、对象控件和Windows控件 B.标准控件、ActiveX控件和可插入的对象

C.数据库控件、Activex控件和可插入的对象 D.标准控件、ActiveX控件和图形控件

19.在VB中,最基本的对象是________,它是应用程序的基石,也是其他控件的容器。 A.文本框 B.命令按钮 C.窗体 D.标签 20.一只白色的足球被踢进球门,则白色、足球、踢、进球门是________。

A.属性、对象、方法、事件 C.对象、属性、方法、事件 三、填空题

1.VB中的对象是________和________的总称。 2.对象的三要素是________、________和________。

3.如果要在单击命令按钮Command2时执行一段代码,则应将这段代码写在________事件过程中。

4.图片框(PictureBox)的默认属性是________。

5.在设计阶段,双击工具箱中的控件按钮,即可在窗体的________位置上出现控件;当双击窗体上某个控件时,所打开的是________窗口。 四、编程及上机调试

1.在窗体上放置三个命令按钮,如图2.20所示,单击按钮分别使窗体最大化、还原或最小化。(提示:使用窗体的WindowState属性)。

B.属性、对象、事件、方法 D.对象、属性、事件、方法

图2.20 改变窗体的运行状态

2.设计一个程序,窗体上有“显示”和“退出”两个命令按钮,如图2.21所示。单击“显示”按钮时,窗体上显示一个图片,同时将两个命令按钮隐藏,如图2.22所示。单击图2.22的窗体时,恢复为图2.21。单击“退出”按钮,结束程序的运行。

图2.21 运行程序显示两个按钮 图2.22 单击“显示”按钮出现图片

5

第1章 概述

习 题 3

一、叙述题

1.若要将文本框作为输入密码的控件,需要进行怎样的设置? 2.如何设置使得命令按钮上能出现图片?

3.VB的常用控件中,哪些控件具有Caption属性,而没有Text属性?哪些控件具有Text属性,却没有Caption属性?

4.框架的作用是什么?如何在框架中建立控件?

5.如果要让定时器每30s产生一个Timer事件,则应进行怎样的设置? 6.如何给一个列表框或组合框控件增添列项目?已有的列项目如何删除? 二、单选题

1.以下使用方法的代码中,正确的是________。 A.Label1.SetFocus C.Text1.SetFocus

B.Form1.Clear D.Cmb1.Cls

2.要把一个命令按钮设置成无效,应设置其________属性值。 A.Visual B.Enabled

3.以下选项中,不是VB标准控件的是________。

A.命令按钮 B.定时器 C.窗体 D.单选框

4.单选按钮(OptionButton)用于一组互斥的选项中。若一个应用程序包含多组互斥条件,可在不同的________中安排适当的单选按钮,即可实现。

A.框架控件(Frame)或图像控件(Image) B.组合框(ComboBox)或图像控件(Image) C.组合框(ComboBox)或图片框(PictureBox) D.框架控件(Frame)或图片框(PictureBox)

5.在程序中可以通过复选框和单选框按钮的________属性值来判断它们的当前状态。 A.Caption B.Value C.Selected D.Checked 6.使用________方法可将新的列表项添加到一个列表框中。

A.Print B.AddItem

C.Clear D.RemoveItem

7.以下所列的6个控件中,具有Caption属性的有_________个。

PictureBox(图片框)、Frame(框架)、OptionButton(单选按钮)、ListBox(列表框)、TextBox(文本框)、Form(窗体)

A.3

B.4

C.2

D.5

8.VB中除窗体能显示图片外,下面列出的控件中可以显示图片的控件是 。

①PictureBox ②Image ⑤OptionButton ⑥Label

A.①②③④ B.①②⑤⑥ C.①②④⑤ D.①②④⑥ 9.无法响应Click事件的控件是________。 A.Label B.Timer

C.TextBox D.DriveListBox

③TextBox ④CommandButton

C.Default D.Cancel

6

第1章 概述

10.在VB中,下列关于控件的属性或方法中,搭配错误的有________个。

①Timer1.Interval ②List1.Cls ③Text1.Print ④List1.RemoveItem ⑤VScroll1.Value ⑥Picture1.Print A.0

B.1

C.2 D.3

11.下面________语句,可以将列表框List1中的当前选定的列表项的值替换成“ABC”。 A.List1.AddItem \"ABC\ B.List1.Text=\"ABC\"

C.List1.List(List1.ListIndex)= \"ABC\"

D.前三项均可

12.要设置定时器控件的定时时间,需设置的属性是_________。

A.Interva1 B.Enabled C.Value D.Text

13.单击滚动条两端的箭头时,滚动条Value属性值的改变量由_________属性值决定。 A.LargeChange B.Max True,这个属性是 。

A.Value B.Default C.Cancel D.Enabled 15.要使程序运行时文本框能输入多行数据应设置的属性是 。

A.Text B.Locked C.Hide D.MultiLine

16.下面的属性中,用于自动调整图像框中图形大小以适应图像控件的是________。 A.Picture B.CurentY

17.只能由系统触发的是________事件。

A.Resize B.Dbl Click 18.默认属性是Text的控件是________。 A. 文本框 B. 标签框

19.复选框的Value属性为1表示________。

A.没有选中该复选框 C.该复选框被禁用

B. 该复选框状态不定 D. 该复选框被选中

C. 单选框 D. 复选框 C.AutoSize

D.Stretch

C.SmallChange. D.Min

14.为了在按下回车键时执行某个命令按钮的事件过程,需要把该命令按钮的一个属性设置为

C.Timer D.Click

20.可用Print方法在窗体中显示文本信息,若想清除这些信息,可用的方法是________。

A. Cls B. Clear C. RemoveItem D. Delete

21.以下关于定时器的说法,正确的是________。 A.可以设置定时器的Visible属性使其在窗体上可见 B.定时器只有一个Timer事件

C.可以根据需要在窗体上设置定时器的大小(高度和宽度) D.如果定时器的Visible属性为False,则定时器无效 三、编程及上机调试

7

第1章 概述

1.按图3.15所示界面,编程实现其功能。

图3.15 标准控件的应用

2.编写能对列表框中的项目进行添加、删除和统计的应用程序。要求:单击“添加”按钮,可将文本框中输入的内容添加到下面的列表框中;单击“删除”按钮,可删除列表框中选定的项目,如果没有选定要删除的项目,则“删除” 按钮不可用;单击“统计人数”按钮,可将列表框中的项目总数输出到右边的文本框(文本框不允许用户编辑)。初始运行时的窗体如图3.16所示,运行中的窗体如图3.17所示。

图3.16 初始运行界面

图3.17输入姓名后的界面

习 题 4

一、叙述题

1.VB提供了哪些标准数据类型?其类型关键字分别是什么?其类型符又是什么? 2.哪种数据类型所需的内存空间最小?存储数值2.536需要用哪种数据类型? 3.VB中表示常量有哪几种?试举例说明。

4.进行数据类型转换时,数值类型与逻辑类型是如何转换的?试举例说明。

8

第1章 概述

5.VB中的“四舍五入”是如何实现的?试举例说明。 二、单选题

1.下面所列四组数据中,全部是正确的VB常数是________。

A.32768,1.34D2, \"ABCDE\B.3276, 123.56, 1.2E-2, #True# C.&HABCE, 02-03-2002, False, D-3 D.ABCDE, #02-02-2002#, E-2

2.在程序中将变量I、T、S、D分别定义为Integer类型、Boolean类型、String类型和Date类型,下列赋值语句正确的是________。 A.S = 5 + \" abc\"

B.T = #True# D.D = #10/05/07# B.(x + y<10) (x – y>0) D.x + y<10 And x – y>0

C.I = \" 345\" + \" 67\" A.x + y<10, x – y>0 C.x + y<10 x – y>0

3.x + y小于10且x – y要大于0的逻辑表达式是________。

4.执行如下语句后正确的是________。 Print Format (1732.46, \"+ ##,##0.0\")

A.+ 1,732.5 B.1,732.5 C.+ 1,732.4 D.+ 1,732.46

5.下面表达式的值为真的是________。

A.Mid(\"Visual Basic\",1,12)=Right(\"Programming language Visual Basic\",12) B.\"ABCRG\">\"abcde\"

C.Int(134.69)>=Cint(134.69)

D.78.9/32.77<=97.5/43.97 And –45.4>-4.98

6.运行下面程序,单击命令按钮Command1,则立即窗口上显示的结果是 。

Private Sub Command1_Click()

Dim A As Integer, B As Boolean, C As Integer, D As Integer A=20/3 : B=True : C=B : D=A+C Debug. Print A, D, A=A + C

End Sub

A.7 6 False C.7 6 A=6

B.6.6 5.6 False D.7 8 A=8

7.求一个三位整数n的十位数的正确方法是________。

A.Int(n – Int(n/100) * 100) B.Int(n/10) – Int(n/100) C.Int(n/10) – Int(n/100) * 10 D.n – Int(n/100) * 100

8. 不能正确表示“两个整型变量x和y之一为0,但不能同时为0”的逻辑表达式是________。

A.x * y = 0 And x<>y B.(x = 0 Or y = 0) And x<>y C.x = 0 And y<>0 Or x<>0 And y = 0 D.x * y = 0 And (x = 0 Or y = 0)

9.设str1和str2均为字符串型变量,str1 = \"Visual Basic\",str2 = \"b\";则下列关系表达式中结果为True

的是________。

A.Mid(str1, 8, 1)>Str2

B.Len(Str1)<>2 * Instr(Str1, \"l\") C.Chr(66) & Right(Str1, 4) = \"Basic\"

9

第1章 概述

D.Instr(Left(Str1, 6), \"a\") + 60>Asc(Ucase(Str2))

10.产生[10,40]之间的随机整数的VB表达式是________。

A.Int(Rnd * 30) + 10 B.Int(Rnd * 31) + 10 C.Int(Rnd * 30) + 11 D.Int(Rnd * 30) + 12

11.VB6.0规定,不同类型的数据占用存储空间的长度是不同的。下列各组数据类型中,满足占用存储空间从小到大顺序排列的是__________。

A.Byte, Integer, Long, Double B.Byte, Integer, Double, Boolean C.Boolean, Byte, Integer, Double D.Boolean, Byte, Integer, Long 12.下列事件过程

Private Sub Command_Click()

MsgBox Str(123 +456)

End Sub

运行时,在输出对话框中显示的提示信息是__________。

A.123+123 B.\"246\" C.显示出错信息 D.579

13.VB变量名abc%的类型是________。

A.字符串类型 B.单精度类型 C.整型 D.双精度类型

14.代数表达式lnesinxy3x对应的VB表达式是________。

A.Log(Abs((Exp(3.14159)+Sin(x)^3)/(x+y))) B.Ln(Abs((Exp(3.14159)+Sin(x)^3)/(x+y))) C.Log(Abs(Exp(3.14159)+Sin(x)^3)/(x+y)) D.Log|(Exp(3.14159)+Sin(x)^3)/x+y|

15.代数表达式为

eabab24,其对应的VB表达式是________。

A.(Exp(a + b) + sqr(abs(a + b)))/(2 * 3.14 + 4) B.E ^ (a + b) + |a + b| ^ 1/2/(2 *π+ 4) C.(Exp(a + b) + sqr(abs(a + b)))/(2 *π+ 4) D.E ^ (a + b) + |a + b| ^ 1/2/(2 * 3.14 + 4)

16.窗体上有一个文本框控件Text1,假设已存在三个整型变量a、b和C,且变量a的值为5,变量b的值为7,变量c的值为12。以下的______语句可以使文本框内显示的内容为:5+ 7=12 A.Text1.Text=a+b=c B.text1.Text=\"a+b=c\"

C.Text1=a & \"+\" & b & \"=\" & c D.text1=\"a\" & \"+\" & \"b\" & \"=\" & \"C\"

17.在某过程中已说明变量a为Integer类型、变量s为String类型,过程中的以下四组语句中,不能正常执行的是 。

A.s=2*a+1

B.s=\"237\" & \".11\":a=s D.a=2:s=16400*a

C.s=2*a>3

18.下列语句运行时系统给出错误提示的是________。

A.Print -32000-769 B.Print \"1E2\"+8 C.Print \"AB\" & 128 D.Print 3=2=4

19.设整型变量a、b 的当前取值分别为200与20,以下赋值语句中不能正确执行的是_________。 A.Text1 = a/b*a

C.Text1 = \"200\"*a/b

B.Text1 = a*a/b D.Text1 = a & b & a

10

第1章 概述

20.对正实数X 的第四位小数四舍五入的VB表达式是________。 A.0.001*Int(x+0.005)

C.0.001*Int(1000*x+5)

再执行下面的语句,可正常执行的是_______。 A.Print a*b*c

C.Print 1&*a*b*c

B.Print a*b*c*1& D.Print a*b*c*1! B.0.001*(1000*x+0.5) D.0.001*Int(1000*(x+0.0005))

21.在过程中已说明a、b、c均为Integer型变量,且均已被赋值,其中a=30、b=40、C=50,如

22.在窗体的通用说明部分有以下说明语句,其中正确的是_______。 A.Private Const A As Integer=235/2 B.Const B As Integer=Cint(2.53) C.Dim Const C As Integer=3579

D.Public Const S As Boolean=True

23.设变量D为Date型、A为Integer型、S为String型、L为Long型,下面赋值语句中不能执行的是___________。

A.D=#12:30:00 PM#

C.S=Now

B.A=\"3277el\". D.L=\"4276D3\"

24.下列语句的输出结果是________。

form1.print right(mid(\"南京理工大学\",3,4),2)

A. 南京 B.理工 C.大学 D.出错

25.下列表达式中,值为True的是________。

A.UCase(\"ABCD\")>=\"abcd\" B.14/2\3>10 Mod 4

C.Mid(\"ABCD\",2,2)>Left(\"ABCD\",2)

D.Not(Sqr(4)-3>=-2)

三、编程及上机调试

1.随机产生一个4位正整数,求出该数的倒序数,输出该数及倒序数。如产生的数为1234,则倒序数为4321。通过上机调试来完成下列程序代码。

Private Sub Form_Load()

Dim x As Integer, s As String, d As String Randomize

x = Int(________) s = ________(x)

d = Right(s, 1) +________ Show

Print \"产生的数:\"; x, \"倒序数:\"; d End Sub

2.设计程序,从键盘输入字符时,在窗体上立即显示所键入的字符和该字符的ASCII码,如图4.12所示。双击窗体时,清除窗体上显示的内容。(提示:利用窗体的KeyPress事件)

图4.12 输出字符及其ASCII码

11

第1章 概述

3.根据如图4.13所示的消息框,写出相应的实现语句。

图4.13 信息输出对话框

习 题 5

一、叙述题

1.结构化程序设计的三种基本结构是什么? 2.VB是如何执行语句x = y = 3的?

3.条件语句格式中的“条件表达式”可以是哪些表达式? 4.在事先不知道循环次数的情况下,怎样使用For循环结构? 5.For循环结构结束时,循环变量的值怎样确定? 二、单选题

1.以下语句中,不能正确执行的是_________。 A.If Option1.Value Then C.Check1.Value=0 A.I=1和J=1均为赋值语句 B.I=1和J=1均为关系表达式 C.I=1为关系表达式,J=1为赋值语句 D.I=1为赋值语句,J=1为关系表达式

3.在过程中有语句For I=N1 To N2 Step N3,在该循环体内有下列四条语句,其中_______会影响循环执行的次数。

①N1=N1+I ②N2=N2+N3 ③I=I+N3 ④N3=2*N3 A.①② B.①②③ C.③ D.①②③④

4.在Select Case x结构中,描述判断条件3≤X≤7的测试项应该写成__________。 A.Case 3<=X<=7 C.Case Is<=7,Is>=3 Private Sub Cmd1_Click() k = 0 For i = 2 To 4

a = i ^ i ^ k Print a;

Next i

End Sub

12

B.If Option1.Value=True Then D.Check1.Value=True

2.针对语句If I=1 Then J=1,下列说法正确的是 。

B.Case 3<=X,X<=7 D.Case 3 To 7

5.下列程序段的执行结果为________。

第1章 概述

A.2 3 4 B.1 1 1 C.1 2 3 D.1 4 9

6.下列程序段的执行结果为________。 Private Sub Cmd1_Click() n = 0 For i = 1 To 3

For j = 5 To 1 Step - 1

n = n + 1 Next j

Next i Print n; j; i

End Sub

A.12 3 1 B.12 4 0 7.下列程序段的执行结果为________。 Private Sub Cmd1_Click() n = 0:j = 1 Do Until n>2

n = n + 1 j = j + n * (n + 1)

Loop Print n; j

End Sub

A.3 21 B.0 1 8.下列程序段的执行结果为________。 Private Sub Cmd1_Click() a = 1:b = 0 Do While a< = 5

b = b + a * a a = a + 1

Loop Print a, b

End Sub

A.6 55 B.5 54 9.Private Sub Form_Click() For x = 1 To 2

a = 0

For y = 1 To x + 1

a = a + 1

Next y Print a;

Next x

End sub

C.15 C.3 7 C.6 0 4 D.15 D.3 13

54 D.5 1 3

55

13

第1章 概述

该程序的输出结果是________。

A.1 1 B.0 0 C.1 2 D.2 3 10.Private Sub Form_Click() For j = 1 to 10

a = Val(InputBox(\"请输入一个数\"))

If a/3 = a\\3 Or a/5 = a\\5 Then

sum = sum + a

End If

Next j

Print \"sum = \";sum

End Sub

运行时,若顺序在输入对话框中输入19,17,15,13,11,9,7,5,3,1,输出sum的值是

________。

A.27 B.15 C.32 D.20 11.下列程序

Private Sub Form_Click()

c = 4

d = Val(InputBox(\"请输入一个数\")) Do While d>0

If d >c Then c = c + 1

d = Val(InputBox(\"请输入一个数\")) Loop

Print c + d

End Sub

运行时输入9,8,7,6,5,4,3,2,1,0,输出的结果是________。

A.5 B.6 C.7 D.8 12.下列程序

Private Sub Form_Click()

a$ = \"等级考试\":b$ = \"海洋卫星\" p$ = \" \"

For j=1 To 6 Step 2

p$=p$ & Mid$(a$, 6-j, 2) & Mid$(b$, j, 2) If Len(p$) = 6 Then Exit For

Next j Print p$

End Sub

该程序的输出结果是________。

A.海洋考 B.考海洋 C.海洋考试卫星等级 D.考试海洋等级卫星

13.下列程序

Private Sub Form_Click()

Dim p As Integer, i As Integer, n As Integer

14

第1章 概述

p = 2:n = 20 For i = 1 To n Step p p = p + 2 n = n – 3 i = i + 1

If p> = 10 Then Exit For Next i Print i; p; n End Sub

该程序的输出结果是________。

A.20 10 8 B.11 10 8 C.20 9 7 D.11 9 7

14.执行下面的程序,单击窗体后在窗体上显示的结果是_______。

Private Sub Form_Click()

Dim Str1 As String, Str2 As String Dim Str3 As String, I As Integer Str1=\"e\" For I=1 To 2

Str2=UCase(Str1) Str1=Str2 & Str1 Str3=Str3 & Str1 Str1=Chr(Asc(Str1)+I)

Next I Print Str3

End Sub

A.EeEEe B.EeFF C.FeFE D.FeEE

二、编程及上机调试

1.利用If语句、Select Case语句两种方法计算分段函数:

2x3x2,y3x2,1xx,x2010x20 0x102.在窗体上以每行两个数的格式输出所有的“水仙花数”。所谓“水仙花数”是指该数的各位上的数字的立方和恰好等于该数的一个三位数。(提示:首先分离出每位数字)

3.目前世界人口为60亿,如果以每年1.4%的速度增长,多少年后世界人口达到或超过70亿?(提示:使用公式p = p0 * (1 + r),p0为当前人口,r为增长率)

4.计算表达式

S12xxxx – 5

要求计算精度为第n项的绝对值小于10。

3243546x5,x>1

15

第1章 概述

习 题 6

一、叙述题

1.数组在使用之前为什么要先声明?声明语句中一般包含哪些项? 2.数组声明语句声明数组的同时,对数组元素的值进行了怎样的初始化? 3.通常数组的下界默认为0,用什么语句可以重新定义数组的下界? 4.程序运行时,哪些情况下会出现“下标越界”的错误? 5.动态数组使用中应注意哪些事项?

二、单选题

1.下列语句所声明的数组的元素个数为_______。 Dim a(3 To 6, - 2, To 2)

A.20

2.下列程序

Private Sub Form_Click()

dim a(5) as string

For i = 1 To 5

a(i) = Chr(Asc(\"A\") + (i - 1))

Next i For Each b In a

Print b;

Next b

End Sub

该程序的输出结果是________。

A. ABCDE

B. abcde

C. 出错信息

D. 1 2 3 4 5

3.在窗体模块的通用声明处用下面的语句声明变量、数组,正确语句有________个。

B.16

C.24

D.25

① Public A(5) As Integer ② Public N As Integer ③ Public St As String*10 ④ Private b() As Integer

A.2 Const N As Integer=4 Dim L As Integer ①Dim X(L) AS Integer ②Dim A(K) As Integer Const K As Integer=3 ③Dim B(N) As Integer

④Dim Y(2000 to 2008) As Integer

A.①②④ 确语句是_________。

A.ReDim A(3,3)

B.ReDim A(3,3)

B.①③④

C.③④

D.②③

5.在窗体的通用声明处有语句“Dim A()As Single”,以下在某事件过程中重定义此数组的一组正

B.3 C.4 D.1

4.某过程的说明语句中,正确的数组说明语句是_______。

16

第1章 概述

ReDim A(4,4) As Integer ReDim Preserve A(4, 4) C.ReDim A(3)

D.ReDim A(3, 3)

ReDim A(3,3) As Integer ReDim Preserve A(3, 4)

6.在窗体模块的通用声明处有如下语句,会产生错误的语句是__________。

①Const A As Integer=25 ②Public St As String*8 ③ReDim B(3)As Integer ④Dim Const X As Integer=10

A.①② B.①③ C.①②③ D.②③④

7.在窗体上建立了一个命令按钮数组,数组名为Cmd1。在下面空白处填入哪一项时,使之单击任一命令按钮,将窗体的标题改为该命令按钮的标题。

Private Sub Cmd1_Click(Index As Integer) Form1.Caption = ________ End Sub

A.Cmd1(Index).Caption

B.Cmd1.Caption(Index)

C.Cmd1.Caption D.Cmd1(Index + 1).Caption 8.下面有关数组处理的叙述中,错误的是 。

①在过程中用ReDim语句定义的动态数组,其下标的上下界可为赋了值的变量。②在过程中,可以使用Dim、Private和Static语句定义数组。 ③用ReDim语句重新定义动态数组时,不得改变该数组的数据类型。 ④可用Public语句在窗体模块的通用说明处定义一个全局数组。

A.①②③④ B.①③④ C.①②③ D .②④ 9.以下有关ReDim语句用法的说明中,错误的是________。 A.ReDim可用于定义一个新数组

B.ReDim语句既可以在过程中使用,也可以在模块的通用声明处使用 C.无Perserve关键字的ReDim语句,可重新定义动态数组的维数

D.在ReDim语句中,可使用变量说明动态数组的大小

10.下列程序 Option Explicit Option Base 1 Dim a() As Integer Private Sub Form_Click() Dim i As Integer, j As Integer Redim a(3, 2) For i = 1 To 3

For j = 1 To 2 a(i, j) = i * 2 + j

Next j

Next i

Redim Preserve a(3, 4) For j = 3 To 4

a(3, j) = j + 9

Next j Print a(3, 2);

17

第1章 概述

Print a(3, 4)

End Sub

该程序的输出结果是________。 A. 0 13

B. 8 13 C. 7 12

D. 0 0

二、编程及上机调试

1.随机生成一个包含10个元素的一维数组,然后将其前5个元素与后5个元素对换,即,第1个元素与第10个元素对换,第2个元素与第9个元素对换,„,第5个元素与第6个元素对换。分别输出数组原来各元素的值和对换后各元素的值。

2.有一个3行4列的数组,编写程序,找出其中最大的那个元素所在的行和列,并输出其值及行号和列号。

3.参照图6.21所示界面,编写程序求每一行与每一列之和。

图6.21 求行与列的和

4.编写程序,实现矩阵转置。例如,如下矩阵A转置后成为矩阵B。

2A34221, B46132 65.编写程序,建立并输出一个10行10列的矩阵,该矩阵对角线元素为0,其余元素均为1。

6.编写程序,设有一包含10个元素的数组,从键盘上输入一个数,将该数从数组中删除。

7.某单位开运动会,共有10人参加男子100米短跑,运动员号码和成绩见下表,编写程序,按名次输出运动员的名次、号码和成绩。

号码 成绩 017号 11.3秒 035号 12.3秒 128号 12.0秒 235号 11.8秒 089号 12.6秒 号码 成绩 121号 11.6秒 143号 12.8秒 189号 11.8秒 231号 12.4秒 094号 12.1秒

18

第1章 概述

习 题 7

一、叙述题

1.程序中引入函数过程和子程序过程有什么益处? 2.函数过程和子程序过程有何区别?

3.什么是形参?什么是实参?参数传递中有哪些注意事项? 4.静态变量如何声明?有什么作用?

5.程序中怎样添加标准模块?在标准模块中可以声明事件过程?

二、单选题

1.要使过程调用结束后返回两个结果,下面的过程语句正确的是________。 A.Sub Proc1(ByVal n,ByVal m) C.Sub Proc1(n,m) A.Dim

B.Sub Proc1(n,ByVal m)

D.Sub Proc1((n),m)

D.Static

2.在窗体模块的通用声明段中声明变量时,不能使用________关键字。

B.Public

C.Private

3.应用程序窗体的名称属性为Frm1,窗体上有一个命令按钮,其名称属性为Cmd1,窗体和命令按钮的Click事件过程名分别为________。 A.Form_Click(),Command1_Click()

C.Form_Click(),Cmd1_Click() 中定义局部变量。

A.Dim

B.Private C.Public D.Static

5.若在应用程序的标准模块、窗体模块和过程Sub1的说明部分,分别用“Public G As Integer”、“Private G As Integer”和“Dim G As Integer”语句说明了三个同名变量G。如果在过程Sub1中使用赋值语句“G=2145”,则该语句是给在________说明部分定义的变量G赋值。 A.标准模块

C.窗体模块

B.过程Sub1

D.标准模块、窗体模块和过程Sub1

B.Frm1_Click(),Command1_Click() D.Frm1_Click(),Cmd1_Click()

4.若希望在离开某过程后,还能保存该过程中局部变量的值,则应使用________关键字在该过程

6.以下有关数组作为形参的说明中错误的是________。 A.在过程中也可用Dim语句对形参数组进行说明

B.使用动态数组时,可用ReDim语句改变形参数组的维界 C.调用过程时,只需把要传递的数组名填入实参表 D.形参数组只能按地址传递

7.假设已通过下列Sub语句声明了Proc1过程。若要调用该过程,可以采用________语句。 Sub Proc1(x As Integer) A.s=Proc1(3)

B.Proc1 32765 D.Call Proc1(40000)

C.Print Proc1(100)

8.下列论述中,正确的是________。

A.用户可以声明通用过程的过程名,也可以声明事件过程的过程名 B.一个工程中只能有一个Sub Main过程 C.事件过程是在通用过程的调用下触发的。

19

第1章 概述

D.在一个窗体文件中用Private定义的通用过程,可以被其他窗体调用 9.使用Public Const语句声明一个全局的符号常量时,该语句应在________。 A.事件过程中

B.窗体模块的通用声明段中 D.通用过程中

④静态变量

C.标准模块的通用声明段中

10.程序中的不同过程之间,不能通过________进行数据传递。 ①全局变量 ②窗体或模块级变量 ③形参与实参结合 A.①②④ B.①②③ C.②④ D.④

11.在窗体Form1中用“Public Sub Fun(x As Integer,Y As Single)”定义过程Fun,在窗体Form2中定义了变量i为Integer,J为Single,若要在Form2的某事件过程中调用Form1中的Fun过程,则下列语句中正确的语句有_________个。

①Call Fun(i,j) ②Call Form1.Fun(i,j) ③Form1.Fun (i),j ④Form1.Fun i+l,(j)

A.1 B.2 C.3 D.4

12.定义两个过程Private Sub1(St() As String)和Private Sub2(Ch() As String*6),在调用过程中用Dim S(3) As String*6,A(3) As String定义了两个字符串数组。下面调用语句中正确的有 。

①Call Sub1(S) ②Call Sub1(A) ③Call Sub2(A) ④Call Sub2(S)

A.①② B.①③ C.②③ D.②④

13.以下有关过程的说法中错误的是________。

A.在Sub或Function过程中不能再定义其他Sub或Function过程

B.在调用过程时,与使用ByRef说明的形参对应的实参只能按地址传递方式结合 C.递归过程既可以是递归Function过程,也可以是递归Sub过程 D.在调用过程时,形参为数组的参数对应的实参只能是数组

14.以下有关事件过程的说法中,错误的是________。 A.标准模块中不能包含事件过程

B.事件过程都是无参(没有形式参数)的过程. C.事件过程也可以通过Call语句调用执行

D.在事件过程中不能声明全局变量

15.下列定义Sub过程的语句中,正确的语句是________。 ①Private Sub Test(St As String*8) ②Private Sub Test(Sarray() As String*5) ③Private Sub Test(Sarray() As String) ④Private Sub Test(St As String)

A.①② B.①④ C.②③④ D.①②③④

16.以下有关变量作用域的说法中,错误的是________。 A.只有在标准模块中用Public语句说明的变量才是全局变量 B.在过程中不能使用Public语句说明全局变量

C.在标准模块的通用声明处可用Private语句说明模块级变量 D.在窗体的通用声明处可用Private语句说明窗体级变量

17.以下程序段运行后,单击窗体时显示的结果是________。 Private Sub Form_Click() Dim b as integer, y As Integer

20

第1章 概述

Call Mysub (3, b)

y = b Mysub 4, b Print y + b End Sub

Private Sub Mysub(x, t) t=0

For k = 1 to x t = t + k Next k End Sub A.13

B.16

C.19 D.21

18.下列程序段运行后,单击窗体时显示的结果是________。 Public Sub Proc(ByVal x As Integer, y As Integer) x = y + x y = x Mod y End Sub

Private Sub Form_Click() Dim a As Integer, b As Integer a = 11:b = 22 Call Proc(a, b) Print a; b End Sub A.33 11

B.11 11 C.11 22 D.22 11

三、填空题

1.执行下列程序,其结果为________。 Option Explicit

Private Sub Command1_Click() Dim n As Single n = 25.5

Call Con((n), \"25\" + \".5\")

End Sub

Private Sub Con(s As Integer, s1 As Single) s = s * 2 s1 = s1 + 25.5 Print s, s1

End Sub

2.执行下列程序,其结果为________。 Option Explicit

Private Sub Command1_Click() Dim i As Integer, s As Integer

21

第1章 概述

s = 5 For i =1 To 6 Call Subl(i, s) Print i, s Next i

End Sub

Private Sub Subl(a As Integer, b As Integer) Static c As Integer Dim i As Integer For i = 3 To 1 Step - 1 c = c + a a = a + 1 Next i b = b + c End Sub

3.执行下列程序,其结果为________。 Option Explicit

Private Sub Command1_Click() Dim n As Integer, St As String n = 15

Call Factor(n, St) Print St End Sub

Private Sub Factor(ByVal d As Integer, s As String) Dim i As Integer For i =1 To d - 1

If d Mod i = 0 Then s = s & Str(i) Next i End Sub 四、编程及上机调试

1.编写过程,用下面的公式计算π的近似值:

41131517(1)n112n1

在事件过程中调用该过程,输出当n分别为100,600,1100,1600时π的近似值。

2.编写程序,验证一个大于2的偶数可以表示为两个素数之和。

3.利用随机函数Rnd生成10个两位的整数,将其降序排列输出到一个文本框中。

4.编写程序,求出1000之内的所有完数。所谓“完数”是指一个数恰好等于它的因子之和。如6的因子为1、2、3,而6 = 1 + 2 + 3,所以6是完数。

5.创建一个包含两个窗体的工程,用户界面如图7.24与图7.25所示。添加一个标准模块,在标准模块中定义两个通用过程:一个是Function过程Max,用于求数组a中10个数的最大值;另一个是Sub过程Sort,用于对数组a中10个数按从小到大顺序排序。

22

第1章 概述

要求:(1) 窗体Form1为主窗体,当单击“生成随机数”按钮时,生成10个[10,99]区间内的随机整数,将这10个随机整数存入数组a,同时显示在“随机数”文本框中。单击“求最大数”按钮时,调用标准模块中的Function过程Max,求这l0个数的最大数并显示在“最大值”文本框中。

当单击“打开排序窗口”按钮时,打开窗体Form2。

(2) 在窗体Form2中,当单击“排序”按钮时,调用标准模块中的Sub过程Sort,对数组a中的10个数按从小到大的顺序排序,并将排序后的结果显示在“排序结果”文本框中。

单击“返回”按钮返回到窗体Form1。

图7.24 Form1窗体界面

图7.25 Form2窗体界面

习 题 8

一、述题

1.VB应用程序可能存在的错误有哪几种?

2.VB应用程序运行出现“死循环”时怎样返回到编辑状态?

3.VB应用程序运行时出现“要求对象”的错误信息是什么原因?怎样修改? 二、上机调试题

1.求下面数列的和,计算到第n项的值小于10-4为止。 y1111213581fn1f

n2式中,

f11,f22,fn(fn1fn2),n3(本程序运行结果是:y=2.359646)。

【含有错误的程序代码】 Option Explicit

Private Sub Form_Click()

Dim a() As Single, i As Integer Dim y As Single i = 1 Do

ReDim a(i) a(i) = 1 / fib(i)

If a(i) <= 0.0001 Then Exit Do y = y + a(i)

23

第1章 概述

i = i + 1 Loop Print \"y=\"; y

For i = 1 To UBound(a) Print a(i) Next i End Sub

Private Function fib(i As Integer) As Integer If i = 1 Then fib = 1 ElseIf i = 2 Then fib = 2 Else

fib(i) = fib(i - 1) + fib(i - 2) End If End Function 【要求】

(1) 新建工程,输入上述代码,改正程序中的错误。 (2) 改错时,可以调换语句位置,但不得增加或删除语句。

2.所谓的完全数是一个整数N的因子和(不包括N)等于N。例如,6=1+2+3,6是完全数。编写程序验证:两位以上的完全数,把它们的各位数字加起来得到一个数,再把这个数的各位数字加起来又得到一个数,一直做下去,直到得到一个以位数,这个数是1。过程WanShu的功能是找完全数。图8.32是程序运行界面。

【含有错误的程序代码】 Option Explicit

Private Sub Command1_Click()

Dim i As Integer, k As Integer, st As String For i = 10 To 500 If wanshu(i) Then st = CStr(i)

Text1.Text = Text1.Text & st Call test(st)

Text1.Text= Text1.Text & Chr(13) & Chr(10) End If Next i End Sub

Private Function wanshu(n As Integer) As Boolean Dim i As Integer, sum As Integer For i = 2 To n - 1 If n Mod i = 0 Then sum = sum + i End If

图8.32 程序运行界面

24

第1章 概述

Next i

If sum = n Then wanshu = True End Function

Private Sub test(s As String) Dim i As Integer, sum As Integer sum = 0

Do While Len(s) > 1 For i = 1 To Len(s)

sum = sum + Val(Mid(s, i, 1)) Next i

Text1.Text = Text1.Text & \"->\" & Str(sum) s = Str(sum) Loop End Sub 【要求】

(1) 新建工程,输入上述代码,改正程序中的错误。 (2) 改错时,可以调换语句位置,但不得增加或删除语句。

习 题 9

一、叙述题

1.VB提供的文件操作控件在程序中如何使他们同步? 2.什么是文件,ASCII文件与二进制文件有什么区别? 3.根据文件的访问模式,文件可分为哪几种类型? 4.文件号的含义是什么?使用中有何规定? 5.顺序文件与随机文件有什么不同? 二、单选题

1.下述4个控件中具有FileName属性的是________。 A.驱动器列表框 C.目录列表框

A.文件列表框 C.驱动器列表框 A.Path

B.文件列表框 D.列表框 B.目录列表框 D.列表框 C.Listindex

D.Drive

2.下述4个控件中可以列出计算机中所有驱动器的是________。

3.使用目录列表框的________属性可以返回或设置工作目录的完整路径。

B.Dir

4.窗体上放置有名为Drive1与Dir1的驱动器列表框与文件夹列表框,需要在选定驱动器列表框中的列表项时,文件夹列表框中的内容随之改变,正确的语句及语句的位置是________。

A.Dir1.Path = Drive1.Path B.Dir1.Path = Drive1.Path C.Dir1.Path = Drive1.Drive D.Dir1.Path = Drive1.Drive

'位于Drive1_Change()过程 '位于Dir1_Change()过程 '位于Drive1_Change()过程 '位于Dir1_Change()过程

25

第1章 概述

5.执行赋值语句________后,会触发相应控件(控件名都为缺省名)的Change事件 A.Dir1.ListIndex = -2 C.List1.ListIndex = 3

B.Drive1.ListIndex = 2 D.File1.ListIndex = 3

6.窗体上放置有名为Drive1、Dir1与File1等三个控件,下面________语句一定不会改变相应控

件的Path或Drive属性。

A.Drive1.ListIndex = 2

B.Dir1.ListIndex = -2 C.File1.FileName = \"d:\\*.*\"

D.File1.Path = Drive1. Drive 7.按文件中数据的存储方式文件可分为________。

A.程序文件和数据文件 B.ASCII码文件和二进制文件 C.顺序文件和随机文件

D.以上都不对

8.语句 Open \"Text. dat\" For Output As # FreeFile的功能叙述中错误的是________。 A.如果文件Text. Dat已存在,则打开该文件,新写入的数据将覆盖原有的数据 B.如果文件Text. Dat已存在,则打开该文件,新写入的数据将增加到该文件中 C.如果文件Text. Dat不存在,则建立一个新文件

D.以顺序输出模式打开文件Text. Dat

9.若磁盘文件C:\\Data1.Dat不存在,下列打开文件语句中,会产生错误的是________。 A.Open \"C:\\Data1.dat\" For Output As #1

B.Open \"C:\\Data1.dat\" For Iutput As # 2 C.Open \"C:\\Data1.dat\" For Append As # 3

D.Open \"C:\\Data1.dat\" For Binary As # 4

10.要对顺序文件进行写操作,下列打开文件语句中正确的是________。

A.Open \"filel.txt\" For Outtout As #1 B.Open \"filel.txt\" For Input As #1

C.Open \"filel.txt\" For Random As #1 D.Open \"filel.txt\" For Binary As #1 11.要向已有数据的c:\est\est.txt文件添加数据,正确的文件打开命令是________。 A.Open \"C:\est\est.txt\" For Append As #512 B.Open \"C:\est\est.txt\" For Append As #511 C.Open \"c:\est\est.txt\" For Output As #512

D.Open \"C:\est\est.txt\" For Output As #51l

12.将一个记录型变量的内容写入文件中指定的位置,所使用的语句格式为________。 A.Put文件号,记录号,变量名 B.Put文件号,变量名,记录号 C.Get文件号,变量名,记录号

D.Get文件号,记录号,变量名

13.下列_________说法是不正确的。

A.当程序正常结束时,所有没用句关闭的文件都会自动关闭

B.在关闭文件或程序结束之前,可以不用Unlock语句对已锁定的记录解锁 C.可以用不同的文件号同时打开一个随机文件

D.用Output模式打开一个顺序文件,即使不对它进行写操作,原来内容也被清除 14.下列关于文件的叙述中,正确的是________。 A. 打开随机文件时,参数Len的值可以任意设置

B. 若以Output、Append、Random或Binary方式打开一个不存在的文件,系统会出错C. 在Input方式下,不能使用不同文件号同时打开同一个文件 D. 在一个过程中,一个文件号有可能被用于打开同一个文件

26

第1章 概述

15.下列关于随机文件记录的叙述中,正确的是________。 A.可以通过记录号随机读取记录 B.记录号是通过随机数产生的 C.记录号是从0开始编号的

D.记录中所包含的各个字段的数据类型必须相同

16.用Close语句来关闭不再使用的文件,当该语句不使用任何参数时,其功能是________。 A.只能关闭一个已打开的文件 C.有语法错误

三、编程及上机调试题

1.在d:\\my文件夹下建立一个顺序文件text1.txt,该文件用于存储一批学生的学号,要求在文本框输入学号,每当输入一个学号后按下回车键时,就可以写入一个记录,并清除文本框中的内容。当键入“0000”时结束程序的运行。请完成下列程序。

Private sub Form_Load( )

Open \"d:\\my\ext2.txt\" For Output As #1 End Sub

Private Sub Text1_keyPress(KeyAscii As Integer) If KeyAscii = _______ Then If ________ Then Close #1 End End If

Write #1, _________ Text1.Text=\" \" End if End Sub

2.下述程序的功能是建立一随机文件(d: \\ my \\ text2.txt),用于存放学生的姓名和年龄,然后把该文件中数据读出并显示。阅读下列程序,请在空格处填入相应的语句,使之完成上述功能。

Option Explicit Private Type Student name As String * 10 age As Integer End Type

Private Sub Command1_Click() Dim Stu As Student

Open \"d: \\ my \\ text2.txt\" For Random As #1 Len = Len(Stu) Stu. name = \"WangYing\" Stu. age = 20

Close #1

Open \"d: \\ my \\ text.txt\" For Random As #1 Len=Len(Stu)

27

B.关闭所有已打开的文件 D.只能关闭两个已打开的文件

第1章 概述

Print \"姓名:\ Print \"年龄:\ Close # 1 End Sub

习 题 10

一、叙述题

1. 在VB中,用户可以自定义坐标系吗?试举例说明。 2. 在VB中有几种颜色的设置方式?分别举例说明。 3. 用Circle方法可以绘制哪几种图形?分别举例说明。 4. 从设计的角度,试说明下拉式菜单和弹出式菜单的区别。 5. 在使用“字体”对话框之前必须设置什么属性? 二、单选题

1.下面不能打开菜单编辑器的操作是________。 A.执行“工具”菜单中的“菜单编辑器”命令 B.按Ctrl + Alt + M键 C.按Ctrl + E键

D.单击工具栏中的“菜单编辑器”按钮

2.在用菜单编辑器设计菜单时,必须输入的项是________。 A.快捷键

B.名称

C.索引

D.标题

3.下面关于菜单的说法中,错误的是________。 A.菜单项的索引号可以不连续 B.菜单项的索引号必须从1开始

C.每个菜单项是一个控件,与其他控件一样,也有其属性和事件 D.除了Click事件以外,菜单项不响应其他事件

4.假设有一个菜单项,其名为Menu1,为了在运行时该菜单项失效(变灰),应使用的语句是________。

A.Menu1.Visible = False C.Menu1.Enabled = False

时按【Alt】键和该字母键就可打开该命令菜单。

A.下划线 6.执行下列语句

CurrentX = 300:CurrentY = 300 Line Step(100, 100) – Step(200,150)

绘制的线段的起点坐标为_________,终点坐标为________。

A.(400, 400) B.(300, 300) C.(600 550) 7.通过设置Shape控件的________属性可以绘制多种形状的图形。

A.Shape B.BorderStyle C.FileStyle D.Style 8.VB中利用Circle方法不可以画________。

28

B.Menu1.Visible = True D.Menu1.Enabled = True

5.在使用菜单编辑器创建菜单时,可在菜单名称中某字母前插入_______符号,那么在运行程序

B.&

C.$

D.@

D.(300 250)

第1章 概述

A.圆 B.直线 C.弧 D.椭圆

9.执行下面的程序段,结果是________。 X = Width/2:Y = Height/2 Picture1.Line (x, y) – (x, y-2000) Picture1.Line (x, y+2000) – (x, y) Picture1.Line –(x–2000, y)

A.在图片框中画形如┫的交叉直线 B.在图片框中画形如┣的交叉直线 C.在图片框中画形如┳的交叉直线

D.在图片框中画形如┻的交叉直线

10.下面语句中,可以在窗体上绘制正方形的语句是________。

①Shape1.Shape=1 ②Line(500,1500)-(1200,2000) ③Shape1.Shape=0 ④Line(500,1500)-(1000,2000),,B A.③② B.①② C.③④ D.①④

11.以下有关Line划线方法的说明,错误的是________。

A.Line方法既可用于单个划线,也可用于连续划线

B.Line方法中的Step选项用于指定由CurrentX、CurrentY属性决定的图形坐标位置C.Line方法划线的宽度由DrawWidth属性决定 D.当使用F选项时,Line方法可用于绘制矩形 12.编写如下事件过程:

Private Sub Text1_MouseDown(Button As Integer, Shift As Integer, _

x As Single, y As Single)

If Shift = 1 And Button = 2 Then Text1.Text = \"ABCD\" End If End Sub

程序运行后,为了在文本框内输出“ABCD”,应执行的操作是________。

A.按住Shift键的同时,用鼠标左键单击文本框 B.按住Shift键的同时,用鼠标右键单击文本框 C.按住Ctrl及Shift键的同时,用鼠标左键单击文本框 D.按住Ctrl及Shift键的同时,用鼠标右键单击文本框

13.确保窗体上所有文本框中输入的全部是数字的最佳方法是________。 A. 在窗体的KeyDown或KeyUp事件过程中摒弃非数字输入 B. 在窗体的KeyPress事件过程中摒弃非数字输入

C. 在每一个文本框的KeyDown或KeyUp事件过程中摒弃非数字输入 D. 在每一个文本框的KeyPress事件过程中摒弃非数字输入 二、填空题

1.下拉式菜单、弹出式菜单的设计是在________窗口中进行。 2.VB中的菜单分为________菜单和________菜单两种。 3.在菜单设计过程中,不可以给_________级菜单设置快捷键。 4.显示弹出式菜单,使用________方法。 5.MDI指________界面。

6.要将一个窗体定义为一个MDI子窗体,需要将其________属性设置为True。

29

第1章 概述

7.在窗体上放置一个滚动条Hscroll1和一个文本框Text1,要使每次单击滚动条两端箭头、单击滚动条的滚动块与两端箭头之间的空白区域以及拖动滚动条的滚动块时,文本框内容能够反映滚动条的值,请完善以下程序代码。

Private Sub Hscroll1_ ________( ) Text1.Text = Hscroll1._________ End Sub

Private Sub Hscroll1_ ________( ) Text1.Text = Hscroll1._________ End Sub

8.设窗体上有工具栏ToolBar1,其中有三个按钮对象,从左到右依此是“红”、“绿”和“蓝”,其索引值依次为1,2和3,要使单击按钮时可以设置窗体的相应背景颜色,请补充完善下列程序代码。

Private Sub ToolBAr1_ButtonClick(ByVal Button As MSComctlLib.Button) Select Case ________ Case 1 ________ Case 2 ________ Case 3 ________ End Select End Sub 三、编程及上机调试

1.窗体上有状态栏控件StatusBar1和图片框控件Picture1,图片框的BackColor为白色,DrawWidth属性为3。在图片框上拖动鼠标画图时,要求在状态栏的第1个和第2个窗格上分别显示出当前绘制点的x和y坐标值。如图10.44所示。请完善程序。

Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, _

X As Single, Y As Single)

If Button = 1 Then Picture1.________

StatusBar1.Panels.Item(1) = ________ StatusBar1.Panels.Item(2) = ________ End If End Sub

2.利用通用对话框设计一个应用程序(参考界面如图10.45所示)。要求:

(1) 单击“打开”按钮时,弹出“打开文件”对话框,默认路径为“D: \\ ”,文件扩展名为.txt(文本文件)和.doc(Word文件)。用户选定文件以后,将文件内容显示在文本框中,如果文件内容超出文本框大小时,自动出现垂直滚动条。

(2) 单击“字体”按钮,弹出“字体”对话框,利用该对话框设置文本框中文字的字体、字形、大小(字号)。

30

第1章 概述

习 题 11

一、叙述题

1.什么是数据库?有哪几种数据模型? 2.什么是关系数据库?

3.Microsoft Access数据库是什么类型的数据库?数据库文件的扩展名是什么?

4.VB中是如何访问数据库的数据的?

5.简述使用ADO数据控件访问数据库的步骤。

6.具有什么属性的控件可以和ADO数据控件“绑定”,作为显示数据的控件? 二、选择题

1.在数据库中存储的是________。 A.数据

B.数据模型

C.数据及数据间的联系

D.信息

2.关系数据库的每个关系表中的一列称为________。 A.字段

B.记录

C.关系

D.关键字

3.SQL语句“Select 学号,姓名,性别 From 学生情况”,所查询的表名称是________。 A.学号

B.姓名

C.学生情况

D.学生表

4.SQL语句“Select * From 学生情况 Where 性别=‟男‟”中的“*”号表示________。 A.所有表

B.所有指定条件的记录 D.指定表中的所有字段

C.所有记录

5.以下不是ADO控件属性的是________。 A.ConnectionString C.DataType

B.RecordSource D.CommandType

6.要使记录指针向下移动一个记录应使用RecordSet对象的________方法。 A.MovePrevious C.MoveFirst

B.MoveNext D.MoveLast

7.通过设置ADO控件的________属性,可确定具体可以访问的数据,这些数据构成了记录集对象RecordSet。

A.ConnectionString C.RecordSet

B.RecordSource D.DataBase

三、操作题

1.使用Microsoft Access数据库系统建立11.1.2小节的学生信息数据库student.mdb。

2.在数据库student.mdb中建立“学生成绩”表,表中包含学号、姓名、高等数学、大学英语、信息技术等字段,并输入数据。

31

第1章 概述

按照图11.34设计窗体,利用ADO数据控件访问学生成绩表中的数据。

图11.34 习题2的操作界面

32

第1章 概述

参考答案

第1章 概述

二.选择题:

1.C 2. B. 3.C. 4.C. 5.A

6.C 7.D 8.B 9.B 10.B 11.A 12.C 13.D 14.C 15.D 16.A 17.C 18.A 19.A 20.D 21.B

三.填空题:

1.面向对象,事件驱动 2.编译,解释 3.设计,运行,中断 4.F5 5.调试

6.切换文件夹

四.编程及上机调试:

1. 略

2. Sub Form_Click( )

Label1.Caption = “你单击了窗体” End Sub

Sub Form_DblClick( )

Label1.Caption = “你双击了窗体” End Sub

第2章 面向对象编程基础

二.选择题:

1.C 2. C. 3.B. 4.B. 5.D

6.D 7.B 8.B 9.C 10.D 11.B 12.B 13.B 14.C 15.A 16.B 17.B 18.B 19.C 20.B

三.填空题:

1.窗体,控件 2.属性,事件,方法 3.command2_click 4.picture 5.中部,代码

四.编程及上机调试:

1.Private Sub Command1_Click() Form1.WindowState = 2 End Sub

Private Sub Command2_Click() Form1.WindowState = 0

33

第1章 概述

End Sub

Private Sub Command3_Click() Form1.WindowState = 1 End Sub

2.Private Sub Command1_Click()

Form1.Picture = LoadPicture(\"d:\\picture\\flower.wmf\") Command1.Visible = False Command2.Visible = False End Sub

Private Sub Command2_Click() End End Sub

Private Sub Form_DblClick() Form1.Picture = LoadPicture(\"\") Command1.Visible = True Command2.Visible = True End Sub

第3章 常用标准控件

二.选择题:

1.C 2. B 3.C. 4.D 5.B 6.B 7.A 8.C 9.B 10.C 11.C 12.A 13.C 14.B 15.D 16.D 17.C 18.A 19.D 20.A 21.B

三.编程及上机调试: 1.

Private Sub Check1_Click() If Check1.Value = 1 Then

Text1.FontBold = True Else

Text1.FontBold = False End If End Sub

Private Sub Check2_Click() If Check2.Value = 1 Then

Text1.FontItalic = True Else

34

第1章 概述

Text1.FontItalic = False End If End Sub

Private Sub Check3_Click() If Check1.Value = 1 Then

Text1.FontUnderline = True Else

Text1.FontUnderline = False End If End Sub

Private Sub Command1_Click() Text1.Text = \" \" End Sub 2.

Private Sub Command1_Click()

Text2.Text = List1.ListCount End Sub

Private Sub Command2_Click() List1.AddItem Text1.Text Text1.Text = \" \" End Sub

Private Sub Command3_Click()

Dim i As Integer i = List1.ListIndex List1.RemoveItem i

Command3.Enabled = False Text1.SetFocus

Text2.Text = List1.ListCount End Sub

Private Sub Form_Load() Command3.Enabled = False End Sub

Private Sub List1_Click()

Command3.Enabled = True End Sub

35

第1章 概述

第4章 VB语言基础

二.选择题:

1.A 2. D 3.D. 4.A 5.A 6.A 7.C 8.D 9.C 10.B 11.A 12.D 13.C 14.A 15.A 16.C 17.D 18.A 19.B 20.D 21.C 22.A 23.B 24.C 25.C 三.编程及上机调试: 1.Private Sub Form_Load()

Dim x As Integer, s As String, d As Integer Randomize

x = Int(Rnd * 9000 + 1000) s = Trim(CStr(x)) d = Val(Right(s, 1) + Mid(s, 3, 1) + Mid(s, 2, 1) + Left(s, 1)) Show

Print \"产生的数;\"; x; \"倒序数\"; d

End Sub

2.Private Sub Form_KeyPress(KeyAscii As Integer)

Print \"输入字符:\"; Chr(KeyAscii), \"ASCII码为:\"; KeyAscii End Sub

Private Sub Form_DblClick() Cls End Sub

3.Private Sub Form_Click() MsgBox \"在这里显示提示\" & vbCrLf & \"提示信息\请确认\" End Sub

Private Sub Form_Click()

MsgBox \"在这里显示提示\" + Chr(13) + \"提示信息\

+ vbCritical, \"请确认\" End Sub

第5章 程序控制结构

二.单选题 1.D 2. C 3.C. 4.D. 5.B 6.C 7.A

8.A 9.D 10.C

11.C 12.C 13.B 14.B

四.编程及上机调试 1. Private Sub Form_Click()

Dim x As Integer, y As Integer

36

第1章 概述

x = InputBox(\"请输入一个数值\") If x > 20 Then

y = x ^ 2 + 3 * x + 2 ElseIf x >= 10 Then y = Sqr(3 * x) - 2 ElseIf x > 0 Then y = 1 / x + Abs(x) End If

Print \"x=\"; x, \"y=\"; y End Sub

(2)Select Case实现:

Private Sub Form_Click()

Dim x As Integer, y As Integer x = InputBox(\"请输入一个数值\") Select Case x Case Is > 20

y = x ^ 2 + 3 * x + 2 Case Is >=10 y = Sqr(3 * x) - 2 Case Is > 0

y = 1 / x + Abs(x)

End Select

Print \"x=\"; x, \"y=\"; y End Sub 2.

Private Sub Form_Click()

Dim a As Integer, b As Integer, c As Integer For i = 100 To 999 a = i \\ 100

b = (i - a * 100) \\ 10

c = i Mod 10

If a ^ 3 + b ^ 3 + c ^ 3 = i Then Print i; k = k + 1

If k Mod 2 = 0 Then Print End If Next i End Sub 3.

Private Sub Command1_Click() p = 60: r = 0.014

37

第1章 概述

Do

p = p * (1 + r) n = n + 1

Loop Until p >= 70

Print n; \"年后世界人口达到\"; p; \"亿\" End Sub 4.

Private Sub Command1_Click()

Dim s As Single, x As Integer, t As Single, n As Integer x = Val(InputBox(\"请输入x的值\ s = 1 n = 1 m = 1 Do

n = n + 1 m = -m

t = m * n / x ^ (n - 1)

If Abs(t) < 0.00001 Then Exit Do s = s + t Loop Print s End Sub

第6章 数组

二.单选题:

1.A 2.A. 3.A 4.C 5.D 6.D 7.A 8.D 9.B 10.B 四.编程及上机调试: 1.

Option Base 1

Private Sub Form_Click() Dim a(10) As Integer

Dim i As Integer, t As Integer Print \"数组的原始数据为:\"; For i = 1 To 10

a(i) = Int(11 * Rnd) + 10 Print a(i);

Next i Print

Print \"变化后数组数据为:\"; For i = 1 To 5

38

第1章 概述

t = a(i)

a(i) = a(10 - i + 1) a(10 - i + 1) = t Next i For i = 1 To 10 Print a(i); Next i End Sub 2.

Option Base 1

Private Sub Form_Click()

Dim a(3, 4) As Integer, i As Integer, j As Integer, k As Integer, p As Integer Randomize For i = 1 To 3

For j = 1 To 4

a(i, j) = Int(90 * Rnd + 10) Print a(i, j); Next j Print Next i

Max = a(1, 1): k = 1: p = 1 For i = 1 To 3

For j = 1 To 4

If a(i, j) > Max Then Max = a(i, j) k = i

p = j End If Next j Next i

Print \"最大的数为第\" & k & \"行,第\" & p & \"列的数:\" & Max End Sub

3.

Option Base 1

Dim a(4, 5) As Integer '在窗体声明段声明数组 Dim i As Integer, j As Integer

Private Sub cmdmatrix_Click() '\"生成数组\"按钮 Randomize For i = 1 To 4

For j = 1 To 5

a(i, j) = Int(Rnd * 10) '一位的随机数

39

第1章 概述

Picture1.Print a(i, j); '输出元素 Next j

Picture1.Print Next i End Sub

Private Sub cmdcol_Click() '\"求列和\"按钮 Dim colsum As Integer txtcol.Text = \"\"

For j = 1 To 5 '列变量先循环 colsum = 0

For i = 1 To 4

colsum = colsum + a(i, j) Next i

txtcol.Text = txtcol.Text & Str(colsum) Next j

End Sub

Private Sub cmdrow_Click() '\"求行和\"按钮 Dim rowsum As Integer

txtrow.Text = \"\"

For i = 1 To 4 '行变量先循环 rowsum = 0 For j = 1 To 5

rowsum = rowsum + a(i, j) Next j

txtrow.Text = txtrow.Text & CStr(rowsum) & vbCrLf Next i End Sub

Private Sub cmdclear_Click() '\"清除\"按钮 Picture1.Cls txtcol.Text = \"\" txtrow.Text = \"\" End Sub

Private Sub cmdexit_Click() '\"结束\"按钮 End End Sub

4. Option Base 1 Private Sub Form_Click()

40

第1章 概述

Dim a() As Integer, b() As Integer, i As Integer, j As Integer, x As Integer, y As Integer x = InputBox(\"第一维上界\") Do While Not IsNumeric(x)

x = Int(InputBox(\"第一维上界\")) Loop

y = InputBox(\"第二维上界\") Do While Not IsNumeric(x)

y = Int(InputBox(\"第二维上界\")) Loop

ReDim a(x, y)

Print \"原数组元素为:\"

For i = 1 To x

For j = 1 To y

a(i, j) = Int(90 * Rnd) + 10 Print a(i, j); Next j

Print Next i

Print \"转置后数组元素为:\" For i = 1 To y For j = 1 To x Print a(j, i); Next j Print Next i End Sub

5. Option Base 1

Private Sub Form_Click()

Dim a(10, 10) As Integer, i As Integer, j As Integer For i = 1 To 10

For j = 1 To 10

If i = j Or i + j = 11 Then a(i, j) = 0 Else

a(i, j) = 1 End If Print a(i, j); Next j Print Next i

41

第1章 概述

End Sub

6. Option Explicit Option Base 1

Private Sub Command1_Click()

Dim i As Integer, j As Integer, n As Integer, k As Integer, a(11) As Integer j = 1

For i = 3 To 21 Step 2 a(j) = i Print a(j); j = j + 1 Next i

Print

n = InputBox(\"请输入一个数\") For i = 1 To 10

If n = a(i) Then For j = i To 10 a(j) = a(j + 1) k = k + 1 Next j End If Next i

For i = 1 To 9 Print a(i); Next i End Sub

7. Option Base 1

Private Sub Form_Click() Dim a As Variant, k As Integer, i As Integer, j As Integer Dim b As Variant

b = Array(17, 35, 128, 235, 89, 121, 143, 189, 231, 94)

a = Array(11.3, 12.3, 12#, 11.8, 12.6, 11.6, 12.8, 11.8, 12.4, 12.1)

For i = 1 To 9 '对数组a的元素排序 k = i

For j = i + 1 To 10

If a(k) > a(j) Then k = j Next j

If k <> i Then '数组b的元素随数组a的元素一起变动 t = a(i) a(i) = a(k) a(k) = t

42

第1章 概述

t = b(i) b(i) = b(k) b(k) = t End If

Next i

Print \"按名字的排列顺序为:\"

For i = 1 To 10

If Len(b(i)) = 2 Then b(i) = \"0\" & b(i) '补上数组b中长度为2的编号前的\"0\" Print \"第\" & i & \"名的号码为:\" & b(i) & \",成绩为:\" & a(i) Next i End Sub

第7章 过程

二、单选题

1.C 2. D 3.C 4.D 5. B 6.A 7. B 8.B 9.C 10.D 11.C 12.D 13.B 14.B 15.C 16.A 17.B 18.B

三、填空题 1.52 51 2.4 11 8 35 3.1 3 5 四.编程及上机调试:

1. Private Sub Command1_Click() Dim n As Integer

For n = 100 To 1600 Step 500

Print \"n=\"; n; \"时π的近似值是:\"; pi(n) Next n End Sub

Private Function pi(x As Integer) As Single

Dim s As Single, k As Integer, m As Integer s = 0 k = 1 m = 1

Do

s = s + m / k m = -m k = k + 2

43

第1章 概述

Loop While k <= x pi = 4 * s End Function

Private Sub Command2_Click() End End Sub

2. Private Sub Command1_Click() Dim x As Integer, i As Integer x = Val(Text1) For i = 1 To x

If prime(i) And prime(x - i) Then

Label2 = Str(x) & \"是\" & Str(i) & \"和\" & Str(x - i) & \"两个素数之和\" Exit Sub End If Next i End Sub

Private Function prime(x As Integer) As Boolean For i = 2 To Int(Sqr(x)) If x Mod i = 0 Then prime = False Exit Function End If Next i

prime = True End Function

Private Sub Command2_Click() End End Sub

3. Option Explicit Option Base 1

Dim a(10) As Integer

Private Sub Command1_Click() Randomize

Dim i As Integer For i = 1 To 10

a(i) = Int(Rnd * 90) + 10 Text1 = Text1 + Str(a(i)) Next i

Call sort(a) For i = 1 To 10

Text2 = Text2 + Str(a(i))

44

第1章 概述

Next i

End Sub

Private Sub sort(a() As Integer)

Dim k As Integer, i As Integer, j As Integer, t As Integer k = UBound(a) For i = 1 To k - 1 For j = i + 1 To k If a(i) < a(j) Then t = a(i) a(i) = a(j) a(j) = t End If Next j Next i End Sub

Private Sub Command2_Click() End End Sub

4. Option Explicit

Private Sub Command1_Click()

Dim i As Integer, j As Integer, s As Integer

For i = 2 To 1000 S=0

For j=1 To i - 1

If I mod j=0 Then s=s+j Next j

If s=i Then Print I,

Next i End Sub

5. Public a(10) As Integer

Public Sub sort(a() As Integer)

Dim i As Integer, j As Integer, t As Integer For i = 1 To UBound(a) - 1

For j = i + 1 To UBound(a) If a(i) > a(j) Then t = a(i) a(i) = a(j) a(j) = t End If Next j Next i

45

第1章 概述

End Sub

Public Function max(a() As Integer) As Integer max = a(1)

For i = 2 To UBound(a) If max < a(i) Then max = a(i) End If Next i End Function 窗体Form1代码

Private Sub Command1_Click() Dim i As Integer Randomize

For i = 1 To UBound(a)

a(i) = Int(Rnd * 90) + 11 Text1 = Text1 & Str(a(i)) Next i End Sub

Private Sub Command2_Click() Form1.Hide Form2.Show

End Sub

Private Sub Command3_Click() Text2 = max(a) End Sub

Private Sub Command4_Click() End End Sub

窗体Form2代码

Private Sub Command1_Click() Call sort(a)

For i = 1 To UBound(a) Text1 = Text1 & Str(a(i)) Next i End Sub

Private Sub Command2_Click() Form2.Hide Form1.Show End Sub

第8章 程序调试

46

第1章 概述

二.上机调试题

1. Option Explicit

Private Sub Form_Click()

Dim a() As Single, i As Integer Dim y As Single i = 1 Do

ReDim a(i) „改为ReDim Preserve A(I) a(i) = 1 / fib(i)

If a(i) <= 0.0001 Then Exit Do „改为a(i) < 0.0001

y = y + a(i) i = i + 1 Loop

Print \"y=\"; y

For i = 1 To UBound(a) Print a(i); Next i End Sub

Private Function fib(i As Integer) As Integer If i = 1 Then

fib = 1

ElseIf i = 2 Then fib = 2 Else

Fib(i) = fib(i - 1) + fib(i - 2) „改为Fib=Fib(I-1)+Fib(I-2) End If End Function 2. Option Explicit

Private Sub Command1_Click()

Dim i As Integer, k As Integer, st As String For i = 10 To 500

If wanshu(i) Then st = CStr(i)

Text1.Text = Text1.Text & st

Call test(st)

Text1.Text = Text1.Text & Chr(13) & Chr(10) End If Next i End Sub

Private Function wanshu(n As Integer) As Boolean

47

第1章 概述

Dim i As Integer, sum As Integer

For i = 2 To n – 1 „改为i=1 If n Mod i = 0 Then sum = sum + i End If Next i

If sum = n Then wanshu = True

End Function

Private Sub test(s As String)

Dim i As Integer, sum As Integer

sum = 0 „位置错,和for 语句位置调换 Do While Len(s) > 1 For i = 1 To Len(s) sum = sum + Val(Mid(s, i, 1)) Next i

Text1.Text = Text1.Text & \"->\" & Str(sum)

s = Str(sum) „ 改为s = CStr(sum) Loop End Sub

第9章 数据文件

一、单选题 1.B 2.C 3.A

4.B 5.C 6.B 7.C

8.B

9. 10.A

11. 12.A 13. 14. 15.A 16.B 二、编程及上机调试 1.Private Sub Form_Load()

Open \"d:\\my\ext2.txt\" For Output As #1 End Sub

Private Sub Text1_keyPress(KeyAscii As Integer) If KeyAscii = 13 Then

If Trim(Text1) = \"0000\" Then Close #1 End End If

Write #1, Text1 Text1.Text = \"\" End If End Sub

48

第1章 概述

2.Option Explicit

Private Type Student name As String * 10 age As Integer End Type

Private Sub Command1_Click() Dim Stu As Student

Open \"d:\\my\ext2.txt\" For Random As #1 Len = Len(Stu) Stu.name = \"WangYing\" Stu.age = 20 Put #1, , Stu Close #1

Open \"d:\\my\ext2.txt\" For Random As #1 Len = Len(Stu) Get #1, , Stu

Print \"姓名:\

Print \"年龄:\ Close #1 End Sub

第10章 其它控件

二、选择题 1.B

2.B

3.B

4.C

5.

6.A,C 7.A

8. 9. 10.

11. 12.B 13.

三、填空题 1.菜单编辑器

2.下拉式菜单 弹出式 3. 顶

4. PopupMenu 5. 多文档窗体

6. MDIChild

7. Private Sub HScroll1_Change()

text1 = HScroll1.Value End Sub

Private Sub HScroll1_Scroll() text1 = HScroll1.Value

End Sub

8.Private Sub Toolbar1_ButtonClick(ByVal Button As MSComctlLib.Button)

Select Case Button.Index

Case 1

49

第1章 概述

Form1.BackColor = vbRed Case 2 Form1.BackColor = vbGreen Case 3 Form1.BackColor = vbBlue

End Select

End Sub

四、编程及上机调试

1.Private Sub Picture1_MouseMove(Button As Integer, Shift As Integer, _

X As Single, Y As Single) If Button = 1 Then

Picture1.PSet (X, Y) StatusBar1.Panels(1) = \"X=\" & X StatusBar1.Panels.Item(2) = \"Y=\" & Y

End If End Sub

2.Private Sub Command1_Click() CommonDialog1.FileName = \"\" CommonDialog1.InitDir = \"D:\\\"

CommonDialog1.Filter = \"Word Files|*.doc|文本文件|*.Txt\" '设置过滤器

CommonDialog1.DialogTitle = \"打开文件\" '设置打开对话框的标题 CommonDialog1.Action = 1 '创建\"打开\"对话框

If CommonDialog1.FileName = \"\" Then '判断文件名是否为空

MsgBox \"没有选择文件\检查\" '若为空,则显示信息 Else

Open CommonDialog1.FileName For Input As #1 '打开选定的文件 Do While Not EOF(1)

Line Input #1, a$ '读文件的一行 Text1 = Text1 & a$ & vbCrLf '输出所读的内容 Loop End If End Sub

Private Sub Command2_Click()

CommonDialog1.Flags = 3 '列出打印机和屏幕字体 CommonDialog1.Action = 4 '打开\"字体\"对话框 Text1.FontName = CommonDialog1.FontName '改变文本框的字体 Text1.FontSize = CommonDialog1.FontSize Text1.FontBold = CommonDialog1.FontBold

50

第1章 概述

Text1.FontItalic = CommonDialog1.FontItalic Text1.FontUnderline = CommonDialog1.FontUnderline End Sub

Private Sub Command3_Click() End End Sub 11章 略

51

因篇幅问题不能全部显示,请点此查看更多更全内容