上海计算机二级Vb试题(共89页).doc
精选优质文档-倾情为你奉上一、单选题(30分,每小题1分)u 一个完整计算机系统应包括_(1)_。(A) 主机、键盘、和显示器 (B)硬件系统和软件系统(C) 主机和其他外部设备 (D) 系统软件和应用软件u 打印机属于计算机部件中的_(2)_。(A) 输出设备 (B) 输入设备 (C) 存储设备 (D) 缓冲设备u 下列表示存储容量的数据中,_(3)_是最大的。(A)20480 KB (B) 1.44 MB (C) 1 GB (D) Byteu 在计算机内部能够直接执行的程序语言是_(4)_。(A)数据库语言 (B)高级语言 (C)机器语言 (D)汇编语言u 下列叙述正确的是_(5)_。(A)程序设计就是编制程序 (B)程序的测试必须由程序员自己去完成(C)程序经调试改错后还应进行再测试 (D) 程序经调试改错后不必进行再测试u 以下叙述中错误的是_(6)_。(A)Visual Basic 是事件驱动型可视化编程工具(B)Visual Basic应用程序不具有明显的开始和结束语句(C)Visual Basic工具箱中的所有控件都具有宽度(Width)和高度(Height)属性(D)Visual Basic中控件的某些属性只能在运行时设置u 以下不属于VB工作模式的是_(7)_模式。(A) 编译 (B) 设计 (C) 运行 (D) 中断u 以下语句的输出结果是_(8)_ 。 Print Format $(32548.5,“000,000.00”) (A) 32548.5 (B) 32,548.5 (C) 032,548.50 (D) 32,548.50u 若要使某可见控件获得焦点,则可使用_(9)_方法来实现。(A) Refresh (B) SetFocus (C) Value (D) GotFocusu 在下列说法中,正确的是_(10)_。(A) 通过适当的设置,可以在程序运行期间,让时钟控件显示在窗体上(B) 在列表框中不能进行多项选择(C) VB系统不能在列表框中自动实现将项目按字母顺序从大到小排列(D) 复选框的Value属性值为布尔型u 执行以下程序段,输出的结果为_(11)_。a$="abbacddcba"For i=6 To 2 Step -2x=Mid(a,i,i): y=Left(a,i)z=Right(a,i): z=UCase(X & Y & z)Next iPrint z(A) ABA (B) BBABBA (C) ABBABA (D) AABAABu 控件在窗体上的位置是由_(12)_属性确定的。(A) Width和Height (B) Top和Left (C) Width和Left (D) Top和Width u 关于Name属性,以下叙述中_(13)_是正确的。(A) 窗体的Name属性指定窗体的名称,用于标识一个窗体。(B) 窗体的Name属性用于设置显示在窗体标题栏的文本。(C) 可以通过代码在程序运行中改变某个对象的Name属性值。(D) 对象的Name属性值可以设置为空。u 下列名称中_(14)_可以作为VB的变量名。(A) mod (B) m-d (C) tempVal (D) leftu 要求出变量x和y中较大的一个并保存在变量Max中,下面的程序段中_(15)_是不正确的。(A) Max = IIf(x > y, x, y)(B) If x > y Then Max = x Else Max = y(C) Max = xIf y >= x Then Max = y(D) If y > x Then Max = yMax = xu 执行以下语句后,a的值为_(16)_Dim a As Integera = 1Do Until a = 100 a = a + 2Loop(A) 102 (B)100 (C)溢出 (D)101u 对于语句If a = b Then c = d 的语法分析,_(17)_是正确的。(A) a=b 和 c=d都是赋值语句 (B) a=b是关系表达式,c=d是赋值语句(C) a=b 和 c=d都是关系表达式 (D) a=b是赋值语句,c=d是关系表达式u 运行下列程序段,单击两次命令按钮,则第二次单击时窗体中显示的结果是_(18)_。Private Sub Command1_Click() Dim a As Integer Static b As Integer a = a + 5: b = b + 5 Print a, bEnd Sub(A) 5 10 (B) 5 5 (C) 10 10 (D) 0 0u 在系统默认的情况下,Dim a(3, 4, 2 To 5) 定义的数组共有_(19)_个元素。(A) 36 (B) 48 (C) 60 (D) 80u 下面的子过程定义语句中没有语法和逻辑错误的是_(20)_。(A) Sub S1(ByVal n%() (B) Sub S1(n As Integer) As Integer(C) Function S1(ByVal n As Integer) (D) Function S1%(ByVal S1 As Integer)u 执行了下面程序后,组合框中数据项的值是_(21)_ 。Private Sub Form_Click()For i=1 to 6Combo1.AddItem iNext iFor i= 1 to 3Combo1.RemoveItem iNext iEnd Sub (A)1 5 6 (B)1 3 5 (C)4 5 6 (D)2 4 6u 设窗体上有一个列表框控件List1,且其中含有若干列表项。则以下能表示当前被选中的列表项内容的是_(22)_.(A)List1.List B)List1.ListIndex (C)List1.Index (D)List1. Textu 在窗体上画一个名称为Command1的命令按钮和一个名称为Text1的文本框,然后编写如下事件过程:Private Sub Command1_Click()n = Val(Text1.Text)For i = 2 To nFor j = 2 To sqr(i)If i Mod j = 0 Then Exit ForNext jIf j > Sqr(i) Then Print iNext iEnd Sub该事件过程的功能是_(23)_(A) 输出n以内的奇数 (B) 输出n以内的偶数(C) 输出n以内的素数 (D) 输出n以内能被j整除的数u 如果要在菜单中添加一个分隔线,则应将其标题属性设置为_(24)_。(A)= (B)* (C)& (D)-u 以下关于文件的叙述中正确的是_(25)_。(A) 一个记录中所包含的各元素的数据类型都是相同的(B) 随机文件中每个记录的长度是固定的(C) Open命令的作用是打开一个已经存在的文件(D) 使用Input # 语句可以从随时机文件中读取数据u 以下定义数组或给数组元素赋值的语句中,正确的是_(26)_。(A) Dim a As Variant (B) Dim a(10) As Integer a=Array(1,2,3,4,5) a=Array(1,2,3,4,5)(C) Dim a%(10) (D) Dim a(3),b(3) As Integer a(1)="ABCDE" a(0)=0 : a(1)=1 : a(2)=2 : b=au 窗体中有一个命令按钮,编写如下程序,程序运行后,输出结果为_(27)_。专心-专注-专业Private Sub test(p,m,n) p=p+1: m=m+1: n=n+1 Print “Sub:”; p; m; n End SubPrivate Sub Command1_Click() a1=1: b1=2: c1=3 Call test(a1,b1+3,(c1) Print “Main:”; a1; b1; c1End Sub(A) Sub: 2 6 4Main: 2 6 4(B) Sub: 2 6 4Main: 1 6 4(C) Sub: 2 6 4Main: 1 2 3(D) Sub: 2 6 4Main: 2 2 3u 以下语句用于打开一个顺序文件Open"C:MyFile.txt" For OutPut,但是该语句的一个重要错误是没有_(28)_。 (A) 指定打开方式 (B) 指定文件号 (C) 指定打开文件名 (D) 指定文件类型u 在窗体上画一个名称为Label1、标题为“VisualBasic考试”的标签,两个名称分别为Command1和Command2、标题分别为“开始”和“停止”的命令按钮,然后画一个名称为Timer1的计时器控件,并把其Interval属性设置为500。编写如下程序:Private Sub Form_Load()Timer1.Enabled=FalseEnd SubPrivate Sub Command1_Click()Timer1.Enabled=TrueEnd SubPrivate Sub Timer1_Timer()If Label1.Left<Width ThenLabel1.Left = Label1.Left + 20ElseLabel1.Left=0End IfEnd Sub程序运行后,单击“开始”按钮,标签在窗体中移动。对于这个程序,以下叙述中错误的是_(29)_(A) 标签的移动方向为自右向左(B)单击“停止”按钮后再单击“开始”按钮,标签从停止的位置继续移动(C) 当标签全部移出窗体后,将从窗体的另一端出现并重新移动(D)标签按指定的时间时隔移动u 设有如下程序,通过For循环计算一个表达式的值,这个表达式是_(30)_:Private Sub Command1_Click()Dim sum As Double, x As Doublesum = 0: n = 0For i = 1 To 5x = n / i: n = n + 1: sum = sum + xNextEnd Sub (A)1+1/2+ 2/3+3/4+4/5 (B)1+1/2+2/3+3/4 (C)1/2+2/3+3/4+4/5 (D)1+1/2+1/3+1/4+1/5二、填空题(50分,每空2分)u Visual Basic中有三种类型的模块文件,即类模块、标准模块和_1_模块。u 将数学式写成VB表达式,应该是_sqrt(y3+3/abs(a*b)_。u 赋值语句:a=123 + MID("",3,2)执行后,a变量中的值_157_ 。u Visual Basic提供的对数据文件的三种访问方式为顺序访问方式、_随机访问方式_和二进制访问方式。u 执行下列语句序列,显示的结果是_FALSE_。a = 2: b = 3: c = 4: d = 5Print 3 > 2 * b Or a = c And b <> c Or c > du 运行下列程序,单击命令按钮,则Text1中显示_5_,窗体中显示_0_。Private Sub Command1_Click() Dim i As Integer, j As Integer, a(5, 4) As Integer For i = 2 To 3 For j = 2 To 4 a(i, j) = i + j Next j Next i Text1.Text = a(3, 2) Print a(3, 1)End Subu 如下图,窗体上有两个命令按扭C1, C2及一个文本框Text1,当按下C1时,将C2的标题与Text1中的内容交换。C2C1 Private Sub C1_Click()Dim a As StringForm1.Caption = "交换后"a = _Text1.Txt_ Text1.Text = _C2.Caption_ C2.Caption = aEnd Subu 请完善以下判断完数的程序。一个数如果恰好等于它的因子之和,这个数就被称为“完数”。一个数的因子是指除了该数本身以外能够被其整除的数。例如6是一个完数,因为6=1+2+3。Private Sub CmdJudge_Click()If _m=k_ Then Picture1.Print m & "是完数" Picture1.Print m; "=" For i = 1 To UBound(a) - 1 Picture1.Print a(i); "+" Next i Picture1.Print _a(ubound(a)_Else Picture1.Print m & "不是完数"End IfEnd SubDim a()m = Val(Text1.Text)ReDim a(1)a(1) = 1k = _1_j = 1For i = 2 To m - 1 If m Mod i = 0 Then k = k + i ' 因数和 j = j + 1 ' 因数个数 ReDim _preserve_ a(j) a(j) = _i_ End IfNext I(转右)u 编写程序。在窗体上显示如下图所示的“九九加法表”。_option_ Explicit Private Sub Form_Click() Dim i%, j% Print " + 1 2 3 4 5 6 7 8 9" For i = 1 To _9_ Print i; For j = 1 To _i_ If i + j < 10 _then Print " " Print _i+j_; Next j _print_ Next i End Subu 在窗体上画一个名称为Command1的命令按钮,然后编写如下程序, 通过调用过程Swap,调换数组中数值的存放位置,即a(1)与a(10)的值互换,a(2)与a(9)的值互换,a(5)与a(6)的值互换。请填空Option Base 1Private Sub Command1_Click()Dim a(10) As IntegerFor i = 1 To 10a(i) = iNextCall Swap(_a_)For i = 1 To 10Print a(i);NextEnd SubSub Swap(b() As Integer)n = _Ubound(b)_For i = 1 To n / 2t = b(i)b(i) = b(n)b(n) = t_n=n-1_NextEnd Subu 设当前文件夹已有文件t1.txt和t2.txt,其中各有若干文字。现要将t2.txt的内容合并到t1.txt 中。例如t1.txt原来内容为"ABCD", t2.txt原来内容为"1234",合并后t1.txt的内容将成为“ABCD1234”Private Sub Command1_Click() Open "t1.txt" _for append_ As #1 Open "t2.txt" For Input As #2 Do While Not EOF(2) Line Input #2, s _Print #1,s_ Loop CloseEnd Sub三、编程题(20分,每题10分)1 编写一个自定义函数Gcd(m,n),实现求m和n两个正整数的最大公约数。2在文本框Text1中输入一串字符,用标签Label1显示其中出现频率最高的字母(不区分大小写)及其出现次数。例如:输入“This is a beautiful world.”则输出“使用频率最高的是i,共出现3次。”一、单选题(30分,每小题1分)1、( )字节称为一个MB。(A) 1024 (B)1000K (C) 1024*1024 (D) 10000K2、计算机硬件系统的五大部件是( )。 (A)CPU、内存储器、输入设备、输出设备、外存储器 (B)运算器、控制器、存储器、输出设备、输入设备 (C)CPU、总线、存储器、外设、主板 (D)主机箱、显示器、音箱、鼠标、键盘 3、常用的输入设备有( )。 (A)键盘、鼠标、扫描仪 (B)显示器、键盘、鼠标 (C)打印机、扫描仪、键盘 (D)触摸屏、打印机、鼠标4、计算机网络的主要作用是( )。(A) 数据处理 (B) 信息传输与数据处理(C) 文献查询 (D) 资源共享与信息传输5、二进制数1010等于十六进制数( )。(A) 10 (B) 11 (C) A (D) B6、在VB中要强制显式声明变量,可在窗体模块或标准模块的声明段中加入语句( )。(A) Option Base 0 (B) Option Explicit (C) Option Base 1 (D) Option Compare7、下列程序段的执行结果为( )。 J1 = 10 J2 = 30 If J1 < J2 Then Print J2; Print J1(A)10 (B)30 (C)10 30 (D)30 108、假设变量x1是一个布尔型(逻辑型)的变量,则下面正确的赋值语句是( )(A) x1="False" (B) x1='False' (C) x1=False (D) x1=#False#9、在运行阶段,要在文本框Text1获得焦点时选中文本框中所有内容,对应的事件过程是( )。(A) Private Sub Text1_LostFocus()Text1.SelStart=0Text1.SelLength=Len(Text1.text)End Sub(B) Private Sub Text1_GotFocus()Text1.SelStart=0Text1.SelLength=Len(Text1.text)End Sub(C) Private Sub Text1_SetFocus()Text1.SelStart=0Text1.SelLength=Len(Text1.Text)End Sub(D) Private Sub Text1_Change()Text1.SelStart=0Text1.SelLength=Len(Text1.Text)End Sub10、设用复制、粘贴的方法建立了一个单选按钮数组Option1,以下对该数组的说法错误的是( )。(A) 所有单选按钮的Caption属性都是Option1(B) 单选按钮的大小都相同(C) 在代码中访问任意一个单选按钮只需使用名称Option1 (D) 单选按钮共享相同的事件过程11、下面过程说明语句中合法的是( )。(A) Sub f1(ByVal n() As Integer) (B)Function f1(ByVal n As Integer)(C) Function f1(f1 As Integer) As Integer (D)Sub f1(n() As Integer)As Integer12、Cls 方法可清除窗体或图片框中的( )信息。(A) Picture属性设置的背景图案 (B) 在设计时放置的控件(C) 程序运行时产生的图形和文字 (D) 以上都对13、在窗体中右击鼠标能弹出菜单test的是( )。(A)Sub Form_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single) If Button =2 Then PopupMenu test End Sub(B)Sub Form_MouseDown (Button As Integer, Shift As Integer, X As Single, Y As Single)PopupMenu test End Sub (C)Sub Form_Click() PopupMenu test End Sub (D)Sub Form_DblClick() PopupMenu test End Sub14、下列符号常量的声明中,( )是不合法的。(A) Const a As Single = 1.1 (B) Const a As Integer = "12"(C) Const a As Double = Sin(1) (D) Const a = "OK"15、下列程序段的执行结果为( )。Dim S(9)For i=0 To 9 S(i)=3*INext iPrint S(S(3)(A) 12 (B) 27 (C) 0 (D) 出错16、下列数组声明正确的是( )。(A) n=5Dim a(1 to n) As Integer(B) Dim a(10) As IntegerReDim a(1 to 12)(C) Dim a() As SingleReDim a(3 ,4) As Integer(D) Dim a() As Integer n=5ReDim a(1 to n) As Integer17、下列控件中,没有Caption属性的是( )。(A) 框架 (B) 列表框 (C) 复选框 (D) 单选按钮18、下面关于计时器控件(Timer)的叙述中,错误的是( )。(A) 计时器控件运行时不可见(B) 通过Color属性可设置计时器控件的颜色(C) 计时器控件只有一个事件即Timer事件(D) 计时器的Interval属性值设为0时,计时器无效19、表达式 2 2 * 5 + 3 Mod 10 3 的值是( )。(A)0 (B) 18 (C)19 (D) 2020、在窗体上画一个名称为Text1的文本框,然后画一个名称为HScroll1的滚动条,其Min和Max属性分别为20和100。程序运行后,如果移动滚动条滑块,则在文本框中显示滚动条的当前值。以下程序段中能实现上述操作的是( )。(A) Private Sub Hscroll1_Change()Text1.Text=HScroll1.ValueEnd Sub(B) Private Sub Hscroll1_Click()Text1.Text=HScroll1.ValueEnd Sub(C) Private Sub Hscroll1_Change()Text1.Text=Hscroll1.CaptionEnd Sub(D) Private Sub Hscroll1_Click() Text1.Text=Hscroll1.Caption End Sub21、在窗体上画一个文本框,然后编写如下事件过程:Private Sub Form_Load() Text1.Text = "" Text1.SetFocus For i = 1 To 5 Sum = Sum + i Next i Text1.Text = SumEnd Sub上述程序的运行结果是( )。(A) 在文本框中输出15 (B) 在文本框中输出0 (C) 在文本框中输出不定值 (D) SetFocus方法不可在Load事件中使用,所以出错22、下面说法不正确的是( )。(A) 滚动条的重要事件是Change和Scroll(B) 框架的主要作用是将控件进行分组,以完成各自相对独立的功能(C) 计时器控件可以通过对Visible属性的设置,在程序运行期间显示在窗体上(D) 组合框中Style属性有三个不同的值,使组合框呈现不同的形式23、以下Case语句中有语法错误的是( )。 (A) Case 0 To 10 (B) Case Is>10 And Is<50 (C)Case Is>10 (D) Case 3,5,Is>1024、关于文件操作控件,下列叙述不正确的是( )。(A) 驱动器列表框(DriveListBox)能显示系统中所有有效磁盘驱动器(B) 从驱动器列表框中选择驱动器能变更系统当前的工作驱动器(C) 使用通用对话框(CommonDialog)中的“打开文件”对话框选择文件名,无需编程即可自动地打开所选文件(D) 通过编写适当的程序代码可以使文件列表框(FileListBox)中显示当前目录列表框(DirLIstBox)中选中的文件列表25、从磁盘上读入一个名为“c:filel.txt”的顺序文件,下面程序段正确的是( )。(A) Open "c:filel.txt" For Output As # 2(B) Open c:filel.txt For Input As # 1(C) F="c:filel.txt"Open "F" For Input As # 2(D) F="c:filel.txt"Open F For Input As # 126、改变下列( )属性可设置控件的位置,。(A) Height 与 Width (B) Height 与Top (C) Left 与 Top (D) Left 与 Width27、在Visual Basic 中,( ) 关键字用于注释语句。(A) Rem (B) End (C) Else (D) Loop28、X是一个数值型变量,表达式Int(X / 2)= X / 2 的作用是( )。(A) 用于测试X是否偶数 (B) 返回一个整数(C) 返回一个奇数 (D) 用于测试X是否整数29、执行了下面程序后,组合框中显示的数据项是( )。Private Sub Form_Load()For i=1 to 6Combo1.AddItem iNext iFor i= 1 to 3Combo1.RemoveItem iNext iEnd Sub (A)1 5 6 (B)1 3 5 (C)4 5 6 (D)2 4 630、打开顺序文件语句中,关键字Append表示把新数据添加到( )。(A) 文件首 (B) 文件尾 (C) 文件中间 (D) 随机位置二、填空(50分,每空2分)1、设有如下程序段: a$="ShanghaiBeijing":b$=Mid(a$,InStr(a$,"i")+1)执行上面的程序段后,变量b$的值为_ Beijing_。2、设a=4,执行x = IIf(a>6,-2,0)后,x的值为0_。3、窗体上有一个名为List1的列表框,一个名称为Text1的文本框,一个名称为Label1、Caption属性为“Sum”的标签,一个名称为Command1、标题为“计算”的命令按钮。程序运行后,将把1100之间能够被7整除的数添加到列表框中。如果单击“计算”按钮,则对List1中的数进行累加求和,并在文本框中显示计算结果,如图所示。以下是实现上述功能的程序,请填空。Private Sub Form_Load()For i=1 To 100If i Mod 7 =0 ThenList1.additem iEnd If Next iEnd SubPrivate Sub Command1_Click()Sum = 0For i = 1 To list1.listcountSum = Sum + list1.list(i-1)Next iText1.text=sumEnd Sub4、用Array函数建立一个含有8个元素的数组,然后查找并输出该数组中元素的最大值。请填空:Option Base 1Private Sub Command1_Click()Dim arr1%, Max%arr1 = Array(12, 435, 76, 24, 78, 54, 866, 43)Max = arr1(1)For i = 1 To 8If arr1(i) > Max Then Max=arr1(i) Next i Print "最大值是: " MaxEnd Sub5、设在窗体上有一个文本框Text1,一个标签数组Label1,共有10个标签,以下程序代码实现在单击任一个标签时将标签的内容添加到文本框现有内容之后。 Private Sub Labell_Click(Index As Integer) Text1.Text= label1(index).caption End Sub 6、下列程序的功能是:当x<47时,y=10 x;当47x100时,y=0.7x;当x>100时,没有意义。请填空。Private Sub Command1_Click() Dim x As Singlex=InputBox("请输入x的值!") select case x Case Is < 47y=10*xCase 47 To 100y=0.7 * xCase ElsePrint "输入的数据出界!"End SelectPrint x, yEnd Sub8、表达式Fix(-32.68)+Int(-23.02)的值为 -569、下面的程序用“冒泡”法将数组a中的数组元素按升序排列,请将程序补充完整。Option Base 1 Private Sub Command1_Click() Dim a a=Array(67, 45, 24, 52, 49, 37, 87, 58, 23, 82) For i=1 to ubound(a)-1 For j=1 to ubound(a)-iIf a(j) > a(j1) Then t=a(j) a(j)=a(j+1) a(j1)=tEnd If Next j Next i For i= 1 to ubound(a)Print a(i); Next i End Sub 11、下列程序运行时,当单击窗体后,从键盘分别在文本框Text1、Text2输入整数m、n,求解m、n的最大公约数,并将结果显示在窗体上。请将程序补充完整Private Sub Form_click() m = val(text1.text) n = Val(Text2.text) Print m ; "和" n; "的最大公约数是:"gys(m,n)End SubPrivate Function gys(n, m) p = n Mod m If p=0 Then gys= m Else Gys=Gys(m,p)End If End Function12、在窗体模块中编写以下Sub过程和窗体Click事件过程:Private Sub suba(x As Integer,y As Integer)Dim t As Integert =x: x=y : y=tEnd SubPrivate Sub Form_Click()Dim a As Integer,b As Integera =10: b =20Call suba(a,b)Print a ;b;Call suba(b,a)Print a ;bEnd Sub当程序运行时,在窗体中单击鼠标左键,则程序的输出结果是 20 10 10 20 。13、以下程序的功能是:把当前目录下的顺序文件smtext1.txt的内容读入内存,并在文本框Text1中显示出来。请填空。Private Sub Command1_Click()Dim Data As StringText1