1、二级 VISUAL+BASIC-20-1 及答案解析(总分:81.50,做题时间:90 分钟)一、选择题(总题数:25,分数:43.50)1.用 Write 和 Print 语句向文件中写入多个数据的差别在于_。(分数:2.00)A.Write 语句不会自动在数据项之间插入逗号B.Print 语句自动在数据项之间插入逗号C.Write 语句写入字符串会自动给字符串加上双引号;写入的正数前面没有空格D.Print 语句写入字符串会自动给字符串加上双引号:写入的正数前面没有空格2.已知一个人出生的年、月、日分别存放在变量 y0、m0、d0 中,当前日期的年、月、日分别存放在变量y1、m1、d1 中
2、,这个人的实足年龄存放在变量 age 中。则以下可以正确计算实足年龄的程序段是(分数:1.00)A.age=y1-y0If m1m0 Thenageage-1ElseIf d1d0 Thenageage-1End IfB.agey1y0If m1m0 Or d1d0 Thenageage-1End IfC.agey1-y0If m1m0 Thenageage-1End IfIf m1m0 And d1d0 Thenageage-1End IfD.agey1-y0If m1m0 Thenageage-1End IfIf d1d0 Thenage=age-1End If3.在窗体上画一个文本框,然
3、后编写如下事件过程: Private Sub Text1_KeyPress(KeyAscii As Integer) Dim char As String char=Chr(KeyAscii) KeyAscii=Asc(UCase(char) Text1.Text=String(6, KeyAscii) End Sub 程序运行后,如果在键盘上输入字母“a”,则文本框中显示的内容为_。(分数:2.50)AaBAC.aaaaaaD.AAAAAA4.面向对象的设计方法与传统的面向过程的方法有本质不同,它的基本原理是_。(分数:2.00)A.模拟现实世界中不同事物之间的联系B.强调模拟现实世界中的算
4、法而不强调概念C.使用现实世界的概念抽象地思考问题从而自然地解决问题D.鼓励开发者在软件开发的绝大部分过程中都用实际领域的概念去思考5.如果将 PasswordChar 属性设置为一个字符,如星号(*),运行时,在文本框中输入的字符仍然显示出来,而不显示星号,原因可能是_。(分数:2.00)A.文本框的 MultiLine 属性值为 TrueB.文本框的 Locked 属性值为 TrueC.文本框的 MultiLine 属性值为 FalseD.文本框的 Locked 属性值为 False6.下面关于多重窗体的叙述中,正确的是 _ 。(分数:2.00)A.作为启动对象的 Main 子过程只能放在
5、窗体模块中B.如果启动对象的 Main 子过程,则程序启动时不加载任何窗体,以后由该过程根据不同情况决定是否加载及加载哪一个窗体C.没有启动窗体,程序不能运行D.以上都不对7.下列程序运行时输出的结果是 _ 。 Option Base 1 Private Sub Form_Click() Const a=6 Dim x (a) As Integer For I=1 to a x(i)=12 Next I Print x(i) End Sub(分数:2.00)A.36B.25C.1D.出错信息8.设窗体上有一个列表框控件 List1,含有若干列表项。以下能表示当前被选中的列表项内容的是(分数:2
6、.00)A.List1.ListB.List1.ListIndexC.List1.TextD.List1.Index9.假定在窗体上建立一个通用对话框,其名称为 CommonDialog1,用下面的语句可以建立一个对话框: CommonDialog1.Action=1 与该语句等价的语句是 _。(分数:1.00)A.CommonDialog1.ShowOpenB.CommonDialog1.ShowSaveC.CommonDialog1.ShowColorD.CommonDialog1.ShowFont10.窗体上有一个名称为 Frame1 的框架(如图),若要把框架上显示的“Frame1”改
7、为汉字“框架”,下面正确的语句是_。 (分数:2.00)A.Frame1.Name=“框架”B.Frame1.Caption=“框架”C.Frame1.Text=“框架”D.Frame1.Value=“框架”11.在窗体上画一个名称为 Command1 的命令按钮,然后编写如下程序: Option Base 1 Private Sub Command1_Click() d=0 c=10 x=Array(10,12,21,32,24) For i=1 To 5 If x(i)c Then d=d+x(i) c=x(i) Else d=d-c End If Next i Print d End S
8、ub 程序运行后,如果单击命令按钮,则在窗体上输出的内容为_。(分数:1.00)A.89B.99C.23D.7712.当标签的标题内容太长,需要根据标题自动调整标签的大小时,应设置标签的 _ 属性为True。(分数:2.00)A.AutoSizeB.WordWrapC.EnabledD.Visible13.窗体上有一个名称力 Command1 的命令按钮,并有如下程序: Private Sub Command1_Click() x=15 Do While x0 x=x-3 x=IIf(Int(x/5)=x/5,x+2,x) Loop Print x End Sub 程序运行后,单击命令按钮 C
9、ommand1,输出结果为_。(分数:2.00)A.0B.-1C.-2D.-314.删除 C 盘根目录所有 txt 文件的命令是_。(分数:2.00)A.Kill“*.txt“B.Kill“c:/*.txt“C.Kill“c:/?.txt“D.Kill“/*.txt“15.在窗体上画 1 个命令按钮,名称为 Command1,然后编写如下程序: Dim Flag As Boolean Private Sub Command1_Click() Dim intNum As Integer intNum=InputBox(“请输入:“) If Flag Then Printf(intNum) End
10、 If End Sub Function f(x As Integer)As Integer If X10 Then Y=X Else Y=X+10 End If f=Y End Function Private Sub Form_MouseUp(Button As Integer,Shift As Integer,X As Single,Y As Single) Flag=True End Sub 运行程序,首先单击窗体,然后单击命令按钮,在输入对话框中输入 5,则程序的输出结果为 _ 。(分数:2.00)A.0B.5C.15D.无任何输出16.在窗体上画一个名称为 Command1 的命令
11、按钮,并编写如下程序: Private Type Record ID As Integer Name As String*20 End Type Private Sub Command1_Click() Dim MaxSize,NextChar,MyChar Open“d:/temp/female.txt“For Input As#1 MaxSize=LOF(1) For NextChar=MaxSize To 1 Step-1 MyChar=Input(1,#1) Next NextChar Print EOF(1) Close#1 End Sub 运行程序,单击命令按钮,其输出结果为_。(
12、分数:1.00)A.TrueB.FalseC.0D.Null17.软件调试的目的是_。(分数:2.00)A.发现错误B.改正错误C.改善软件的性能D.挖掘软件的潜能18.在文件列表框中,要使它能够显示隐藏文件,应使它的 _ 属性为 True。(分数:1.00)A.ArchiveB.NormalC.HiddenD.System19.在窗体上画一个名称为 Command1 的命令按钮,然后编写如下事件过程: Private Sub Command1_Click() x = -5 If Sgn(x) Then y = Sgn(x 2) Else y = Sgn(x) End If Print y E
13、nd Sub 程序运行后,单击命令按钮,窗体上显示的是(分数:1.00)A.-5B.25C.1D.-120.在软件测试设计中,软件测试的主要目的是_。(分数:2.00)A.实验性运行软件B.证明软件正确C.找出软件中的全部错误D.发现软件错误而执行程序21.要使单击命令按钮与按下Esc键实现相同的作用,则应设置 _ 属性为 True。(分数:2.00)A.CancelB.VisualC.DefaultD.Enabled22.在窗体上画一个名称为 Text1 的文本框,要求文本框只能接收大写字母的输入,以下能实现该操作的事件过程是_。(分数:2.00)A.Private Sub Text1_Ke
14、yPress(KeyAscii As Integer)If KeyAscii65 Or KeyAscii90 ThenMsgBox“请输入大写字母“KeyAscii=0End IfEnd SubB.Private Sub Text1_KeyDown(Keycode As Integer, Shift As Integer)If KeyCode65 Or Keycode90 ThenMsgBox“请输入大写字母“KcyCode=0End IfEnd SubC.Private Sub Text1_MouseDown(Button As Integer,Shift As Integer, X As
15、Single, Y As Single)If Asc(Text1. Text)65 Or Asc(Text1. Text)90 ThenMsgBox“请输入大写字母“End IfEnd SubD.Private Sub Text1_Change()If Asc(Text1. Text)64 Or Asc(Text1. Text)91 ThenMsgBox“请输入大写字母“End IfEnd Sub23.下列说法中,不属于数据模型所描述的内容的是_。(分数:1.00)A.数据结构B.数据操作C.数据查询D.数据约束24.下列叙述中错误的是(分数:2.00)A.Visual Basic 是采用了事
16、件驱动编程机制B.Visual Basic 是面向过程的程序设计语言C.Visual Basic 是可视化程序设计语言D.Visual Basic 是面向对象的程序设计语言25.在数据管理技术的发展过程中,经历了人工管理阶段、文件系统阶段和数据库系统阶段。其中数据独立性最高的阶段是_。(分数:2.00)A.数据库系统B.文件系统C.人工管理D.数据项管理二、填空题(总题数:14,分数:38.00)26.窗体中有图片框(Picturel)和计时器(Timed)两个控件。运行程序时,将图片加载到图片框中,然后图片框以每 2 秒钟一次的速度向窗体的右下角移动,每次向下、向右移动 100twip。请填
17、空。 Private Sub Form_Load() Prcture1_Picture=LoadPicture(“c/pic/mouth.ico“) 1.Interva=2000 End Sub Prinvate Sub Timer1_Timer() Static x,y As Integer x=x+100 y=y+100 Pictuer1.Movex,y End Sub (分数:2.00)27.下面运行程序后,单击命令按钮,输出的结果是 1。 Private Sub Commandl_clck() Dim a%(1 To 4),b%(3 To 6),i%,s1#,s2# Fori=1 To
18、 4 a(i)=i Nexti For i=3 To 6 b(i)=i Nexti s1=YAS(a) S2=YAS(b) Printt“s1=“;S1“S2=“;s2 End Sub FunctionYAS(a()AsInteger) Dimt#,i% t=1 For i=LBound(a)ToUBound(a) t=t*a(i) Nexti YAS=t End Funtoon (分数:2.00)28.在窗体上画一个命令按钮和一个通用对话框,其名称分别为 Command1 和 CommonDialog1,然后编写如下事件过程: Private Sub Command1_Click() Com
19、monDialog1. 1=“打开文件“ CommonDialog1.Filter=“All Files(*.*)|*.*“ CommonDialog1.InitDir=“C:“ CommonDialog1.ShowOpen End Sub 该程序的功能是:程序运行后,单击命令按钮,将显示“打开”文件对话框,其标题是“打开文件”,在“文件类型”栏内显示“All Files(*.*)”,并显示 C 盘根目录下的所有文件。请填空。 (分数:2.00)29.把窗体的 KeyPreview 属性设置为 True,并编写如下两个事件过程: Private Sub Form_KeyDown(KcyCode
20、 As Integer,Shift As Integer) Print Key Code; End Sub Private Sub Form_KeyPress(KeyAscii As Integer) Print Key Ascii End Sub 程序运行后,如果按下 A 键,则在窗体上输出的数值为 _ 1_ 和 _ 2_ 。 (分数:2.00)30.在面向对象方法中一个对象请求另一个对象为其服务是通过发送 1 来完成的。 (分数:2.00)31.在窗体上画两个组合框,其名称分别为 Combo1、Combo2,然后画两个标签,名称分别为 Label1、 Label2。要求程序运行后,如果在某
21、个组合框中选择一个项目,则把所选中的项目在其下面的标签中显示出来。请填空使程序完整。 Private Sub Combo1_Click() Call ShowItem(Combo1,Label1) End Sub Private Sub Combo2_Click() Call ShowItem(Combo2,Label2) End Sub Public Sub ShowItem(tmpCombo As ComboBox,tmpLabel As Label) 1.Caption= 2.Text End Sub (分数:4.00)32.(-1)*Sgn-100+Int(Rnd*100)的值是 _
22、1_ 。 (分数:2.00)33.能够将文本框控件隐藏起来的属性是 1。 (分数:2.00)34.执行下列语句后,输出结果为 1。 s$=“ABCDEFG“ Print InStr(s$,“efg“) Print LCase$(s$) (分数:2.00)35.面向对象的程序设计方法中涉及的对象是系统中用来描述客观事物的一个 _ 1_ 。 (分数:2.00)36.Visual Basic 中的控件分为 3 类,它们是标准控件、 _ 1_ 和可插入对象。 (分数:2.00)37.有如下程序: Private Sub Command1_Click() For j=5 To 3 Step-1 Call
23、 s (n) m=m+n Next j Print m; n End Sub Private Sub s(n) n=1+2*n End Sub 运行后,输出的结果是 1。 (分数:2.00)以下程序用来产生 20 个(0,99)之间的随机整数,并将其中的偶数打印出来。请填空。 Private Sub Command1_Clcik() Randomize For I=1 To 20 X=Int(Rnd* 1) If X/2= 2Then Print x Next I End Sub(分数:4.00)填空项 1:_填空项 1:_39.下面程序的功能是把文件 file11.txt 中重复字符去掉后(
24、即若有多个字符相同,则只保留一个)写入文件 file2.txt。请填空。 Private Sub Command1_Click() Dim inchar AS String, temp AS String, outchar AS String Outchar=“ Open “file1.txt“ For Input AS #1 Open “file2.txt“ For Output AS _ 1_ n=LOF( _ 2_ ) inchar=Input$(n,1) For k=1 To n temp=Mid(inchar,k,1) If InStr(outchar, temp)= _ 3_ Th
25、en outchar=outchar n End Sub Private Sub s(n) n=1+2*n End Sub 运行后,输出的结果是 1。 (分数:2.00)解析:11 7以下程序用来产生 20 个(0,99)之间的随机整数,并将其中的偶数打印出来。请填空。 Private Sub Command1_Clcik() Randomize For I=1 To 20 X=Int(Rnd* 1) If X/2= 2Then Print x Next I End Sub(分数:4.00)填空项 1:_ (正确答案:*unknown)填空项 1:_ (正确答案:*unknown)解析:Int
26、(X/2)或 X/239.下面程序的功能是把文件 file11.txt 中重复字符去掉后(即若有多个字符相同,则只保留一个)写入文件 file2.txt。请填空。 Private Sub Command1_Click() Dim inchar AS String, temp AS String, outchar AS String Outchar=“ Open “file1.txt“ For Input AS #1 Open “file2.txt“ For Output AS _ 1_ n=LOF( _ 2_ ) inchar=Input$(n,1) For k=1 To n temp=Mid
27、(inchar,k,1) If InStr(outchar, temp)= _ 3_ Then outchar=outchar & temp End If Next k print #2, _ 4_ close #2 close #1 End Sub (分数:8.00)解析:#2 1 0 outChar 解析 程序的思路是将文件 file1.Txt 的内容改入变量 inChar 中,再设置两个变量 temp 和 outChar,outChar 的初始值为空串。利用循环语句每次从 inChar 中取出一个字符放在变量temp 中,再检查 temp 变量中的值是否在 outChar 中存在,如果不
28、存在则将 temp 的值连接到 outChar 中。这就像两个盒子:一个盒子是 inCbar,另一个是 outChar,开始时 outChar 为空。将 inChar 中的物品一个一个取出来,如果这个物品在 outChar 中不存在就将这类物品放一个在 outChar 中,等到 inChar 内的所有物品都检查完之后,outChar 中存放的就是 inChar 中不重复的所有物品了。这里每一个物品就是一个字符。 第一个空需要填写打文件 file2.Txt 的文件号,根据后面程序输出和关闭语句可以看出应该填写的内容是“#2”;随后的 LOF()函数用来返回文件 file1.Txt 的长度,以便用 input 函数读入 file1.Text 中所有的内容,因此在第二个空中应该填写 1;InStr()函数用来在字符串 outChar 中查找指定的字符串 temp,如果没找到该字符则函数返回值为 0,在返回值为 0 时才将新的字符连接到 outChar 中,因此在第三个空中应该填写 0;为了在文件 file1.txt 中将重复字符去掉后写入文件 file2.txt,需要在第四个空中填写outChar。