vb for循环 从大到小 k=2e2to100有几次循环

 上传我的文档
 下载
 收藏
 下载此文档
正在努力加载中...
XX大学VB期末考试选择题题库
下载积分:770
内容提示:XX大学VB期末考试选择题题库
文档格式:XLS|
浏览次数:25|
上传日期: 17:44:11|
文档星级:
全文阅读已结束,如果下载本文需要使用
 770 积分
下载此文档
该用户还上传了这些文档
XX大学VB期末考试选择题题库
关注微信公众号当前位置: >>
全国计算机等级考试VB二级历年真题()完整版【木泉论坛】
2002 年 9 月全国计算机等级考试二级 VB 试卷(含答案)一、选择题(每题 2 分,共 70 分) ?? 下列各题 A) 、B) 、C) 、D) 四个选项中,只有一个选 项是正确的,请将正确选项涂写在答题卡相应位置上,答在 试卷上不得分。 ??(1) 在设计阶段,当双击窗体上的某个控件时,所打开的 窗口是 ??A) 工程资源管理器窗口 B) 工具箱窗口 ??C) 代码窗口 D) 属性窗口 ??(2) 以下叙述中正确的是 ??A) 窗体的 Name 属性指定窗体的名称,用来标识一个窗 体 ??B) 窗体的 Name 属性的值是显示在窗体标题栏中的文本 ??C) 可以在运行期间改变对象的 Name 属性的值 ??D) 对象的 Name 属性值可以为空 ??(3) 刚建立一个新的标准 EXE 工程后, 不在工具箱中出现 的控件是 ??A) 单选按钮 B) 图片框 C) 通用对话框 D) 文本框 ??(4) 设有如下变量声明 ?? Dim TestDate As Date ?? 为变量 TestDate 正确赋值的表达方式是 ??A) TextDate=#1/1/2002# B) TestDate=#“1/1/2002”# ??C) TextDate=date(“11/2002”) / D) TestDate=Format(“m/d/yy”,“1/1/2002”) ??(5) 设有如下声明: ?? Dim X As Integer ?? 如果 Sgn(X) 的值为-1,则 X 的值是 ??A) 整数 B) 大于 0 的整数 C) 等于 0 的整数 D) 小于 0 的数 ??(6) 在窗体上画一个名称为 Commandl 的命令按钮,然后 编写如下程序: ??Private Sub Command1_Click() ??Static X As Integer ??Static Y As Inte er g ??Cls ??Y=1 ??Y=Y+5 ??X=5+X ??Print X,Y ??End Sub ?? 程序运行时,三次单击命令按钮 Commandl 后,窗体上显 1 / 103示的结果为 ??A) 15 16 B) 15 6 C) 15 15 D) 5 6 ??(7) 设 a=3,b=5,则以下表达式值为真的是 ??A) a&=b And b&10 B) (a&b)Or(b&0) ??C) (a&0)Eqv(b&0) D) -3+5&a)And(b&0) ( ??(8) 设有语句 ??x=InputBox(“ 入数值”,“0”,“示例”) 输 ?? 程序运行后,如果从键盘上输入数值 10 并按回车键,则 下列叙述中正确的是 ??A) 变量 X 的值是数值 10 B) 在 InputBox 对话框标题栏中 显示的是“示例” ??C) 0是默认值 D) 变量 X 的值是字符串“10” ??(9) 从键盘上输入两个字符串,分别保存在变量 str1、str2 中。确定第二个字符串在第一个字符串中起始位置的函数是 ??A) Left B) Mid C) String D) Instr ??(10) 设 a=“Visual Basic”,下面使 b=“Basic”的语句是 ??A) b=Left(a,8,12) B) b=Mid(a,8,5) ??C) b=Rigth(a,5,5) D) b=Left(a,8,5) ??(11) 以下能够触发文本框 Change 事件的操作是 ??A) 文本框失去焦点 B) 文本框获得焦点 ??C) 设置文本框的焦点 D) 改变文本框的内容 ??(12) 在窗体上有一个文本框控件,名称为 TxtTime:一个 计时器控件,名称为 Timerl,要求每一秒钟在文本框中显示 一次当前的时间。程序为: ??Private Sub Timer1_ () ? ?TxtTime.text=Time ??End Sub ?? 在下划线上应填入的内容是 ??A) Enabled B) Visible C) Interval D) Timer ??(13) 在窗体上画两个单选按钮,名称分别为 Option1、 Option2,标题分别为“宋体”和“黑体”;一个复选框,名称为 Check1,标题为“粗体”;一个文本框,名称为 Text1,Text 属 性为“改变文字字体”。要求程序运行时,“宋体”单选按钮和 “粗体”复选框被选中(窗体外观如下图) ,则能够实现上述要 求的语句序列是 ?? ??A) Option1.value=True B) Option1.Value=True ??Check1.Value=False Check1.Value=True ??C) Option2.Value=False D) Option1.Value=True ??Check1.Value=True Check1.Value=1 ??(14) 为了在按下 Esc 键时执行某个命令按钮的 Click 事件 过程,需要把该命令按钮的一个属性设置为 True,这个属性 是 ??A) Value B) Default C)Cancel D) Enabled ??(15) 在窗体上画一个命令按钮, 名称为 Command1。 然后 编写如下程序: ??Private Sub Command1_Click() ?? For I=1 To 4 ?? For J=0 To 1 ?? Print Chr$(65+I); ?? Next J ?? Print ?? Next I ??End Sub ?? 程序运行后,如果单击命令按钮,则在窗体上显示的内容 是 ??A) BB B) A C) B D) AA ??CC BB CC BBB ??DDDDCCC DDD CCCC ??EEEEE DDDD EEEE DDDDD ??(16) 图像框有一个属性,可以自动调整图形的大小,以 适应图像框的尺寸,这个属性是 ??A) Autosize B) Stretch ??C) AutoRedraw D) Appearance ??(17) 在窗体上画两个名称分别为 Text1、Texte2 的文本框 和一个名称为 Command1 的命令按钮,然后编写如下事件过 程: ??Private Sub Command1_Click() ??Dim x As Integer,n Integer As ??x=1 ??n=0 ??Do While x&20 ??x=x*3 ??n=n+1 ??Loop ??Text1.Text=Str(x) ??Text2.Text=Str(n) ??End Sub ?? 程序运行后,单击命令按钮,在两个文本框中显示的值分 别是 ??A) 15和 1 B) 27 和 3 C) 195 和 3 D) 600 和 4 ??(18) 在窗体上画一个名称为 Text1 的文本框和一个名称 为 Command1 的命令按钮,然后编写如下事件过程: ??Private Sub Comman 1_Click() d ??Dim i As Integer,n As Integer ??For I=0 To 50 ??i=i+3 ??n=n+1 2 / 103??If i&10 Then xit for ??Next ??Text1.Text=Str(n) ??End Sub ?? 程序运行后,单击命令按钮,在文本框中显示的值是 ??A) 2 B) 3 D) 4 D) 5 ??(19) 在窗体上画一个名称为 Text1 的文本框和一个名称 为 Command1 的命令按钮,然后编写如下事件过程: ??Private Sub C ommand1_Click() ??Dim array1(10,10) As Integer ??Dim i,j As Integer ??For i=1 To 3 ??For j=2 To 4 ??array1(i,j)=i+j ??Next j ??Next I ??Text1.Text=array1(2,3)+array1(3,4) ??End Sub ?? 程序运行后,单击命令按钮,在文本框中显示的值是 ??A) 12 B) 13 C) 14 D) 15 ??(20) 在窗体上画一个名称为 Command1 的命令按钮,然 后编写如下程序: ??Private Sub Command1_Click() ??Dim i As Integer,j As Integer ??Dim a(10,10)As Integer ??For i=1 To 3 ??For j=1 To 3 ??a(i,j)=(i -1)*3+j ??Print a(i,j); ??Next j ??Print ??Next j ??End Sub ?? 程序运行后,单击命令按钮,窗体上显示的是 ??A) 123 B) 234 C) 147 D)123 ?? 246 345 258 456 ?? 369 456 369 789 ?? (21) 设有如下程序: ??Option Base 0 ??Private Sub Form_Click() ??Dim a ??Dim i As Integer ??a=Array(1,2,3,4,5,6,7,8,9) ??For i=0 To 3 ??Print a(5i); ??Next ?? End Sub ?? 程序运行后,单击窗体,则在窗体上显示的是 ??A) 4 3 2 1 B) 5 4 3 2 C)6 5 4 3 D) 7 6 5 4 ??(22) 下列叙述中正确的是 ??A) 在窗体的 Form_Load 事件过程中定义的变量是全局变 量 ??B) 局部变量的作用域可以超出所定义的过程 ??C) 在某个 Sub 过程中定义的局部变量可以与其它事件过 程中定义的局部变量同名,但其作用域只限于该过程 ??D) 在调用过程时,所有局部变量被系统初始化为 0 或空 字符串 ??(23) 在窗体上画一个命令按钮, 名称为 Command1。 程序 运行后,如果单击命令按钮,则显示一个输入对话框,在该 对话框中输入一个整数,并用这个整数作为实参调用函数过 程 F1。在 F1 中判断所输入的整数是否是奇数,如果是奇数, 过程 F1 返回 1,否则返回 0。能够正确实现上述功能的代码 是 ??A) Private Sub Command1_Click() ??x=InputBox(“ 输入整数”) 请 ??a=F1(Val(x)) ??Print a ??End Sub ?? ??Function F1(ByRef b As Integer) ??If b Mod 2=0 Then ??Return 0 ??Else ??Return 1 ??End If ??EndFunction ??B) Private Sub Command1_Click() ??x=InputBox(“ 输入整数”) 请 ??a=F1(Val(x)) ??Print a ??End Sub ?? ??Function F1(ByRef b As Integer) ??If b Mod 2=0 Then ??F1=0 ??Else ??F1=1 ??End If 3 / 103??End Function ??C) Private Sub Command1_Click() ??x=InputBox(“ 输入整数”) 请 ??F1(Val(x)) ??Print a ??End Sub ?? ??Function F1(ByRef b As Integer) ??If b Mod 2=0 Then ??F1=1 ??Else ??F1=0 ??End If ??End Function ??D) Private Sub Command1_Click() ??x=InputBox(“ 输入整数”) 请 ??F1(Val(x)) ??Print a ??End Sub ?? ??Function F1(ByRef b As nteger) I ??If b Mod 2=0 Then ??Return 0 ??Else ??Return 1 ??End If ??End Function ??(24) 在窗体上画一个名称为 Command1 的命令按钮和一 个名称为 Text1 的文本框,然后编写如下程序: ??Private Sub Command1_Click() ??Dim x,y,z As Integer ??x=5 ??y=7 ??z=0 ??Text1.text=“” ??Call P1(x,y,z) ??Text1.Text=S tr(x) ??End Sub ??Sub P1(ByVal a As Integer,ByVal b As Integer,c As Integer) ??c=a+b ??End Sub ?? 程序运行后,如果单击命令按钮,则在文本框中显示的内 容是 ??A) 0 B) 12 C) Str(z) D) 没有显示 ??(25) 以下叙述中错误的是 ??A) 如果过程被定义为 Static 类型,则该过程中的局部变 量都是 Static 类型 ??B) Sub过程中不能嵌套定义 Sub 过程 ??C) Sub过程中可以嵌套调用 Sub 过程 ??D) 事件过程可以像通用过程一样由用户定义过程名 ??(26) 以下叙述中错误的是 ??A) 在 KeyUp 和 KeyDown 事件过程中,从键盘上输入 A 或 a 被视作相同的字母(即具有相同的 KeyCode) ??B) 在 KeyUp 和 KeyDown 事件过程中,将键盘上的“1” 和右侧小键盘上的“1”视作不同的数字(具有不同的 KeyCode) ??C) KeyPress事件中不能识别键盘上某个键的按下与释放 ??D) KeyPress事件中可以识别键盘上某个键的按下与释放 ??(27) 以下叙述中错误的是 ??A) 在同一窗体的菜单项中,不允许出现标题相同的菜单 项 ??B) 在菜单的标题栏中,“&”所引导的字母指明了访问该 菜单项的访问键 ??C) 程序运行过程中,可以重新设置菜单的 Visible 属性 ??D) 弹出式菜单也在菜单编辑器中定义 ??(28) 设在菜单编辑器中定义了一个菜单项,名为 menu1。 为了在运行时隐藏该菜单项,应使用的语句是 ??A) menu1.Enabled=True B) Munu1.Enabled=False ??C) Menu1.Visible=True D) Menu1. Visible=False ??(29) 以下叙述中错误的是 ??A) 在程序运行时,通用对话框控件是不可见的 ??B) 在同一个程序中,用不同的方法(如 ShowOpen 或 ShowSave 等)打开的通用对话框具有不同的作用 ??C) 调用通用对话框控件的 ShowOpen 方法,可以直接打 开在该通用对话框中指定的文件 ??D) 调用通用对话框控件的 ShowColor 方法,可以打开颜 色对话框 ??(30) 在用通用对话框控件建立“打开”或“保存”文件对话 框时,如果需要指定文件列表框所列出的文件类型是文本文 件(即.txt 文件),则正确的描述格式是 ??A) “text (.txt)|(*.txt)” B)“ 本文件( .txt) | (.txt)” 文 ??C) “text(.txt)||(*.txt)” D)“text(.txt)(*.txt)” ??(31) 以下叙述中错误的是 ??A) 一个工程中只能有一个 Sub Main 过程 ??B) 窗体的 Show 方法的作用是将指定的窗体装入内存并 显示该窗体 ??C) 窗体的 Hide 方法和 Unload 方法的作用完全相同 ??D) 若工程文件中有多个窗体,可以根据需要指定一个窗 体为启动窗体 4 / 103??(32) 以下叙述中错误的是 ??A) 一个工程中可以包含多个窗体文件 ??B) 在一个窗体文件中用 Private 定义的通用过程能被其他 窗体调用 ??C) 在设计 VB 程序时,窗体、标准模块、类模块等需要 分别保存为不同类型的磁盘文件 ??D) 全局变量必须在标准模块中定义 ??(33) 设在工程中有一个标准模块,其中定义了如下记录 类型 ??Type Books ??Name As String *10 ??TelNum As String *20 ??End Type ?? 在窗体上画一个名为 Command1 的命令按钮。要求当执 行事件过程 Command1_Click 时,在顺序文件 Person.txt 中写 入一条记录。下列能够完成该操作的事件过程是 ??A) Private Sub Command1_Click() ??Dim B As Books ??Open “c: \Person.txt”For Output As #1 ??B.Name=InputBox(“ 入姓名”) 输 ??B.TelNum=InputBox(“ 入电话号码”) 输 ??Write #1,B.Name,B.TelNum ??Clos #1 e ??End Sub ??B) Private Sub Command1_Click() ??Dim B As Books ??Open “c: \Person.txt”For Input As #1 ??B.Name=InputBox(“ 入姓名”) 输 ??B.TelNum=InputBox(“ 入电话号码”) 输 ??Print #1,B.Name,B.TelNum ??Close #1 ??End Sub ??C) Private Sub Command1_Click() ??Dim B As Boo s k ??Open “c: \Person.txt”For Output As #1 ??B.Name=InputBox(“ 入姓名”) 输 ??B.TelNum=InputBox(“ 入电话号码”) 输 ??Write #1,B ??Close #1 ??End Sub ??D) Private Sub Command1_Click() ??Open “c: \Person.txt”For Input As #1 ??Name=InputBox(“ 入姓名”) 输 ??TelNum=InputBox(“ 入电话号码”) 输 ??Print #1,Name,TelNum ??Close #1 ??End Sub ??(34) 以下叙述中正确的是 ??A) 一个记录中所包含的各个元素的数据类型必须相同 ??B) 随机文件中每个记录的长度是固定的 ??C) Open命令的作用是打开一个已经存在的文件 ??D) 使用 Input #语句可以从随机文件中读取数据 ??(35) 目录列表框的 Path 属性的作用是 ??A) 显示当前驱动器或指定驱动器上的目录结构 ??B) 显示当前驱动器或指定驱动器上的某目录下的文件名 ??C) 显示根目录下的文件名 ??D) 显示该路径下的文件 ?? 二、填空题( 每空 2 分,共 40 分) ?? 请将每空的正确答案写在答题卡( 1)至( 15) 的横线上, 答在试卷上不得分。 ??(1) 在 窗 体 上 画 两 个 标 签 , 其 名 称 分 别 为 Label1 和 Label2,Caption 属性分别为“数值”及空白;然后画一个名称为 Hscoll1 的水平滚动条,其 Min 的值为 0,Max 的值为 100。 程序运行后,如果单击滚动条两端的箭头,则在标签 Lable2 中显示滚动条的值,如图所示。请在 [1] 和 [2] 处填入适当 的内容,将程序补充完整。 ?? ?? ?? ?? ?? ?? ?? ??Private Sub HScroll1_ [1] () ??Labl2.Caption=HScroll1. [2] ??End Sub ??(2) 在窗体上画一个名称为 Command1、标题为“计算”的 命令按钮;画两个文本框,名称分别为 Text1 和 Text2;然后 画 4 个标签,名称分别为 Label1、Label2、Label3 和 Label4, 标题分别为“操作数 1”、“操作数 2”、“运算结果”和空白;再 建立一个含有 4 个单选按纽的控件数组,名称为 Option1,标 题分别为“+”、“-”、“*”和“/”。程序运行后,在 Text1、Text2 中输入两个数值,选中一个单选按钮后单击命令按钮,相应 的计算结果显示在 Label4,程序运行情况如图所示。请在 [3] 、 [4] 和 [5] 处填入适当的内容,将程序补充完整。 ?? ?? ??Private Sub Command1_Click() 5 / 103??For i=0 To 3 ??If [3] =True then ??opt=Option1(i).Caption ??End If ??Next ??Select Case [4] ??Case”+” ??Result=Val(Text1.Text)+Val(Text2.Text) ??Case”” ??Result=Val(Text1.Text) -Val(Text2.Text) ??Case”*” ??Result=Val(Text.Text)*Val(Text2.Text) ??Case”/” ??Result=Val(Text1.Text)/Val(Text2.Text) ??End Select ?? [5] =Result ??End Sub ??(3) 在窗体上画一个名称为 Command1 的命令按钮和一个 名称为 Text1 的文本框。程序运行后,Command1 为禁用(灰 色) 。当向文框中输入任何字符时,命令按钮 Command1 变 为可用。请在 [6] 处填入适当的内容,将程序补充完整。 ??Private Sub Form_Load() ??Command1.Enabled=False ??End Sub ??Private Sub Text1_ [6] () ??Command1.Enabled=True ??End Sub ??(4) 在菜单编辑器中建立了一个菜单,名为 pmenu,用下 面的语句可以把它作为弹出式菜单弹出,请填空。 ?? Form1. [7] Pmenu ??(5) 以下程序的功能是:从键盘上输入若干个学生的考试 分数,当输入负数时结束输入,然后输出其中的最高分数和 最低分数。请在 [8] 和 [9] 处填入适当的内容,将程序补充 完整。 ??Private Sub Form_Click() ??Dim x As Single,amax As Single,amin As Single ??x=InputBox(“Enter a score”) ??amax=x ? ?amin=x ??Do While [8] ??If x&amax Then ??Amax=x ??End If ??If [9]Then ??Amin=x ??End If ??x=InputBox(“Enter a score”) ??Loop ??Print”Max=”;amax,”Min=”;amin ??End Sub ??(6) 在窗体上画一个文本框和一个图片框,然后编写如下 两个事件过程: ??Private Sub Form_Load() ??Text1.Text=” 算机” 计 ??EndSub ??Private Sub Text1_Change() ??Picture1.Print“ 级考试” 等 ??End Sub ?? 程序运行后,在文本框中显示的内容是 [10] ,而在图 片框中显示的内容是 [11] 。 ??(7) 在窗体上画一个命令按钮,其名称为 Command1,然 后编写如下程序: ??Function M(x As Integer,y As Integer)As Integer ??M=IIf(x&y,x,y) ??End Function ??Private Sub comman 1_Click() d ??Dim a As Integer,b As Integer ??a=100 ??b=200 ??Print M(a,b) ??End Sub ?? 程序运行后,单击命令按钮,输出结果为 [12] 。 ??(8) 为了改变计时器控件的时间间隔,应该修改该控件的 [13] 属性。 ??(9) 在窗体上画一个名称为 Lable1 的标签和一个名称为 List1 的列表框。程序运行后,在列表框中添加若干列表项。 当双击列表框中的某个项目时,在标签 Label1 中显示所选中 的项目,如图所示。请在 [14] 和 [15] 处填入适当的内容将 程序补充完整。 ??Private Sub Form_load() ??List1.AddItem” 京” 北 ??List1.AddItem” 海” 上 ??List1.AddItem” 北” 湖 ??End Sub ??Private Sub [14] () ??Label1.Caption= [15] ??End Sub ?? 200??2002年 9 月全国计算机等级考试二级 VB 试卷答案 ?? ?? (无锡伊斯特教育培训中心考点提供) ?? ?? 一、选择题: ??1 10 C A C A D B B D D B ― ??11 20 D D D C A B B B A D ― ??21 30 C C B B D C A D C A ― ??31 35 C B A D A ― ?? ?? 二、填空题: ?? ??1 CHANGE 、 OPTION1(I).VALUE 4、OPT CHANGE 7、 POPUPMENU 10、计算机 8、X&=0 11、等级考试 9、X 12、 5、LABEL4。CAPTION 6、 2、VALUE 3、13、Interval LIST1.TXT14、LIST1_DBLCLICK15、2003 年 4 月全国计算机等级考试二级笔试试卷及答案.doc一、选择题((1)~(20)每小题 2 分,(21)~(30)每小题 3 分,共 30 题,70 分) 下列各题 A)、B)、C)、D)四个选项中,只有一个选项是正确 的,请将正确选项涂在答题卡的相应位置上,答在试卷上不得分。(1)以下不能在&工程资源管理器&窗口中列出的文件类型是 A).bas B).res C).frm D).ocx(2)以下关于窗体的描述中,错误的是 A)执行 Unload Form1 语句后,窗体 Form1 消失,但仍在内存中 B)窗体的 Load 事件在加载窗体时发生 C)当窗体的 Enabled 属性为 False 时,通过鼠标和键盘对窗体 的操作都被禁止 D)窗体的 Height、Width 属性用于设置窗体的高和宽 6 / 103 (3)下列可作为 Visual Basic 变量名的是 A)A#A B)4A C)?xy D)constAc$ = Mid(a$, 1, 8) MsgBox a$, , b$, c$, 1 End Sub(4)设有如下的记录类型 则在弹出的信息框的标题栏中显示的信息是 Type Student A)software and hardware B)software C)hardware D)1 number As String name As String age As Integer End Type 则正确引用该记录类型变量的代码是 A) Student.name = &张红& B) Dim s As Student s.name = &张红& (9)表示滚动条控件取值范围最大值的属性是 C) Dim s As Type Student D) Dim s As Type A)Max B)LargeChange C)Value D)Max-Min s.name = &张红& s.name = &张红& (10) 在窗体上画一个名称为 List1 的列表框, 一个名称为 Label1 (5)函数 String(n, &str&)的功能是 的标签。列表框中显示若干城市的名称。当单击列表框中的某个 A)把数值型数据转换为字符串 城市名时,在标签中显示选中城市的名称。下列能正确实现上述 B)返回由 n 个字符组成的字符串 功能的程序是 C)从字符串中取出 n 个字符 A) Private Sub List1_Click() B)Private Sub List1_Click() D)从字符串中第 n 个字符的位置开始取子字符串 Label1.Caption = List1.ListIndex Label1. Name = List1. (6)将数学表达式 Cos2(a+b)+5e2 写成 Visual Basic 的表达式, 其正确的形式是 A)Cos (a+b) ^2+5*exp(2) B)Cos^2(a+b)+ 5*exp(2) C)Cos (a+b) ^2+5*ln(2) D)Cos^2(a+b)+ 5*ln(2) ListIndex End Sub End Sub C) Private Sub List1_Click() D)Private Sub List1_Click() Label1.Name = List1.Text Label1.Caption = List1.Text End Sub End Sub (7)在窗体上画一个命令按钮,名称为 Command1。单击命令按 钮时,执行如下事件过程: Private Sub Command1_Click() a$ = &software and hardware& b$ = Right(a$, 8) (11)在窗体上画一个名称为 Command1 的命令按钮,然后编写如 下事件过程: Private Sub Command1_Click() x = 0 7 / 103 (8)执行如下语句: a = InputBox(&Today&, &Tomorrow&, &Yesterday&, , , &Day before yesterday&, 5) 将显示一个输入对话框,在对话框的输入区中显示的信息是 A)Today B)Tomorrow C)Yesterday D)Day before yesterday n = InputBox(&&) For i = 1 To n For j = 1 To i程序运行后,如果单击命令按钮,则在窗体上显示的内容是 A)空白 B)错误提示 C)北京 D)上海(15)假定有以下函数过程: x = x + 1 Function Fun(S As String) As String Next j Dim s1 As String Next i For i = 1 To Len(S) Print x s1 = UCase(Mid(S, i, 1)) + s1 End Sub Next i 程序运行后,单击命令按钮,如果输入 3,则在窗体上显示的内 Fun = s1 容是 End Function A)3 B)4 C)5 D)6 在窗体上画一个命令按钮,然后编写如下事件过程: (12)以下关于菜单的叙述中,错误的是 A)在程序运行过程中可以增加或减少菜单项 B)如果把一个菜单项的 Enabled 属性设置为 False,则可删除该 菜单项 C)弹出式菜单在菜单编辑器中设计 D)利用控件数组可以实现菜单项的增加或减少 Private Sub Command1_Click() Dim Str1 As String, Str2 As String Str1 = InputBox(&请输入一个字符串&) Str2 = Fun(Str1) Print Str2 End Sub 程序运行后,单击命令按钮,如果在输入对话框中输入字符串 (13)在窗体上画三个单选按钮,组成一个名为 chkOption 的控 &abcdefg&,则单击&确定&按钮后在窗体上的输出结果为 件数组。用于标识各个控件数组元素的参数是 A)abcdefg B)ABCDEFG C)gfedcba D)GFEDCBA A)Tag B)Index C)ListIndex D)Name (16)设有语句 (14)在窗体上画一个命令按钮,名称为 Command1,然后编写如 Open &c:\Test.Dat& For Output As #1 下事件过程: 则以下错误的叙述是 Option Base 0 A)该语句打开 C 盘根目录下一个已存在的文件 Test.Dat Private Sub Command1_Click() B)该语句在 C 盘根目录下建立一个名为 Test.Dat 的文件 Dim city As Variant C)该语句建立的文件的文件号为 1 city = Array(&北京&, &上海&, &天津&, &重庆&) D)执行该语句后,就可以通过 Print #语句向文件 Test.Dat 中 Print city(1) 写入信息 End Sub 8 / 103 (17)以下叙述中错误的是 A)用 Shell 函数可以调用能够在 Windows 下运行的应用程序 B)用 Shell 函数可以调用可执行文件,也可以调用 Visual Basic 的内部函数 C)调用 Shell 函数的格式应为:&变量名&=Shell (??) D)用 Shell 函数不能执行 DOS 命令 (18)以下关于过程及过程参数的描述中,错误的是 A)过程的参数可以是控件名称 B)用数组作为过程的参数时,使用的是&传地址&方式PopupMenu popForm End If End Sub 则以下描述中错误的是 A)该过程的功能是弹出一个菜单 B)popForm 是在菜单编辑器中定义的弹出式菜单的名称 C)参数 X、Y 指明鼠标的当前位置 D)Button = 2 表示按下的是鼠标左键(22)以下能够正确计算 n!的程序是 C)只有函数过程能够将过程中处理的信息传回到调用的程序中 A)Private Sub Command1_Click() D)窗体可以作为过程的参数 n = 5: x = 1 (19)在窗体上画一个名称为 TxtA 的文本框,然后编写如下的事 件过程: Private Sub TxtA_KeyPress(keyascii as integer) ?? End Sub 若焦点位于文本框中,则能够触发 KeyPress 事件的操作是 A)单击鼠标 B)双击文本框 C)鼠标滑过文本框 D)按下键盘上的某个键 Do x = x * i i = i + 1 Loop While i & n Print x End Sub B)Private Sub Command1_Click() n = 5: x = 1: i = 1 Do (20)目录列表框的 Path 属性的作用是 x = x * i A)显示当前驱动器或指定驱动器上的路径 i = i + 1 B)显示当前驱动器或指定驱动器上的某目录下的文件名 Loop While i & n C)显示根目录下的文件名 Print x D)只显示当前路径下的文件 End Sub (21)假定有如下事件过程: Private Sub Form_MouseDown(Button As Integer, Shift As Integer, X As Single, Y As Single) If Button = 2 Then C)Private Sub Command1_Click() n = 5: x = 1: i = 1 Do x = x * i 9 / 103 i = i + 1 Loop While i &= n Print x End Sub D)Private Sub Command1_Click() n = 5: x = 1: i = 1 Do x = x * i i = i + 1 Loop While i & n Print x End Sub(24)在窗体上画一个名称为 Command1 的命令按钮,一个名称为 Label1 的标签,然后编写如下事件过程: Private Sub Command1_Click() s = 0 For i = 1 To 15 x = 2 * i - 1 If x Mod 3 = 0 Then s = s + 1 Next i Label1.Caption = s End Sub 程序运行后,单击命令按钮,则标签中显示的内容是 A)1 B)5 C)27 D)45(23)在窗体上画一个名称为 Command1 的命令按钮,再画两个名 称分别为 Label1、Label2 的标签,然后编写如下程序代码: Private X As Integer Private Sub Command1_Click() X = 5: Y = 3 Call proc(X, Y) Label1.Caption = X Label2.Caption = Y End Sub(25) 在窗体上画一个名称为 Command1 的命令按钮和三个名称分 别为 Label1、Label2、Label3 的标签,然后编写如下代码: Private x As Integer Private Sub Command1_Click() Static y As Integer Dim z As Integer n = 10 z = n + z y = y + z x = x + zPrivate Sub proc(ByVal a As Integer, ByVal b As Integer) Label1.Caption = x X = a * a Label2.Caption = y Y = b + b Label3.Caption = z End Sub End Sub 程序运行后,单击命令按钮,则两个标签中显示的内容分别是 运行程序,连续三次单击命令按钮后,则三个标签中显示的内容 A)5 和 3 B)25 和 3 C)25 和 6 D)5 和 6 分别是 A)10 10 10 B)30 30 30 C)30 30 10 D)10 30 30 10 / 103 (26)设在窗体上有一个名称为 Command1 的命令按钮,并有以下 事件过程: Private Sub Command1_Click() Static b As Variant b= Array(1,3,5,7,9) ?? End Sub 此过程的功能是把数组 b 中的 5 个数逆序存放(即排列为 9,7,5,3,1)。为实现此功能,省略号处的程序段应该是 A)For i = 0 To 5-1 \ 2 tmp = b(i) b(i) = b(5 - i - 1) b(5 - i - 1) = tmp Next B)For i = 0 To 5 tmp = b(i) b(i) = b(5 - i - 1) b(5 - i - 1) = tmp Next C)For i = 0 To 5 \ 2 tmp = b(i) b(i) = b(5 - i - 1) b(5 - i - 1) = tmp Next D)For i = 1 To 5 \ 2 tmp = b(i) b(i) = b(5 - i - 1) b(5 - i - 1) = tmp Next (27)在窗体上画一个名称为 Drive1 的驱动器列表框,一个名称为 Dir1 的目录列表框,一个名称为 File1 的文件列表框,两个名 称分别为 Label1、 Label2, 标题分别为空白和&共有文件&的标签。 编写程序,使得驱动器列表框与目录列表框、目录列表框与文件 列表框同步变化, 并且在标签 Label1 中显示当前文件夹中文件的 数量。如图所示。能够正确实现上述功能的程序是 A) Private Sub Dir1_Change() B)Private Sub Dir1_Change() File1.Path = Dir1.Path File1.Path = Dir1.Path End Sub End Sub Private Sub Drive1_Change() Private Sub Drive1_Change() Dir1.Path = Drive1.Drive Dir1.Path = Drive1.Drive Label1.Caption = File1.ListCount Label1.Caption = File1.List End Sub End SubC)Private Sub Dir1_Change() D) Private Sub Dir1_Change() File1.Path = Dir1.Path File1.Path = Dir1.Path Label1.Caption = File1.ListCount Label1.Caption = File1.List End Sub End Sub Private Sub Drive1_Change() Private Sub Drive1_Change() Dir1.Path = Drive1.Drive Dir1.Path = Drive1.Drive Label1.Caption = File1.ListCount Label1.Caption =11 / 103 File1.List End Sub End Sub(28)一个工程中包含两个名称分别为 Form1、Form2 的窗体,一 个名称为 mdlFunc 的标准模块。假定在 Form1、Form2 和 mdlFunc 设有如下的类型声明 中分别建立了自定义过程,其定义格式为: Type Person Form1 中定义的过程: name As String*8 Private Sub frmFunction1() major As String*20 ?? End Type End Sub 当单击&保存&按钮时,将两个文本框中的内容写入一个随机文件 Form2 中定义的过程: Test29.dat 中。设文本框中的数据已正确地赋值给 Person 类型 Public Sub frmFunction2() 的变量 p。则能够正确地把数据写入文件的程序段是 ?? A)Open &c:\Test29.dat& For Random As #1 End Sub Put #1, 1, p mdlFunc 中定义的过程: Close #1 Public Sub mdlFunction() B)Open &c:\Test29.dat& For Random As #1 ?? Get #1, 1, p End Sub Close #1 在调用上述过程的程序中,如果不指明窗体或模块的名称,则以 C)Open &c:\Test29.dat& For Random As #1 Len = Len(p) 下叙述中正确的是 Put #1, 1, p A)上述三个过程都可以在工程中的任何窗体或模块中被调用 Close #1 B)frmFunction2 和 mdlFunction 过程能够在工程中各个窗体或 D)Open &c:\Test29.dat& For Random As #1 Len = Len(p) 模块中被调用 Get #1, 1, p C)上述三个过程都只能在各自被定义的模块中调用 Close #1 D)只有 mdlFunction 过程能够被工程中各个窗体或模块调用 (30)在窗体上画一个名称为 CommonDialog1 的通用对话框,一 (29)窗体上有两个名称分别为 Text1、Text2 的文本框,一个名 个名称为 Command1 的命令按钮。要求单击命令按钮时,打开一个 称为 Command1 的命令按钮。运行后的窗体外观如图所示。 保存文件的通用对话框。该窗口的标题为&Save&,缺省文件名为 &SaveFile&,在&文件类型&栏中显示*.txt。则能够满足上述要求 的程序是 12 / 103 A)Private Sub Command1_Click() CommonDialog1.FileName = &SaveFile& CommonDialog1.Filter = &All Files|*.*|(*.txt)|*.txt|(*.doc)|*.doc& CommonDialog1.FilterIndex = 2CommonDialog1.FilterIndex = 1 CommonDialog1.DialogTitle = &Save& CommonDialog1.Action = 1 End Sub二、填空题(每空 2 分,共 30 分) CommonDialog1.DialogTitle = &Save& 请将每空的正确答案写在答题卡【1】~【15】序号的横线上,答 CommonDialog1.Action = 2 在试卷上不得分。 End Sub (1)Visual Basic 中有一种控件组合了文本框和列表框的特性, B)Private Sub Command1_Click() 这种控件是 【1】 。 CommonDialog1.FileName = &SaveFile& CommonDialog1.Filter = &All Files|*.*|(*.txt)|*.txt|(*.doc)|*.doc& CommonDialog1.FilterIndex = 1 CommonDialog1.DialogTitle = &Save& CommonDialog1.Action = 2 End Sub (3)执行下面的程序段后,变量 S 的值为 【3】 。 S = 5 For i = 2.6 To 4.9 Step 0.6 S = S + 1 C)Private Sub Command1_Click() CommonDialog1.FileName = &Save& CommonDialog1.Filter = &All Files|*.*|(*.txt)|*.txt|(*.doc)|*.doc& CommonDialog1.FilterIndex = 2 (5)计时器控件能有规律的以一定时间间隔触发 【5】 事件, CommonDialog1.DialogTitle = &SaveFile& 并执行该事件过程中的程序代码。 CommonDialog1.Action = 2 End Sub D)Private Sub Command1_Click() CommonDialog1.FileName = &SaveFile& CommonDialog1.Filter = &All Files|*.*|(*.txt)|*.txt|(*.doc)|*.doc& (6)以下程序的功能是:生成 20 个 200 到 300 之间的随机整数, 输出其中能被 5 整除的数并求出它们的和。请填空。 Private Sub Command1_Click() For i = 1 To 20 x = Int( 【6】 * 200 + 100) (4)为了在运行时把 d:\pic 文件夹下的图形文件 a.jpg 装入图 片框 Picture1,所使用的语句为 【4】 。 Next i (2)Visual Basic 提供的对数据文件的三种访问方式为随机访 问方式、【2】和二进制访问方式。13 / 103 If 【7】 = 0 Then Print x S = S + 【8】该程序运行后,单击窗体,则在窗体上显示的内容是:a = 【9】 和 b = 【10】 。(8)在窗体上画一个名称为 Command1 的命令按钮,编写如下事 End If 件过程 Next i Private Sub Command1_Click() Print &Sum = &; S Dim a As String End Sub a = 【11】 (7)设有如下程序 Private Sub Form_Click() Dim a As Integer, b As Integer a = 20: b = 50 p1 a, b p2 a, b p3 a, b Print &a=&; a, &b=&; b End Sub Sub p1(x As Integer, ByVal y As Integer) x = x + 10 y = y + 20 (9)在窗体上画一个名称为 Combo1 的组合框,画两个名称分别 End Sub Label1 和 Label2 及 Caption 属性分别为&城市名称&和空白的标 Sub p2(ByVal x As Integer, y As Integer) 签。程序运行后,当在组合框中输入一个新项后按回车键(ASCII x = x + 10 码为 13)时,如果输入的项在组合框的列表中不存在,则自动添 y = y + 20 加到组合框的列表中,并在 Label2 中给出提示&已成功添加输入 End Sub 项&如图所示;如果存在,则在 Label2 中给出提示&输入项已在组 Sub p3(ByVal x As Integer, ByVal y As Integer) 合框中&。请在 【12】、【13】 和【14】处将程序补充完整。 x = x + 10 y = y + 20 End Sub For i = 1 To 5 Print Space(6 - i); Mid$(a, 6 - i, 2 * i - 1) Next i End Sub 程序运行后,单击命令按钮,要求窗体上显示的输出结果为 5 456 8
请填空。14 / 103 Private Sub Form_Load() Show Dim b() As Variant Dim n As Integer b = Array(1, 3, 5, 7, 9, 11, 13, 15) Private Sub Combo1_ 【12】 (KeyAscii As Integer) If KeyAscii = 13 Then For i = 0 To Combo1.ListCount-1 If Combo1.Text = 【13】 Then Label2.Caption = &输入项已在组合框中& Exit Sub End If Next i Label2.Caption = &已成功添加输入项& (1)D (2)A (3)D (4)B (5)B Combo1. 【14】 Combo1.Text (6)A (7)C (8)C (9)A (10)D End If (11)D (12)B (13)B (14)D (15)D End Sub (16)A (17)B (18)C (19)D (20)A (10)设有如下程序 Private Sub search(a() As Variant, ByVal key As Variant, index%) 二、填空题 Dim I% (1) 【1】 组合框 或 组合 For I = LBound(a) To UBound(a) (2) 【2】 顺序访问方式 或 顺序访问 If key = a(I) Then (3) 【3】 9 index = I (4) 【4】 Picture1.Picture = LoadPicture(&d:\pic\a.jpg&) Exit Sub 或 Picture1 = LoadPicture(&d:\pic\a.jpg&) End If (5) 【5】 Timer Next I (6) 【6】 Rnd 或 Rnd(n),其中 n 为任意整数 index = -1 【7】 x Mod 5 或 Int(x/5)-x/5 或 x/5-Int(x/5) 或 End Sub 15 / 103 (21)D (22)C (23)B (24)B (25)C (26)C (27)C (28)D (29)C (30)A } Call search(b, 11, n) Print n End Sub 程序运行后,输出结果是 【15】 。答案:一、选择题 CInt(x/5)-x/5 或 x/5-CInt(x/5) 或 Round(x/5)-x/5 或 x/5-Round(x/5) 或 x-(x\5)*5 或 (x\5)*5 -x 或 Fix(x/5)-x/5 或 x/5- Fix(x/5) 【8】 x (7) 【9】 30 【10】 70 (8) 【11】 && (9) 【12】 KeyPress 【13】 Combo1.List(i) 【14】 AddItem (10) 【15】 551TestC ) 窗 体 文 件 包 含 该 窗 体 及 其 控 件 的 属 性 www.51test.net www.51test.net 51TestD ) 一 个 工 程 中 可 以 含 有 多 个 标 准 模 块 文 件 www.51test.net www.51test.net www.51test.net 51Test(3)以下叙述中错误的是 www.51test.net www.51test.net www.51test.net 51TestA) 双击鼠标可以触发 DblClick 事件 www.51test.net www.51test.net www.51test.net 51TestB)窗体或控件的事件的名称可以由编程人员确定 www.51test.net www.51test.net www.51test.net 51TestC ) 移 动 鼠 标 时 , 会 触 发 MouseMove 事 件 www.51test.net www.51test.net www.51test.net 51TestD)控件的名称可以由编程人员设定 www.51test.net www.51test.net www.51test.net 51Test(4)以下不属于 Visual Basic 系统的文件类型是 www.51test.net www.51test.net www.51test.net 51TestA).frm B).bat C).vbg D).vbpwww.51test.net www.51test.net www.51test.net 51Test(5)以下叙述中错误的是 www.51test.net www.51test.net www.51test.net 51TestA)打开一个工程文件时,系统自动装入与该工程2003 年 9 月全国计算机等级考试二级 VB 语言笔试试卷 考试时间 90 分钟,满分 100 分)www.51test.netwww.51test.net www.51test.net一、 选择题((1)~(20)每小题 2 分,(21)~(30) 每小题 3 分,共 70 分)www.51test.netwww.51test.net 51Test(1)以下叙述中错误的是 www.51test.net www.51test.net 51TestA)Visual Basic 是事件驱动型可视化编程工具 www.51test.net www.51test.net 51TestB)Visual Basic 应用程序不具有明显的开始和结束语句 www.51test.netwww.51test.net 51TestC)Visual Basic 工具箱中的所有控件都具有宽度(Width)和高度(Height)属性 www.51test.netwww.51test.net 51TestD)Visual Basic 中控件的某些属性只能在运行时设置 www.51test.netwww.51test.net www.51test.net 51Test(2)以下叙述中错误的是 www.51test.net www.51test.net www.51test.net 51TestA)在工程资源管理器窗口中只能包含一个工程文有关的窗体、标准模块等文件 www.51test.netwww.51test.net 51TestB)保存 Visual Basic 程序时,应分别保存窗体文件及工程文件 www.51test.netwww.51test.net 51TestC)Visual Basic 应用程序只能以解释方式执行 www.51test.net www.51test.net www.51test.net件及属于该工程的其他文件 www.51test.netwww.51test.net 51TestB ) 以 .BAS 为 扩 展 名 的 文 件 是 标 准 模 块 文 件 www.51test.net www.51test.net16 / 103 51TestD ) 事 件 可 以 由 用 户 引 发 , 也 可 以 由 系 统 引 发 www.51test.net www.51test.net 51Test(6)以下能正确定义数据类型 TelBook 的代码是 www.51test.net www.51test.net www.51test.net 51TestA)Type TelBook B)Type TelBookwww.51test.net www.51test.net www.51test.net 51TestName www.51test.net 51TestTelNum www.51test.net 2004 年 4 月全国计算机等级考试二级 Visual Basic 笔试试卷(附 参考答案) ?? ?? 一、选择题((1)―(20)每小题 2 分,(21)―(30)每小题 3 分, 共 70 分) ?? 下列各题 A) 、B)、C)、D)四个选项中,只有一个选项是正确 的,请将正确选项涂写在答题卡相应位置上,答在试卷上不得分。 ??(1) 在窗体上画一个名称为 Command1 的命令按钮,然后编写 如下事件过程: ?? Private Sub Command1_Click() ?? Move 500 500 , ?? End Sub ?? 程序运行后,单击命令按钮,执行的操作为 ??A) 命令按钮移动到距窗体左边界、上边界各 500 的位置 ??B) 窗体移动到距屏幕左边界、上边界各 500 的位置 ??C) 命令按钮向左、上方向各移动 500 ??D) 窗体向左、上方向各移动 500 ??(2) 在窗体上有若干控件, 其中有一个名称为 Text1 的文本框。 影响 Text1 的 Tab 顺序的属性是 ??A) TabStop B)Enabled ??C) Visible D)TabIndex ??(3) 以下定义数组或给数组元素赋值的语句中,正确的是 ??A)Dim a As Variant 51TestEnd Type End TelBookwww.51 test.net2004 年 9 月全国计算机等级考试二级 VB 笔试试卷(考试时间 90 分钟,满分 100 分) 一、选择题((1)~(20)每小题 2 分,(21)~(30) 每小题 3 分,共 70 分) 下列各题 A) 、B)、C)、D)四个选项中,只有一 个选项是正确的,请将正确选项填涂在答题卡相 应位置上,答在试卷上不得分。 (1) 设窗体上有一个文本框,名称为 text1,程序 运行后,要求该文本框只能显示信息,不能接受 输入的信息,以下能实现该操作的语句是 A) Text1.MaxLength=0 B) Text1.Enabled=Flase C) Text1.Visible=Flase D) Text1.Width=0 (2) 以下能在窗体 Form1 的标题栏中显示 “VisualBasic 窗体&的语句是 A) Form1.Name=&VisualBasic 窗体& B) Form1.Title=&VisualBasic 窗体& C) Form1.Caption=&VisualBasic 窗体& D) Form1.Text=&VisualBasic 窗体” (3) 在窗体上画一个名称为 Text1 的文本框,然 后画一个名称为 HScroll1 的滚动条,其 Min 和 Max 属性分别为 0 和 100。程序运行后,如果移动 滚动框,则在文本框中显示滚动条的当前值,如 图所示。AsString*10NameAsString*10www.51test.net As Integer TelNum AsIntegerwww.51test.net以下能实现上述操作的程序段是 A) Private Sub Hscroll1_Change() Text1.Text=HScroll1.Value End Sub B) Private Sub Hscroll1_Click() Text1.Text=HScroll1.Value End Sub C) Private Sub Hscroll1_Change()17 / 103 Text1.Text=Hscroll1.Caption End Sub D) Private Sub Hscroll1_Click() Text1.Text=Hscroll1.Caption End Sub (4) 设菜单中有一个菜单项为&Open&。若要为该 菜单命令设置访问键,即按下 Alt 及字母 O 时, 能够执行&Open&命令,则在菜单编辑器中设置 “Open&命令的方式是 A) 把 Caption 属性设置为&Open B) 把 Caption 属性设置为 O&pen C) 把 Name 属性设置为&Open D) 把 Name 属性设置为 O&pen (5) 在窗体上画一个名称为 Command1 的命令按 钮,然后编写如下事件过程: Private Sub Command1_Click() x=InputBox(&Input&) Select Case x Case 1,3 Print &分支 1& Case Is &4 Print &分支 2& Case Else Print &Else 分支 & End Select End Sub 程序运行后,如果在输入对话框中输入 2,则窗 体上显示的是 A) 分支 1 B) 分支 2 C) Else 分支 D) 程序出错 (6) 以下关于 MsgBox 的叙述中,错误的是 A) MsgBox 函数返回一个整数 B) 通过 MsgBox 函数可以设置信息框中图标和按 钮的类型 C) MsgBox 语句没有返回值 D) MsgBox 函数的第二个参数是一个整数,该参数 只能确定对话框中显示的按钮数量 (7) 在窗体上画一个名称为 Timer1 的计时器控 件,要求每隔 0.5 秒发生一次计时器事件,则以 下正确的属性设置语句是 A) Timer1.Interval=0.5 B) Timer1.Interval=5 C) Timer.Interval=50 D) Timer1.Interval=500 (8) 在窗体上画一个名称为 Command1 的命令按 钮,然后编写如下事件过程: Private Sub Command1_Click()Static x As Integer Cls For i=1 To 2 y=y+x x=x+2 Next Print x,y End Sub 程序运行后,连续三次单击 Command1 按钮后,窗 体上显示的是 A) 4 2 B) 12 18 C) 12 30 D) 4 6 (9) 以下关于多重窗体程序的叙述中,错误的是 A) 用 Hide 方法不但可以隐藏窗体,而且能清除 内存中的窗体 B) 在多重窗体程序中,各窗体的菜单是彼此独立 的 C) 在多重窗体程序中,可以根据需要指定启动窗 体 D) 对于多重窗体程序, 需要单独保存每个窗体 (10) 以下关于文件的叙述中,错误的是 A) 顺序文件中的记录一个接一个地顺序存放 B) 随机文件中记录的长度是随机的 C) 执行打开文件的命令后,自动生成一个文件指 针 D) LOF 函数返回给文件分配的字节数 (11) 以下叙述中错误的是 A) 事件过程是响应特定事件的一段程序 B) 不同的对象可以具有相同名称的方法 C) 对象的方法是执行指定操作的过程 D) 对象事件的名称可以由编程者指定 (12) 以下合法的 Visual Basic 标识符是 A) ForLoop B) Const C) 9abc D) a#x (13) 当一个复选框被选中时, 它的 Value 属性的 值是 A) 3 B) 2 C) 1 D) 0 (14) 表达式 5 Mod 3+3\5*2 的值是 A) 0 B) 2 C) 4 D) 6 (15) 设 x=4,y=8,z=7,以下表达式的值是 x&y And (Not y&z) Or z&x A) 1 B) -1 C) True D) False (16) 在窗体上画一个名称为 Command1 的命令按 钮,然后编写如下事件过程: Private Sub Command1_Click() a$=&VisualBasic&18 / 103 Print String(3,a$) End Sub 程序运行后,单击命令按钮,在窗体上显示的内 容是 A) VVV B) Vis C) sic D) 11 (17) 设有如下程序段: x=2 For i=1 To 10 Step 2 x=x+i Next 运行以上程序后,x 的值是 A) 26 B) 27 C) 38 D) 57 (18) 以下叙述中错误的是 A) 在 KeyPress 事件过程中不能识别键盘的按下 与释放 B) 在 KeyPress 事件过程中不能识别回车键 C) 在 KeyDown 和 KeyUp 事件过程中,将键盘输入 的&A&和&a&视作相同的字母 D) 在 KeyDown 和 KeyUp 事件过程中,从大键盘上 输入的&1&和从右侧小键盘上输入的&1&被视作不 同的字符 (19) 执行如下两条语句,窗体上显示的是 a=9.8596 Print Format(a,&$00,00.00&) A) 0,009.86 B) $9.86 C) 9.86 D) $0,009.86 (20) 在窗体上画一个名称为 CommandDialog1 的 通用对话框,一个名称为 Command1 的命令按钮。 然后编写如下事件过程: Private Sub Command1_Click() CommonDialog1.FileName =&& CommonDialog1.Filter=&All file|*.*|(*.Doc)|*.Doc|(*.Txt)|*.Txt& CommonDialog1.FilterIndex=2 CommonDialog1.DialogTitle=&VBTest& CommonDialog1.Action=1 End Sub 对于这个程序,以下叙述中错误的是 A) 该对话框被设置为“打开”对话框 B) 在该对话框中指定的默认文件名为空 C) 该对话框的标题为 VBTest D) 在该对话框中指定的默认文件类型为文本文 件(*.Txt) (21) 设一个工程由两个窗体组成, 其名称分别为 Form1 和 Form2,在 Form1 上有一个名称为Command1 的命令按钮。窗体 Form1 的程序代码如 下: Private Sub Command1_Click() Dim a As Integer a=10 Call g(Form2,a) End Sub Private Sub g(f As Form,x As Integer) y=IIf(x&10,100,-100) f,Show f.Caption=y End Sub 运行以上程序,正确的结果是 A) Form1 的 Caption 属性值为 100 B) Form2 的 Caption 属性值为-100 C) Form1 的 Caption 属性值为-100 D) Form2 的 Caption 属性值为 100 (22) 在窗体上画一个名称为 Command1 的命令按 钮,并编写如下程序: Private Sub Command1_Click() Dim x As Integer Static y As Integer x=10 y=5 Call f1(x,y) Print x,y End Sub Private Sub f1(ByRef x1 As Integer, y1 As Integer) x1=x1+2 y1=y1+2 End Sub 程序运行后,单击命令按钮,在窗体上显示的内 容是 A) 10 5 B) 12 5 C) 10 7 D) 12 7 (23) 设有如下程序 Option Base 1 Private Sub Command1_Click() Dim a(10) As Integer Dim n As Integer n=InputBox(&输入数据&) If n&10 Then Call GetArray(a,n) End If19 / 103 End Sub Private Sub GetArray(b() As Integer,n As Integer) Dim c(10) As Integer j=0 For i=1 To n b(i)=CInt(Rnd()*100) If b(i)/2=b(i)\2 Then j=j+1 c(j)=b(i) End If Next Print j End Sub 以下叙述中错误的是 A) 数组 b 中的偶数被保存在数组 c 中 B) 程序运行结束后,在窗体上显示的是 c 数组中 元素的个数 C) GetArray 过程的参数 n 是按值传送的 D) 如果输入的数据大于 10,则窗体上不显示任 何显示 (24) 在窗体上画一个名称为 Command1 的命令按 钮,然后编写如下事件过程: Option Base 1 Private Sub Command1_Click() Dim a a= Array(1,2,3,4,5) For i=1 To UBound(a) a(i) = a(i)+i-1 Next Print a(3) End Sub 程序运行后,单击命令按钮,则在窗体上显示的 内容是 A) 4 B) 5 C) 6 D) 7 (25) 阅读程序 Option Base 1 Private Sub Form_Click() Dim arr,Sum Sum = 0 arr = Array(1,3,5,7,9,11,13,15,17,19) For i=1 To 10 If arr(i)/3 = arr(i)\3 Then Sum = Sum + arr(i)End If Next i Print Sum End Sub 程序运行后,单击窗体,输出结果为 A) 13 B) 14 C) 27 D) 15 (26) 在窗体上画一个名称为 File1 的文件列表 框,并编写如下程序: Private Sub File1_DblClick() x=Shell(File1.FileName,1) End Sub 以下关于该程序的叙述中,错误的是 A) x 没有实际作用, 因此可以将该语句写为: Call Shell(File1,FileName,1) B) 双击文件列表框中的文件, 将触发该事件过程 C) 要执行的文件的名字通过 File1.FileName 指 定 D) File1 中显示的是当前驱动器、当前目录下的 文件 (27) 在窗体上画一个名称为 Label1、标题为 “VisualBasic 考试”的标签,两个名称分别为 Command1 和 Command2、标题分别为“开始”和 “停止”的命令按钮,然后画一个名称为 Timer1 的计时器控件, 并把其 Interval 属性设置为 500, 如图所示。编写如下程序: Private Sub Form_Load() Timer1.Enabled=False End Sub Private Sub Command1_Click() Timer1.Enabled=True End Sub Private Sub Command2_Click() Timer1.Enabled=False End Sub Private Sub Timer1_Timer() If Label1.Left&Width Then20 / 103 Label1.Left = Label1.Left + 20 Else Label1.Left=0 End If End Sub 程序运行后单击“开始”按钮,标签在窗体中移 动。 对于这个程序,以下叙述中错误的是 A) 标签的移动方向为自右向左 B) 单击“停止”按钮后再单击“开始”按钮, 标 签从停止的位置继续移动 C) 当标签全部移出窗体后, 将从窗体的另一端出 现并重新移动 D) 标签按指定的时间间隔移动 (28) 执行以下程序段 a$=&abbacddcba& For i=6 To 2 Step -2 X=Mid(a,i,i) Y=Left(a,i) z=Right(a,i) z=UCase(X & Y & z) Next i Print z 输出结果为 A) ABA B) BBABBA C) ABBABA D) AABAAB (29) 在窗体上画一个名称为 Command1 的命令按 钮,然后编写如下程序: Option Base 1 Private Sub Command1_Click() Dim a As Variant a=Array(1,2,3,4,5) Sum=0 For i=1 To 5 Sum = sum+a(i) Next i x=Sum/5 For i =1 To 5 If a(i)&x Then Print a(i); Next i End Sub 程序运行后,单击命令按钮,在窗体上显示的内 容是 A) 1 2 B) 1 2 3 C) 3 4 5 D) 4 5 (30) 假定一个工程由一个窗体文件 Form1 和两个标准模块文件 Model1 及 Model2 组成。 Model1 代码如下: Public x As Integer Public y As Integer Sub S1() x =1 S2 End Sub Sub S2() y=10 Form1.Show End Show Model2 的代码如下: Sub Main() S1 End Sub 其中 Sub Main 被设置为启动过程。程序运行后, 各模块的执行顺序是 A) Form1→Model1→Model2 B) Model1→Model2→Form1 C) Model2→Model1→Form1 D) Model2→Form1→Model1 二、填空题(每空 2 分,共 30 分) 请将每空的正确答案写在答题卡【1】~【15】序 号的横线上,答在试卷上不得分。 (1) 设有如下程序段: a$=&BeijingShanghai& b$=Mid(a$,InStr(a$,&g&)+1) 执行上面的程序段后,变量 b$的值为【1】 。 (2) 以下程序段的输出结果是【2】 。 num =0 While num&=2 num = num + 1 Wend Print num (3) 窗体上有一个名称为 List1 的列表框,一个 名称为 Text1 的文本框,一个名称为 Label1、 Caption 属性为“Sum”的标签,一个名称为 Command1、标题为“计算”的命令按钮。程序运 行后, 将把 1~100 之间能够被 7 整除的数添加到 列表框中。如果单击“计算”按钮,则对 List1 中的数进行累加求和,并在文本框中显示计算结 果,如图所示。以下是实现上述功能的程序,请 填空。21 / 103 Private Sub Form_Load() For i=1 To 100 If i Mod 7 =0 Then 【3】 End If Next End Sub Private Sub Command1_Click() Sum = 0 For i = 0 To 【4】 Sum = Sum + 【5】 Next Text1.Text = Sum End Sub (4) 本程序的功能是利用随机数函数模拟投币, 方法是:每次随机产生一个 0 或 1 的整数,相当 于一次投币,1 代表正面,0 代表反面。在窗体上 有三个文本框, 名称分别是 Text1、 Text2、 Text3, 分别用于显示用户输入投币总次数、出现正面的 次数和出现反面的次数,如图所示。程序运行后, 在文本框 Text1 中输入总次数,然后单击“开 始”按钮,按照输入的次数模拟投币,分别统计 出现正面、反面的次数,并显示结果。以下是实 现上述功能的程序,请填空。r = Int(Rnd*2) If r = 【7】 Then n1 = n1 + 1 Else n2 = n2 + 1 End If Next Text2.Text = n1 Text3.Text = n2 End Sub (5) 阅读程序: Option Base 1 Private Sub Form_Click() Dim a(3) As Integer Print &输入的数据是:&; For i = 1 To 3 a(i)=InputBox(&输入数据&) Print a(i); Next Print If a(1)&a(2) Then t = a(1) a(1) = a(2) a(2) = 【8】 End If If a(2)&a(3) Then m = a(2) ElseIf a(1)&a(3) Then m = 【9】 Else m = 【10】 End If Print &中间数是:&;m End Sub 程序运行后,单击窗体,在输入对话框中分别输 入三个整数,程序将输出三个数中的中间数,如 图所示。请填空。Private Sub Command1_Click() Randomize n = CInt(Text1.Text) n1 = 0 n2 = 0 For I = 1 To 【6】(6) 在窗体上画一个名称为“Command1”,标题 为“计算”的命令按钮,再画 7 个标签,其中 522 / 103 个标签组成名称为 Label1 的控件数组;名称为 Label2 的标签用于显示计算结果,其 Caption 属 性的初始值为空; 标签 Label3 的标题为“计算结 果”。运行程序时会自动生成 5 个随机数,分别 显示在标签控件数组的各个标签中,如图所示。 单击“计算”按钮,则将标签数组各元素的值累 加,然后计算结果显示在 Label2。请填空。For j = 1 To 3 For i = 1 To 2 s = s + 【14】 Next i Next j Text1.Text = 【15】 End Sub 评分标准和参考答案 一、选择题((1)―(20)每小题 2 分,(21)―(30) 每小题 2 分,共 70 分) (1) B (2) C (3) A (4) A (5) C (6) D (7) D (8) B (9) A (10) B (11) D (12) A (13) C (14) C (15) D (16) A (17) B (18) B (19) D (20) D (21) B (22) D (23) C (24) B (25) C (26) A (27) A (28) B (29) D (30) C 二、填空题(每空 2 分,共 30 分) 【1】&Shanghai& 【2】 3 【3】list1.additem i 【4】 list1.listcount-1 【5】 list1.list(i) 【6】 n 【7】 1 【8】 t 【9】 a(3) 【10】 a(1) 【11】 label1(i).caption 【12】label2.caption 【13】a(i,j) 【14】a(j,i) 【15】sPrivate Sub Command1_Click() Sum = 0 For i = 0 To 4 Sum = Sum + 【11】 Next 【12】 = Sum End Sub (7) 在窗体上画两个名称分别为 Command1 和 Command2、标题分别为“初始化”和“求和”的 命令按钮。程序运行后,如果单击“初始化”命 令按钮, 则对数组 a 的各元素赋值; 如果单击“求 和”命令按钮,则求出数组 a 的各元素之和,并 在文本框中显示出来,如图所示。请填空。Option Base 1 Dim a(3,2) As Integer Private Sub Command1_Click() For i = 1 To 3 For j = 1 To 2 【13】 = i + j Next j Next i End Sub Private Sub Command2_Click()一、选择题(每小题 2 分,共 70 分)2010 年 3 月计算机等级考试二级 VB 试试题23 / 103 下列各题 a)、b)、c)、d)四个选项中,只有一个选 项是正确的。请将正确选项填涂在答题卡相应位置上,答 在试卷上不得分。 (1)下列叙述中正确的是 a)对长度为 n 的有序链表进行查找, 最坏情况下需要 的比较次数为 n b)对长度为 n 的有序链表进行对分查找, 最坏情况下 需要的比较次数为(n/2) c)对长度为 n 的有序链表进行对分查找, 最坏情况下 需要的比较次数为(log2n) d)对长度为 n 的有序链表进行对分查找, 最坏情况下 需要的比较次数为(n log2n) (2)算法的时间复杂度是指 a)算法的执行时间 b)算法所处理的数据量 c)算法程序中的语句或指令条数 d)算法在执行过程中所需要的基本运算次数 (3)软件按功能可以分为:应用软件、系统软件和支 撑软件(或工具软件)。下面属于系统软件的是 a)编辑软件 b)操作系统 c)教务管理系统 d)浏览器 (4)软件(程序)调试的任务是 a)诊断和改正程序中的错误 b)尽可能多地发现程序中的错误 c)发现并改正程序中的所有错误 d)确定程序中错误的性质 (5)数据流程图(dfd 图)是 a)软件概要设计的工具 b)软件详细设计的工具c)结构化方法的需求分析工具 d)面向对象方法的需求分析工具 (6)软件生命周期可分为定义阶段,开发阶段和维护 阶段。详细设计属于 a)定义阶段 b)开发阶段 c)维护阶段 d)上述三个阶段 (7)数据库管理系统中负责数据模式定义的语言是 a)数据定义语言 b)数据管理语言 c)数据操纵语言 d)数据控制语言 (8)在学生管理的关系数据库中,存取一个学生信息 的数据单位是 a)文件 b)数据库 c)字段 d)记录 (9)数据库设计中,用 e-r 图来描述信息结构但不涉 及信息在计算机中的表示,它属于数据库设计的 a)需求分析阶段 b)逻辑设计阶段 c)概念设计阶段 d)物理设计阶段 (10)有两个关系 r 和 t 如下:24 / 103 则由关系 r 得到关系 t 的操作是 a)选择 b)投影 c)交 d)并 (11)在 vb 集成环境中要结束一个正在运行的工程,可单 击工具栏上的一个按钮,这个按钮是c)left d)enabled (15)下面不能在信息框中输出“vb”的是 a)msgbox &vb& b)x=msgbox(&vb&) c)msgbox(&vb&) d)call msgbox &vb& (16)窗体上有一个名称为 option1 的单选按钮数组, 程序运行时,当单击某个单选按钮时,会调用下面的事件 过程 private sub option1_c1ick(index as integer)(12)设 x 是整型变量,与函数f(x&0,-x,x)有相同 ? 结果的代数式是 end sub a)|x| 下面关于此过程的参数 index 的叙述中正确的是 b)-|x| a)index 为 1 表示单选按钮被选中,为 o 表示未选中 c)x b)index 的值可正可负 d)-x c)index 的值用来区分哪个单选按钮被选中 (13)设窗体文件中有下面的事件过程: d)index 表示数组中单选按钮的数量 private sub command1_click() (17)设窗体中有一个文本框 text1,若在程序中执行 dim s 了 text1.setfocus,则触发 a%=100 a)text1 的 setfocus 事件 print a b)text1 的 gotfocus 事件 end sub c)text1 的 lostfocus 事件 其中变量 a 和 s 的数据类型分别是 d)窗体的 gotfocus 事件 a)整型,整型 (18)vb 中有 3 个键盘事件:keypress、keydown、 b)变体型,变体型 keyup,若光标在 text1 文本框中,则每输入一个字母 c)整型,变体型 a)这 3 个事件都会触发 d)变体型,整型 b)只触发 keypress 事件 (14)下面哪个属性肯定不是框架控件的属性 c)只触发 keydown、keyup 事件 a)text d)不触发其中任何一个事件 b)caption (19)下面关于标准模块的叙述中错误的是25 / 103 a)标准模块中可以声明全局变量 b)标准模块中可以包含一个 sub main 过程,但此过 程不能被设置为启动过程 c)标准模块中可以包含一些 public 过程 d)一个工程中可以含有多个标准模块 (20)设窗体的名称为 form1,标题为 win,则窗体的 mousedown 事件过程的过程名是 a)form1_mousedown b)win_mousedown c)form_mousedown d)mousedown_form1 (21)下面正确使用动态数组的是 a)dim arr() as integer ? redim arr(3,5) b)dim arr() as integer ? redim arr(50)as string c)dim arr() ? redim arr(50) as integer d)dim arr(50) as integer ? redim arr(20) (22)下面是求最大公约数的函数的首部 function gcd(byval x as integer, byval y as integer) as integer 若要输出 8、12、16 这 3 个数的最大公约数,下面正 确的语句是 a)print gcd(8,12),gcd(12,16),gcd(16,8) b)print gcd(8,12,16)c)print gcd(8),gcd(12),gcd(16) d)print gcd(8,gcd(12,16)) (23)有下面的程序段, 其功能是按图 1 所示的规律输 出数据 dim a(3,5) as integer for i=1 to 3 for j=1 to 5 a(i,j)=i+j print a(i,j); next print next若要按图 2 所示的规律继续输出数据, 则接在上述程 序段后面的程序段应该是 a)for i=1 to 5 for j=1 to 3 print a(j,i); next print next b)for i=1 to 3 for j=1 to 5 print a(j,i); next26 / 103 print next c)for j=1 to 5 for i=1 to 3 print a(j,i); next print next d)for i=1 to 5 for j=1 to 3 print a(i,j); next print next (24)窗体上有一个 text1 文本框,一个 command1 命令按 钮,并有以下程序 private sub commandl_click() dim n if text1.text&&&23456& then n=n+1 print &口令输入错误& & n & &次& end if end sub 希望程序运行时得到左图所示的效果, 输入口令, 即: 单击“确认口令”命令按钮,若输入的口令不是 “123456”,则在窗体上显示输入错误口令的次数。但上 面的程序实际显示的是右图所示的效果,程序需要修改。 下面修改方案中正确的是 a)在 dim n 语句的下面添加一句:n=o b)把 print &口令输入错误& & n & &次&改为 print & 口令输入错误& +n+&次& c)把 print &口令输入错误& & n & &次&改为 print & 口令输入错误&&str(n)&&次& d)把 dim n 改为 static n (25)要求当鼠标在图片框 p1 中移动时,立即在图片 框中显示鼠标的位置坐标。 下面能正确实现上述功能的事 件过程是 a)private sub p1_mousemove(button as integer,shift as integer,x as single, y as single) print x,y end sub b)private sub p1_mousedown(button as integer,shift as integer,x as single, y as single) picture.print x,y27 / 103 end sub c) private sub p1_mousemove(button as integer,shift as integer,x as single, y as single) p1.print x,y end sub d)private sub form_mousemove(button as integer,shift as integer,x as single, y as single) p1.print x,y end sub (26)计算二的近似值的一个公式是(27)下面程序计算并输出的是 private sub comand1_click() a=10 s=0 do s=s+a*a*a a=a-1 loop until a&=0 print s end sub a)13+23+33+?+103 的值 。 b)10!+?+3!+2!+1!的值 c)(1+2+3+?+10)3 的值 d)10 个 103 的和 (28)若在窗体模块的声明部分声明了如下自定义类 型和数组 private type rec code as integer caption as string end type dim arr(5) as rec 则下面的输出语句中正确的是 a)print arr.code(2),arr.caption(2) b)print arr.code,arr.caption c)print arr(2).code,arr(2).caption d)print code(2),caption(2) (29)设窗体上有一个通用对话框控件 cd1,希望在执 行下面程序时,打开如图所示的文件对话框 private sub comand1_click() cd1.dialogtitle=&打开文件& cd1.initdir=&c:\&某人编写下面的程序用此公式计算并输出 π 的近似 值: private sub comand1_click() pi=1 sign=1 n=20000 for k=3 to n sign=-sign/k pi=pi+sign/k next k print pi*4 end sub 运行后发现结果为 3.22751,显然,程序需要修改。 下面修改方案中正确的是 a)把 for k=3 to n 改为 for k=1 to n b)把 n=20000 改为 n= c)把 for k=3 to n 改为 for k=3 to n step 2 d)把 pi=1 改为 pi=028 / 103 cd1.filter=&所有文件|*.*|word 文档|*.doc|文本 文件|*.txt& cd1.filename=&& cd1.action=1 if cd1.filename=&&then print&未打开文件& else print&要打开文件&& cd1.filename end if end subend sub a)3 9 5 b)5 3 9 c)5 9 3 d)3 5 9 (31)窗体上有 list1、list2 两个列表框,list1 中有若 干列表项(见图),并有下面的程序: private sub comand1_click() for k=list1.listcount-1 to 0 step -1 if list1.selected(k) then list2.additem list1.list(k) list1.removeitem k end if next k end sub但实际显示的对话框中列出了 c:\下的所有文件和文 件夹,“文件类型”一栏中显示的是“所有文件”。下面 的修改方案中正确的是 a)把 cd1.action=1 改为 cd1.action=2 b)把“cd1.filter=”后面字符串中的“所有文件” 改为“文本文件” c)在语句 cd1.action=1 的前面添加: cd1.filterindex=3 d)把 cd1.filename=&&改为 cd1.filename=&文本文 件& (30)下面程序运行时,若输入 395,则输出结果是 private sub comand1_click() dim x% x=inputbox(&请输入一个 3 位整数&) print x mod 10,x\100,(x mod 100)\10程序运行时,按照图示在 list1 中选中 2 个列表项, 然后单击 commandl 命令按钮,则产生的结果是 a)在 list2 中插入了“外语”、“物理”两项 b)在 list1 中删除了“外语”、“物理”两项 c)同时产生 a)和 b)的结果 d)把 list1 中最后 1 个列表项删除并插入到 list2 中 (32)设工程中有 2 个窗体: form1、form2,form1 为启动窗体。form2 中有菜单。其结构如表。要求在程序 运行时, form1 的文本框 text1 中输入口令并按回车键 在 (回车键的 ascii 码为 13)后,隐藏 form1,显示 form2。 若口令为“teacher”,所有菜单项都可见;否则看不到29 / 103 “成绩录入”菜单项。为此, 某人在 form1 窗体文件中编 写如下程序: private sub text1_keypress(keyascii as integer) if keyascii=13 then if text1.text=&teacher& then form2.input.visible=true else form2.input.visible=false end if end if form1.hide form2.show end sub 程序运行时发现刚输入口令时就隐藏了 form1,显示 了 form2,程序需要修改。下面修改方案中正确的是 a)把 form1 中 text1 文本框及相关程序放到 form2 窗 体中 b)把 form1.hide、form2.show 两行移到 2 个 end if 之间 c)把 if keyascii=13 then 改为 if keyascii=&teaeher& then d)把 2 个 form2.input.visible 中的“form2”删去 (33)某人编写了下面的程序, 希望能把 text1 文本框 中的内容写到 out.txt 文件中 private sub comand1_click() open &out.txt& for output as #2 print &text1& close #2 end sub 调试时发现没有达到目的,为实现上述目的,应做的 修改是a)把 print &text1&改为 print #2,text1 b)把 print &text1&改为 print text1 c)把 print &text1&改为 write &text1& d)把所有#2 改为#1 (34)窗体上有一个名为 command1 的命令按钮,并有 下面的程序: private sub comand1_click() dim arr(5) as integer for k=1 to 5 arr(k)=k next k prog arr() for k=1 to 5 print arr(k) next k end sub sub prog(a() as integer) n=ubound(a) for i=n to 2 step -1 for j=1 to n-1 if a(j) t=a(j):a(j)=a(j+1):a(j+1)=t end if next j next i end sub 程序运行时,单击命令按钮后显示的是 a)12345 b)54321 c)01234 d)4321030 / 103 (35)下面程序运行时,若输入“visual basic programming”,则在窗体上输出的是 private sub comand1_click() dim count(25) as integer, ch as string ch=ucase(inputbox(&请输入字母字符串&)) for k=1 to len(ch) n=asc(mid(ch,k,1))-asc(&a&) if n&=0 then count(n)=count(n)+ 1 end if next k m=count(0) for k=1 to 25 if m m=count(k) end if next k print m end sub a)0 b)1 c)2 d)3 二、填空题 (1)一个队列的初始状态为空。现将元素 a,b,c,d,e,f,5,4,3,2,1 依次入队,然后再依次退队,则 元素退队的顺序为 【1】 。 (2)设某循环队列的容量为 50,如果头指针 front=45(指向队头元素的前一位置), 尾指针 rear=10(指 向队尾元素),则该循环队列中共有 【2】 个元素。 (3)设二叉树如下: 对该二叉树进行后序遍历的结果为 【3】 。 (4)软件是 【4】 、数据和文档的集合。 (5)有一个学生选课的关系, 其中学生的关系模式为: 学生(学号,姓名,班级,年龄),课程的关系模式为:课 程(课号,课程名,学时),其中两个关系模式的键分别是 学号和课号,则关系模式选课可定义为:选课(学号, 【5】 ,成绩)。 (6)为了使复选框禁用(即呈现灰色), 应把它的 value 属性设置为 【6】 。 (7)在窗体上画一个标签、一个计时器和一个命令按 钮,其名称分别为 labl1、timer1 和 command1,如图 1 所示。 程序运行后, 如果单击命令按钮, 则标签开始闪烁, 每秒钟“欢迎”二字显示、消失各一次,如图 2 所示。以 下是实现上述功能的程序,请填空。 private sub form_load() label1.caption=&欢迎& timer1.enabled=false timer1.interval= 【7】 end sub private sub timer1_timer() label1.visible= 【8】 end sub private sub command1_click()31 / 103 【9】 end subend sub sub swap(b() as integer)n=ubound(b) (8)有如下程序: private sub form_click() n=10 i=0 do i=i+n n=n-2 loop while n&2 print i end sub 程序运行后,单击窗体,输出结果为 【10】 。 (9)在窗体上画一个名称为 command1 的命令按钮。 然 后编写如下程序: option base 1 private sub command1_click() dim a(10) as integer for i=1 to 10 a(i)=i next call swap ( 【11】 ) for i=1 to 10 print a(i); next for i=1 to n / 2 t=b(i) b(i)=b(n) b(n)=t 【12】 next end sub 上述程序的功能是,通过调用过程 swap,调换数组 中数值的存放位置,即 a(1)与 a(10)的值互换,a(2)与 a(9)的值互换,??。请填空。 (10)在窗体上画一个文本框,其名称为 text1,在属 性窗口中把该文本框的 multiline 属性设置为 true,然 后编写如下的事件过程: private sub form_click() open &d:\test\smtext1.txt& for input as #1 do while not 【13】 line input #1, aspect$ whole$=whole$+aspect$+chr$(13)+chr$(10) loop text1.text=whole$ 【14】 open &d:\test\smtext2.txt& for output as #1 print #1, 【15】32 / 103 close #1 end sub运行程序,单击窗体,将把磁盘文件 smtext1.txt 的 内容读到内存并在文本框中显示出来, 然后把该文本框中 的内容存入磁盘文件 smtext2.txt。请填空。2009 年 3 月二级 VB 语言笔试真题及答案一、选择题(每题 2 分,共计 70 分) (1)下列叙述中正确的是 A)栈是先进先出的线性表 B)队列是&先进后出&的线性表 C)循环队列是非线性结构 D)有序线性表即可以采用顺序存储结构,也可以采用链式 存储结构 (2)支持子程序调用的数据结构是 A)栈 B)树 C)队列 D)二叉树 C)教务管理系统 (6)下面叙述中错误的是 A)软件测试的目的是发现错误并改正错误 B)对被调试程序进行&错误定位&是程序调试的必要步骤 C)程序调试也成为 Debug D)软件测试应严格执行测试计划,排除测试的随意性 (7)耦合性和内聚性是对模块独立性度量的两个标准。下 列叙述中正确的是 A)提高耦合性降低内聚性有利于提高模块的独立性 B)降低耦合性提高内聚性有利于提高模块的独立性 C)耦合性是指一个模块内部各个元素间彼此结合的紧密 B)8 C)6 D)4 程度 D)内聚性是指模块间互相连接的紧密程度 (8)数据库应用系统中的核心问题是 A)数据库设计 C)数据库维护 B)数据库系统设计 D)数据库管理员培训 D)汇编程序(3)某二叉树有 5 个读为 2 的结点,则该二叉树中的叶子结 点数是 A)10(4)下列排序方法中,最坏情况下比较次数最少的是 A)冒泡排序 C)直接插入排序 B)简单选择排序 D)堆排序(5)软件按功能可以分为:应用软件、系统软件和支撑软件 (或工具软件)。下列属于应用软件的是 A)编译程序 B)操作系统(9)有两个关系 R,S 如下:33 / 103 Label1.Caption=str(Len(Text1.Text)) End Sub B)Private Sub Text1_Click() Label1.Caption=str(Len(Text1.Text)) End Sub C)Private Sub Text1_Change() Label1.Caption=Text1.Text 由关系 R 通过运算得到关系 S,则所使用的运算为 A)选择 B)投影 C)插入 D)连接 End Sub D)Private Sub Label1_Change() Label1.Caption=str(Len(Text1.Text)) End Sub B)键 C)关系 D)域 16) 在 窗 体 上 画 两 个 单 选 按 钮 ( 名 称 分 别 为 Option1,Option2,标题分别为&宋体&和&黑体&), 1 个复选框(名称为 Check1,标题为粗体)和 1 个文本 框(名称为 Text1,Text 属性为&改变 文字字体&),窗体外观如图所示。程序运行后,要求 D宋体‖单选按钮和D粗体‖复选框被 选中,则以下能够实现上述操作的语句序列是(10)将 E-R 图转换为关系模式时,实体和联系都可以表示 为 A)属性(11)执行语句 Dim X,Y As Integer 后, A)X 和 Y 均被定义为整型变量 B)X 和 Y 均被定义为变体类型变量 C)X 被定义为整型变量,Y 被定义为变体变量 D)X 被定义为变体类型变量,Y 被定义为整型变量 (12)以下关系表达式中,其值为 True 的是 A)&XYZ&&&XYz& B)&VisualBasic&&&&visualbasic& C)&the&=&there& D)&Integer&&&Int& (13)执行以下程序段 a$=&Visual Basic Programming& b$=&C++& C$=UCase(Left$(a$,7)) & b$ & Right$(a$,12) 后,变量 C$的值为 A)Visual BASIC Programming B)VISUAL C++ Programming C)Visual C++ Programming D)VISUAL BASIC Programming 14)下列叙述中正确的是 A)MsgBox 语句的返回值是一个整数 B)执行 MsgBox 语句并出现信息框后,不用关闭信息框即 可执行其他操作 C)MsgBox 语句的第一个参数不能省略 D)如果省略 MsgBox 语句的第三个参数(Title),则信息框 的标题为空 15)在窗体上画一个文本框(名称为 Text1)和一个标签(名 称为 Label1),程序运行后, 在文本框中每输入一个字符, 都会立即在标签中显示 文本框中字符的个数,以下可以实 现上述操作的事件过程是 A)Private Sub Text1_Change()A)Option1.Value=False Check1.Value=True B)Option1.Value=True Check1.Value=0 C)Option2.Value=False Check1.Value=2 D)Option1.Value=True Check1.Value=1 17)在窗体上画一个名称为 Command1 的命令按钮, 然后 编写如下事件过程: Private Sub Command1_Click() c=1234 c1=Trim(Str(c)) For i=1 To 4 Print Next End Sub 程序运行后,单击命令按钮,要求在窗体上显示如下内容: 1 ____34 / 103 12 123 1234 则在横线处应填入的内容为 A)Right(c1,i) B)Left(c1,i) C)Mid(c1,i,1) D)Mid(c1,i,1) 18)假定有一下程序段 For i=1 To 3 For j=5 To 1 Step -1 Print i*j Next Next j iA)当焦点在某个控件上时,按下一个字母键,就会执行该 控件的 KeyPress 事件过程 B) 因 为 窗 体 不 接 受 焦 点 , 所 以 窗 体 不 存 在 自 己 的 KeyPress 事件过程 C)若按下的键相同,KeyPress 事件过程中的 KeyAscii 参数与 KeyDown 事件过程中 的 KeyCode 参数的值也相同 D)在 KeyPress 事件过程中,KeyAscii 参数可以省略22)语句 Dim a(-3 To 4,3 To 6) As Integer 定义的数组的 元素个数是 A)18 B)28 C)21 D)3223)在窗体上画一个命令按钮,其名称为 Command1,然 后编写如下代码: Option Base 1 Private Sub Command1_Click() Dim a 2, 3, 4)则语句 Print i*j 的执行次数是 A)15 B)16 C)17 D)1819)在窗体上画两个文本框(名称分别为 Text1 和 Text2) 和一个命令按钮(名称为 Command1) ,然后编写如下事件过程: Private Sub Command1_Click() x=0 Do While x&50 x=(x+2)*(x+3) n=n+1 Loop Text1.Text=Str(n) Text2.Text=Str(x) End Sub 程序运行后,单击命令按钮, 在两个文本框中显示的值分 别为 A)1 和 0 C)3 和 50 20)阅读程序: Private Sub Command1_Click() a=0 For j=1 To 15 a=a+j Next Print End Sub 程序运行后,单击窗体,输出结果是 A)105 B)1 C)120 D)15 j a Mod 3 B)2 和 72 D)4 和 168a = Array(1, j = 1For i = 4 To 1 Step -1 s = s j Next = j i + a(i) * j * 10Print s End Sub 程序运行后,单击命令按钮,其输出结果是 A)4321 B)1234 C)34 D)1224)假定通过复制,粘贴操作建立了一个命令按钮数组 Command1,以下说法中错误的是 A) 数 组 中 每 个 命 令 按 钮 的 名 称 (Name 属 性 ) 均 为 Command1 B)若未做修改,数组中每个命令按钮的大小都一样 C)数组中各个命令按钮使用同一个 Click 事件过程 D)数组中每个命令按钮的 Index 属性值都相同25)在窗体上画一个命令按钮,名称为 Command1,然后 编写如下代码: Option Base 0 Private Sub Command1_Click() Dim A1(4) As Integer, = 0 To 2 + 1) = InputBox(&请输入一个整 A2(4) As IntegerFor k 21)以下说法中正确的是A1(k35 / 103 数&) A2(3 - k) = A1(k + 1) Next kb = t+ afun1 = t + b End FunctionPrint A2(k) End Sub 程序运行后,单击命令按钮,在输入对话框中依次输入 2、 4、6 则输出结果为 A)0 B)1 C)2 D)3 1) (26)以下关于函数过程的叙述中,正确的是 A)函数过程形参的类型与函数返回值的类型没有关系 B)在函数过程中,过程的返回值可以有多个 C)当数组作为函数过程的参数是,既能以传值方式传递, 也能以传址方式传递 D)如果不指明函数过程参数的类型, 则该参数没有数据类 型 29. 29)以下关于过程及过程参数的描述中,错误的是 A)过程的参数可以是控件名称 B)调用过程时使用的实参的个数应与过程形参的个数相 同 27)在窗体上画两个标签按钮和一个命令按钮,其名称分 别为 Label1、Label2 和 Command1, 然后编写如下程序: Private Sub func(L As Label) C)只有函数过程能够将过程中处理的信息返回到调用程 序中 D)窗体可以作为过程的参数 30)设有如下通用过程 Public Function Fun(xStr As String) As String Dim tStr As String, strL As Integer End Sub 程序运行后,单击命令按钮,输出结果是 A)10 B)0 C)11 D)21 Private Sub Command1_Click() Dim x As Integerx = 10 Print fun1(fun1(x, (fun1(x, x 1))), x -L.Caption = &1234& End SubtStr = && Private Sub Form_Load() Label1.Caption = &ABCDE& Label2.Caption = 10 End Sub Private Sub Command1_Click() a = Val(Label2.Caption) Call func(Label1) Label2.Caption = a End Sub 程序运行后,单击命令按钮, 则在两个标签中显示的内容 分别为 A)ABCD 和 10 C)ABCD 和 100 B)1234 和 100 D)1234 和 10 strL = Len(xStr) i = strL / Do While i tStr = i Loop Fun = tStr & tStr End Function 在窗体上画一个名称为 Text1 的文本框和一个名称为 Command1 的命令按钮。然后编写如 下事件过程 Private Sub Command1_Click() Dim S1 As String = i 2 &= strL tStr & + 1 Mid(xStr, i + 1, 1)S1 = &ABCDEF& 28)在窗体上画一个命令按钮(名称为 Command1),并编 写如下代码: Function fun1(ByVal a As Integer, b As Text1.Text End Sub 程序运行后,单击命令按钮,文本框中显示的是 A)ABCDEF C)defdef B)abcdef D)defabc = LCase(Fun(S1))Integer) As Integer Dim t As Integert = a - b31)在窗体上画一个命令按钮和一个文本框(名称分别为36 / 103 Command1 和 Text1),并把窗体 的 KeyPreview 属性设置为 True,然后编写如下代码: Dim SaveAll As String在该通用对话框中指定的 文件 D)调用通用对话框控件的 ShowColor 方法,可以打开颜色 对话框窗口 35)设在工程文件中有一个标准模块,其中定义了如下记Private Sub Form_Load() Show Text1.Text = &&录类型: Type Books Name As String*10 TelNum As String*20Text1.SetFocus End SubPrivate Sub Command1_Click() Text1.Text End Sub = LCase(SaveAll) + SaveAllEnd Type 在窗体上画一个名为 Command1 的命令按钮,要求当执 行事件过程 Command1_Click 时, 在顺序文件 Person.txt 中写入一条 Books 类型的记录,PrivateSubForm_KeyPress(KeyAscii = SaveAllAsInteger)下列能够完成该操作的事件过程是 A)Private Sub Command1_Click() Dim B As Books For Output As #1SaveAll End Sub+ Chr(KeyAscii)程序运行后,直接用键盘输入:VB,再单击命令按钮则文 本框中显示的内容为 A)vbVB C)VB 32)设有以下程序 Private Sub Form_Click() x = 50 For i = 1 To 4 y = InputBox(&请输入一个整数&) y = Val(y) If y Mod 5 = 0 Then B)不显示任何信息 D)出错Open &Person.txt& B.Name = B.Name =InputBox(&输入姓名&) InputBox(&输入电话号码&)Write #1, B.Name, B.TelNum Close #1 End Sub B)Private Sub Command1_Click() Dim B As Books For Output As #1Open &Person.txt& B.Name = B.Name = Print #1,InputBox(&输入姓名&) InputBox(&输入电话号码&) B.Name, B.TelNuma = a + y x = Else a = a + x End If Next Print End Sub 程序运行后,单击窗体,在输入对话框中依次输入 15,24,35,46,输出结果为 A)100 B)50 C)120 D)70 i a yClose #1 End Sub C)Private Sub Command1_Click() Dim B As Books For Output As #1Open &Person.txt& B.Name = B.Name =InputBox(&输入姓名&) InputBox(&输入电话号码&)Write #1, B Close #1 End Sub D)Private Sub Command1_Click() Dim B As Books For Output As #134)以下叙述中错误的是 A)在程序运行时,通用对话框控件是不可见的 B)调用同一个通用对话框控件的不同方法(如 ShowOpen 或 ShowSave)可以打开不 同的对话框窗口 C)调用通用对话框控件的 ShowOpen 方法,能够直接打开Open &Person.txt& B.Name = B.Name = Print #1,InputBox(&输入姓名&) InputBox(&输入电话号码&) Name,TelNum37 / 103 Close #1 End SubCombo1.Text = && Exit For End If二、填空题(每空 2 分,共计 30 分)1.(1)假设用一个长度为 50 的数组(数组元素的下标从 0 到 49)作为栈的存储空间,栈底 指针 bottom 指向栈底元素,栈顶指针 top 指向栈顶元 素,如果 bottom=49,top=30(数 租下标),则栈中具有【1】个元素 . (2)软件测试可分为白盒测试和黑盒测试。基本路径测试 属于【2】测试 (3)符合结构化原则的三种基本控制结构是:选择结构、循 环结构和【3】 4)数据库系统的核心是【4】 5)在 E-R 图中,图形包括矩形框、菱形框、椭圆框。其中 表示实体联系的是【5】框 6)窗体如图所示,其中汽车是名称为 Image1 的图像框, 命 令按钮的名称 Command1, 计时器的名称为 Timer1,直线的名称为 Line1。程序 运行时,单击命令按钮,则 汽车每 0.1 秒向左移动 100,车头到

我要回帖

更多关于 vb.net for循环 的文章

 

随机推荐